首先是关于我在反向sub_804851C((int)aThepasswordise, &s1);
时得到的变量.基本上函数将一个值与输入进行比较,但问题是aThepasswordise
的值是一个类似 HeyIAmNoob
的字符串那么(int)aThepasswordise
的值(value)是多少? ?
其次我得到了这样一个循环
for ( result = *(unsigned __int8 *)a1; (_BYTE)result; result = (unsigned __int8)*v2 )
我不明白这个循环的最后一个值和跳转是什么? 非常感谢,抱歉,因为我的英语不好
最佳答案
关于第一个问题。
C 中的字符串是 char
以 \0
结尾的序列.
aThepasswordise
可能是指向此类序列的指针,因此将其转换为 int
将为您提供指针的值 int
在循环中,您首先获取第一个字节 a1
指向。
然后 result
如果 var 是 0
,则进行比较在每次迭代中,result
更改为 v2
的第一个字节.
跳转由where v2
的变化决定是指向,它是如何在每次迭代中改变的。
关于c - 反转时我在循环和参数方面遇到了一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53156968/