BABYRE

发布时间 2023-08-25 00:40:49作者: 努力的大魔王

一道SMC,第一次做

主函数的伪代码,judge函数是关键函数,不过啥都没有

 

 发现 judge 方法是判断的主要逻辑,在第 15 行时调用判断。

但是静态分析时不能生成 judge 的伪代码。

原因是其代码做了加密,在前面的第 7-11 行先进行 smc 自解密,后面才能正常运行。

按第 7-11 行的逻辑逆向 patch 程序,再静态生成伪代码。Patch 脚本如下:

函数的起始地址

 函数的跨度

 所以最后的代码为

 Patch 后

首先,将有红色报错的代码按 U(取消原来定义)

然后,按 C(重新生成汇编代码),选中 600B00-600BB5(judge 的起止位置)按 P(重新生成 function)

这时就可以 按 F5 生成 judge 的伪代码了。