Сейчас на форуме: asfa, bartolomeo (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› OllyDBG не срабатывает условный бряк на GetWindowTextA |
Посл.ответ | Сообщение |
|
Создано: 23 января 2012 22:36 · Личное сообщение · #1 Решил тупо ради интереса попробовать поломать(cделать так, чтобы, например, игра принимала любой серийник, но там она еще к нету подрубается, я так понимаю для проверки ключа, но не суть) не безызвестную игру - Angry Birds. Ну я посмотрел какие функции импортирует игра, увидел там функцию GetWindowTextA(), сразу приметил , что скорей всего она используется для считывания ключа с Текстбокса, ставлю на нее бряк, и как только пытаюсь перейти во окно игры, срабатывает бряк, на выходе из функции GetWindowTextA() содержимое стека таково: Code:
Ну думаю, ладно поставлю условный бряк, ставлю его в конце функции GetWindowTextA() прямо на RETN условие бряка: [[ESP]+8]=="QWERTY", захожу в игру в качестве ключа ввожу QWERTY нажимаю Register иии... ничего! Программа продолжает выполняться... Вот, не могу понять почему, аа чуть не забыл при условии [[ESP]+8]=="Angry Birds (1920x1080)" тоже ничего не происходит, хотя как только я перешел в окно игры, далжна отработать функция GetWindowTextA() и т.к бряк стоит на RETN адрес возврата лежит в верхушке стека и ESP + 8 должен указывать на указатель на строку "Angry Birds (1920x1080)"(в данном случае)... Может условие неправильно записал?? ![]() |
|
Создано: 23 января 2012 23:08 · Личное сообщение · #2 |
|
Создано: 23 января 2012 23:58 · Поправил: Dart Sergius · Личное сообщение · #3 Brian57reg, он бы и не сработал. т.к. в [esp+8] лежит адрес строки. надо поставить бряк так: dword ptr:ds[dword ptr:ds[esp+8]]==51574552h что означает QWER в кодировке ASCII ![]() |
|
Создано: 24 января 2012 00:25 · Поправил: Kindly · Личное сообщение · #4 Brian57reg - ты бы хоть сказал какую версию игры ломаешь и дал линк на закачку чтоли. Эти игры уже давно сломаны, это так, к слову. Насколько помню, там по барабану серийник, хотя в некоторых версиях кнопка Register неактивна, если он не соответствует маске. Тебе надо найти место где игра должна принять сериал, дальше она сама запишет покриптованый файлик куда надо и читать будет именно его для разблокировки. Ну и найдешь потом онлайн чек, или его первого ![]() Линк для интересующихся ;) http://download.angrybirds.com/#ABR ----- Array[Login..Logout] of Life ![]() |
|
Создано: 24 января 2012 11:38 · Личное сообщение · #5 dword ptr:ds[dword ptr:ds[esp+8]]==51574552 -- OllyDBG 2.01 ругается на условие после первого двоеточия: "Condition: Unrecognized identifier" Kindly, игру качал тут http://download.angrybirds.com/#ABR - самая первая в списке, то что сломана эт я знаю, говорю, тупо ради интререса решил сам ломануть... Тебе надо найти место где игра должна принять сериал, ну вот я и пытаюсь найти это место только вот с условием бряка разобраться ни как не могу. Если бы условный бряк на GetWindowTextA() сработал я прошел по функции и попал бы как раз где игра что нибудь с этим серийником делает, но блин никак с условием разобраться не могу, да и в нете ничего хорошего по этому поводу не нашел ![]() |
|
Создано: 24 января 2012 14:06 · Личное сообщение · #6 |
|
Создано: 24 января 2012 14:50 · Личное сообщение · #7 ну GetDlgItemTextA(она, кстати, тоже вызывает GetWindowTextA()) в списке импорта нет, поставил bp и остановки не происходит... видимо игра ее и не вызывает. Ладно, сейчас попробую хорошенько поискать какие условия и как можно задавать в Conditional bp, если ничего не найду то буду копать в сторону EnableWindow, а у меня кнопка активна, наверное, версии игры разные ![]() ![]() |
|
Создано: 24 января 2012 14:59 · Личное сообщение · #8 |
|
Создано: 24 января 2012 15:07 · Личное сообщение · #9 |
|
Создано: 24 января 2012 16:25 · Поправил: Brian57reg · Личное сообщение · #10 Сейчас посмотрел через bp conditional log и походу для считывания ключа она вообще не используется т.к в логе все вызовы этой функции выглядят так: Code:
Моя версия игры вот: http://download.angrybirds.com/#ABR - самая первая в списке может GetWindowTextW нет, бряк там не срабатывает Но нашел через референсе стрингс строку: registerKey и вот код связанный с ней Code:
сейчас посмотрю что в CALL 00C948A0..., кстати эта функция вызывается много раз только агрументы разные, например, тут первый аргумент "registerKey", а есть например "getClipboardText", "isInFullScreenMode" и т.д и тп я так понял функция вызывает скриптовые функции, вернее не вызывает а исполняет. ![]() |
|
Создано: 28 января 2012 02:59 · Личное сообщение · #11 |
![]() |
eXeL@B —› Вопросы новичков —› OllyDBG не срабатывает условный бряк на GetWindowTextA |