Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

           push   return_address

           push   0c

           jmp    (GetWindowTextA+2)

Данный метод позволяет защититься от точки прерывания в SoftICE такого вида:

bpx GetWindowTextA

Так же можно сделать следующим образом:

           push   xxxxxxxx

           ................

           push   xxxxxxxx

           push   return_address

           push   0c

           push   77d6e498

           jmp    (GetWindowTextA+7)

И таких вариантов существует достаточно много.

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

Это позволит ещё более обезопасить программу от перехвата WIN API-функций.

Подсчёт контрольной суммы WIN API-функций

Данный метод мне ещё нигде не встречался, и хочется верить, что его идея принадлежит мне.

Он заключается в том, что перед вызовом необходимой WIN API-функции подсчитывается её контрольная сумма и сверяется с той суммой, которая хранится в программе. Как вы помните, при установленной точке прерывания на место первой инструкции записывается байт «СС» (int 3), который и изменяет контрольную сумму данной функции. При проверке контрольной суммы данной функции и определении отладки можно выйти из программы.

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

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

Обнаружение отладчика и завершение программы

Все отладчики подсистемы семейства Windows делятся по уровням:

n  ring 3 (уровень приложения)

n  ring 0 (уровень ядра)

В основном все отладчики, кроме SoftICE, относятся к отладчикам уровня приложения и против них существует множество методов, которые мы сейчас и рассмотрим:

Использование WIN API-функции IsDebuggerPresent

Использовать её довольно легко:

        if (!IsDebuggerPresent()) goto no_debugger

        //........................................


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100