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

 eXeL@B —› Вопросы новичков —› dll unpack? ok.
Посл.ответ Сообщение


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

Создано: 07 ноября 2008 16:10
· Личное сообщение · #1

Дело было так... Анпакал какую-то непонятно чем запакованую dll(вроди orion), вроди нормально распаковал,из под оли она стартовала нормально, сую в exe... облом. Непорядок, забил на ту длл нашёл dll под upx'ом, думаю сначало снею разберусь и поставлю все точки над i. Вобщем распаковываю её, всё вроди нормально и под олей она запускается, с еxe не хочет, так думаю... значит не всё я знаю и побежал искать какие же тонкости тут есть... НАшёл, нужны релоки и есть тулза ReloX, которая поможет их востановить, ни чего практичексого или немного более о релоках нет. Ясно, придётся разбиратсо самому... ну ок.
Кхм, ну вот... Начал я с того, что сморел что и какие секции есть у dll и прибывают/остаются после дампа и т.д. В запакованой dll всё выглядет очень хорошо, всё присутствует, ну это же всё упаковщика, поэтому нафиг они нам нужны? Нам поидей нужно привести дамп в рабочее состояние. Ну сморим, после дампа мы имеем 2 ненужные секции upx(если он) и .rsrc , в rsrc собствено исполняемы код, ресурсы и ещё были пустые релоки(видимо попытка на их создание), ну вобщем то хорошо, для dll нам нужно ещё добавить импорт и релоки(кажется для релоков можно отдельной секции не делать), ну вобщем ок, востанавливаем импорт , чтож изменилось? А вот Импрек добавил новую секцию называет он её всё время .mackt. это канешно же всё хорошо и dll нормалбно распакована, но нам нужно чтоб она ещё не просто под олей запускалась, а ещё и под exe , чтобы управление передовалось нормально. ок, для этого нужны релоки, они корректируют запуск и тогда dll нормально запустится из под своего exe. ок, посмотрим чтож не так если релоков нет,(Загружаем в олюку еxe c недоделаной dll, выходим на эту dll) а не так там в заголовке и ещё кажется с импортом(может ещё где), адреса должен изменится в коде на выделеные ей(т.к. выделяются разные), а не те что записаны изначально, т.е. imagebase изменился, а в коде команды использую старый imagebase тут то и ошибка. Чтож, а если мы сдампим dll не из под лодера оли, а из под нашего exe c уже получается нормально исправлеными адресами в коде? Ок, сдампили, востановили импорт , запускаем exe из под оли и... Работает! Хех, значит доводы были верны, запускаем , без оли и... НЕ Работает, х блин понятно, значит страдали мы хернёй и выделяемые адреса без оли, а просто запуска exe будут другими. НУ ладно, выход один, не страдать хернёй и прикрутить релоки, особо не разбираясь, что и зачем сделал 2 дампа с разными ImagEBase, пихаю в ReloX а он говорит, мол ты тупой? че за херню ты в меня засунул!О_о,поэтому попытавшись сделать релоки он ни чё не делает просто пишет нули. Ок, значит я тупой. Ладно, посмотрим чтож анпакеры делают и последуем их примеру, Суём в QU он всё отлично распаковывает и dll нормально с exe работает. Так, ну хорошо посмотрим, как этого она добилась? Смотрим... и ах№;4@ем. А что не так? Да не, всё так, тока нет релоков и вместо нашей секци импорта .mackt мы видим .idata, видимо у Ку и импрека разные взгляды, то как нужно называть секции с импортом. Ну блин ладно, сравним секции с импортом , несколько строчек одинаковы(тока разный порядок), а дальше у ку какието ещё не понять нафиг нужные функи, ну да фиг с ними нас это не интерисует, а интересует каким образом там переправляются нужные адреса при старте если нет релоков, а если и есть тог где они? Над этими и другими вопросами досих пор работают наши учёные, и может быть в не далёком будующем мы получим ответы на эти и многи вопросы...
Собствено хотелось бы во всём этом нормально разобраться и переправить всётаки эту dll для нормальног запуска.
В аттче предмет пыток, и 2 распакованые dll(одна после ку, другая после меня) соответсвено можно пронаблюдать вышеописаные чудеса.

