恶意代码分析实战
未读Lab 9-1简要分析函数主体分析函数的主要流程分析如下:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869int __cdecl main(int argc, const char **argv, const char **envp){ char v4; // [esp+10h] [ebp-181Ch] char v5; // [esp+410h] [ebp-141Ch] char v6; // [esp+810h] [ebp-101Ch] char v7; // [esp+C10h] [ebp-C1Ch] CHAR v8; // [esp+1024h] [ebp-808h] CHAR ServiceName; // [esp+1428h] [ebp-404h] const char *v10; // [esp+1828h] [ebp-4h] if ( ...
恶意代码分析实战
未读Lab7-1Q1:当计算机重启之后,这个程序如何保证它继续运行(达到持久化驻留)创建一个Malservice的服务,并且该服务具有开机自启动的权限。
主函数简单跟一下:
12345678910111213int __cdecl main(int argc, const char **argv, const char **envp){ SERVICE_TABLE_ENTRYA ServiceStartTable; // [esp+0h] [ebp-10h] int v5; // [esp+8h] [ebp-8h] int v6; // [esp+Ch] [ebp-4h] ServiceStartTable.lpServiceName = aMalservice; ServiceStartTable.lpServiceProc = createProcess_401040; v5 = 0; v6 = 0; StartServiceCtrlDispatcherA(&ServiceStartTable); return createProcess_40104 ...
恶意代码分析实战
未读Lab6-1Q1:在main函数调用的唯一子过程中发现的主要代码结构是什么?主要是对0x401000处的函数返回值进行一个if判断。
123456789101112131415161718.text:00401040 push ebp.text:00401041 mov ebp, esp.text:00401043 push ecx.text:00401044 call sub_401000.text:00401049 mov [ebp+var_4], eax.text:0040104C cmp [ebp+var_4], 0.text:00401050 jnz short loc_401056.text:00401052 xor eax, eax.text:00401054 ...