Av0id пишет: по хорошему в dup нет механизма для сабжа, писать свой миниотладчик, ловить момент загрузки dll и патчить что нужно... PE_Kill пишет: Если DllMain не надо трогать, то можно и хуком на LoadLibrary
Av0id пишет: писать свой миниотладчик не понял, а это почему так обязательно?
Av0id пишет: ловить момент загрузки dll Загрузки какой dll, если нет лоадера? Любой из импорта?
Почитал про dup - похоже там почти всё, что надо, только ничего связанного с загрузкой dll. Мне такие утилиты никогда не нужны были. Но если уж пользоваться отладчиком, то подгрузить dll можно перехватив любой вызов KiUserCallbackDispatcher, изменить апи-нумер на ___ClientLoadLibrary и добавить свой стек с аргументами для неё - буфером с путём до dll.
если есть dll и надо ее пропатчить, значит есть и процесс который ее загружает, т.е. лоадер, я имел в виду что-то вроде (правда код там жуткий, но понять технику и переписать можно)
Ранг: 324.3 (мудрец), 221thx Активность: 0.48↘0.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 на загрузке. А вообще еле собрал...
AKAB - если нужно пропатчить упакованую dll запустив exe через лоадер, то простейший способ в дуп, указать virtualaddress загружаемой через exe dll в offset patch.
DenCoder > подгрузить dll можно перехватив любой вызов KiUserCallbackDispatcher, изменить апи-нумер на ___ClientLoadLibrary и добавить свой стек с аргументами для неё - буфером с путём до dll. Не нужно ничего перехватывать. Это apfn-колбек из ядра, используемый для подгрузки в процесс фильтров. Он дёргается как вектор напрямую или через регистрацию фильтра.
> через Appinit Dll Локально трудно реализуется. Нужно искать описатель директории.
Загрузчик открывает директорию(\KnownDlls), описатель которой в LdrpKnownDllObjectDirectory. Создание обьекта в этой директории палится проактивкой. Необходимо создать свою директорию и поместить её описатель в эту переменную(закрыть/создать не желательно, так как в старших версиях системы может быть рандомизация). Поиск переменной в принципе прост, но возможно придётся обойти некоторые проверки(точно не помню уже).
bowrouco пишет: Не нужно ничего перехватывать. Это apfn-колбек из ядра, используемый для подгрузки в процесс фильтров. Он дёргается как вектор напрямую или через регистрацию фильтра. Ну и что? Хотите сказать, что даже после наступления определённого события я не смогу таким способом dll подгрузить? )
Ранг: 324.3 (мудрец), 221thx Активность: 0.48↘0.37 Статус: Участник
Создано: 09 августа 2011 18:27 · Поправил: DenCoder · Личное сообщение · #19
bowrouco
На неделе проверю
1) дёргается колбек, подменяем нумер апи 2) добавляем в стек параметры для ___ClientLoadLibrary 3) перехватываем конец KiUserCallbackDispatcher перед int 2B 4) даём выполнить нужный колбек
Два условия 1) Процесс GUI 2) Образ без специфических TLS-колбеков
1) перехватываем KiUserCallbackDispatcher, подменяем нумер апи 2) добавляем в стек параметры для ___ClientLoadLibrary - путь до dll 3) перехватываем конец KiUserCallbackDispatcher перед int 2B 4) даём выполнить нужный колбек 5) убираем хуки
Два условия 1) Процесс GUI 2) Образ без специфических TLS-колбеков
под отладичком можно без труда проверить, чем завтра и займусь... Если окажусь не прав, должен to bowrouco ящик пива
dup - это универсальный патчер файлов. Задача - пропатчить библиотеку налету в памяти во время ее загрузки. Экспиренса у ТС для этого нет и он спрашивает можно ли этим универсальным патчером такое сделать. Собственно ответ: нет, а дальше уже просто флуд пошел.