我目前正在使用 IDA Pro(免费版)检查 WinXP VM 中的 32 位恶意软件可执行文件。我不明白这里的主要功能发生了什么。
我应该在哪里设置断点(IDA Pro,OllyDbg)以查看调试时实际压入堆栈的变量内容?我之前在偏移量00401230(开始 main)和004012C6(结束 main)处设置了一个断点,但是在观察 OllyDbg 中的例如堆栈窗格时,我并没有真正看到字符串(变量值)出现。我不确定我做错了什么。
在 OllyDbg 中打开字符串窗口,我可以看到一些字符串 - 我假设,将在 main 的函数调用中使用,包括szServerName和szPassword。
正如我们所见,在 内调用了三个函数main:
sub_401000(称为 7x;Pastebin)
sub_401170(称为 1x;Pastebin)
sub_401090(称为 1x;Pastebin)
旁注: 考虑到反馈,我决定在 Pastebin 中发布其他功能(见上面的链接)。在这里只发布主要功能,让我保持帖子简洁。
.text:00401230 proc _main near ; CODE XREF: ___tmainCRTStartup+15Ap
.text:00401230 ; int __cdecl main(int argc,const char **argv,const char *envp)
.text:00401230 argc = dword ptr 8
.text:00401230 argv = dword ptr 0Ch
.text:00401230 envp = dword ptr 10h
.text:00401230
.text:00401230 55 push ebp
.text:00401231 8B EC mov ebp, esp
.text:00401233 68 C0 B9 40 00 push offset szServerName
.text:00401238 68 00 A0 40 00 push offset unk_40A000
.text:0040123D E8 BE FD FF FF call sub_401000
.text:00401242 83 C4 08 add esp, 8
.text:00401245 68 C0 B3 40 00 push offset szUserName
.text:0040124A 68 00 A1 40 00 push offset unk_40A100
.text:0040124F E8 AC FD FF FF call sub_401000
.text:00401254 83 C4 08 add esp, 8
.text:00401257 68 C0 BF 40 00 push offset szPassword
.text:0040125C 68 00 A2 40 00 push offset unk_40A200
.text:00401261 E8 9A FD FF FF call sub_401000
.text:00401266 83 C4 08 add esp, 8
.text:00401269 68 C0 B7 40 00 push offset szLocalFile
.text:0040126E 68 08 A3 40 00 push offset unk_40A308
.text:00401273 E8 88 FD FF FF call sub_401000
.text:00401278 83 C4 08 add esp, 8
.text:0040127B 68 C0 BB 40 00 push offset unk_40BBC0
.text:00401280 68 08 A4 40 00 push offset unk_40A408
.text:00401285 E8 76 FD FF FF call sub_401000
.text:0040128A 83 C4 08 add esp, 8
.text:0040128D 68 C0 BD 40 00 push offset unk_40BDC0
.text:00401292 68 08 A5 40 00 push offset unk_40A508
.text:00401297 E8 64 FD FF FF call sub_401000
.text:0040129C 83 C4 08 add esp, 8
.text:0040129F 68 C0 C1 40 00 push offset szRemoteFile
.text:004012A4 68 08 A6 40 00 push offset unk_40A608
.text:004012A9 E8 52 FD FF FF call sub_401000
.text:004012AE 83 C4 08 add esp, 8
.text:004012B1 68 C0 B7 40 00 push offset szLocalFile ; lpszLocalFile
.text:004012B6 E8 B5 FE FF FF call sub_401170
.text:004012BB 83 C4 04 add esp, 4
.text:004012BE E8 CD FD FF FF call sub_401090
.text:004012C3 33 C0 xor eax, eax
.text:004012C5 5D pop ebp
.text:004012C6 C3 retn
.text:004012C6 endp _main
我很感激任何帮助我理解主要功能的指示和解释。