Shellcode ищет строку байтов: 0C330408Bh

Я изучаю работу вредоносного ПО (Blackhole Exploit), где я извлек шеллкод из вредоносного кода. Я разобрался во всем, кроме поиска строки байтов. Может ли кто-нибудь помочь мне в этом? Почему этот шеллкод (большинство вредоносных шеллкодов) ищет именно эту строку? Код поиска выглядит так:

mov   eax, 0C330408BH;
inc   esi
cmp   dword ptr [esi], eax
jne   //back to top//

2 ответа

Решение

Если вы берете волшебные байты, конвертируете их в формат с прямым порядком байтов и разбираете, вы получаете следующее:

8B 40 30    mov     eax, [eax+30h]
C3          retn

Итак, шеллкод ищет эту последовательность инструкций. Я не уверен на 100%, но я думаю, что он используется для поиска образа kernel32 в памяти (так как эта последовательность обычно происходит там).

В дополнение к ответу Игоря, я рекомендую вам прочитать эту статью http://skypher.com/index.php/2010/11/17/bypassing-eaf/. Код ищет конкретные инструкции в системных DLL, чтобы использовать их для чтения или записи данных из / в произвольные места в памяти. Поэтому, чтобы использовать этот код, просто поместите (адрес 0x30) в eax и вызовите последовательность выше.

Другие вопросы по тегам