Посл.ответ |
Сообщение |
Ранг: 2.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 10 декабря 2007 16:23 · Личное сообщение · #1
В исполняемый файл нужно добавить обработчик. Как это сделать?
| Сообщение посчитали полезным: |
|
 Ранг: 111.1 (ветеран) Активность: 0.04↘0 Статус: Участник
|
Создано: 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.61↘0.05 Статус: Участник Student
|
Создано: 10 декабря 2007 17:01 · Личное сообщение · #4
Вкратце: Найди в исходной программе цикл обработки событий + кусок свободной памяти для своего
меняй любой call на jmp на этот кусок, там вызываешь этот call, который затёр и свой обработчик...
потом возвращаешься jmp'ом туда, откуда прыгнул (+размер jmp)...
----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh | Сообщение посчитали полезным: |
Ранг: 162.4 (ветеран), 11thx Активность: 0.06↘0 Статус: Участник
|
Создано: 10 декабря 2007 18:54 · Личное сообщение · #5
Ну это надо еще ресурсы править
Вроде в ресурсах окна + править кода дофига.
(У делфи свой вормат ).
| Сообщение посчитали полезным: |
Ранг: 237.0 (наставник), 20thx Активность: 0.13↘0 Статус: Участник sysenter
|
Создано: 10 декабря 2007 20:30 · Поправил: HiEndsoft · Личное сообщение · #6
Причем тут ресурсы?
Если тебе нужен обработчик ONCLik, значит это для контрола или окна.
1. Цепляй свою dll ч/з импорт.
2 .Ищи окно(контрол) FindWindow,FindWindowEx, в сложном случае: EnumChildWindows.
3. Устанавливай для контрола свой обработчик: SetWindowLong
Для этого, в отличие от внедрения jmp, тебе с привилегиями возиться не понадобится.
----- продавец резиновых утёнков | Сообщение посчитали полезным: |
Ранг: 37.1 (посетитель) Активность: 0.01↘0 Статус: Участник
|
Создано: 11 декабря 2007 08:01 · Личное сообщение · #7
Еще способ:
Что бы добавить "нормальный" обработчик надо знать значение this контрола и смещение свойства FOnClick, заменить его на адрес своего кода ( не забывая что это thiscall) который должен быть инжектирован любым доступным способом. Пардонте, не this а self... А вот причем здесь ресурсы и привилегии объясните - не понимаю...
| Сообщение посчитали полезным: |
Ранг: 37.1 (посетитель) Активность: 0.01↘0 Статус: Участник
|
Создано: 11 декабря 2007 08:13 · Личное сообщение · #8
Маленько подумал, дошло - можно через ресурсы изменить значение переменной.
| Сообщение посчитали полезным: |
Ранг: 172.2 (ветеран) Активность: 0.07↘0 Статус: Участник
|
Создано: 11 декабря 2007 10:19 · Личное сообщение · #9
google.ru ARTeam ezine #2
----- HOW MUCH BLOOD WOULD YOU SHED TO STAY ALIVE | Сообщение посчитали полезным: |
Ранг: 162.4 (ветеран), 11thx Активность: 0.06↘0 Статус: Участник
|
Создано: 11 декабря 2007 12:37 · Личное сообщение · #10
Я както прикалывался с борландскими ресурсами (менял обработчики)
Там обработчики имеют текстовую завязку как импорт/экспорт в dll
Довольно универсально но медленно при загрузки проги.
| Сообщение посчитали полезным: |