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