|
|
| Посл.отвђт | Сообщен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 чесно скажет - дампить не буду, ибо не могу |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.118 |