逆向工程工具之Reverse

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

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

逆向工程工具之Reverse

交互模式

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

TODO列表

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

视觉模式

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

其中支持,

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

TODO列表

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

 

逆向工程工具之Reverse

 

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

责任编辑:蓝雨泪 来源: FreeBuf
相关推荐

2022-09-26 00:00:01

java代码开发

2018-10-10 14:14:51

Linux内存映射

2021-03-31 11:35:00

网络安全OllyDbg分析工具

2021-08-18 15:59:47

苹果工具系统

2012-05-18 09:54:05

2021-11-01 05:53:08

Doldrums逆向工程分析工具安全工具

2020-09-28 10:47:41

Shellcode技术

2011-03-24 09:57:28

PowerDesign逆向工程

2023-08-07 18:55:19

2022-07-03 10:43:23

JS逆向破解

2021-04-02 06:18:27

Docker镜像

2023-07-17 07:25:48

2021-06-05 18:01:05

工具Rollup前端

2016-10-24 14:53:30

Android app使用技巧

2010-03-31 22:20:51

2021-04-01 10:40:22

网络安全软件

2021-08-16 11:47:36

Asahi Linux开发者Apple M1

2011-10-10 10:58:40

黑客

2024-03-01 12:17:00

AI数据微软

2022-06-01 09:00:56

加密算法密钥
点赞
收藏

51CTO技术栈公众号