![]() |
суперклей от Хакера (непонятки)
Кто может обяснить одну весчь.
В статье криса от (Журнал Хакер #101 май 2007 суперклей от Хакера Статья ) был описан очень интересный метод. Дак вот пару вопросов по статье. Почему если мы в функцию dummy добавляем вызов любой другой функции то приложение падает с ошибкой. Тоесть : Код:
// создаем фиктивную экспортируемую функцию,И сразу вопрос на будующее как например нам вызвать свою функцию из DLL Допустим мы обявили функцию __declspec(dllexport) int myfunc() { MessageBox(NULL,"test msg","TEST",MB_OK); return 0; } Как нам ее из нашего exe вызвать(как это на асме выглядит + как я понял ее тоже надо будут в импорт прописывать) |
Для вызова функции из dll смотри следующие WinAPI:
LoadLibrary, GetProcAddress Ну или через импорт. Цитата:
|
Цитата:
странный у вас код какойто... если учитывать это... Код:
FARPROC GetProcAddress( |
Цитата:
|
Блин ребята. Вы о чем мне надо в уже существующий exe добавить другую DLL и вызывать оттуда функции
|
Код:
extern "C" __declspec(dllexport) int dummy(){ |
Подгружаем свою длл
Хорошо задам немного по другому вопрос.
Вобщем есть у нас чужое приложение. И есть своя Dll Той длл я хочу расширить(и изменить функционал) приложения. Как я понял есть 2 способа загрузить дллку. 1) Нашел одну статейку где народ делает так. Находим код где есть пустое место изменяем на него EP Добавляем туда LoadLibrary(грузим свою длл) потом вызываем GetProcAdress и после запускаем свою функцию. и потом прыгаем на OEP 2) Добавляем длл в секцию импорта. Только вот тут я так и не понял как вызвать свою функцию. И собственно вопрос. Чем кардинально отличаются эти 2 метода. И какой в каких условиях лучше использовать. + как вызывать функции чужого приложения из своей длл если она к нему подгружена. |
| Время: 21:56 |