关于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反汇编视图中右键点击上下文菜单来查看和使用:
接下来,我们会对上下文菜单中提供的功能进行详细介绍。
Assemble汇编
可以通过右键单击上下文菜单中的“Assemble”来启动代码操作的主界面。该功能将模拟基础的IDA反汇编视图,可用于快速连续编辑一条或多条指令:
NOP空操作指令
强制条件跳转
保存 & 快速应用
恢复
项目地址
精彩推荐
原文始发于微信公众号(FreeBuf):Patching:一款针对IDA Pro的交互式源码处理工具
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论