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

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

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

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

IT-новости

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

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

подробнее

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

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

подробнее

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

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

подробнее

           add    edi,edx                    ; +Адрес kernel

           cmp    word ptr [edi],'EP'        ; Проверка на PE

           jne    Exit                       ; Не равно – выходим

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

Теперь перейдём к поиску адреса функции GetProcAddress. Поиск данной функции используется в большинстве современных вирусов, ориентированных на Windows-системы.

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

Рассмотрим пример поиска адреса функции GetProc-Address:

           mov    ebx,edx                    ; Сохраним указатель

           mov    edi,dword ptr [edx+3Ch]    ; Адрес PE-заголовка

           add    edi,edx                    ; +Адрес kernel

           cmp    word ptr [edi],'EP'        ; Проверка на PE

           jne    Exit                       ; Не равно – выходим

           push   edx                        ; Сохраним адрес kernel

 

           add    ebx,[edi+78h]              ; Получим адрес таблицы экспортов

           mov    ecx,[ebx+18h]              ; Количество указателей

           mov    esi,[ebx+20h]              ; Указатель на таблицу  указателей имен

           mov    edi,[ebx+24h]              ; Указатель на таблицу ординалов

           add    esi,edx                    ; Адрес таблицы имен в памяти

           add    edi,edx                    ; Адрес таблицы ординалов в памяти

           cld                               ; Поиск вперед

           add    ebp,8                      ; ebp указывает на следующую строку

Search:                                     ; Ищем функцию GetProcAddress

           Lodsd                             ; Берем указатель из таблицы указателей

           add    eax,edx                    ; Получаем адрес памяти

           xchg   esi,eax                    ; В esi указатель на имя найденной функции

 

           xchg   edi,ebp                    ;

; Указываем на имя нужной нам функции

           push   ecx                        ; Кладём ecx в стек

           xor    ecx,ecx                    ; Обнуляем ecx


Предыдущая страницаОглавлениеСледующая страница
 
[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] [151] [152] [153]

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