| Сейчас на форуме: 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   | Сообщение посчитали полезным: Brian57reg | 
| 
 | 
Создано: 24 января 2012 00:25 · Поправил: Kindly  · Личное сообщение · #4 Brian57reg - ты бы хоть сказал какую версию игры ломаешь и дал линк на закачку чтоли. Эти игры уже давно сломаны, это так, к слову. Насколько помню, там по барабану серийник, хотя в некоторых версиях кнопка Register неактивна, если он не соответствует маске. Тебе надо найти место где игра должна принять сериал, дальше она сама запишет покриптованый файлик куда надо и читать будет именно его для разблокировки. Ну и найдешь потом онлайн чек, или его первого ![]() Линк для интересующихся ;) http://download.angrybirds.com/#ABR ----- Array[Login..Logout] of Life   | Сообщение посчитали полезным: Brian57reg | 
| 
 | 
Создано: 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 | 








 Для печати