Я пытаюсь обойти проверку собственного пароля. Проверка - простой strcmp. Я не могу понять, на что заменить последнюю проверку ,чтобы программа пошла по ветке, где Correct Code (Text): .text:00401168 almost_success: ; CODE XREF: _main+7C↑j .text:00401168 ; _main+88↑j .text:00401168 sbb eax, eax .text:0040116A or eax, 1 .text:0040116D .text:0040116D loc_40116D: ; CODE XREF: _main+96↑j .text:0040116D push 909090h .text:00401172 push ecx .text:00401173 mov ecx, dword ptr unk_404FFF+4091h ; _Ostr .text:00401179 test eax, eax .text:0040117B jnz loc_401446 .text:00401181 mov edx, offset aCorrect ; "Correct" .text:00401186 call ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z ; std::operator<<<std::char_traits<char>>(std::basic_ostream<char,std::char_traits<char>> &,char const *) .text:0040118B add esp, 4 .text:0040118E mov ecx, eax Когда я заменяю jnz на nop, ветка с correct исчезает как вариант следования из этого блока: [ATTACH=full]5764[/ATTACH] --- Сообщение объединено, Dec 1, 2019 --- Заменял на nop, пропадал проход на correct
Мне нужно,чтобы без каких либо проверок я мог попасть в correct, прошлые прыжки привели меня к последней проверке, но её изменить у меня не получается
2Hard2Forget, Всегда вначале ищут зависимость по данным, так как не зависимо от ветвлений будет от них зависимость(как у вас прототипы функций - передача значений через регистры), вот как у вас и это приведёт к ошибкам. Две зависимости существуют совместно, cfg & dfg. А проверкой пароля это назвать нельзя, утеря данных произойдёт, можно шифтить рандом и всё сработает. Как же можно принимать решение о корректности строки, на основе веса её компонент, при этом есчо и используя конструкции, в которых происходит потеря данных(cmp/sbb.. set/test etc). Не удивительно что не показан сурец для диза. Я вот что думаю. Пока такое сложное: > ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z Классы всякие и прочее толстое не разобравшись в базовом наборе логики и конкретно инструкций которые видишь, незачем вообще трогать.