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

 eXeL@B —› Вопросы новичков —› Распаковвка PEC2 (DLL). Не получается.
Посл.ответ Сообщение

Ранг: 0.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 марта 2015 14:57
· Личное сообщение · #1

Добрый день!
Пытаюсь распаковать dll pec2.
Все по инструкции, вроде oep нашёл. Дамп сделал, но восстановление импорта не проходит.
Тело тут: http://bearc.ru/crack/libdemo.zip (pwd: 1)
1. В OlleDbg нашёл OEP
00B100B4 - OEP
0x00B100B4 - 0x00870000 (base) = 0x002A00B4 (size)
Все остальное на картинках





Все перепробовал, что-то я явно упускаю...



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

Создано: 26 марта 2015 17:13
· Личное сообщение · #2

В ImpREC после выбора loaddll.exe нажимал кнопку pick dll?



Ранг: 0.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 марта 2015 17:23
· Личное сообщение · #3

конечно



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 26 марта 2015 17:24
· Личное сообщение · #4

anma пишет:
Все остальное на картинках

1. На вскидку, упакован AsPack, по видимому?!?
2. 00B100B4 - OEP, а в ImpRec - очевидно, EP прописана.
3. ОТСУТСВУЕТ последний этап-правка OEP в PE хидере (через PeTools, LordPE) + релоки (Relocation Table)



Ранг: 0.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 марта 2015 17:26
· Личное сообщение · #5

pecompact 2.x

Добавлено спустя 13 минут
ELF_7719116 пишет:
2. 00B100B4 - OEP, а в ImpRec - очевидно, EP прописана.

Не помогло




Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 26 марта 2015 17:58
· Личное сообщение · #6

OEP в ImpRec'e нужно вписывать с учетом ImageBase:
B100B4-870000=2A00B4




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 26 марта 2015 19:53
· Личное сообщение · #7

импорт из кернел32 полностью заменён переходниками типа
mov eax, real_proc_address
jmp eax
поэтому часть функций автоматически не определяется
если надо, восстановленный импорт в аттаче

если дампить либу "как есть", то дамп получится кривой - затёрта таблица секций.
нужно скопировать таблицу из упакованного файла и исправить её - реальные размер/смещение установить равными виртуальным


2aa6_26.03.2015_EXELAB.rU.tgz - import.txt



Ранг: 0.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 марта 2015 22:31
· Личное сообщение · #8

-=AkaBOSS=- пишет:
если дампить либу "как есть", то дамп получится кривой - затёрта таблица секций.
нужно скопировать таблицу из упакованного файла и исправить её - реальные размер/смещение установить равными виртуальным

Спасибо, но как это сделать? Я слабоват в этой теме.

Добавлено спустя 29 минут
И с помощью какой утилиты Вам удалось получить правильную таблицу?




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 27 марта 2015 06:36
· Личное сообщение · #9

anma пишет:
Спасибо, но как это сделать? Я слабоват в этой теме.

есть два способа - вручную или автоматически.
ручной способ подходит для тех, кто изучал PE-формат, но это явно не ваш случай.
автоматический способ - в настройках дампера (я так понял, используется PE Tools) установить галки:
Task Viewer - Full Dump: Paste Header From Disk
Task Viewer - Full Dump: Fix Header
после чего сделать Full Dump нужного модуля

anma пишет:
И с помощью какой утилиты Вам удалось получить правильную таблицу?

я не заморачивался поиском утилит. написал простой скрипт для автозамены этого
mov eax, real_proc_address
jmp eax

на это
push real_proc_address
ret
nop


после чего в импреке использовал Trace Level1 (Disasm).
в результате осталась неопределённой всего одна функция - GetProcAddress, которую я протрейсил через отладчик

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

Ранг: 0.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 27 марта 2015 09:40
· Личное сообщение · #10

Спасибо, буду учиться

Добавлено спустя 11 минут
-=AkaBOSS=- пишет:
push real_proc_address
ret
nop

после чего в импреке использовал Trace Level1 (Disasm).
в результате осталась неопределённой всего одна функция - GetProcAddress, которую я протрейсил через отладчик


Из этого кода я понял, что Вы адрес процедуры помещаете в стек и потом операцией ret передаёте управление на неё. Н они хрена не понял, физику процесса, каким образом Trace Level1 (Disasm) нам помогает в данном случае. Да и где Вы вообще написали этот скрипт (OllуScript???)




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 27 марта 2015 11:03
· Личное сообщение · #11

вопрос только в том, что трейсер может обработать, а что - нет.
обычно он определяет первую константу, по которой совершается переход и которая соответствует экспорту какой-либо длл.
пересылка данных между регистрами - это частный случай отдельного пакера-протектора, и усложнять логику трейсера нет смысла - для этого есть плагины.
для пекомпакта тоже, кажется, существует плагин, но точно я не уверен.

и да, скрипт я писал для ollyscript



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 27 марта 2015 20:19
· Личное сообщение · #12

anma пишет:
pecompact 2.x

чуть более точно сообщает ProtectionID:
Code:
  1. [!] PE Compact v20352 (internal version) compressed !


ну и по EP действительно похоже:
Code:
  1. 021FA514   .  B8 A4B61F02   MOV EAX,021FB6A4                         ; Entry point
  2. 021FA519   .  50            PUSH EAX
  3. 021FA51A   .  64:FF35 00000 PUSH DWORD PTR FS:[0]
  4. 021FA521   .  64:8925 00000 MOV DWORD PTR FS:[0],ESP                 ; Installs SE handler 21FB6A4
  5. 021FA528   .  33C0          XOR EAX,EAX
  6. 021FA52A   .  8908          MOV DWORD PTR DS:[EAX],ECX
  7. ASCII: PECompact





Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 27 марта 2015 21:01 · Поправил: DimitarSerg
· Личное сообщение · #13

Судя по тому, что это чит для танчиков, человека интересует не столько сам процесс, сколько анпак.
Есть отличный анпакер для PEC, вот анпак: https://www.sendspace.com/file/bw3laz

-----
ds


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

Ранг: 20.4 (новичок), 8thx
Активность: 0.030
Статус: Участник

Создано: 27 марта 2015 22:33
· Личное сообщение · #14

PECompact разве протектор, что переходники на импорте ставит??
В нём, вроде, еще есть проверка crc после ОЕР или я путаю



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 28 марта 2015 09:29
· Личное сообщение · #15

hello пишет:
PECompact разве протектор

Из него протектор, как из говна граната

https://bitsum.com/pecompact/
Code:
  1. Software Protection
  2. While PECompact itself is not written specifically to be a protector, there are plug-ins to facilitate this. Additionally, compression itself obfuscates the module, adding an inherent layer of protection


hello пишет:
нём, вроде, еще есть проверка crc после ОЕР или я путаю

плаг: IsPacked API pec2hooks_ispacked.dll

самое полезное во всём этом, это Fast import (pec2hooks_fastimport)

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

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

Создано: 29 марта 2015 16:49
· Личное сообщение · #16

DimitarSerg пишет:
Есть отличный анпакер для PEC

Только под 8-ую винду не идет пришлось патчить.
http://www.upload.ee/files/4600849/Unpacker_PECompact.7z.html
Это работает под винду 8-ую.

| Сообщение посчитали полезным: DICI BF
 eXeL@B —› Вопросы новичков —› Распаковвка PEC2 (DLL). Не получается.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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