Сейчас на форуме: asfa, _MBK_, Adler, bartolomeo (+9 невидимых)

 eXeL@B —› Вопросы новичков —› На что поставить бряк
Посл.ответ Сообщение

Ранг: 33.8 (посетитель), 38thx
Активность: 0.060
Статус: Участник

Создано: 21 сентября 2012 06:26
· Личное сообщение · #1

Приветствую

Имеется игра снукер - http://rghost.ru/40487486
При ее исследование столкнулся со следующей проблемой, при вводе неверного серийника появляется окно - ни один из типичных бряков не срабатывает, так же не получается отловить функцию которая читает данные из тектового поля. Помогите разобраться каким способом отрисовывается форма.

P.S. Рег данные хранятся в файле 000050.bin (в архиве лежит в папке reg).




Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

Создано: 21 сентября 2012 06:33 · Поправил: ZaZa
· Личное сообщение · #2

Code:
  1. 0043847A  |.E8 69FBFFFF     CALL 00437FE8                            ; 00437FE8
  2. 0043847F  |.68 5C964400     PUSH 44965C                              ; ASCII "Неверный код!"
  3. 00438484  |.8B45 FC         MOV EAX, DWORD PTR SS:[EBP-4]
  4. 00438487  |.8B40 04         MOV EAX, DWORD PTR DS:[EAX+4]
  5. 0043848A  |.05 C0000000     ADD EAX, 0C0

Это не то, не? Может сюда поставить бряк на чтение?
А по уму - это же игра, так что, скорее всего, используются функции рисования для вывода сообщения, ищи преимущественно функции из библиотеки GDI...

-----
One death is a tragedy, one million is a statistic.


| Сообщение посчитали полезным: dimka_new

Ранг: 33.8 (посетитель), 38thx
Активность: 0.060
Статус: Участник

Создано: 21 сентября 2012 07:25 · Поправил: dimka_new
· Личное сообщение · #3

Вообщем брякнулся на bp GDI32.GdiFlush.
Нашел в стеке введенный мной номер - но установка бряка на строку ничего не дала...

Zaza - бряк на эти адреса срабатывают несколько раз при запуске проги, при нажатие кнопки не срабатывает

upd
да хочется закейгенить, лицензионный файл находил - брякался на readfile.
Но все свои записи растерял ( Ну заодно и разобраться с отображением окошек в аттаче




Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

Создано: 21 сентября 2012 09:02 · Поправил: ZaZa
· Личное сообщение · #4

Ставь Hardware breakpoint, on access именно на строку и смотри куда копируется... Можно поиском в памяти найти эту строку...
Вот отсюда можешь пойти:
Code:
  1. 004376CD  |>6A 00           PUSH 0
  2. 004376CF  |.6A 02           PUSH 2
  3. 004376D1  |.6A 30           PUSH 30
  4. 004376D3  |.8B4D F8         MOV ECX, DWORD PTR SS:[EBP-8]
  5. 004376D6  |.E8 BD080000     CALL 00437F98                            
  6. 004376DB  |.50              PUSH EAX
  7. 004376DC  |.6A 31           PUSH 31
  8. 004376DE  |.8B4D F8         MOV ECX, DWORD PTR SS:[EBP-8]
  9. 004376E1  |.E8 B2080000     CALL 00437F98                            
  10. 004376E6  |.50              PUSH EAX
  11. 004376E7  |.8B4D EC         MOV ECX, DWORD PTR SS:[EBP-14]
  12. 004376EA  |.E8 1E030000     CALL 00437A0D        <----- После этого выводится окошко с сообщением...
  13. 004376EF  |.C745 FC 0100000>MOV DWORD PTR SS:[EBP-4], 1
  14. 004376F6  |.EB 72           JMP SHORT 0043776A

Я так понимаю, ты хочешь KeyGen зафигачить? А не проще тогда от регистрационного файла пойти? Там стандартные API, легко бряки ставятся

*****************************************************************************************
Окна, как ты их называешь - это просто закрашенный прямоугольник с текстом внутри... Ищи тогда вызовы не только GDI, но и DDRAW - так лучше...

-----
One death is a tragedy, one million is a statistic.


| Сообщение посчитали полезным: dimka_new

Ранг: 33.8 (посетитель), 38thx
Активность: 0.060
Статус: Участник

Создано: 22 сентября 2012 11:09 · Поправил: dimka_new
· Личное сообщение · #5

Благодаря неоценимой помощи ZaZa до ключека добрался, в моем случае это

Dimka
New
c43538__
(чтобы не обижать авторов игры два символа стер)

Алгоритм генерации - какой-то мудифицированный CRC - неинтересно, отложу на потом...


 eXeL@B —› Вопросы новичков —› На что поставить бряк
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати