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

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

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

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


Дата: Май 25, 2004 22:47:38

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


Дата: Май 25, 2004 23:03:57

программа закладывается на то, что:
Image Base = 40.00.00h,
Object Align = 10.00h
функция main размещается компилятором по 40.10.00h и гарантированно заканчивается до 40.20.00h, а 40.20.00h приналдежит RTL, которое не задействовано в функции xxx().
вполне естественные ограничения ;)
загрузите exe в иду/hiew и посмотрите по каким адресам что располгается, а затем при необходимости подкорректируйте ADDR


Дата: Май 25, 2004 23:33:05

Дело в том что я переписал это дело под masm, вроде ж не ошибся ;-)
.DATA?

old dd ?

.code

start:

invoke VirtualProtect, 0400000h, 01000h, PAGE_NOACCESS , OFFSET old

invoke MessageBox, 0, $CTA0("dumped me now"), $CTA0("anti-dump 0x001"), 0

invoke VirtualProtect, 0400000h, 01000h, old , OFFSET old

invoke ExitProcess, 0

end start


Дата: Май 25, 2004 23:48:12 · Поправил: Asterix

Ну всё равно, если не обращать внимание на мессаги винды и дампить на MessageBox'е, то у меня всё нормально сдампилось при помощи PETools v1.5.565.2004


Дата: Май 26, 2004 00:00:01

Ты с NEOx'ом еще связь держишь?


Дата: Май 26, 2004 00:15:32

> самодельный трюк с программы это одно,
> а протектор пакующий компилированные проги
с точки зрения дампера - один хрен разница.
с точки зрения протектора - там чисто детский код, несущий каркас которого реализуется и отлаживается за один вчер, а то и быстрее. кратко (избегая подводных камней, которые описывать муторнее, чем обходить), мы делаем так:
1) перехватаем ep
2) устаналиваем свой обработчик исключений
3) через контекст дотягиваемся до дебажных регистров и перехватыаем обращения к FS:[0], отлавливая регистрацию новых исключений и корректируя ее цепочку, чтобы гаратиировать, что мы получим исключение первыми
4) дисаблим все нахрен, оставляя в живых только себя
5) передаем управление на old_ep
6) если словили экспепшен - расщифровываем текущую страницу и зашифровываем предыдущую расшифрованную (если она есть)
7) если не в лом, организуем кэш страниц к которым обращение происходит чаще всего (это осталяет защиту, но не сильно)
8) учитываем ситуации типа mov [xxxx], x которым нужно сразу две страницы - кода и данных, иначе будут жуткие тормоза ;)
9) ну и так еше куча всего...


Дата: Май 26, 2004 00:17:56

Касательно пункта три - утверждение неверно.
SEH под пользовательским режимом винды - лишь довесок над LPC, так что хватаешь ты не то. С другой стороны, идея любопытна. Правда, профи такой пакер заломает довольно быстро :)


Дата: Май 26, 2004 00:18:36

> Дело в том что я переписал это дело под masm, вроде ж не ошибся ;-)
кхм... а базовый адрес так какой?


Дата: Май 26, 2004 01:10:31

volodya
> Ты с NEOx'ом еще связь держишь?

После 5-го мая от него не было ни одного письма..


Дата: Май 26, 2004 01:13:04

kaspersky
> кхм... а базовый адрес так какой?

Не понял вопроса? Image Base = 400000 , я же без извратов компилил ;-)


Дата: Май 26, 2004 01:39:09

> Ну всё равно, если не обращать внимание на мессаги
> винды и дампить на MessageBox'е, то у меня всё
> нормально сдампилось при помощи PETools v1.5.565.2004
карту памяти глянь - есть ли там NOACCESS на pe-хидее или нет.


Дата: Май 26, 2004 01:42:27

Уже даааавно глянул, NOACCESS стоит!


Дата: Май 26, 2004 01:57:17

> Касательно пункта три - утверждение неверно.
> SEH под пользовательским режимом винды - лишь довесок
> над LPC, так что хватаешь ты не то.
что довесок знаю. руссиновча читал ;)
что хватаю - без понятия. но оно хватается - факт.
а вот если не хватать - все упадет ;))
когда приложение делает FS:[0] чего-то там, то при возникновении исключения при обращении к задисабленной странице управление получит уже оно, а знает ли оно что ему нужно сделать? не знает. я а знаю! вот поэтому осторожно так вытаскиваю свой обработчик и ставлю его заново, чтобы получить управление первому.
ну еще по мелочи кое-что перехватывать приходится, но это уже не критично...

> С другой стороны, идея любопытна.
> Правда, профи такой пакер заломает довольно быстро :)
естественно. код расшифровщика-то ему будет доступен ;)
и такой дампер у меня уже есть (типа сам для себя). он просто читает все страницы одну за другой, а расшифровщик ему их автоматически расшифровывает ;)
другое дело, что наворотить тут можно много чего, например, подсунуть несколько "капканов" - странц к которым код защищаемой программы не обращается никогда. и коль скоро такое обращение произошло - нас дампят, значит, надо слегка "угробить" код, чтобы хакер дольше думал над ним.
сейчас работую вот над чем - пытаюсь создать свою подсистему в NT, загрузчик своего формата файлов, свой набор примитивов, ну да win32k.sys есть - вызывать можно.
интересно узнать мнение профи - насколько это усложнит взлом? дебажить нечем, дизассемблировать - тоже (ну во всяком случае без написания своих плагинов к иде), с техникой взаимодействия с сервером подсистем знакомы явно не все... сам загрузик релизован на чем-то очень сильно низкоуровневом (например, машине тьюринга, стрелке пирса), и пока не разберешься с ним - не разберешься с форматом исполняемого файла, а раз так - как его ломать?
к тому же он зашифрован, а расшифровщик упрятан частично в сервер подсистемы, частично используется функционал ядра...


Дата: Май 26, 2004 06:06:35

Вобщем проведя небольшое исследование выяснил что заNOACCESS'ая прога падает только при запущенном файрволе.

ЗЫ: LordPE, кстати, тоже нормально дампит заголовок с атрибутами странички NOACCESS


Дата: Май 26, 2004 07:10:31

интересно узнать мнение профи - насколько это усложнит взлом?

Я пока еще профи не этого уровня, не хватает времени, но на счет дебажить, ты погорячился. Дебажить будет чем, т.к. любое твое обращение к дрову (будь это вектор в IDT, или DeviceIOControl) ловится. Если ставить колгейт... Ну, это старфорс :) С ним еще не работал.
А вообще, ты только это, аналог xprotect на создай. И вообще, защита на основе драйверных движков.... Это для каждой проги привилегии админа...

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


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