Сейчас на форуме: _MBK_, Adler (+4 невидимых)

 eXeL@B —› Вопросы новичков —› Как создать loader для dll
. 1 . 2 . >>
Посл.ответ Сообщение


Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 06 августа 2011 14:15 · Поправил: AKAB
· Личное сообщение · #1

Скажите, пожалуйста, Как можно создать loader для dll с помощью dup 2.22



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 06 августа 2011 15:18
· Личное сообщение · #2

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

| Сообщение посчитали полезным: SReg


Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 06 августа 2011 17:56
· Личное сообщение · #3

Если DllMain не надо трогать, то можно и хуком на LoadLibrary

-----
Yann Tiersen best and do not fuck





Ранг: 79.4 (постоянный), 183thx
Активность: 0.110
Статус: Участник

Создано: 06 августа 2011 19:06
· Личное сообщение · #4

Av0id пишет:
по хорошему в dup нет механизма для сабжа, писать свой миниотладчик, ловить момент загрузки dll и патчить что нужно...

PE_Kill пишет:
Если DllMain не надо трогать, то можно и хуком на LoadLibrary


Можете ли объяснить мне более подробно



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 06 августа 2011 20:17
· Личное сообщение · #5

AKAB пишет:
Можете ли объяснить мне более подробно

--> Link <--




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 06 августа 2011 20:34
· Личное сообщение · #6

Av0id пишет:
писать свой миниотладчик

не понял, а это почему так обязательно?

Av0id пишет:
ловить момент загрузки dll

Загрузки какой dll, если нет лоадера? Любой из импорта?

Почитал про dup - похоже там почти всё, что надо, только ничего связанного с загрузкой dll. Мне такие утилиты никогда не нужны были. Но если уж пользоваться отладчиком, то подгрузить dll можно перехватив любой вызов KiUserCallbackDispatcher, изменить апи-нумер на ___ClientLoadLibrary и добавить свой стек с аргументами для неё - буфером с путём до dll.

-----
IZ.RU




Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 06 августа 2011 21:14
· Личное сообщение · #7

не обязательно, никто и не писал что обязательно

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




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 06 августа 2011 21:27 · Поправил: DenCoder
· Личное сообщение · #8

ага

06.08.2011 21:04:26 Фильтр HTTP файл http://www.accessroot.com/arteam/site/request.php?179 вероятно модифицированный Win32/Agent.MNBQLUH троянская программа соединение прервано - изолирован

Зараза сидит в Архив\Sources\Proxy_Dll_Protected_7\bin\Client.exe


Av0id пишет:
правда код там жуткий

Да к тому же dll валится со STACK_OVERFLOW на загрузке. А вообще еле собрал...

-----
IZ.RU




Ранг: 137.9 (ветеран), 45thx
Активность: 0.080
Статус: Участник

Создано: 07 августа 2011 01:42
· Личное сообщение · #9

Я dll например патчил через подгрузку своей длл, через Appinit Dll или как вариант можно подгрузить через lpk....




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 07 августа 2011 01:46
· Личное сообщение · #10

Appinit Dll не всегда работает, особенно если стоит антишпион/антивирус.

-----
IZ.RU





Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 07 августа 2011 11:48
· Личное сообщение · #11

AKAB - если нужно пропатчить упакованую dll запустив exe через лоадер, то простейший способ в дуп, указать virtualaddress загружаемой через exe dll в offset patch.

-----
Array[Login..Logout] of Life




Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 07 августа 2011 12:23
· Личное сообщение · #12

Kindly пишет:
указать virtualaddress загружаемой через exe dll

как он его получит то?




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 07 августа 2011 12:25 · Поправил: Kindly
· Личное сообщение · #13

SReg пишет:
как он его получит то?

распакует лишь бы как хотя бы чтоб в отладчик загрузить можно было и по имеджу вставит нужные оффсеты

вот тебе живой пример:
прога - http://cloudfront.systweak.com/sysrc_trial.exe
лоадер, патчущий армовую dll в памяти
http://rghost.ru/17100181

я думаю, ТС нужно было примерно это. другое дело инлайн патч прописать в exe или dll, но это уже другой вопрос.

-----
Array[Login..Logout] of Life




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 09 августа 2011 12:28
· Личное сообщение · #14

DenCoder
> подгрузить dll можно перехватив любой вызов KiUserCallbackDispatcher, изменить апи-нумер на ___ClientLoadLibrary и добавить свой стек с аргументами для неё - буфером с путём до dll.
Не нужно ничего перехватывать. Это apfn-колбек из ядра, используемый для подгрузки в процесс фильтров. Он дёргается как вектор напрямую или через регистрацию фильтра.

> через Appinit Dll
Локально трудно реализуется. Нужно искать описатель директории.



Ранг: 137.9 (ветеран), 45thx
Активность: 0.080
Статус: Участник

Создано: 09 августа 2011 12:39
· Личное сообщение · #15

bowrouco пишет:
Локально трудно реализуется. Нужно искать описатель директории.

