在阅读“实用恶意软件分析”这本书时,我正在做7_01练习。以下是代码和答案的链接- https://jmprsp.wordpress.com/2016/03/03/practical-malware-analysis-analyzing-malicious-windows-programs-lab-7-01/
有两个命令,我不能真正理解它们在main函数中的作用(代码复制自IDA):
ServiceStartTable= SERVICE_TABLE_ENTRYA ptr -10h
var_8= dword ptr -8
var_4= dword ptr -4
argc= dword ptr 4
argv= dword ptr 8
envp= dword ptr 0Ch
sub esp, 16
lea eax, [esp+10h+ServiceStartTable]
mov [esp+10h+ServiceStartTable.lpServiceName], offset aMalservice
push eax
mov [esp+14h+ServiceStartTable.lpServiceProc], offset second_function
mov [esp+14h+var_8], 0
mov [esp+14h+var_4], 0
call ds:StartServiceCtrlDispatcherA
push 0
push 0
call second_function
add esp, 24
retnsecond_function是上面链接中显示的函数sub_401040,它没有获得任何参数,也没有理由两次推送0。有谁能解释一下这个吗?如果让我猜测,我会说编译器将这些推放在那里是出于某种原因,但我不知道为什么
发布于 2018-01-31 23:28:22
我认为,这个应用程序必须作为服务运行,但您可以通过设置指向主函数sub_401040的指令指针来强制它运行。
https://stackoverflow.com/questions/37025265
复制相似问题