Перейти к содержанию

Custom DLL Injector


Coder

Рекомендуемые сообщения

За 3 дня накидал простенький DLL инжектор, который внедряет DLL посредством manual mapping'а.

WARNING / АХТУНГ:

DLL в процессе не регистрируется и поэтому в списке модулей процесса она не отображается, следовательно - такие функции как GetModuleHandle, EnumerateProcessModules и Module32Next не смогут найти внедрённую DLL.

 

x86

post-8127-0-96400900-1412829818_thumb.pn

Download - memInjector.zip

VirusTotal - https://www.virustotal.com/ru/file/6ceb0af59b29ddcc737937ef7f25e3062b4daae50105364bba3a70725e3050b9/analysis/1412830192/

 

x64

post-8127-0-35188200-1412829819_thumb.pn

Download - memInjector_64.zip

VirusTotal - https://www.virustotal.com/ru/file/03bbd1e77a90f7670baa0d594689820af1b5916b919b6074aa9f59ae2bb9676b/analysis/1412830206/

 

x64 инжектор может внедрять DLL (x86 и x64) в x86 и x64 процессы соотвественно.

x86 инжектор может внедрять только x86 DLL в x86 процессы.

 

Из того что есть на данный момент:

1. Поддержка x86 и x64

2. Base relocs

3. Import Table Fix

 

Из того, чего нет на данный момент, но появится в будущем:

1. TLS callbacks

2. Export table fix

3. Resources

4. .NET файлы

 

Авторство: Coder (я)

 

Баги:

Те, что сообщите вы :)

 

P.S. очень прикольно то что в x86 версии файла антивирус "Qihoo-360" видит "Malware.QVM10.Gen", а x64 файл он считает чистым.

  • Плюс 3
Ссылка на комментарий
Поделиться на другие сайты

Ошибка! и тот и другой. аваст даже не дает загружать страницу.

Или у меня с компом что то не ТО, вчера загружал таблицу сегодня нет.

 

ПРОВЕРЯЮ КОМП...........................................


Нет. Не получается антивирус блокирует. сам сайт.

Ссылка на комментарий
Поделиться на другие сайты

Не по тему:

Coder сможешь точно таким же образам подгрузить ехе файл в другой процесс, скажем, СЕ грузился в чужой процесс да бы скрыт от некоторых защищённых игр? или это не возможно? хотя... все возможно... (был бы крутой вещщ))

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Не по тему:

Coder сможешь точно таким же образам подгрузить ехе файл в другой процесс, скажем, СЕ грузился в чужой процесс да бы скрыт от некоторых защищённых игр? или это не возможно? хотя... все возможно... (был бы крутой вещщ))

EXE ничем не отличается от DLL, и то и то это PE файлы.

Единственное отличие EXE от DLL это то что у EXE обязательно имеется точка входа. Думаю что такое возможно разумеется, но придется много чего для это реализовать. Проще всего CE скомпилить в DLL и не париться, если ты уж так хочешь это сделать.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...
  • 1 месяц спустя...

Не по тему:

Coder сможешь точно таким же образам подгрузить ехе файл в другой процесс, скажем, СЕ грузился в чужой процесс да бы скрыт от некоторых защищённых игр? или это не возможно? хотя... все возможно... (был бы крутой вещщ))

СЕ грузился в чужой процесс???????
Ссылка на комментарий
Поделиться на другие сайты

Ребята, стоп! В адресное простоанство можно инжектить код, другой исполняемый файл (библиотеку), а так же создавать потоки, клонировать процесс и делать все это из режима ядра. Ехе выполнить внутри другого ехе - можно, но довольно бессмысленно. Сначала стоит четко определиться с задачей, а уже потом проектировать решение.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Привет. Пофикстье ссылки пожалуйста, хотелось бы опробовать сие творение ))

ЗЫ Для использования manual map нужно вкл тестовый режим винды ?

Ссылка на комментарий
Поделиться на другие сайты

Привет. Пофикстье ссылки пожалуйста, хотелось бы опробовать сие творение ))

ЗЫ Для использования manual map нужно вкл тестовый режим винды ?

Поправил ссылки. Нет, тестовый режим не нужен.

Ссылка на комментарий
Поделиться на другие сайты

