Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.11.29;
Скачать: CL | DM;

Вниз

Подмена адреса функции WinAPI   Найти похожие ветки 

 
KSergey ©   (2015-03-30 16:28) [0]

Есть процесс, в который легально подгружается моя DLL
Хочется подменить для этого процесса вызов какой-либо функции WinAPI на свою (в частности, GetSystemMetrics)
Это надо городить всю эту мутатень с таблицами экспорта и всё такое? Антивирусы сразу ай-яй-яй скажут? или нет
Есть ли простые варианты?


 
Rouse_ ©   (2015-03-30 16:32) [1]

Там много вариантов, выбирай любой:
http://alexander-bagel.blogspot.ru/2013/01/intercept.html
http://alexander-bagel.blogspot.ru/2013/05/intercept2.html


 
KSergey ©   (2015-03-30 20:01) [2]

Спасибо большое!


 
Rouse_ ©   (2015-03-30 21:45) [3]

У тебя нюанс есть - то, что ты легально подгрузился, еще не означает что тебя все пустят на запись в область библиотек. Зависит от антивиря.
Проверяй через VirtualQuery память, вполне возможно что она тебе уже доступна контролирующей библиотекой, которая будет давать отлуп на VirtualProtect


 
KSergey ©   (2015-03-31 09:59) [4]

Вот я про антивирей уже подумал, беспокоит этот момент. Кстати, а Windows 7 как отреагирует своим запросом админских прав?
Впрочем, надо для начала проверить - вдруг мне повезет и открывать доступ на  модификацию не придётся


 
Rouse_ ©   (2015-03-31 10:23) [5]

Если ты уже в АП нужного процесса, то никто у тебя ничего спрашивать уже не будет :)


 
Кто б сомневался ©   (2015-04-02 15:13) [6]


> Вот я про антивирей уже подумал, беспокоит этот момент.


Думаю нормально все будет, или придется писать в саппорт некоторым на false positive.
PuntoSwitcher так же работает - ставит хук на клавиатуру.


 
Дмитрий С ©   (2015-04-04 01:25) [7]

Я в чужой, мной запущенный, процесс пишу и поток ещё там запускаю - никто не возникал.

На мой взгляд, если ты ничего криминального не делаешь, об антивирусах можно не задумываться - это их проблемы.


 
KSergey ©   (2015-04-04 09:50) [8]

> Дмитрий С ©   (04.04.15 01:25) [7]
> Я в чужой, мной запущенный, процесс

Кстати, сразу вопрос, если позволите: я верно понимаю, что для запуска процесса обязательно надо иметь exe-файл под него в Windows? "Из памяти" это никак ведь не выйдет?


 
Дмитрий С ©   (2015-04-04 17:57) [9]


> KSergey ©   (04.04.15 09:50) [8]

Теоретически можно, думаю.

Делаешь createprocess и указываешь путь к своему exe (paramstr(0)) и флаг create_suspended. А потом пишешь в его память что хочешь, а потом запускаешь удаленный поток. Основной поток прибить можно не запуская.

Но лучше, конечно, rouse_ расскажет.


 
Rouse_ ©   (2015-04-04 20:04) [10]


> Кстати, сразу вопрос, если позволите: я верно понимаю, что
> для запуска процесса обязательно надо иметь exe-файл под
> него в Windows? "Из памяти" это никак ведь не выйдет?

Какой-то экзешник, посредством которого порождается процесс-донор, должен быть (хоть тот-же calc.exe). А так технология проста, как описал Дима, стартуем процесс-донор, в него пишем данные по нашему процессу (новое тело экзешника), потом правим EIP, чтобы указывала на точку входа и резюмим основную нить.


 
Дмитрий С ©   (2015-04-04 20:34) [11]

Забавно же получается :)

Запускаем по этой технологии какой нибудь smss.exe, копируем в его память свой код и получаем легальный процесс с нелегальным кодом:)



Страницы: 1 вся ветка

Текущий архив: 2015.11.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.006 c
15-1427968238
Ламот
2015-04-02 12:50
2015.11.29
Подскажите живой форум по Си шарпу пож.


3-1305792508
AlexeyMir
2011-05-19 12:08
2015.11.29
Как представить таблицу для редактирования


15-1427905090
Rouse_
2015-04-01 19:18
2015.11.29
Ну что, делимся, как кого развели на 1 апреля


2-1402463865
otan
2014-06-11 09:17
2015.11.29
ShellExecute и ошибка на NativeUInt


2-1402664348
Who_are_you?
2014-06-13 16:59
2015.11.29
Два байта в одно число