逆向工程工具之Reverse

Reverse是一个用来解析二进制文件的逆向工程工具,而且它可以生成更具可读性的代码(类C语言)并带有彩色标识的语法,便于研究人员进行阅读代码。目前,其交互模式仍在做进一步开发。

[[161348]]

支撑架构

架构:x86, ARM, MIPS
文件格式:ELF, PE, RAW
在GitHub中,也提供了一个Makefile作为测试之用,详细请点击链接:Makefile。

使用环境要求

1、python 版本需要在 3.4及以上版本;
2、具备capstone反汇编框架,其能提供丰富的反汇编指令;
3、具备python-pyelftools模块,用于解析ELF文件(ELF文件除了机器码外,还包含其它额外的信息,如段的加载地址,运行地址,重定位表,符号表等)以及DWARF调试信息,详细请点击链接:pyelftools;
4、具备python-pefile模块,以用于解析PE文件(如exe、dll、vxd、sys和vdm等),详细请点击链接:PEfile;
5、具备python-msgpack模块,用于序列化运算,详细请点击链接:msgpack;
6、具备256色终端;

你可以通过运行requirements.sh检测是否符合所有的要求,requirements.sh。

类反编译功能

因为二进制文件中包含了符号型的main,所以其中的-x main是可选的。具体使用如下,

$ ./reverse.py tests/server.bin

交互模式

在此模式下有更多的命令可以使用(da,db等),当然我们也可以通过help查看更多的命令。

TODO列表

1、添加命令:setbe/setle rawbase(用于原文件格式);
2、如果从shell获取的文件为raw文件,则进行加载。

视觉模式

在交互模式中,我们可以通过使用命令 v 来切换到视觉模式。但该模式需要ncurses动态库的支持。

其中支持,

1、代码/功能的定义
2、内联注释
3、外部参照

TODO列表

1、当分析器修改代码时,自动进行重载;
2、多行注释;
3、创建数据/数组;
4、符号重命名;
5、堆栈变量;
6、结构、枚举;
7、提高分析器的性能。

 

 

Swich-跳转表举例

Switch语句的使用需要跳转表,但其不能自动检测。所以我们需要告诉它使用哪一个跳转表。具体操作如下,

$ ./reverse.py -i tests/others/switch.bin >> x ...>> jmptable 0x400526 0x400620 11 8  # A jump-table at 0x400620 is set with 11 entries, an address is on 8 bytes.>> x # Decompilation with switch

分析shellcode

其中对于每一个Int 0×80,该工具都会尝试通过参数检测syscall函数

$ ./reverse.py --raw x86 tests/shellcode.bin

function 0x0 {    0x0: eax = 0 # xor eax, eax    0x2: al = '\x0b' # mov al, 0xb    0x4: cdq     0x5: push edx     0x6: push 1752379246 "n/sh"    0xb: push 1768042287 "//bi"    0x10: ebx = esp # mov ebx, esp    0x12: push edx     0x13: push ebx     0x14: ecx = esp # mov ecx, esp    0x16: int 128 ; execve(ebx, ecx, edx) # int 0x80}

使用VIM进行编辑

 

***再通过使用VIM进行编辑,具体参考如下,

$ ./reverse tests/dowhile1.bin --vim Run : vim dowhile1.bin.rev -S dowhile1.bin.vim

GitHub 下载链接:GitHub。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/145146.html<

赞 (0)
管理的头像管理
上一篇2025-03-10 12:03
下一篇 2025-03-10 12:04

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注