0

我正在學習惡意軟件(Blackhole Exploit)的工作,我從惡意代碼中提取shellcode。除了搜索字節字符串外,我找出了所有的東西。誰可以幫我這個事?爲什麼這個shellcode(大多數惡意shellcode)搜索這個特定的字符串? 的搜索代碼是這樣的:Shellcode搜索字節字符串:0C330408Bh

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

回答

2

如果你把魔字節,將其轉換爲小端格式和拆卸,你會得到如下:

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

所以,shellcode的是搜索對於這個指令序列。我不是100%肯定的,但我認爲它用於在內存中查找kernel32映像(因爲這個序列通常發生在那裏)。

+3

是的它是用來查找內存中的kernel32映像。感謝您的澄清。但是我仍然想知道,爲什麼不給作者硬編碼而不是給字節串搜索? – Abhineet

+1

Hardcode是什麼? kernel32可能在ASLR的任何地方。 –

3

作爲伊戈爾答案的補充,我建議您閱讀這篇文章http://skypher.com/index.php/2010/11/17/bypassing-eaf/。該代碼查找系統DLL中的特定指令,以使用它們讀取或寫入內存中任意位置的數據。因此,要使用此代碼,只需將(地址0x30)放到eax中,然後調用上面的序列。