Skip to content

StriveMario/E-debug-plus

 
 

Repository files navigation

E-debug Plus

关于E-debug Plus的工作原理
首先E-debug Plus的目的是识别函数命令,为此首先开发了ECodeMake,ECodeMake是将易语言的支持库函数转换为Esig的一款工具.

Esig介绍: Esig就是函数的文本化格式,为了应付各种各样的函数,有以下文本格式,
<>:CALL 命令
-->:jmp跳转指令
<[]>:IAT函数调用指令,即FF15
[]:IAT函数jmp指令,即FF25
[]>:jmp函数类跳转,也是FF25
??:通配符

通过以上一些格式,我们可以想象出易语言的大部分函数都能用这种格式来表示,在生成这些文本之后我们要做的就是解析这些文本.
E-debug Plus对于函数的匹配要求相当严格,一个字节出错也会匹配失败,所以此款软件目前不适合用于分析那些经过加壳处理的软件,
因为这些软件会修改调用函数的IAT CALL,导致函数字节发生变化.
应付这个情况,有思路如下: 编写一款代码模拟执行引擎,在解析易语言函数命令时,判断出是否进入壳代码,之后便进入代码模拟执行,跟出函数的地址后,就能对比函数的IAT.

不过部分壳会将整个支持库函数进行VM,如此则软件完全失效.
目前只做出了定点分析,未实现扫描算法,在应付黑月编译的易语言程序时,这款软件没有什么办法。
目前思路是编写出AC自动机.

Packages

No packages published

Languages

  • C 69.3%
  • C++ 30.7%