我正在学习恶意软件(Blackhole Exploit)的工作原理。我从一个恶意代码中提取了 shell 代码。除了搜索字节字符串之外,我发现了所有问题。有人能帮我吗?为什么这个 shell 代码(大多数恶意 shell 代码)会搜索这个特定的字符串?搜索代码如下所示:
mov eax, 0C330408BH; inc esi cmp dword ptr [esi], eax jne //back to top//
ijxebb2r1#
如果你把魔术字节转换成little-endian格式,然后反汇编,你会得到以下代码:
8B 40 30 mov eax, [eax+30h] C3 retn
所以,shellcode正在搜索这个指令序列,我不是100%确定,但我认为它是用来在内存中查找kernel 32图像的(因为这个序列通常出现在内存中)。
mbyulnm02#
作为对Igor答案的补充,我建议您阅读这篇文章http://skypher.com/index.php/2010/11/17/bypassing-eaf/。该代码在系统DLL中查找特定指令,以使用它们从内存中的任意位置阅读数据或向内存中的任意位置写入数据。因此,要使用此代码,只需将(address-0x 30)放入eax,并调用上面的序列。
2条答案
按热度按时间ijxebb2r1#
如果你把魔术字节转换成little-endian格式,然后反汇编,你会得到以下代码:
所以,shellcode正在搜索这个指令序列,我不是100%确定,但我认为它是用来在内存中查找kernel 32图像的(因为这个序列通常出现在内存中)。
mbyulnm02#
作为对Igor答案的补充,我建议您阅读这篇文章http://skypher.com/index.php/2010/11/17/bypassing-eaf/。该代码在系统DLL中查找特定指令,以使用它们从内存中的任意位置阅读数据或向内存中的任意位置写入数据。因此,要使用此代码,只需将(address-0x 30)放入eax,并调用上面的序列。