当前位置:首页 > 新闻资讯

逆向工程工具之Reverse

时间:2020-09-02 来源:深圳维创信息技术 2

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

目前,其交互模式仍在做进一步开发。

支撑架构架构: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.pytests/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-itests/others/switch.bin>>x...>>jmptable0x4005260x400620118#Ajump-tableat0x400620issetwith11entries,anaddressison8bytes.>>x#Decompilationwithswitch分析shellcode其中对于每一个Int 0×80,该工具都会尝试通过参数检测syscall函数$./reverse.py--rawx86tests/shellcode.binfunction0x0{0x0:eax=0#xoreax,eax0x2:al='\x0b'#moval,0xb0x4:cdq0x5:pushedx0x6:push1752379246"n/sh"0xb:push1768042287"//bi"0x10:ebx=esp#movebx,esp0x12:pushedx0x13:pushebx0x14:ecx=esp#movecx,esp0x16:int128;execve(ebx,ecx,edx)#int0x80}使用VIM进行编辑较后再通过使用VIM进行编辑,具体参考如下,$./reversetests/dowhile1.bin--vimRun:vimdowhile1.bin.rev-Sdowhile1.bin.vim

标签:
相关文章

关于

文件加密

在线咨询

加密软件

联系