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中,然后调用上面的序列。