Сейчас на форуме: zombi-vadim, tyns777 (+5 невидимых)

 eXeL@B —› Программирование —› Добавление обработчика событий
Посл.ответ Сообщение

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

Создано: 10 декабря 2007 16:23
· Личное сообщение · #1

В исполняемый файл нужно добавить обработчик. Как это сделать?




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

Создано: 10 декабря 2007 16:51
· Личное сообщение · #2

На васме поищи статью "Добавление функциональности в уже готовые программы".
А че за обработчик надо вставить?

-----
The truth is out of there...




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

Создано: 10 декабря 2007 16:58
· Личное сообщение · #3

Читал эту статью давненько - немножко не то. Мне нужно добавить в Делфийское приложение. Хотя бы элементарное onClick().




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 10 декабря 2007 17:01
· Личное сообщение · #4

Вкратце: Найди в исходной программе цикл обработки событий + кусок свободной памяти для своего
меняй любой call на jmp на этот кусок, там вызываешь этот call, который затёр и свой обработчик...
потом возвращаешься jmp'ом туда, откуда прыгнул (+размер jmp)...

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 162.4 (ветеран), 11thx
Активность: 0.060
Статус: Участник

Создано: 10 декабря 2007 18:54
· Личное сообщение · #5

Ну это надо еще ресурсы править
Вроде в ресурсах окна + править кода дофига.
(У делфи свой вормат ).



Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 10 декабря 2007 20:30 · Поправил: HiEndsoft
· Личное сообщение · #6

Причем тут ресурсы?
Если тебе нужен обработчик ONCLik, значит это для контрола или окна.
1. Цепляй свою dll ч/з импорт.
2 .Ищи окно(контрол) FindWindow,FindWindowEx, в сложном случае: EnumChildWindows.
3. Устанавливай для контрола свой обработчик: SetWindowLong
Для этого, в отличие от внедрения jmp, тебе с привилегиями возиться не понадобится.

-----
продавец резиновых утёнков




Ранг: 37.1 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 11 декабря 2007 08:01
· Личное сообщение · #7

Еще способ:
Что бы добавить "нормальный" обработчик надо знать значение this контрола и смещение свойства FOnClick, заменить его на адрес своего кода ( не забывая что это thiscall) который должен быть инжектирован любым доступным способом. Пардонте, не this а self... А вот причем здесь ресурсы и привилегии объясните - не понимаю...



Ранг: 37.1 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 11 декабря 2007 08:13
· Личное сообщение · #8

Маленько подумал, дошло - можно через ресурсы изменить значение переменной.



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

Создано: 11 декабря 2007 10:19
· Личное сообщение · #9

google.ru ARTeam ezine #2

-----
HOW MUCH BLOOD WOULD YOU SHED TO STAY ALIVE




Ранг: 162.4 (ветеран), 11thx
Активность: 0.060
Статус: Участник

Создано: 11 декабря 2007 12:37
· Личное сообщение · #10

Я както прикалывался с борландскими ресурсами (менял обработчики)
Там обработчики имеют текстовую завязку как импорт/экспорт в dll
Довольно универсально но медленно при загрузки проги.


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


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