脱壳之二-实践
1,首先检查现有程序是使用什么程序加壳的。从这里可以找到使用的是aspack 2.12
2,在od中打开需要脱壳的程序,忽略警告信息。在pushad和call之间很近,因此使用f7进行跟踪执行
3,在所有向上跳转的语句的下一行,点鼠标右键,使用F4下断点防止反跳
4,f8一路向下执行
5,执行到这里,看到push 0051cee就是典型的OEP了,当然0051eeco的地址是会变的。
6,继续F8执行,就进入了真正的程序中。
7,在这里点鼠标右键,选择OllyDump进行脱壳
8,点击鼠标右键,查找窗体中的字符串。
9,选择注册失败,并双击鼠标,进入到相应的程序代码处
10,从这一行开始向上查找,看是从哪里跳过来的
11,从这里可以看到是通过call 00404aa4跳下去的。这里便是进行注册验证的地方
12,在jnz一行上,点击鼠标右键选择二进制--》用nop填充。
13,填充完毕后,用户输入任意的注册码都能通过,这就是所谓的暴力破解。将所有的操作复制到文件中。
14,鼠标右键选择保存文件吧数据保存到硬盘中。双击可执行文件会发现程序已经破解。
15,查找真正的注册码。
在od中按F9执行应用程序,进行注册,输入任意注册码,这里是kkk,在寄存器窗口可以发现eax是kkk,edx中便是正确的注册码了。
说明:以上只是说明应用程序脱壳、暴力破解、查找真正注册码的基本流程和方法,并不是鼓励大家做程序破解,请尊重程序开发人员的辛苦成果。
以上文章转自52pojie论坛,图片照搬,文字内容进行了重新的编辑。经过验证原作者的操作是可以重复的。