Сейчас на форуме: ut2004, vsv1 (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Сложности с нахождением куска кода отвечающего за....
Посл.ответ Сообщение

Ранг: 1.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 июня 2006 15:07
· Личное сообщение · #1

Никак не могу найти код обработчика нажатия кнопки, все что знал перепробовал, не могу найти.
Прога вот (warning 6MB): rapidshare.de/files/22257261/HTTiming.rar.html
Это простенькая игрушка для лазерного тира.
Нужно отследить начало игры, т.е. найти начало самой игры, либо обработчики кнопок "один игрок", "два игрока игроа" , "три игрока", "четыре игрока".
Сам я, как уже сказано, не осилил поиск
Прога написана на VC++ 5, ничем не упакованна.
Посмотрите если найдете время, помогите, очень нужно.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 05 июня 2006 17:19
· Личное сообщение · #2

Ra_ пишет:
все что знал перепробовал

Качать не буду. Да думаю и никто не будет. Обычно все-таки, пишут что конкретно пробовали.
Иначе, это больше подходит для темы "запросы на взлом". Кнопки обычно вроде ловят в программе обработки мессаджей. Про это масса статей есть.



Ранг: 1.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 июня 2006 17:56
· Личное сообщение · #3

А меседжей там никаких нет, просто начинается игра.




Ранг: 116.7 (ветеран)
Активность: 0.10
Статус: Участник

Создано: 05 июня 2006 18:30
· Личное сообщение · #4

Ra_ пишет:
А меседжей там никаких нет, просто начинается игра.

Имелось ввиду ставить бряк на апи функцию SendMessageA.



Ранг: 1.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 июня 2006 19:09 · Поправил: Ra_
· Личное сообщение · #5

Это я тоже делал, нашел что то боле-менее похожее по адресу 40FFAE, там отправляется сообщение WM_LBUTTONUP... но толку 0, это сообщение при любом нажатии мыши срабатывает, и отследить чт опроисходит дальше средствами Ольки немогу, т.к. как только там прога брякается, то экран не перересовывается, а остается чёрным, пока F9 не нажмешь



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 05 июня 2006 19:45
· Личное сообщение · #6

Ra_ пишет:
там отправляется сообщение WM_LBUTTONUP

Во-первых, ловить надо WM_LBUTTONDOWN, во-вторых есть какая-то методика отлова "своих" прерываний. Наверняка по адресу 40FFAE сперва анализируют хендл окна.
Mifodix Спасибо за помощь. Придется еще подсказать Ra_



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 06 июня 2006 06:52
· Личное сообщение · #7

Ra_

Если есть в проге примерно вот такой код:
push ebp
mov ebp, esp
sub esp, 144h
push ebx
push esi
push edi
lea edi, [ebp+144h]
mov ecx, 51h
mov eax, 0CCCCCCCCh
rep stosd
call ?
pop edi
pop esi
pop ebx
add esp, 144h
mov esp, ebp
pop ebp
retn
то тогда в топку эту прогу тот, кто делал эту бездарность, смотрел только в исходник, а то, что в нутриииии его не волновало.

Тебе надо найти обработчик сообщений ищется он так:
Ставим бряк на RegisterClassExA или RegisterClassExW остановились, смотрим WNDCLASSEX.lpfnWndProc это и есть обработчик, если нет, то должен лежать в какой то процедуре далее в коде что бы найти, надо проследить за Msg, wParam, lParam лежащими в стеке, вообщем ищи процедуру, которая начнет снимать эти параметры со стека, скорей всего это первая или вторая будет, потом смотришь сравнение Msg,201h и далее куда пошлет там и будет код обработки WM_LBUTTONDOWN.
Если на полный экран запускается, то только ICE или IDA
P. S.
Если не поймешь, тогда учи азы RegisterClassEx и lpfnWndProc

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 06 июня 2006 10:18
· Личное сообщение · #8

Ra_ пишет:
отправляется сообщение WM_LBUTTONUP

Я вроде по русски написал : обработка сообщений, а не их отправление.
Mifodix к сожалению неправильно подсказал



Ранг: 1.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 июня 2006 10:23
· Личное сообщение · #9

Не брякается на RegisterClassEx



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 07 июня 2006 12:24
· Личное сообщение · #10

Ra_ пишет:
Не брякается на RegisterClassEx

Прекрасно брякается на RegisterClassExA !

004109FA |. 52 PUSH EDX ; /pWndClassEx = 0012FC7C
004109FB |. FF15 4CF84B00 CALL DWORD PTR DS:[<&USER32.RegisterC>; \RegisterClassExA
00410A01 |. 3BF4 CMP ESI,ESP

0012FC7C 00000030
0012FC80 00000003
0012FC84 004100C0 HT_Timin.004100C0 это наверное и есть WinProc
0012FC88 00000000
0012FC8C 00000000
0012FC90 00400000 HT_Timin.00400000
0012FC94 00000000
0012FC98 00010011
0012FC9C 00000000
0012FCA0 00000000
0012FCA4 004848BC ASCII "AppWindow"


Demon666 пишет:
Если есть в проге примерно вот такой код:

На входе в каждую процедуру "ложат" тонны СССССССС в стек.



Ранг: 1.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 июня 2006 16:39
· Личное сообщение · #11

Я сейчас наверное покажусь тупым, но я всё же спошу: А дальше что?
Ну нашел я WinProc (вернее вы помогли мне найти ), а дальше что?
Я так понимаю что ключевой частью этой функции является вызов DefWindowProcA, ну по крайней мере она вызывается постоянно, причем аргументами передаются полученные сообщения. Но что и как дальше искать? Ну никак я сам не допру, поэтому и задаю вопрос в разделе для начинающих.



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 07 июня 2006 17:27
· Личное сообщение · #12

Ra_
Ты ее взломать хочешь или просто из обработчика код утянуть, непонятно объясни цель всего этого, я это добро не качал, больше инфы надо!
Я писал про полную версию SoftICE, а не обрезки, которые не только на бряк не срабатывают, но и синим экраном, пугать могут.
Судя по коду, ставь бряк на 4100С0, в стеке забей левое сообщение на 201h и начинай искать, где это все дело сравнивается, далее по прыжку и ты стоишь на обработчике левой кнопки.

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 1.8 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 июня 2006 23:09
· Личное сообщение · #13

Я хочу найти код обработчика, с целью вписания туда джампа на функцию ведения лога (функцию допишу позднее). Ладно, продолжу рассказ про белого бычка
Итак, прервавшись в 4100С0, я подменил значение стека на сообщение 201h с параметрами 01 и 01230456 (это, как я понимаю координаты курсора 123h и 456h), далее идет вызов функции 410140, где, наконец-то, я нашел сравнение типа сообщения (201h там присутствует) и даже маскирование координат курсора, и записывания их в глубины памяти.
А дальше опять облом.... единственное сравнение координат которое я нашел это было сравнение с 1. А из остального бреда я вообще практически ничего не понял: постоянное перемешивание значений стека, забивание стека и регистров CCCCCCCC, маскирования одного и того же значения другим значением по 2 раза подряд, и тут-же затирание результата этим CCCCCCCC и прочие непонятки



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 07 июня 2006 23:37
· Личное сообщение · #14

Сейчас слил, буду смотреть давай, что бы не флудить через ЛС общаться!

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 08 июня 2006 00:33
· Личное сообщение · #15

Не я умываю руки
Вот по этому адресу сравнивается
0041019B cmp [ebp+var_18], 201h
004101A2 jz loc_410337

ставишь бряк на 410337 и жмешь левую кнопку там, где тебе надо, и ты на обработчике!(для теста)
Это то, что ты просил найти в первом посте ну а дальше ты уже старайся понимать логику кнопок сам!
Здесь рулят вот эти буквы:
tundra37 пишет:
Кнопки обычно вроде ловят в программе обработки мессаджей. Про это масса статей есть.


-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com



 eXeL@B —› Вопросы новичков —› Сложности с нахождением куска кода отвечающего за....
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати