在分析过程中,我发现了以下恶意软件:
...
lea eax, [ebp+ThreadId]
push eax ;lpThreadId
push ebx ;dwCreationFlags
push [ebp+lpParameter] ;lpParameter
push [ebp+lpStartAddress] ;lpStartAddress
push ebx ;dwStackSize
push ebx ;lpThreadAttributes
push [ebp+hProcess] ;hProcess
call CreateRemoteThread
...
我肯定知道的
从之前的一些部分,我知道
xor ebx, ebx -> ebx = NULL or zero
在 指向的地址处lpParameter,恶意软件存储了 的地址LoadLibrary。并且hProcess是 的句柄explorer.exe。
我想知道什么
与 相关lpStartAddress,我发现了以下几行:
...
push ebx
push [ebp+nSize]
push offset loc_402B58
push [ebp+lpStartAddress]
push [ebp+hProcess]
call WriteProcessMemory
...
因此,该函数将 的内容写入offset loc_402B58开始于的页面区域lpStartAddress(之前分配了一些行)。现在,当我转到 时offset loc_402B58,我看到以下内容(注意:我使用 IDA PRO):
loc_402B58:
push esi
mov esi, [esp+8]
lea eax, [esi+14h]
push eax
call dword ptr[esi]
test eax, eax
mov [esi+10h], eax
jz short loc_402B80
lea ecx, [esi+46h]
push ecx
push eax
call dword ptr [esi+4]
test eax, eax
jz short_loc402B80
call eax
push 0
call eax <----- edited because i have forgotten it
push 0 <----- ''
call dword ptr [esi+8] <----- ''
loc_402B80:
xor eax, eax
pop esi
retn 4
所以我的问题是:
什么大会在
loc_402B58和loc_402B80?