我已经尝试了迄今为止我学到的所有知识来弄清楚如何处理这种混淆实例。
到目前为止,我知道存在一个不透明的谓词,导致无条件跳转到 L0 的一个字节。
我不明白的是如何在 IDA 中处理这个问题。如果跳转到 L0+1,我如何将字节 E8 标记为数据,或者以其他方式处理。
任何帮助,将不胜感激。谢谢。
IDA是善于识别这样的招数,但如果没有,你可以按D具有call选择的指令。
call
这会将操作码转换为数据,只显示一堆dbs。之后,选择具有的字节db 58(在 之后E8),然后按C将其再次转换为没有第一个字节的代码。
db
db 58
E8
修改后的结果。
我不知道这是否可以自动化 - 可能使用 IDA 支持的一些脚本。