【发布时间】:2021-10-15 21:49:03
【问题描述】:
在尝试对“crackme”二进制文件进行逆向工程时,我偶然发现了一个这样开头的函数:
mov ecx, [esp+4]
test ecx, 3
jz short loc_106A9F0
函数的第一个参数(函数第一行中的MOV'd 到ECX)是一个指向字符串的指针。如果我理解正确,下一行执行TEST 操作,其中一个操作数是内存地址,另一个是常数。我想知道为什么程序会这样做,考虑到内存地址本身应该是无关紧要的事实。
简而言之,我想知道为什么程序 TEST 会是一个非零 const 的指针。
【问题讨论】:
标签: assembly x86 reverse-engineering