c-我在反转时遇到了一些循环和自变量的问题



第一个是关于反转sub_804851C((int)aThepasswordise, &s1);时得到的变量。基本上,函数将值与输入进行比较,但问题是aThepasswordise的值是类似于HeyIAmNoob的字符串,那么(int)aThepasswordise的值是多少?

第二,我得到了一个类似的循环

for ( result = *(unsigned __int8 *)a1; (_BYTE)result; result = (unsigned __int8)*v2 )

我不明白这个循环的最后一个值和跳跃是什么?非常感谢和抱歉,因为我的英语不好

关于第一个问题。

C中的字符串是以结尾的char序列
aThepasswordise可能是指向此类序列的指针,因此将其强制转换为int将使指针的值成为int

在循环中,首先获取a1所指向的第一个字节。如果是0,则比较resultvar,并且在每次迭代时,result变为v2的第一个字节。

跳跃将由v2指向的位置的变化以及它在每次迭代中如何变化来确定。

最新更新