fjqisba / E-Decompiler

用来辅助分析易语言程序的IDA插件
450 stars 76 forks source link
e-language ida idaplugin

E-Decompiler

用来辅助分析易语言程序的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

配置选项:

使用说明

  1. 在使用本插件之前,需要给IDA7.5做一个patch,使之支持中文函数。详细情况见IDA7.5支持中文函数命名的办法
  2. 将E-Decompiler.dll和esig文件夹放置于插件目录,例如D:\IDA 7.5 SP3\plugins
  3. 运行IDA后,按Ctrl+3快捷键呼出插件菜单,运行插件即可。

项目进度

反编译核心部分

本项目完全是由个人利用业余时间开发,不定时更新。

关于模块函数特征识别

通过定制化开发一套轻量级的特征识别引擎,来实现模块函数特征识别。

参考资料

https://chaotic.gd/ghidra-decompiler-docs-built/index.html

Online Courses – Ghidra

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)

RolfRolles/HexRaysDeob: Hex-Rays microcode API plugin for breaking an obfuscating compiler (github.com)

patois/HRDevHelper: Context-sensitive HexRays decompiler plugin that visualizes the ctree of decompiled functions. (github.com)

https://github.com/OpenEpl/TextECode

NjMzNzgzNjAy