obfu
旧文转载
ollvm混淆
通过增加永不可达的分支(虚假控制流),将顺序流程转为switch流程使得框图扁平(平坦化),不说人话(指令替换)混淆(obfuscate)程序。
可以在ida7.1+中通过microcode修改流程移除混淆。
HWS re obfu WP
后边就是个自动解码机了,所以逆向重点在前边。
先看比较函数,发现一个是通过函数生成的,另一个是对输入加密,先把前者调出来。
然后去看加密函数,发现第一步是将输入的16进制字符串改为真16进制串然后进行循环位移,跟一个奇怪的字符串求xor,再进行加密。
遂调出来xor数组(这里有坑是读到0就终止,所以并不能通过 n xor 0 = n 这个方式直接调出数组)。
最后卡在了密码算法上,当时看到有个函数参数为128,怀疑过AES-128但是因为不熟悉所以没试,遂最终放弃。
现在确定了确实是AES。
所以还是要对经典加密算法有足够理解。
最后放大佬博客