反汇编系列(一)——工具篇

反汇编,也有人称为“逆向工程”,就是把 DLL 或者 EXE 程序逆向为程序员可读的汇编代码,方便我们理解程序。有时候我们需要分析别人的DLL或者程序,想看看它做了什么或者实现方案(请不要干坏事!),可能需要反汇编知识。我们首先需要借助一些反汇编利器。我强烈推荐的是IDA Pro,它的功能异常强大,对某些程序的反汇编,可以达到伪代码级别的反汇编——当然,这需要你具有扎实的汇编功底。


IDA Pro 目前的稳定版本是5.5官网上最新评估版本是6.3点此下载评估版),你可以根据自己需要去找一份。我使用的是 6.3 的评估版本,功能比5.5强大许多。你可以将一个DLL 或者 EXE 直接拖入 IDA 主窗口,然后它就会自动展开一份反汇编好的代码。如下:




几个主要的区域有:

  • 代码窗口:主要展示反汇编代码;
  • 输出窗口:
  • 函数窗口:主要用于查看函数(非导出函数可能只用 sub_XXXXX 替代,导出函数你可以看到完整的全名);
  • 导入窗口:查看导入的所有函数(如 LoadLibraryCreateThread 等等);
  • 导出窗口:查看该 DLL 导出的函数接口;
  • 结构体窗口:查看结构体定义;
  • 字符串窗口:查看所有 HardCode 的字符串;
主要我们需要关注的窗口大致就这些,其他的窗口可以自己去探索。并且 IDA 具有相当强大的快捷键功能,比如我们定位到一个导入函数上,然后想看什么地方调用了这个函数,只需按 'X' 键,会弹出一个调用了这个函数的地址列表,我们可以双击列表中的某一行,方便的跳转到该调用处。如:



如果你想查看你自己写的代码的汇编代码,可以参考《用汇编分析C++程序》。通过第一张图中反汇编出的代码可以看到,某些变量名均已被反汇编出来了,这可以方便我们理解代码。

但是,对初学者来说,其他的变量名如:“var_802” 这样的名称不易理解,并且对后面的-48-802 等这样的数字也一头雾水,下一篇将详述堆栈。

Tips:你可以在知道var_802这样的变量名代表的确切意义后,可以用光标点击它,然后按下'n',就可以重命名这个变量名,之后可以保存工程,下次打开的时候还是你重命名后的名称,方便多次反汇编。






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
反汇编Linux/Windows OS运行的32位/64位程序/动态库文件,CPU类型:ARM PowerPC MIPS X86 操作菜单选择:文件解析 Alx+P ELF文件解析 Alt+E 另有CORE文件解调用栈、文本比较等功能。V2.0.3相对上一版本,完善ARM64、X8664、PPC64反汇编、ko反汇编,完善反汇编文本文件比较、IQ数据解析,修复小BUG;V2.0.2相对上一版本,完善ARM64、X8664反汇编、ARM64位core文件调用栈,完善文本文件比较、增加高亮、查找功能,修复小BUG;V2.0.0相对上一版本,完善ARM64反汇编、ARM64位core文件调用栈,完善C++符号名字解析,支持工具运行在英文版OS;V1.26.01相对上一版本,增加ARM64反汇编、64位core文件解析;V1.26.00相对上一版本,增强EXE反汇编,增加dbx老邮件解析、二维码功能;V1.25.07相对上一版本,增加二进制反汇编、IQ数据解析功能,完善MIPS反汇编,修复小BUG;V1.25.05相对上一版本,增加内存数据按数据类型解析功能;V1.25.04相对上一版本,完善X86反汇编,修复小BUG;V1.25.02相对上一版本,COREDUMP统计、匹配目标文件等相关功能优化,修复小BUG;V1.25.00相对上一版本,相关功能支持动态库文件,查询代码支持无符号目标文件+有符号目标文件,COREDUMP统计、与问题单关联、目标文件/CORE文件/问题单同步;V1.24.02相对上一版本,针对进程主动捕捉异常的信息定制处理进一步完善COREDUMP文件解析与应用,增强软件管理;V1.24.01相对上一版本,进一步完善COREDUMP文件解析与应用,提供部分ARM Thumb指令反汇编;V1.24.00相对上一版本,进一步完善COREDUMP文件解析与应用,提供堆栈调用关系分析;V1.23.03相对上一版本,提供32位X86反汇编;V1.23.02相对上一版本,提供源代码行查询指令地址,OBJ/COREDUMP文件解析,sprintf函数参数特定检查,完善文件拖放操作,修复小BUG;V1.23.01相对上一版本,提供ELF文件指令修改,修复ARM MLS指令反汇编错误等BUG;V1.23.00相对上一版本,提供程序地址对应源代码行查询,修复MIPS调试信息错误;V1.22相对上一版本,修复MIPS小端字节序反汇编错误,网上最新版本提示;V1.21相对上一版本,菜单调整,完善64位ELF文件解析,解析调试信息;另部分增强功能的菜单操作设有密码,如有兴趣欢迎咨询。欢迎大家反馈相关软件使用过程中的问题!
IDA反汇编工具是一款十分强大的反汇编工具,不仅支持各种处理器架构,还提供了丰富的反汇编和调试功能。对于51系列单片机的反汇编,IDA也是支持的。以下是IDA反汇编工具51系列使用说明: 1. 安装IDA:首先需要下载并安装IDA软件,建议选择官方网站进行下载,确保软件的安全可靠。 2. 选择芯片型号:打开IDA软件后,选择File -> New,会弹出一个窗口,选择51系列单片机所对应的芯片型号,然后点击OK。 3. 导入Hex文件:在弹出的新窗口中,选择要反汇编的Hex文件,然后选择芯片的熔丝位设置,点击OK。此时IDA会将Hex文件反汇编汇编代码。 4. 查看反汇编代码:在左侧的窗口中选择需要查看的函数或代码段,可以查看该部分的反汇编代码。可以通过右键菜单选择反汇编风格、字体大小等选项进行设置。 5. 修改反汇编代码:可以通过双击汇编代码进行修改,修改后可以选择保存或者撤销修改。需要注意的是,IDA只是反汇编工具,修改汇编代码并不能直接影响Hex文件。 6. 调试程序:可以通过IDA内置的调试器进行程序调试,选择Debugger->Process Options进行设置,然后选择Debugger->Run进行启动调试。 7. 插件扩展功能:IDA支持插件扩展功能,可以通过安装插件来增加IDA的功能。可以在IDA的官网上下载和安装插件。 以上是IDA反汇编工具51系列使用说明,希望能对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值