Сейчас на форуме: _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




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

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

bowrouco, Вы опять о своём?
Новый ник Вас совершенно меняет. При чём здесь криптор? )
Обычные условия, своя система, никто не мешает делать с ней, что вздумается ))
Хотя хорошо, что Ваше стремление к универсальности вывело на такой уровень. Должен признать, что не все могут этим похвастаться. )

PE_Kill пишет:
Задача - пропатчить библиотеку налету в памяти во время ее загрузки

А ведь задача изначально не так звучала. )) AKAB, помогли тебе, нет?

PE_Kill пишет:
можно ли этим универсальным патчером такое сделать. Собственно ответ: нет

Ну понятно. Но если такими короткими будут все ответы без вариантов?

Вернёмся к сабжу
Изначальная задача - задача 1
AKAB пишет:
Скажите, пожалуйста, Как можно создать loader для dll

Лично я понял это буквально. С помощью dup никак! Универсальный загрузчик - хороший отладчик, например OllyDbg:
Code:
  1. - дефолтный бряк на EP
  2. - бёрём любые 0x100 байт (этого должно хватить) в имейдже exe и пишем туда путь до dll, которую нужно прицепить к exe, в конце обязательно нулевой байт. Пусть это будет 0x00409000
  3. - пишем кодес
  4. push 0x00409000
  5. call LoadLibraryA
  6. - ставим бряк за последней введённой командой
  7. - жмём F9 - встали на бряке и dll уже в процессе
  8. - удаляем бряк, выделяем введённые команды, делаем Undo Selection - Alt-Backspace
  9. - Ctrl-* - ставим EIP на прежнее EP


Неявный вариант задачи 1 -> Задача 2 - пропатчить библиотеку налету в памяти во время ее загрузки. Видимо, в ходе переписки ТС по ПМ с AoRC(Ace of Reversing and Cracking ) выяснилось что реально надо.
В ollydbg Options->Events->Pause on new module->OK->F9 до остановки на DllEntryPoint нужной dll (кстати, не то же самое, что DllMain). Патчим как надо, отпускаем.

Если какая-то защита, то это уже другой вопрос!

-----
IZ.RU




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

Создано: 10 августа 2011 17:06 · Поправил: bowrouco
· Личное сообщение · #3

DenCoder
Если система своя мне например провайдера верификации хватает для подобных целей. Компилим длл, регаем в реестре и она загружается в процесс есчо до загрузки kernel32(и там есть официальные колбеки на загрузку модулей). Это далеко до длл нотификаций, тлс-ов, ep etc. И не нужны в таком случае никакие надстройки другие, инфекты и прочие извраты.

> Хотя хорошо, что Ваше стремление к универсальности вывело на такой уровень. Должен признать, что не все могут этим похвастаться.
Умник ёпта

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


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

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

провайдер верификации - это lsass что ли?

-----
IZ.RU





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

Создано: 10 августа 2011 22:58
· Личное сообщение · #5

Про свою систему ТС как раз и не говорил.

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





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 11 августа 2011 02:43 · Поправил: Isaev
· Личное сообщение · #6

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

тутор можешь на досуге сделать?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




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

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

DenCoder
http://www.wasm.ru/forum/viewtopic.php?id=37208
http://indy-vx.narod.ru/Bin/AVrf.zip

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

Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

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

прицепом дизасм с графером, наверно интересно было бы

до кучи
http://eugenys.blogspot.com/2011/02/blog-post_11.html#more




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

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

Странно, ссылка --> http://indy-vx.narod.ru/Bin/AVrf.zip <-- прекрасно работает, но помню, что раньше по адресу http://indy-vx.narod.ru и текст был, типа, блог. Сейчас уже не доступен?

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 3.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 19 августа 2011 10:23 · Поправил: alt
· Личное сообщение · #10

Наверное глупый вопрос. но все же спрошу про вариант DenCoder(а). Если сначала загрузить DLL, пропатчить, а потом запустить основной ехе(ник), запускающий DLL - DLL будет грузится снова или в памяти останется пропатченная ? И программа будет работать с ней (пропатченой) ?




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

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

Прочитай про адресное пространство процессов в винде.

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




Ранг: 3.9 (гость)
Активность: 0.010
Статус: Участник

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

PE_Kill пишет:
Прочитай про адресное пространство процессов в винде.



Лучше эксперимент проведу, когда время будет.

а так вот что здесь написано:

Именно тогда появились счетчики ссылок пользователей DLL - при каждом вызове функции ОС проверяет наличие загруженного в память экземпляра библиотеки. В случае положительного ответа счетчик ссылок пользователей данной DLL увеличивается на единицу. Если же экземпляр данной DLL в памяти не обнаружен, то операционная система загружает файл в память и присваивает счетчику значение "1".




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

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

Это в пределах одного процесса. Лучше почитай всё же.



Ранг: 3.9 (гость)
Активность: 0.010
Статус: Участник

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

Archer пишет:
Это в пределах одного процесса.


Хотите сказать, что нужно одним и тем же ехе(ком) вызвать dll два раза. Первый раз ложно и пропатчить, а второй раз уже как положено.


Archer пишет:
Лучше почитай всё же.


Мудрено... Я же не профи. Да и причем тут адресное пространство. Вопрос то в другом: откуда будет "грузиться" dll - с винта или из памяти.



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

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

alt
Вы спрашиваете глупости, потому вам по существу не отвечают. Нельзя загрузить 2 длл с одинаковыми именами и функциями. У разных процесов разные адресные пространства и между ними нет общего доступа.




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

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

alt пишет:
Да и причем тут адресное пространство. Вопрос то в другом: откуда будет "грузиться" dll - с винта или из памяти


alt пишет:
Лучше эксперимент проведу, когда время будет.


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

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




Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

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

--> Link <--



Ранг: 3.9 (гость)
Активность: 0.010
Статус: Участник

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

yanus0 пишет:
ы спрашиваете глупости, потому вам по существу не отвечают. Нельзя загрузить 2 длл с одинаковыми именами и функциями. У разных процесов разные адресные пространства и между ними нет общего доступа.


Спасибо, добрый человек, что не дали убиться об стену в процессе эксперемента. Я подозревал, что это так. Но вышеприведенный пример смутил.



Ранг: 3.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 19 августа 2011 17:42 · Поправил: alt
· Личное сообщение · #19

yanus0 пишет:
Нельзя загрузить 2 длл с одинаковыми именами и функциями



А вот сейчас смотрю на свою ДЛЛ. Во время загрузки проги вызывается раз 7. Вызывается функцией LoadLidrary В первый раз пропатчил. В следующие разы патчинг остался.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

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

Да потому что она и не выгружалась. Ты утомил уже, последний раз говорю, почитай матчасть, потом в бан отправлю принудительно читать.


<< . 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 » Выход » ЛС
   Для печати Для печати