· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› распаковка Dll , упакованной ASProtect

. 1 . 2 . 3 . 4 . 5 . 6 . >>

Посл.отвђт Сообщенiе


Дата: Май 19, 2004 13:03:09

Имеется следующая проблема:
Есть dll (точнее их несколько), запакованная ASProtect-ом:
PEiD v0.92 про неё говорит:
ASProtect 1.23 RC4 - 1.3.08.24 -> Alexey Solodovnikov

Распаковать эту dll-ку утилитой stripper v2.07 final не удалось, хотя некоторые dll-ки распаковались без проблем.

Помимо того , что dll-ка запакована , в DllMain судя по всему происходит проверка на зарегистрированность , и , если регистрация отсутствует, то вызывается GetCurrentProcess()/TerminateProcess(). Соответственно , при попытке загрузки этой dll через LoadLibrary ничего не выходит ...

Вопрос собственно в том, как эту заразу распаковать руками, точнее как брякнуться на начале распаковщика?
Заранее сенькс ...


Дата: Май 22, 2004 05:10:17

ну так утопчи entrypoint в ноль - процесс термироваться и не будет, правда, не факт, что от этого программа признает библиотеку зарегистрированной ;)
а все дело в том, что кованый soft-ice при загрузке библиотек со статической компановкой высплывает после вызова dllmain, чтобы это побороть надо вписать в EP CCh или типа того, ну а самому айсу приказать всплывать по int 3, дальше - руками.


Дата: Май 22, 2004 11:22:55 · Поправил: je_

niki, дарагая,

всём погрязшем мире окромя PEiD ещё есть такая партия: LordPE;
и там кнопа Breack&Enter.

(в aspr CRC сбой даст если в файл гнать CC)

ps.
надеюсь(эх?), это бует последний вопрос о том, как брякнуться на EIPax


Дата: Май 22, 2004 18:31:16

Никогда не пользовался Break&Enter, но здаётся мне что для DLL он не применим.
Вообще для распаковки ДЛЛ и АСПровых в том числе гораздо лучше использовать OllyDbg, он автоматом брякнется при загрузке ДЛЛ если указать это в его настройках.


Дата: Май 22, 2004 20:44:42

Еще и как применим, но только всем писать маленькую программку лень. Ведь dll тоже можно подгрузить - стандартная loadlibrary.


Дата: Май 22, 2004 20:58:31

Такую? ;-)
.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib kernel32.lib

.data

szLibName db "Comtls32.dll",0

.code

start:
   invoke LoadLibrary, OFFSET szLibName
   .if eax != NULL
      invoke FreeLibrary, eax
   .endif
   invoke ExitProcess, 0
end start


Дата: Май 23, 2004 00:22:44

нда.. "Гадание на Картах и Толкование Сновидении"..

LordPE УЖЕ имеет прогу TrapDll.exe, которую сам вызывает для подгрузки DLL.
но как щас посмотрел, TrapDll в файл пишет CCh в DLL-EIP и потом LoadLibrary-т..
..што не всегда красиво, как указывалось выше..

Описываю способ для SICE.
Сядем у дубугера и выищем, откудова ОС вызывает DLL-EIP;
пищем адрес на лбу..ну и потом ставим бряки тудыть-когда-нужно..

б) если уже известен адрес DLL-EIP, то BPMX..

для W98SE адрес в KERNEL32 один для EXE и DLL > (JMP EAX);
для XP он в NTDLL..

Вот и всё.

**
"а как найти этот адрес?"


Дата: Май 23, 2004 00:34:07

Asterix

Нет, еще не закончена. Добавь всов CC в EP в памяти и будет полный шарман :)


Дата: Май 23, 2004 00:52:56

volodya
Не выйдет, т.к. мы не можем отловить момент загрузки, а LoadLibrary вернёт управление когда dll'ка уже будет загружена.
Это только через Debug API можно сделать.


Дата: Май 23, 2004 00:55:52

Люблю людей, которые создают решения, а не проблемы. :) Молодец :)


Дата: Май 23, 2004 02:18:33

а вот и мои пять копеек ;)
находим в файле несколько свободных байт и пищем:
CCh/jmp old_ep, затем меняем точку входа на это место,
теперь отладчик каждый раз будет всплывать на точке входа.
если dll контролирует целостность своего ep, - восстанавливаем его в памяти, ну можно даже закинуть на стек крохотную программу, которая восстановит все в исходный вид, затирая свое тело, а потом передаст управление dll'и, но обычно до этого не доходит...


Дата: Май 23, 2004 04:15:31

CCh/jmp old_ep, затем меняем точку входа на это место

Задалбывает. Break&Enter круче.


Дата: Май 23, 2004 04:27:13

круче-то он, круче, но не всегда он есть ;)


Дата: Май 23, 2004 05:19:43

но не всегда он есть

Э-э-э, не. Вашу, уважаемый, методику работать в спартанском режиме я отнюдь не разделяю. Если садишься за взлом, то будь любезен иметь все возможное и невозможное под рукой :)


Дата: Май 23, 2004 05:22:35

кстати о дамперах. чтобы им противостоять, ненужные в данный момент страницы можно сделать PAGE_NOACCESS by VirtualProtect.
мыщъх показывает, что если задисаблить PE-заголовок, хрен нас кто сдампит ;)
еще круче, задисаблить страничку в середине - тады PE-TOOLS 1.50 (другие не проверял) сделат вид, что все сдампил нормально, но на самом деле вернет в задисабленной странице какой-то обкуренный мусор, что существенно затруднит анализ источника его возникновения. а вот ProcDump чесно скажет - дампить не буду, ибо не могу

. 1 . 2 . 3 . 4 . 5 . 6 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.118