Patching:一款针对IDA Pro的交互式源码处理工具

admin 2022年3月30日16:34:22评论119 views字数 1702阅读5分40秒阅读模式

Patching:一款针对IDA Pro的交互式源码处理工具

 关于Patching 

通过对编译代码进行处理来改变现有应用程序的行为,在恶意软件分析、软件逆向工程以及更广泛的安全研究领域中,其实并不少见。而Patching是一款针对IDAPro的交互式源码处理工具,该工具能够扩展IDA Pro反汇编工具的功能,以创建一个功能更加强大的交互式源码处理工作流。

当前版本的Patching基于Keystone引擎实现其功能,支持x86/x64和Arm/Arm64。

 工具要求 

该插件需要IDA 7.6和Python 3环境支持,并能够在Windows、Linux和macOS操作系统上运行。

 工具下载 

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/gaasedelen/patching.git

 工具安装 

我们可以直接在IDA工具的控制台中通过下列方法直接以自动化的形式安装该工具。

Windows / Linux

import urllib.request as r; exec(r.urlopen('https://github.com/gaasedelen/patching/raw/main/install.py').read())

macOS

import urllib.request as r; exec(r.urlopen('https://github.com/gaasedelen/patching/raw/main/install.py', cafile='/etc/ssl/cert.pem').read())

手动安装

除了上述方法之外,我们还可以手动安装该工具。首先,我们要访问该项目的【Releases页面】下载对应操作系统平台的插件包发布版本,并解压到插件目录下。

我们强烈建议广大研究人员将该工具直接安装到IDA的用户插件目录下:

import ida_diskio, os; print(os.path.join(ida_diskio.get_user_idadir(), "plugins"))

 工具使用 

该插件将会自动加载支持的架构(x86/x64/Arm/Arm64),并注入相关的代码处理功能,我们可以直接在IDA反汇编视图中右键点击上下文菜单来查看和使用:

Patching:一款针对IDA Pro的交互式源码处理工具

接下来,我们会对上下文菜单中提供的功能进行详细介绍。

Assemble汇编

可以通过右键单击上下文菜单中的“Assemble”来启动代码操作的主界面。该功能将模拟基础的IDA反汇编视图,可用于快速连续编辑一条或多条指令:

Patching:一款针对IDA Pro的交互式源码处理工具

汇编行是一个可编辑的字段,可用于实时修改指令。按下回车键将能够把输入的指令提交到数据库中。
当前位置(即光标)将始终以绿色突出显示。在提交代码修复操作之前,由于编辑而被删除的指令将以红色突出显示:
Patching:一款针对IDA Pro的交互式源码处理工具
最后,可以使用向上和向下箭头键,同时仍将焦点放在可编辑的部件文本字段上,以便在不使用鼠标的情况下快速在反汇编视图中上下移动光标。

NOP空操作指令

最常见的代码操作就是删除一条或多条指令。因此,NOP操作将始终在右键单击菜单中可见,以便快速访问:
Patching:一款针对IDA Pro的交互式源码处理工具
当然了,我们也可以直接选择一系列操作指令。

强制条件跳转

该插件仅在右键单击条件跳转指令时显示此操作:
Patching:一款针对IDA Pro的交互式源码处理工具

保存 & 快速应用

可以随时通过子菜单将处理后的程序保存(应用)到选定的可执行文件,“快速应用”操作可以更快地使用相同的设置保存后续经过处理的程序:
Patching:一款针对IDA Pro的交互式源码处理工具
该插件还会保留原始可执行文件的备份(.bak)。

恢复

最后,如果你对代码修改操作不满意的话,只需要右键单击黄色的指令块,将其恢复为原始值:
Patching:一款针对IDA Pro的交互式源码处理工具
不过有的时候可能恢复操作还需要进行部分人工处理。

项目地址

https://github.com/gaasedelen/patching
参考资料
https://www.hex-rays.com/products/ida/
https://github.com/gaasedelen/keystone
https://github.com/keystone-engine/keystone
https://hex-rays.com/
Patching:一款针对IDA Pro的交互式源码处理工具



精彩推荐






Patching:一款针对IDA Pro的交互式源码处理工具

Patching:一款针对IDA Pro的交互式源码处理工具
Patching:一款针对IDA Pro的交互式源码处理工具
Patching:一款针对IDA Pro的交互式源码处理工具

原文始发于微信公众号(FreeBuf):Patching:一款针对IDA Pro的交互式源码处理工具

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月30日16:34:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Patching:一款针对IDA Pro的交互式源码处理工具https://cn-sec.com/archives/855465.html

发表评论

匿名网友 填写信息