4.窥孔优化(以除法还原示例)
编译器对乘法与除法优化
//源码示例,这里a为无符号整数
a = a * 4
//编译器优化后
a = a << 2//除法优化示例,这里edi为无符号整数
edi = edi / 3
//优化后编译成汇编 即 edi = (edi * 0xaaaaaaab) >> 33
mov eax, edi ; eax = edi
mov edi, 2863311531 ; edi = 0xaaaaaaab
imul rax, rdi ; rax = rax * 0xaaaaaaab
shr rax, 33 ; rax >>= 33
反编译器的反窥孔优化:
反窥孔优化简单汇总
对抗:不透明谓词混淆
reference
Last updated