160crackme002
一.查壳
结果:vb写的,并且无壳
二.运行程序
发现了这个程度调用了vb调用窗口的api。这时有两种方式:
1.再重新调试,运行到有窗口的时候,F12暂停,按ctrl+K,查看dll调用,再数据窗口跟随进入,相应的汇编。
2.中文智能搜索找字符串
以上两种,可以自由选择,哪个方便用哪个。
三.找到对应的字符串后,看看哪里有跳转
找到了这个跳转那么直接改成nop或者jmp,就爆破成功,没什么技术含量讲道理。。
二.注册机算法分析(这个没办法说,自己跟着汇编一步一步的来的,再结合api)耗费时间
我分析思路是,先找到正确的注册码是什么,在向上调试,哪个地方生成了正确的注册码的一部分,跟着汇编一步一步来调试。
注册机代码python版
usename=input("请输入名字")
ulen=len(usename)
tmp=0x17CFB
print(ord(usename[0]))
after=ulen*tmp+ord(usename[0])
print(int(after))
课前总结,这个花费了很多时间,看了很多博客,事实上爆破是很简单的,而分析算法,理解每一步在干什么,从而将注册机写出来,才是我们的最终学习的目标,查阅了vb的api,如果直接跳进去看汇编,感觉就是自己的汇编水平不够,正向的函数,逆向反汇编出来又是怎么样的,正向和逆向脱离不开。