а поподробней,почему трудно реализуется?



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 09 августа 2011 13:00
· Личное сообщение · #16

Загрузчик открывает директорию(\KnownDlls), описатель которой в LdrpKnownDllObjectDirectory. Создание обьекта в этой директории палится проактивкой. Необходимо создать свою директорию и поместить её описатель в эту переменную(закрыть/создать не желательно, так как в старших версиях системы может быть рандомизация). Поиск переменной в принципе прост, но возможно придётся обойти некоторые проверки(точно не помню уже).




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 09 августа 2011 15:57
· Личное сообщение · #17

bowrouco пишет:
Не нужно ничего перехватывать. Это apfn-колбек из ядра, используемый для подгрузки в процесс фильтров. Он дёргается как вектор напрямую или через регистрацию фильтра.

Ну и что? Хотите сказать, что даже после наступления определённого события я не смогу таким способом dll подгрузить? )

-----
IZ.RU




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 09 августа 2011 17:29
· Личное сообщение · #18

DenCoder
Ваш пост совершенно бессмысленный. Что за наступление события ?
Ну дёргается какойто колбек из apfn, причём тут загрузка модуля ??




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 09 августа 2011 18:27 · Поправил: DenCoder
· Личное сообщение · #19

bowrouco

На неделе проверю

1) дёргается колбек, подменяем нумер апи
2) добавляем в стек параметры для ___ClientLoadLibrary
3) перехватываем конец KiUserCallbackDispatcher перед int 2B
4) даём выполнить нужный колбек

Два условия
1) Процесс GUI
2) Образ без специфических TLS-колбеков

-----
IZ.RU




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 09 августа 2011 18:37 · Поправил: bowrouco
· Личное сообщение · #20

DenCoder
1) дёргается колбек, подменяем нумер апи

Что за колбек, как дёргаем и для чего ?




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 09 августа 2011 18:47
· Личное сообщение · #21

1) перехватываем KiUserCallbackDispatcher, подменяем нумер апи
2) добавляем в стек параметры для ___ClientLoadLibrary - путь до dll
3) перехватываем конец KiUserCallbackDispatcher перед int 2B
4) даём выполнить нужный колбек
5) убираем хуки

Два условия
1) Процесс GUI
2) Образ без специфических TLS-колбеков

под отладичком можно без труда проверить, чем завтра и займусь... Если окажусь не прав, должен to bowrouco ящик пива

-----
IZ.RU




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 09 августа 2011 19:04
· Личное сообщение · #22

DenCoder
1) перехватываем KiUserCallbackDispatcher, подменяем нумер апи

Для чего ?
Вектор можно через тотже колл дёрнуть.

Какойто вы бред несёте. Этот код есчо на виртеке был описан года два назад http://indy-vx.narod.ru/Bin/PfnLdr.zip



Ранг: 56.1 (постоянный), 9thx
Активность: 0.040
Статус: Участник

Создано: 09 августа 2011 19:54
· Личное сообщение · #23

ого, хакеры. а подменить dll на прозрачную, скопировав имена из импорта и соответствующим образом редиректя коллы, не проще?




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 09 августа 2011 21:49 · Поправил: DenCoder
· Личное сообщение · #24

Ладно, вариантов много. Но самый простой, если под отладчиком, - перехватываем LoadLibraryA/W. Надёжнее - из-под некривого загрузчика.

Кстати, bowrouco, о TLS callback: запатчу я раздел TLS и всё ))) - тривиально. Тот, кто запускает - тот и делает первый ход.

vptrlx, такую dll называют прокладкой. Проще там, где инструмент готов ;)

-----
IZ.RU




Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 10 августа 2011 11:01
· Личное сообщение · #25

что-то мне кажется что вы в какие-то нереальные дебри полезли, есть простая задача, есть простое решение, clerk вы еще предложите патчи писать в r0




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 10 августа 2011 11:20
· Личное сообщение · #26

Clerk кроме r0 походу другого кольца и не видел. Сочувствую.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 10 августа 2011 11:30
· Личное сообщение · #27

Про кернелмод и речи небыло. Просто тут упомянули один хорошо знакомый механизм.

А по сабжу я и задачу не понял , что такое dup 2.22 ?
Из памяти чтоли загрузить модуль нужно ?




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 10 августа 2011 13:02
· Личное сообщение · #28

dup - это универсальный патчер файлов. Задача - пропатчить библиотеку налету в памяти во время ее загрузки. Экспиренса у ТС для этого нет и он спрашивает можно ли этим универсальным патчером такое сделать. Собственно ответ: нет, а дальше уже просто флуд пошел.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 10 августа 2011 13:25
· Личное сообщение · #29

PE_Kill
Статический импорт добавить в виде своей длл или заинфектить модуль, так не подходит ?

Иначе очень похоже на криптор получается




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 10 августа 2011 16:39
· Личное сообщение · #30

Мелкий шелл-код дупом, и никаких проблем

-----
От многой мудрости много скорби, и умножающий знание умножает печаль



. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› Как создать loader для dll
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати