Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2015.11.29;
Скачать: [xml.tar.bz2];

Вниз

Подмена адреса функции 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
2-1402568277
Mr.White
2014-06-12 14:17
2015.11.29
Обрезается Hint


15-1428496087
Pavelnk
2015-04-08 15:28
2015.11.29
Какой размер экрана телефонов


15-1427722087
KSergey
2015-03-30 16:28
2015.11.29
Подмена адреса функции WinAPI


15-1428130841
brother
2015-04-04 10:00
2015.11.29
получить иконки из imageres.dll


15-1419436548
Kerk
2014-12-24 18:55
2015.11.29
delphimaster.net





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский