Oleg LOA wrote:
1) Для начала мы долго и упорно модифицируем отладчик кровня Ring0 на предмет того чтобы защита его не видела.
Ну это баян. Все способы обнаружения отладчика давно выявлены. Тем более что приложение не имеет доступ в 0 кольцо. В дебагеррах заточнных под хакерство достаточно пару опций настроить. Да, могут портить регистры DR, но не критично.
2) Потом долго и упорно прорываемся сквозь мутирующий код виртуального процесса после вызова readfile
Хорошо, пусть все вызовы внешних библ сделаны защитой через стабы. Но весь же код приложения не будет виртуализорован защитой, а только те места (как я понял) которые указал разработчик. Теперь скажи, ты натравливал виртуализер на Yap, или он и будет так лежать в памяти процесса? Можно конечно всё приложение перелить в байт код, но это будет ой!. Вряд ли так. Поэтому тормозим процесс в вызове CreateFile и вытрассировываемся вверх куда то в database_attach. Либо просто ищем в памяти код database_attach или какой другой функции. Ну и самая тяжёлая уязвимость - это то что данные всегда будут лежать (если специалных мер не предпринимать) в памяти процесса в нативном виде. Поэтому тормознуть процесс и найти в его памяти кеш Яап не составит труда. А потом собрать базу постранично. Можно попбовать ещё проще - на CreateFile ищем в памяти dpb по очень простой сигнатуре имени файла БД :-), а оттуда выбираем encrypt_key. Мораль в том что автоматические средства защиты не могут помочь против специфичного хака. Чтобы хорошо защититься надо ещё много ручной работы сделать. -- --- Home Page http://ok.novgorod.net/ap ---

