eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: alexsey007, vitalik9 (+9 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

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

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

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

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





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

Ранг: 300.0 (мудрец)
Статус: Участник

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

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

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

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

конечно

Ранг: 375.8 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

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

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

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

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

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

pecompact 2.x

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

Не помогло

Ранг: 231.1 (наставник)
Статус: Участник

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

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


Ранг: 140.5 (ветеран)
Статус: Участник

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

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

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


{ Атач доступен только для участников форума } - import.txt

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

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

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

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

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


Ранг: 140.5 (ветеран)
Статус: Участник

Создано: 27 марта 2015 06:36 New!
Цитата · Личное сообщение · #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 (гость)
Статус: Участник

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

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

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

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


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


Ранг: 140.5 (ветеран)
Статус: Участник

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

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

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

Ранг: 375.8 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 27 марта 2015 20:19 New!
Цитата · Личное сообщение · #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


Ранг: 222.1 (наставник)
Статус: Участник
radical

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

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

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


Ранг: 20.5 (новичок)
Статус: Участник

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

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

Ранг: 375.8 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 28 марта 2015 09:29 New!
Цитата · Личное сообщение · #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.2 (посетитель)
Статус: Участник

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

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

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

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

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

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS