android|逆向工程之表达式优化识别(5)-取模

取模优化 取模运算是得到除法运算之后的余数的运算,这里简单提一下其相关的优化
示例:

mov eax, VAL and eax, 8000001F jns LAB1 dec eax or eax, FFFFFFE0 inc reg LAB1:

说明:这是一取模运算的示例,VAL是被除数,and的立即数是一个掩码,用来去掉高位保留地位,根据保留的低位数量,可以得到2^k次方的k,所以这里也就是一个x%(x^k)的取模运算
示例2:
mov eax, VAL cdq and edx, 1F add eax, edx sar eax, 5 shl eax, 5 sub VAL, eax

【android|逆向工程之表达式优化识别(5)-取模】这也是一个取模运算,区别在于这是一个没有分支语句的取模运算,主要思路是余数 = 被除数 - 商 * 2^k的,可以自行分析,写出表达式,应该难度不大了。

    推荐阅读