У меня есть некоторые проблемы с циклом и аргументом при изменении - PullRequest
0 голосов
/ 05 ноября 2018

Сначала речь идет о переменной, которую я получил при обратном sub_804851C((int)aThepasswordise, &s1);. В основном функция сравнивает значение с вводом, но проблема в том, что значение aThepasswordise представляет собой строку, подобную HeyIAmNoob, так каково значение (int)aThepasswordise?

Во-вторых, у меня есть такая петля

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

Я не понимаю, каково последнее значение и скачок этого цикла? Большое спасибо и извините, потому что мой английский плохой

1 Ответ

0 голосов
/ 05 ноября 2018

О первом вопросе.

Строки в C являются char последовательностями, заканчивающимися на \0.
aThepasswordise, вероятно, указатель на такую ​​последовательность, поэтому приведение к int даст вам значение указателя как int

В цикле вы начинаете с того, что берете первый байт, на который указывает a1. Затем result var сравнивается, если оно равно 0, и на каждой итерации result изменяется на первый байт v2.

Скачок будет определяться изменением того, куда указывает v2 и как оно изменяется на каждой итерации.

...