276a_07.11.2008_CRACKLAB.rU.tgz - сm8.7z




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

Создано: 07 ноября 2008 17:49
· Личное сообщение · #2

Oott это всё от того, что ты сначала делаешь а потом пытаешься разобраться. Из всего вышеописаного ясно что ты не знаешь ни формата PE, ни теории распаковки. Почитай "Об упаковщиках последний раз" на васме.

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




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

Создано: 07 ноября 2008 18:18
· Личное сообщение · #3

встаем в длл на 10035DC8 и жмем f8 снимаем дамп... запускаем импрек вводим оеп 1000 гетимпорт фих дамп и прикручиваем... все! она и отдельно в ольке будет стартовать и с ехе норм..
по поводу секций: если место есть то можно прикрутить импорт на месте старого в данном случае смещение 10002000 указывай и снимай галочку что создавать новую секцию




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

Создано: 07 ноября 2008 19:17 · Поправил: Oott
· Личное сообщение · #4

PE_Kill,
значит не всё я знаю и побежал искать какие же тонкости тут есть... НАшёл,
Вот тут статью я и прочитал, ну тока первую часть, вторую как-то пропустил. Ну хз, написал бы что интересного заметил в тексте, щас пойду вторую часть разюзаю.
Veliant, ты читал то что я писал выше или тока название темы читаешь? Вот то что ты написал я и делал, тока после этого оно не работло, яж приаттачилсо. Единственое что у меня в ольке IMageBase с этой dll не 10000000 , а 390000, ну это как повезёт.
Вот собствено корректный дамп с корректным импортом, которые не работают, а по словам Veliant должны.
webfile.ru/2370893



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

Создано: 07 ноября 2008 21:10
· Личное сообщение · #5

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

1336_07.11.2008_CRACKLAB.rU.tgz - cm8.dll




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

Создано: 07 ноября 2008 22:02 · Поправил: Oott
· Личное сообщение · #6

А то что ты выложил у меня не работает, я такие же как ты по 10 штук за раз воял
щас пекил и тебя куданить отправит)))))
00391000 > 55 PUSH EBP
00391001 8BEC MOV EBP,ESP
00391003 837D 0C 01 CMP DWORD PTR SS:[EBP+C],1
00391007 75 0E JNZ SHORT cm8.00391017
00391009 FF75 08 PUSH DWORD PTR SS:[EBP+8]
0039100C 8F05 20300010 POP DWORD PTR DS:[10003020]

Видешь ? если у тебя ImageBase всё время 10000000, то у меня он разный, при загрузке под олей, при загрке с еxe под олей, при загрузке exe и т.д.(есесно тока с dll) Это я об этом выше писал.
Поэтому если ты так будешь анпакать длл, то они не у всех будут работать.
Что у тебя за винда? А ты мои тестил они у тебя работают?




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

Создано: 07 ноября 2008 23:02
· Личное сообщение · #7

Качать нет времени, ты только скажи ImageBase после дампа поменял?

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





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

Создано: 07 ноября 2008 23:05
· Личное сообщение · #8

ADD Мне когда то надо было UPX с длл снять, я тогда чтобы с релоками не заморачиваться сделал так. Сдампил файл и в качестве EP указал адрес где идет код настройки релоков загрузчика UPX, а после него сделал jmp на OEP. Т.е. небольшой кусок упекса настраивал релоки каждый раз при загрузке.

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




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

Создано: 07 ноября 2008 23:09
· Личное сообщение · #9

ну если в твоем последнем ImageBase поправить на тот который у тя реально был то с пол пинка грузится




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

Создано: 08 ноября 2008 00:01 · Поправил: Oott
· Личное сообщение · #10

