DotFix :: Портал разработки и защиты программ
Главная
Программы
Статьи
Разное
Форум
Контакты
Автор: SLV. Дата публикации: 24.09.2004

Скрытие реальных сигнатур в программах, написанных на ассемблере. Часть вторая.


С момента написания моей статьи про скрытие реальных сигнатур в программах, написанных на ассемблере, прошло не много времени. У меня, как и у большинства исследователей стоит две оси (даже три, если считать PalmOS эмуль :): 98 (из линейки 9x) и XP (из NT платформенных). Эти две операционные системы очень разные, если не верите, почитайте хотя бы введение книги Джеффри Рихтера “Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows”. Там многое написано. Но вот, что я не учёл при написании моей первой статьи: в разных операционных системах при загрузке программ значения регистров процессора разные. Теперь объясню это на примере. Нам потребуется: OllyDbg; Windows XP; Windows 98. Чтож, приступим. Для начала будем проводить исследование в 98’ой винде. Загрузим шедевр программерской мысли, calc.exe в Олю. Видим такую картину:



Значит до загрузки программы в eax’е 0. Тогда вот что получается:

CODE NOW!
; ((eax == OptionalHeader.AddressOfEntryPoint) and (eax != 0))

.code
pushad
start:
cmp eax,1 ; в eax’е 1? нет! Там намного больше...
je @@OOO ; Не прыгаем...
call @@AAA
ret
@@AAA:
jmp @@BBB
ret
@@BBB:
call @@CCC
ret
@@CCC:
inc eax ; увеличение счётчика на 1. В итоге в eax’е EP+1, потом EP+2 и т.д.
; и прыжок на @@OOO не осуществится никогда...
jmp start
@@OOO:
popad
invoke GetModuleHandle,NULL
mov hInstance,eax
... cut here ...



Мда. А теперь посмотрим в XP (в ней всё первоначально и делалось). Повторим предыдущее деяние, только в другое системе. И видим это:



Вот такая подстава... Решается это как и всё гениальное (т.е. просто). Надо в начале кода (т.е. после метки start) поставить xor eax,eax или mov eax,0 (кому как нравится). В итоге должен получиться вот такой код:



Теперь посмотрим реакцию PEiD на наши выходки. Компилируем exe и сканируем...

Normal scan: Nothing found *
Deep scan: Nothing found *
Hardcore scan: Nothing found *


PESniffer аналогично в пролёте. Круто! Мы добились чего хотели. Спасибо за интерес к статье. С уважением, SLV/[ROCK]...

Комментарии
отсутствуют

Добавление комментария

Ваше имя (на форуме):

Ваш пароль (на форуме):

Комментарии могут добавлять только пользователи,
зарегистрированные на форуме данного сайта. Если Вы не
зарегистрированы, то сначала зарегистрируйтесь тут

Комментарий:



04.09.2011 Долгожданный релиз VB Decompiler. Масса улучшений декомпиляции Native Code. Значительно расширенна и обновлена справочная система на русском и английском языках.
20.12.2010 DotFix Software поздравляет наших клиентов и посетителей сайта с наступающим Новым Годом и рождеством! Желаем приятно провести праздники и успехов в новом году!
28.11.2010 Выпущена новая версия защиты DotFix NiceProtect. Основные изменения коснулись обфускатора Delphi программ. Теперь имеется полная поддержка Tab и Page контролов на формах, что обеспечивает максимальную совместимость обфускации с Delphi XE программами.
21.10.2010 Обновлен декомпилятор Visual Basic программ до версии 8.1. Декомпиляция P-Code программ становится все более идеальной, также проделана большая работа по улучшению анализа Native Code и .NET приложений.
16.09.2009 Полностью обновлен движок сайта! Теперь все ссылки имеют читаемый понятный вид, разного рода глюки на страницах убраны. И теперь сайт полноценно работает на второй версии нашего движка.
Архив новостей
Яндекс цитирования

Движок сайта: DotFix Engine v0.2
Администрация сайта:
платья знаменитостей