如果后面没有条件跳转,测试指令是否有意义?

逆向工程 部件 x86
2021-07-02 02:57:21

粘贴我在恶意软件样本中找到的一段代码。

0040F695    push ecx                    
0040F696    lea ecx,dword ptr ss:[esp+8]
0040F69A    sub ecx,1000                
0040F6A0    sub eax,1000                
0040F6A5    test dword ptr ds:[ecx],eax 
0040F6A7    cmp eax,1000                
0040F6AC    jae sample.40F69A           
0040F6AE    sub ecx,eax                 
0040F6B0    mov eax,esp                 
0040F6B2    test dword ptr ds:[ecx],eax 
0040F6B4    mov esp,ecx                 
0040F6B6    mov ecx,dword ptr ds:[eax]  
0040F6B8    mov eax,dword ptr ds:[eax+4]
0040F6BB    push eax                    
0040F6BC    ret                                                

我不确定测试指令在这里实现了什么。我习惯于在它之后立即看到条件跳转。但是这里有一个测试,cmp,然后是条件跳转,还有一个测试,然后没有跳转。如果省略测试说明会有什么不同吗?

0个回答
没有发现任何回复~