用来辅助分析易语言程序的IDA 7.5插件,实验性项目。
反编译思路一:
基于retdec项目,将代码转换成LLVM IR后,结合易语言函数特征编写LLVM PASS来修正LLVM IR。
反编译思路二:
基于Ghidra项目,将汇编代码转换成PCode后,结合易语言函数特征编写Action来修正PCode。
反编译思路三:
基于IDA SDK,通过修改函数声明和CTree结构,结合易语言函数特征来优化反编译代码。
目前在尝试的是思路三。
开发环境为: Windows + Visual Studio 2019 + Qt 5.6.3.0 + IDA SDK75
配置选项:
C/C++
-> 附加包含目录
需要添加IDA SDK的头文件目录,例如C:\MyLib\idasdk75\includeC/C++
-> 预处理器定义
需要添加 QT_NAMESPACE=QT
这一行C/C++
-> 代码生成
-> 安全检查
设置为禁用安全检查(/GS-)
链接器
-> 附加库目录
需要添加IDA的Vc Lib文件目录和Qt Lib目录,例如C:\MyLib\idasdk75\lib\x64_win_vc_32和C:\MyLib\idasdk75\lib\x64_win_qt链接器
-> 附加依赖项
添加需要的lib文件,有ida.lib、Qt5Core.lib、Qt5Gui.lib、Qt5Widgets.lib、user32.lib...反编译核心部分
本项目完全是由个人利用业余时间开发,不定时更新。
通过定制化开发一套轻量级的特征识别引擎,来实现模块函数特征识别。
https://chaotic.gd/ghidra-decompiler-docs-built/index.html
NationalSecurityAgency/ghidra: Ghidra is a software reverse engineering (SRE) framework
airbus-cert/Yagi: Yet Another Ghidra Integration for IDA
avast/retdec: RetDec is a retargetable machine-code decompiler based on LLVM. (github.com)
https://github.com/OpenEpl/TextECode
NjMzNzgzNjAy