Сейчас на форуме: hgdagon (+5 невидимых) |
![]() |
eXeL@B —› Программирование —› Как правильно вызвать из чужой проги функцию из своей ДЛЛ |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 31 июля 2007 18:53 · Поправил: rmzvoid · Личное сообщение · #1 Начал осваивать увеличение функциональности программы, надо вобщем пропатчить несколько переменных и вставить пару хуков в прогу. Начал с простого, написал простую прогу: #include <stdio.h>
эту прогу и буду патчить затем написал ДЛЛ: // DLL.cpp : Defines the entry point for the DLL application.
прога падает. Кусок Проги дизасеблерованый: .text:00401000 _main proc near ; CODE XREF: start+13Ep
после пропатчивания кода моей ДЛЛ-кой: 00401000 mov eax,dword ptr ds:[00403010h]
до пропатчивания ИДА показывает что принтф находица тут: .rdata:00402050 printf dd ? ; DATA XREF: _main+18r откуда береца адрес 00812C68h и почему программа крешится, судя по дебагеру адрес 00812C68h указывает кудато далеко и совсем не в ту степь Дизасемблируя ДЛЛ посмотрел что адрес Hello() = 0x10001000 Пропатчивание переменных получается на ура, а вот call не могу ![]() |
|
Создано: 01 августа 2007 12:09 · Личное сообщение · #2 sotona пишет: как заставляешь чужую прогу загрузить твою DLL ? Как вариант - добавить секцию, и в ней загрузить либу, но тогда в нее можно и остальные функции дописать) Кстати, почитай М. П. ЛЮБУШКИН "Hook Development Kit". Там очень хорошо написано про хуки и про внедрение DLL в чужое адресное пространство. ----- Уважайте других и пишите грамотно. ![]() |
|
Создано: 02 августа 2007 08:28 · Личное сообщение · #3 |
|
Создано: 02 августа 2007 12:29 · Личное сообщение · #4 |
|
Создано: 02 августа 2007 13:20 · Личное сообщение · #5 |
<< . 1 . 2 . |
![]() |
eXeL@B —› Программирование —› Как правильно вызвать из чужой проги функцию из своей ДЛЛ |