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

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

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

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


Дата: Май 25, 2004 15:41:18

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


Дата: Май 25, 2004 16:26:08

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

это уже год как в арме реализовано...


Дата: Май 25, 2004 16:56:44 · Поправил: je_

остаёться только позавидовать проекту, участник которого роняет фразы типа:

>> да и в каком экзеке (reloc) он бывает?

АДЬЮ.

*****
(в части шпротов от kaspersky отстать и неспорить)


Дата: Май 25, 2004 18:54:47

начиная с ms link 6.0 exe по умолчанию компануется без перемещаемых элементов.
что же до протектора и чувства зависти - было специально проделано широкомасштабное исследование на предмет выяснение как загрузчик трактует спецификацию на PE, причем тестились не только оси семейства выни, но и различные эмуляторы, поэтому я уверен на 100%, что мой протектор будет работать везде.

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

вообще говоря, я обрабаыватю корректно практически всю DATA_DIRECTORY (в смысле на что она ссылается), за исключением сертификаторов, dbg ну и tls (правда в ними уже обещали помочь, подсказав разности реализаций на разных платформах, в которые я до конца не въехал)


Дата: Май 25, 2004 19:08:37

Крис, смущение вызывает другое.
Ты начинаешь говорить о дизабле страниц, что, в общем-то, разумеется, неизвестно новичку, но проблема-то в том, что новичков тут нет. И многие техники, что ты тут описал, уже давно применяются пакерами (скажем, и tls уже обрабатывается, и релоки) и лично я, и, наверняка, многие из людей, оставивших здесь свои посты уже и сталкивались и с релоками, и с tls, и с хитрозабубенистыми импортами и еще черт знает с чем. А негативная реакция на тебя в данном топике очень проста, как на мой взгляд. Поднимаешь тему вековой давности (армадилло давно реализовала эту твою идею, кроме того, это уродливо и медленно), начинаешь ее отстаивать. Когда тебя тыкают носом в то, что это давно есть, соглашаешься, и, в свою очередь, заплевываешь Xprot. Просят предложить что-то свое. Посылаешь всех нах. Ну и как прикажешь на это реагировать?

Я, в общем-то, и не спорю, что Xprot - игрушка. Тем людям, что его пытались копать, не хватает системных знаний, программирования дров в ядре, знания защищенного режима в специфике винды и т.п. Убежден, что все приемы икспрота достаточно дешевы, но только вот аргументировать мне это нечем, т.к. я пока не могу себе позволить потратить месяц на сколачивание литературы по теме, еще пару месяцев на ее чтение и написание примерчиков и неделю на взлом икспрота. Посему молчу. А ты наехал, сказал, что защита дешевая, но не привел ни примера, ни показал и своей защиты. Как будут относится к такому человеку?

Или я не прав?
Докажи примером. Практикой.


Дата: Май 25, 2004 19:10:45

нам очень интересно! расскажите более подробно!

>>мой протектор
значит вы один пока в прожекте??

какова бедет цена протекора?


Дата: Май 25, 2004 20:07:45

> Ты начинаешь говорить о дизабле страниц, что, в общем
> то, разумеется, неизвестно новичку,
позволю себе не согласиться. дисабл страниц описан у рихтера, а рихтер - это основы, можно сказать essential,
я лишь обратил внимание, что те дамперы, до которых я смог дотянуться (и которые есть в широком доступе) легко покупаются на этот дешевый трюк, либо отказываясь дампить, либо (что еще хуже) возвращая мусор. а это уже баг. дампера. фикситься элементарным вызвом VirualProtectEx, и как ты сам заметил пятью строками кода. вот и я про то. думал, что мое наблюдение окажется полезным. "хрен нас кто сдампт" надо понимать "человек, вооруженный дампером и нихрена не знающий о системе уж точно не сдампт..."

> И многие техники, что ты тут описал, уже давно
> применяются пакерами
так я и не претендовал на первестнство ;)
но - коль скоро применяются, значит, неплохобы вставить в дамперы эти строки, чтобы они дампили такие программы или нет?!

> скажем, и tls уже обрабатывается, и релоки)
угу. когда Ильфак начал паковать ИДУ ASPack'ом она перестала запускаться в doswin32, бо ASPack не совсем соотвествует спецификации. и это - "поддерживаются"?!
про ту же tls - рекомендую почитать history.txt от ulink'а чтобы умерять оптимизм по поводу обработки. я тоже ее "обрабатываю", только не заявляю об этом, т.к. Юрий Харон уже намекнул, где она будет падать, хотя я делал все в полном согласии со спецификацией + учет особенностей поведения конретных реализаций, но учел далеко не все... сейчас мне лень поднимать свои записи и смотреть какой пакер/протектор в каком месте нарушает спецификацию/негласные особенности загрузчиков, но пока не видел ни одного пакера, полностью поддерживающего хотя бы базовую спецификацию. если покажещь на такой пальцем - буду премного благодарен.

