反汇编入门教程
仅以此文来描述如何反汇编一个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后的结果是
完成!
反汇编
反汇编:把目标代码转为汇编代码的过程,也可说是把编程语言转为汇编语言代码,低级转高级的意思,常用于软件破解(例如到它是如何注册的,从而解出它的注册码或者编写注册机。),外挂技术,病毒分析,逆向工程,软件。学习汇编和理解反汇编语言对软件调试,漏洞分析,OS的内核原理和理解高级语言的代码都有相当大的帮助,从中可以学习软件作者的编程思想,总之一句话:软件的一切神秘的运行机制全在反汇编代码里面了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论