仅以此文来描述如何反汇编一个exe程序,这里采用的是静态反汇编,也就是先把整个程序全部反汇编成汇编语言后进行修改,这个例子很简单,首先是我从看雪论坛上下载到的一个程序盾构机过站
然后我们使用打开它,可以看到这个exe程序在反编译以后的内容 双击正式启动这个程序,随便输入注册码123,点击Check
这里可以看到程序在输入错误后提示的内容
然后我们使用"串式数据参考",到这个字符串的位置
这个位置如下学习卡
可以看到在我程序的0040段,15B9这个偏移地址下程序输出了这个字符串,然后我们考虑一下,程序在我输入了错误的注册码,并且点击了check以后,弹出了这个字符串,我们向上,应该可以到一个跳转,类似je,jne,jmp之类的东西,跳转到此处,位置如下
可以看到在偏移地址15AB下有一个入口,注意Referenced by .....这句,是说"有人从这里 插队 了"
到底是谁"插队"到这里了呢,是 00401595这个代码.
现在我们跳转到这个位置去追踪它
输入00401595
可以看到是个jne(不等跳转),我们只要把这个jne改成je就可以了
使用hiew车载影院打开这个程序
打开以后看到一堆乱码拉配,这是因为它是用文本方式打开了一个exe程序手机镀膜机
这里我们按F4,选择decode(反汇编)模式
这回看到的就都是机器码了
然后按F5,输入1595(刚才我们到的那个语句地址),到那个位置
隧道式高温烧结炉
就是这个7516的jne命令,我们要把它改成je,这里直接把7516这个机器码修改成7416
按F3进入编辑模式
然后按F9保存
这回再次打开修改后的程序,重新输入123,可以看到crack后的结果是
完成!