А почему бы при выходе не сделать сохранение параметров? К примеру, путь библиотеки и имя процесса? Ведь это два textBox'a. Просто сохрани их содержимое... Куда-нибудь и при лаунче проверяй есть ли в буфере (или текстовике или еще где) хоть что-то, если есть - подгружай в textBox'ы. Помоему норм идея.

Изменено пользователем RockHamer
Ссылка на комментарий
Поделиться на другие сайты

Поправил ссылки. Нет, тестовый режим не нужен.

Спасибо :) Но не работает инжект...пишет только Process found and ready to injection! PID: XXXX, дальше ничего. Пробовал на x64 и x86 системах, в исходниках внедряемой .dll нет ни GetModuleHandle, ни двух других функций. 

Что я делаю не так?)) 

PS Для сравнения, ProcessHacker без проблем внедряет эти же .dll... 

Изменено пользователем Shelby
Ссылка на комментарий
Поделиться на другие сайты

Спасибо :) Но не работает инжект...пишет только Process found and ready to injection! PID: XXXX, дальше ничего. Пробовал на x64 и x86 системах, в исходниках внедряемой .dll нет ни GetModuleHandle, ни двух других функций. 

Что я делаю не так?)) 

PS Для сравнения, ProcessHacker без проблем внедряет эти же .dll... 

А ты собственно инжектить пытаешься наверное в процесс, который был запущен от имени админа, но при этом инжектор ты запустил без админских прав.

Ссылка на комментарий
Поделиться на другие сайты

@Coder, не от админа процесс. Много комбинаций пробовал. ProcessHacker не видит длл.

Вообще я скачал Custom injector как замену Xenos'у, но только после понял, что тут нет Kernel Manual Map, лишь юзер мод :) Тогда немного оффтопа : кто знает где можно взять kernel инжекторы? Тот же Xenos есть на github'e, но как настроить под него wdk 8.0, чтобы хоть чуть его модифицировать(вернее кернел драйвер для него)...для меня(начинающего) задачка нелегкая. Нашел исходники еще одного, там просто драйвер.c и инжектор.с, опять же как драйвер скомпилить(есть вообще такое понятие - компиляция драйвера? :) ) я не имею представления. Если можете скинуть мануал какой-нибудь, буду признателен. Еще раз простите за оффтоп )) .

Ссылка на комментарий
Поделиться на другие сайты

@Coder, не от админа процесс. Много комбинаций пробовал. ProcessHacker не видит длл.

Ну так он и не увидит, потому что DLL нет в PEB -> PEB_LDR_DATA и хидеры подтерты.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

TS, есть ли какая-нибудь годная русскоязычная инфа по этому мануал мапингу?

Дюже хочется поднабраться.

На wasm.ru можешь почитать про формат PE файлов.

Ссылка на комментарий
Поделиться на другие сайты

На wasm.ru можешь почитать про формат PE файлов.

 

Basically manual mapping mirrors the functionality of LoadLibraryA in that it prepares a dll so that it can be successfully loaded into the process and have the right relative offsets etc, thus eliminating the need to call LoadLibraryA which is VERY easy for the remote process to hook and detect seeing as it's called within the remote process.

Я не силён в английском. Как я понял, этот мэппинг заменяет loadlibrarya и нужен из-за того, что второй легко определяется (чем-то).

Coder, можешь кинуть ссылку где можно почитать суть этого метода, если он имеет схожий функционал со стандартным loadlibrarya, то в чем его "фишка"?

 

Ну и на васме я что-то не смог соориентироваться :mad:

UPD. Всё нашёл. Если можешь от себя что-то добавить - буду рад)

Изменено пользователем Afro
Ссылка на комментарий
Поделиться на другие сайты

Я не силён в английском. Как я понял, этот мэппинг заменяет loadlibrarya и нужен из-за того, что второй легко определяется (чем-то).

Coder, можешь кинуть ссылку где можно почитать суть этого метода, если он имеет схожий функционал со стандартным loadlibrarya, то в чем его "фишка"?

 

Ну и на васме я что-то не смог соориентироваться :mad:

Без английского тебе туго будет)

 

http://www.wasm.ru/wault/

http://www.wasm.ru/wault/article/show/1002001

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.