Veliant, это у тебя так, у меня нет.
PE_Kill, Вот это хорошая идея ща попробую...
добавлено
Нашёл релоки, я думал там просто чтото вроди вызова нужного куска когда будет, а там хз постоянные обращения....
003C2FFB BF CB4924A9 MOV EDI,A92449CB
003C3000 46 INC ESI
003C3001 183F SBB BYTE PTR DS:[EDI],BH
003C3003 7F 0A JG SHORT CM8.003C300F
003C3005 2326 AND ESP,DWORD PTR DS:[ESI]
003C3007 93 XCHG EAX,EBX
003C3008 BF A04804B0 MOV EDI,B00448A0

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



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 08 ноября 2008 06:08
· Личное сообщение · #11

Oott пишет:
Вот это хорошая идея ща попробую...

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




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 08 ноября 2008 08:12 · Поправил: ClockMan
· Личное сообщение · #12

Oott Вот попробуй

8af2_07.11.2008_CRACKLAB.rU.tgz - сm8.zip

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





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

Создано: 08 ноября 2008 12:40 · Поправил: Oott
· Личное сообщение · #13

Ладно,просто нужно нормально востановить релоки с помощь ReloX'a и всё...
ClockMan, Вот то что нужно, релоксом у теа нормально получилось востановить релоки.
В отличае от меня, хз может я что-то не допонял или пропустил что-то винструкции... Делаю два дампа с разным ImageBas'ом, натравливаю релокс жму "Compare" и... Кукишь, ни каких релоков он не находит. Я уже отчаявшись открыл упакованую dll в PE Explorer'e и списал оттуда релоки в релокс и даже тут я что-то скосячил, релоки добавились перед запуском они правят нужные адреса, но правят херню, на какие-то небесные адреса...
вот


87f6_08.11.2008_CRACKLAB.rU.tgz - cm8.dll




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 08 ноября 2008 13:00 · Поправил: ClockMan
· Личное сообщение · #14

Oott
Опишу кака я делал может и другим будет иннтересно
1.Берём нерасспакованную dll и переменноваим их в original.dll и copy_of_original.dll запускаем
sample.exe(эти dll должны быть в одной папке!!)

2.Снимая дамп запоминаем Image base (по которым они грузились в пямять) снятых dll!!!!

3.Запускаем Relox подгружаем дампы original.dll и вписываем Image base, подгружаем copy_of_original.dll и вписываем Image base

4.Нажимаем Compare и о чудо!!! он находит релоки

5.Можем сохранить релоки(Save Relocs) или сразу исправить анпакнутую dll

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 08 ноября 2008 14:32
· Личное сообщение · #15

Вот как я подправир прожку теперь при вводе имени можно получить серийный номер

a9b5_08.11.2008_CRACKLAB.rU.tgz - сm8.rar

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





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

Создано: 08 ноября 2008 14:40 · Поправил: Oott
· Личное сообщение · #16

ClockMan, А блин спасибо, я оригинальный ImageBase не вписывал, наивно пологая, что тулза сама его должна определить.Всё разобрался со всем, спасибо всем отписавшимся в этой теме.
появляется возможность калечить директорию перемещаемых элементов (relocations, fixups). Например, такой фокус производит UPX(с)
Вот тебе и упкс
ClockMan, не издевайся на бедным фантомом



Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 08 ноября 2008 14:50
· Личное сообщение · #17

это типа UPX сам себя с DLL снять не может?

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74





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

Создано: 08 ноября 2008 15:03
· Личное сообщение · #18

Stack, Это типа если попадётся какойнить там модифицированый упкс , великие upx.exe d анпакеры пойдут курить
ClockMan, вот если бы везде так легко пасы можно было бы достать
PUSH CM8.00983024 ; /String2 = "080808088"




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 08 ноября 2008 15:06
· Личное сообщение · #19

Киньте пожалуйста ReloX

-----
Research For Food





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

Создано: 08 ноября 2008 15:11
· Личное сообщение · #20

daFix, O_o Гугл отменили? www.wasm.ru/baixado.php?mode=tool&id=155


 eXeL@B —› Вопросы новичков —› dll unpack? ok.
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати