首先是关于当我反转sub_804851C((int)aThepasswordise, &s1);
时得到的变量。基本上,该函数将一个值与输入进行比较,但是问题是aThepasswordise
的值是一个像HeyIAmNoob
这样的字符串,所以什么是(int)aThepasswordise
的值?
第二,我遇到了这样的循环
for ( result = *(unsigned __int8 *)a1; (_BYTE)result; result = (unsigned __int8)*v2 )
我不明白此循环的最后一个值和跳转是什么? 非常感谢,对不起,因为我的英语不好
答案 0 :(得分:0)
关于第一个问题。
C中的字符串是以char
结尾的\0
序列。
aThepasswordise
可能是指向该序列的指针,因此将其强制转换为int
将为您提供该指针的值为int
在循环中,首先获取a1
所指向的第一个字节。
然后比较result
var是否为0
,并在每次迭代中将result
更改为v2
的第一个字节。
跳转将取决于v2
指向的位置及其在每次迭代中的变化方式。