发布于 

obfu

旧文转载

ollvm混淆

通过增加永不可达的分支(虚假控制流),将顺序流程转为switch流程使得框图扁平(平坦化),不说人话(指令替换)混淆(obfuscate)程序。

可以在ida7.1+中通过microcode修改流程移除混淆

HWS re obfu WP

后边就是个自动解码机了,所以逆向重点在前边。

先看比较函数,发现一个是通过函数生成的,另一个是对输入加密,先把前者调出来。

然后去看加密函数,发现第一步是将输入的16进制字符串改为真16进制串然后进行循环位移,跟一个奇怪的字符串求xor,再进行加密。

遂调出来xor数组(这里有坑是读到0就终止,所以并不能通过 n xor 0 = n 这个方式直接调出数组)。

最后卡在了密码算法上,当时看到有个函数参数为128,怀疑过AES-128但是因为不熟悉所以没试,遂最终放弃。

现在确定了确实是AES。

所以还是要对经典加密算法有足够理解。

最后放大佬博客


本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

本站由 [@Zuni](http://example.com/) 创建,使用 Stellar 作为主题。