逆向工程工具之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

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

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