> и с хитрозабубенистыми импортами
это когда есть бинд да? крутой способ!
IDA показывает подложные функции и если поменять
Write на Read можно очень долго корпеть над алгоритмом,
не догадываясь, что ось вызывает совсем иное...

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

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

> Когда тебя тыкают носом в то, что это давно есть,
> соглашаешься, и, в свою очередь, заплевываешь Xprot.
когда я его поставил я содрогнулся. во первых, он на 100% загрузил ЦП и разовал мой иннет (у меня иннет через GPRS, а драйвер ИК связи такой кривой, что при 100% загрузке рвет коннект). потом, консольные приложения он обрабатывает настолько некорректно, что просто гробит их, или обрабатывает, но не все - мне лень было экспериментировать. ладно, возьмем гуи. объем кода, внедряемого в программу просто чудовищен - больше чем полметра. скорость ее работы... мда... нет, я столько не выпью (с) анекдот. лично я бы ни за что не стал защищать этим монстром свой софт. опять-таки требование прав админа для установки драйвера. а вот не дам я ему этих прав и отправлю защищенную им программу в битовую карзину.

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

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

> Докажи примером. Практикой.
да что там доказывать ;)
действительно, все подряд протекторы я не ковырял и не в курсе, что и кем реализовано. ну не ломаю я их на потоке, что поделать! и чужие идеи не краду, не заимствую. мне гораздо интереснее разрабатывать их самостоятельно, отталикваясь от инструментаря взлома, которому надо противостоять, как-то: дизассемблеры, отладчики, дамперы...
что же до практики... ну запостил я сообщение, что у pe-tools есть явный _баг_ (даже не ограниченная фунциональность), ну и что? мне сказали: сам дурак и вообще это не актуально. понятно ;) значит, в следующий раз подобные темы поднимать не буду, опасаясь быть неправильно понятым ;(


Дата: Май 25, 2004 20:16:01

> нам очень интересно! расскажите более подробно!
> значит вы один пока в прожекте??
> какова бедет цена протекора?
в общем, у меня уже давно в планах висит статья по автоматизированной защите ПО. так что ценовая политика очень интересна. клиент бесплатно получает протектор, на котором я отрабатываю материал для статьи, статью оплачивает издательство, так что я остаюсь не в обиде, хотя продукт формально получается бесплатным ;)

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

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


Дата: Май 25, 2004 20:18:05

Нет, ты сделал правильно. И я был, скажем так, консультантом при разработке PE Tools, но, говорю еще раз, автор потерялся, у нас уже давно нет связи. Разумеется, этот баг тривиально поправить. Но автора, видимо, забебало, жизнь скрутила, надоело или еще что-то. Ему ведь деньги за PE Tools не платили. Только юзали на халяву, еще и пинались, если что не так. Проект и умер (может быть).


Дата: Май 25, 2004 20:18:14

Да, за статью спасибо.


Дата: Май 25, 2004 21:31:45

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

LordPE -> active dump engine -> IntelliDump
Я правда ни разу им не пользовался но должОн дампить такие вещи..


Дата: Май 25, 2004 21:34:36

> Да, за статью спасибо.
ты обновленный вариант получил? а то я сначала черновик по ошибке послал.


Дата: Май 25, 2004 21:41:27

> LordPE -> active dump engine -> IntelliDump
> Я правда ни разу им не пользовался но должОн дампить такие вещи..
должен, но не дампит. проверить - дело нескольких минут.
вот, кто еще хочет попытать счаться ;)
/*-------------------------------------------------------------------- --------
 *
 *					anti-dump 0x001 named PAGE_NOACCESS
 *					===================================
 *
 *		чтобы противостоять дамперам можно пометить ненужные в настоящий
 * момент страницы памяти как PAGE_NOACCESS, а затем снять пометку.
 * 
 * + если задисаблить PE-заголовок, ни ProcDump, ни PE-tools не сдампят
 *   такой процесс, сообщив, "this process could not be dumped";
 *
 * + если сделать дисабл в середине, ProcDump отказывается дампить, а 
 *   PE-tools дампит, но оставляет в задисабленной странице мусор
 *
---------------------------------------------------------------------- ------*/
#include <windows.h>

#define _HEADER_

#ifdef _HEADER_
	#define ADDR 0x400000
#else
	#define ADDR 0x402000
#endif

xxx() { MessageBox(0,"dumped me now","anti-dump 0x001",0); }
main()
{
	DWORD old;

	// устанавливаем защиту на страницу
	VirtualProtect((void *)ADDR, 0x1000, PAGE_NOACCESS , &old);

	xxx();

	// снимаем защиту
	VirtualProtect((void *)ADDR, 0x1000, old , &old);
}


Дата: Май 25, 2004 21:43:29

вдогонку. вообще-то, идеологически правильно юзать GetModuleHandle для определения базового адреса, но лень ;) все равно здесь используется жесткая (hardcoded) привязка страниц, так что образцом для подражения данный пример не является


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

Вобщем у меня на 98-й такая прога падает при попытке чтения памяти, поэтому проверить не могу..

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


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