这正是发生的情况: br /> CreateProcessA:创建一个新进程,进程创建标志0x00000004用于在挂起状态下创建进程
NtCreateSection:创建两个读/写/执行部分
ZwMapViewOfSection:将读/写/执行部分映射到恶意软件的地址空间中
ZwMapViewOfSection:将第二部分映射到挂起进程的地址空间中(因此,此部分在两个进程之间共享)。
ReadProcessMemory:将已暂停进程的图像的图像库读取到第1部分中
ReadProcessMemory:将恶意软件的映像库的图像读取到库2中。通过将第1节映射到新的流程库a ddress
ResumeThread:恢复执行注入代码的已暂停进程的线程
技术用语...我应该看一下上面的api的哪一个才能找到EP?大概是最后的NtMapViewOfSection吗?
#1 楼
您上面描述的技术称为“动态派生”或“过程空心化”。您可以按照https://reverseengineering.stackexchange中介绍的步骤找到子过程的入口点。 com / a / 8431/1562,尽管我建议在NtSetContextThread()
而不是SetThreadContext()
上设置断点,因为该恶意软件可能会跳过后者,而直接调用前者。
评论
我没有对该API的任何调用,还有这样的流程,它显示在这里:lexsi.com/securityhub/overview-kronos-banking-malware-rootkit/…在使用CreateProcessInternalW创建流程之后到我发布的API,最后是以下内容:CreateThreadEx调用NtResumeThread()运行新进程。也许我错过了什么?
– Peterlagunas
16-4-23在16:49
很好,那么“入口点”很可能是传递给CreateThreadEx()的lpStartAddress参数。
–詹森·格夫纳(Jason Geffner)
16年4月24日在20:04
多谢您重播。第五个参数将我指向无处。正如您在imgur.com/Nd3Iwze上看到的那样,这些是参数,并且该方向甚至在我的内存映射中都不存在。我很抱歉一次又一次地失败,可能会困扰你,但我真的需要解决这个问题
– Peterlagunas
16-4-26在2:56
好吧,关于最后一条评论,我以为我无法获得某种保护的原因?因为当我再次阅读您告诉我的帖子时,由于我无权输入该进程的内存,因此它似乎出现了。所以我的新问题是,某些API可以保护它吗?你会推荐我去哪儿看看?再次非常感谢你
– Peterlagunas
16-4-26的3:11
非常感谢你!!!我已经把它丢了:)再次谢谢!
– Peterlagunas
16年4月26日在13:19