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 и вызовите последовательность выше.