|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.11.2014, 18:48 | #11 |
Форумчанин
Регистрация: 23.08.2011
Сообщений: 171
|
Вернул $7512492B. Все как положено, с помощью Cheat Engine открыл процесс проверил, адресс тот что нужен.
Переделал строчку i := Loadlib(a); на Loadlib(a); Ошибка таже самая. Чтото не то с вызовом функции...
Каждый день узнаю новое...
Последний раз редактировалось Anton911; 23.11.2014 в 19:27. |
23.11.2014, 21:05 | #12 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,799
|
Модификатор stdcall не забыл?
|
23.11.2014, 22:39 | #13 | ||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
Цитата:
А процесс то грузится каждый раз по разному адресу Соответственно любая dll и прочие грузятся уже относительно него. Итого в каждом процесс каждая библиотека живет по своему адресу. Загрузчик переопределяет ImageBase если указанная там область, уже занята. Да и в корне неправильно патчике. Создаете удаленный поток, грузите через него свою хук-библиотеку и уже эта библиотека сможет что-то запрещать, только в том процессе, выполнять что-либо. API ловушки на всю систему может разве что MadCodeHook через свой драйвер. Ещё EasyHook тоже через спец. драйвер. Access violation потому что лезете из своей области памяти в чужую, не можно так делать сударь |
||
24.11.2014, 03:59 | #14 | |
Форумчанин
Регистрация: 23.08.2011
Сообщений: 171
|
Вы Супермен однако))) Спасибо!
Цитата:
Сейчас я попробую пойти немного другим путем... значит: Выделяется в нужном процессе нужное кол-во памяти, записывается в эту память копия функции LoadLibraryW. В оригинальной функции LoadLibraryW первые 5 байт я заменю на адрес своей функции (func1), а в конце своей функции (func1) я вызову "Копию" LoadLibraryW. О результатах отпишусь позже.
Каждый день узнаю новое...
Последний раз редактировалось Anton911; 24.11.2014 в 04:20. |
|
24.11.2014, 09:11 | #15 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
Тогда уж в таблице импорта подменяйте оригинал,своей, а в своей вызывайте оригинал и передвавайте в результат + что-то ещё. Такой метод 100% работает, но только для статического вызова. |
|
24.11.2014, 10:40 | #16 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Предположу что *.dll которую ты хочешь фильтровать инжектят через отладчик и возможно делают проверку после ее подгрузки после LoadLibrary, что-то вроде..
Код:
Второе, попробуй все таки не выходить из твоей функции с нулем а продолжи выполнять дальше UnHookCodeHook, Result и т.д. но подставь в libname свою пустую DLL которая ничего не выполняет ну или какой-то message box выводит, так, для проверки. Код:
Последний раз редактировалось coNsept; 24.11.2014 в 10:43. |
24.11.2014, 13:33 | #17 | ||
Форумчанин
Регистрация: 23.08.2011
Сообщений: 171
|
Цитата:
Значит попробовал я сделать, что хотел, но для начала решил сделать такую систему: Выделяется память, туда копируется оригинальная функция LoadLibraryW, в оригинальной функции LoadLibraryW первые 5 байт (jmp address) я подменяю на (jmp адрес копии). Тоесть я вообще не внедряю свою dll, только WriteProcessMemory. Еслибы это работало я бы пошел дальше. Вот код: Код:
Код:
1) В скопированной функции адреса (jmp address и call address) меняются, хотя байты теже самые. 2) Не могу никак правильно перевести адрес в 4 байта, чтобы записать его как инструкцию jmp адрес. После инфецирования первые 5 байт в оригинальной функции (которые мы подменили), ведут в null, потому-что не правильно записывается туда... Не догоняю в чем же дело. Цитата:
И дело в том, что все работает даже с нулем. Но стоит дописать еще какую-нибудь строчку... Типо вывода в файл или месаджбокс и краш.
Каждый день узнаю новое...
Последний раз редактировалось Anton911; 24.11.2014 в 14:02. |
||
24.11.2014, 14:14 | #18 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Код:
Быть точнее если в NewSystemFunction приведен только тот код который я указал. Последний раз редактировалось coNsept; 24.11.2014 в 14:19. |
24.11.2014, 14:35 | #19 | |
Форумчанин
Регистрация: 23.08.2011
Сообщений: 171
|
Цитата:
Каждый день узнаю новое...
Последний раз редактировалось Anton911; 24.11.2014 в 14:46. |
|
24.11.2014, 15:39 | #20 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Попробуй добавить VirtualProtect и разрешить PAGE_EXECUTE_READWRITE от начала относительно той функции где ты проводишь какие либо операции.
Последний раз редактировалось coNsept; 24.11.2014 в 15:42. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перехват | Miha85193 | Общие вопросы Delphi | 2 | 23.05.2012 13:16 |
Перехват. | egorzenit | Общие вопросы Delphi | 3 | 29.03.2012 15:19 |
Перехват клавиш | AnTe | Общие вопросы Delphi | 3 | 23.07.2010 06:24 |
Перехват WM_TIMER | Proof | Win Api | 1 | 27.06.2010 08:35 |
Перехват клавиши | mustang007 | Общие вопросы Delphi | 6 | 15.04.2009 02:01 |