如何做做到让ida无法逆出正确的汇编

需求: 为什么ida无法显示出对应的汇编代码

在ida中显示的代码是这样的

EE3161DB-08B1-41AD-8D4D-3268A6EB99F6

实际上运行时查看到的汇编是这样的:

什么样代码可以造成这样的现象呢?这是否是一种防护手段?

望大佬们指点!

可以说,但没必要

是否跟热加载,jpg有关?

这水平还是憋整阿里聚安全了,:soccer::basketball::pear:

2 Likes

慢慢尝试,最后不成功也会有进步嘛。。。
开开眼界也是好的

这篇文章里有个reverseMe,用IDA查看,代码和你的很像,不知道有没有帮助

并不像,这是完全两种保护

这应该是用llvm后端实现的控制流平坦.Doctor Web有篇博客叫Breaking UC Browser ,参看其中Machine code obfuscation节.

选中按C转换成代码

这不就是运用了一些花指令导致静态反汇编函数分析异常的手段吗 ,可以写个ida脚本patch函数头试试

谢谢 按C这个我知道

感谢大佬为我解惑,我想知道的确实是如何实现这样的防护:grin:

LLVM应该可以实现(对编译器不熟),不过由于这是平台依赖的,也就是说IR层或许不好做,猜测可能是在backend做的,也可能是直接对二进制处理的。

IR层可以,言尽于此

IR层可以,言尽于此

用lldb跟一遍写个idc脚本还原下不就行了,阿里这个是可以f5的,不过还有更牛逼的在后面