反转时循环和参数有问题

时间:2018-11-05 15:04:43

标签: c reverse-engineering

首先是关于当我反转sub_804851C((int)aThepasswordise, &s1);时得到的变量。基本上,该函数将一个值与输入进行比较,但是问题是aThepasswordise的值是一个像HeyIAmNoob这样的字符串,所以什么是(int)aThepasswordise的值?

第二,我遇到了这样的循环

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

我不明白此循环的最后一个值和跳转是什么? 非常感谢,对不起,因为我的英语不好

1 个答案:

答案 0 :(得分:0)

关于第一个问题。

C中的字符串是以char结尾的\0序列。
aThepasswordise可能是指向该序列的指针,因此将其强制转换为int将为您提供该指针的值为int

在循环中,首先获取a1所指向的第一个字节。 然后比较result var是否为0,并在每次迭代中将result更改为v2的第一个字节。

跳转将取决于v2指向的位置及其在每次迭代中的变化方式。