![]() |
eXeL@B —› Вопросы новичков —› Нажатие кнопки Close |
Посл.ответ | Сообщение |
|
Создано: 15 мая 2013 13:27 · Личное сообщение · #1 Здравствуйте, обращаюсь к вам за помощью. Разбираю работу программы. ![]() С активационным окном при запуске разобрался… Помогите найти место в программе которое отвечает за убирание наг окна и самое главное за возобновление работы программы после нажатие кнопки Close. Так как программа специфическая, требует гитары для отладки (наг окно и остановка программы происходит после примерно 250 сыгранных нот) То наг окно можно вызвать путём изменения флага Z в следующем месте после запуска программы: 00D70689 . /0F84 2C010000 JE MIDI_Gui.00D707BB ; поменять флаг 00D7068F . |8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20] 00D70692 . |50 PUSH EAX 00D70693 . |8D4D DC LEA ECX,DWORD PTR SS:[EBP-24] 00D70696 . |51 PUSH ECX 00D70697 . |C646 22 00 MOV BYTE PTR DS:[ESI+22],0 00D7069B . |C745 E0 F0449>MOV DWORD PTR SS:[EBP-20],MIDI_Gui.019344F0 ; ASCII "Close" Отлавливал место нажатия по кнопке close с помощью BP TranslateMessage попал на 00DF645A . 50 PUSH EAX ; /pMsg = WM_LBUTTONUP hw = 711C4 ("MIDI Guitar") Keys = 0 X = 516. Y = 378. 00DF645B . FF15 00B3F600 CALL DWORD PTR DS:[<&USER32.DispatchMessageW>] Но где дальше происходит закрытие наг окна и возобновление работы программы, чтоб она опять вернулась на место где я ставлю бряк (00D70689 . /0F84 2C010000 JE MIDI_Gui.00D707BB) не пойму???? Программа MIDI Guitar 0.6.1 http://www.jamorigin.com/midi-guitar/MIDI-Guitar-0.6.1-Win.zip разбираю 32bitный exe ![]() |
|
Создано: 16 мая 2013 23:25 · Личное сообщение · #2 |
|
Создано: 17 мая 2013 00:39 · Личное сообщение · #3 |
|
Создано: 17 мая 2013 08:40 · Личное сообщение · #4 -=AkaBOSS=- пишет: советую отловить создание класса RegisterClass / RegisterClassEx каким образом это сделать? я ставлю BP RegisterClassW 02DFFDAC 767264EF /CALL to RegisterClassW from ole32.767264ED 02DFFDB0 02DFFDC0 \pWndClass = 02DFFDC0 02DFFDB4 757269C1 KERNELBA.InterlockedIncrement потом 02DFFDDC 000FFF22 MIDI_Gui.000FFF22 02DFFDE0 02DFFE00 \pWndClassEx = 02DFFE00 02DFFDE4 D0280A84 02DFFDE8 00000000 02DFFDEC 03E01348 02DFFDF0 7FFD7000 02DFFDF4 03E013B0 ASCII "JUCE_6d5eb4c27" 02DFFDF8 03E013E0 02DFFDFC 03E013C0 UNICODE "JUCE_6d5eb4c27" 02DFFE00 00000030 02DFFE04 00000000 02DFFE08 00166200 MIDI_Gui.00166200 02DFFE0C 00000000 02DFFE10 00000004 02DFFE14 000C0000 MIDI_Gui.000C0000 02DFFE18 00000000 02DFFE1C 00000000 02DFFE20 00000000 02DFFE24 00000000 02DFFE28 03E013C0 UNICODE "JUCE_6d5eb4c27" 02DFFE2C 00000000 потом TERMINATED ![]() |
|
Создано: 17 мая 2013 09:31 · Поправил: -=AkaBOSS=- · Личное сообщение · #5 solderr63 пишет: 02DFFDDC 000FFF22 MIDI_Gui.000FFF22 02DFFDE0 02DFFE00 \pWndClassEx = 02DFFE00 отсюда ясно видно, что в стэке по адресу 02DFFE00 лежит структура WNDCLASSEX теперь самое время заглянуть в справочник по winapi и посмотреть описание полей этой структуры. среди них должно быть и искомое поле с именем WndProc (или ClassProc) а вообще, если проблемы в исследовании начались уже на этом этапе, то, вероятно, стоит-таки почитать туторы Нарвахи - их писали и переводили, чтобы новичкам было легче находить ответы на подобные вопросы. solderr63 пишет: туторы Нарвахи прочитал 24 главы в таком случае, стоит перечитать 12ую главу. там описывается, каким образом можно попасть на обработчик сообщений. ![]() |
|
Создано: 17 мая 2013 09:57 · Личное сообщение · #6 |
![]() Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 17 мая 2013 10:47 · Личное сообщение · #7 ИМХО, Вы пытаетесь исправить следствие(окно), а не причину его появления. Насколько я понимаю, ключевая фраза здесь Please locate your license file that was linked to in your order fulfillment email(файл лицензии пришлют на мыло) Code:
Связанная с этим функция 004257B0, которая проверяет данный файл лицензии. Также по запросу Trial, можно найти два адреса 00424C90 и 00425230. Касаемо Code:
то у меня данный участок кода пошифрован, из-чего могу предположить, что в правильном файле лицензии содержится ключ для декодирования. А еще из-за использования аппаратного Creative ASIO и нечаянного заскока на INT3 система в BSOD валиться драйвером звучки Creative ![]() ![]() |
|
Создано: 17 мая 2013 11:34 · Личное сообщение · #8 ELF_7719116 пишет: Касаемо Code: 00D70689 . /0F84 2C010000 JE MIDI_Gui.00D707BB ; поменять флаг00D7068F . |8D45 E0 LEA EAX,DWORD PTR SS:[EBP-20]00D70692 . |50 PUSH EAX00D70693 . |8D4D DC LEA ECX,DWORD PTR SS:[EBP-24]00D70696 . |51 PUSH ECX00D70697 . |C646 22 00 MOV BYTE PTR DS:[ESI+22],000D7069B . |C745 E0 F0449>MOV DWORD PTR SS:[EBP-20],MIDI_Gui.019344F0 ; ASCII "Close" то у меня данный участок кода пошифрован, из-чего могу предположить, что в правильном файле лицензии содержится ключ для декодирования. скорее всего нужно запустить программу и выбрать Trial и потом этот участок виден когда иследовал защиту я сделал джампы чтоб убрать окно при старте и после этого снял дамп и сохранил файл, с ним и работаю, видимо поэтому у меня эта часть не зашифрована ![]() ![]() |
![]() Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 17 мая 2013 11:45 · Личное сообщение · #9 solderr63 в любом случае там файл лицензии xml должен быть, из него информация вся черпается. Хотя паркуром в функции по адресу 00424C90, можно достичь правильного результата ![]() ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Нажатие кнопки Close |
Эта тема закрыта. Ответы больше не принимаются. |