我试图在这里学习本教程,https://www.microsoftpressstore.com/articles/article.aspx?p=2201303,特别是其中提到x kernel32!写处理内存的部分。
我无法找到方法kernel32!WriteProcessMemory =,尽管文档中提到了它,但是我可以找到kernel32!_imp__WriteProcessMemory和kernel32!WriteProcessMemoryStub。我对windbg很陌生,并且试图遵循这个教程,所以我不确定这个方法是否已经被废弃,如果是,它是替代的,以及我们如何实现类似的功能。
谢谢
发布于 2020-05-13 10:39:52
导出的WriteProcessMemory函数实际上指向kernel32!WriteProcessMemoryStub存根,该存根本身跳转到重定向到kernelbase DLL的kernel32!__imp_WriteProcessMemory上,后者是该函数的“真实”位置。
让我们检查一下链接转储:
C:>link /dump /exports c:\windows\system32\kernel32.dll | findstr /I WriteProcess
1579 62A 00036C50 WriteProcessMemory0x36C50是函数"WriteProcessMemory“驻留在kernel32中的RVA (如导出表所示)。现在在风车里:
0:007> ln kernel32 + 0x36c50
Browse module
Set bu breakpoint
(00007ff9`4a6e6c50) KERNEL32!WriteProcessMemoryStub | (00007ff9`4a6e6c60) KERNEL32!ZombifyActCtxStub我们有一个完全匹配的,实际上是KERNEL32!WriteProcessMemoryStub函数。如果我们看看它:
0:007> u KERNEL32!WriteProcessMemoryStub
KERNEL32!WriteProcessMemoryStub:
00007ff9`4a6e6c50 48ff2599150400 jmp qword ptr [KERNEL32!_imp_WriteProcessMemory (00007ff9`4a7281f0)]
00007ff9`4a6e6c57 cc int 3我们可以看到,它只是跳转到KERNEL32!_imp_WriteProcessMemory (位于kernel32的.idata部分的某个地方)。
现在,如果我们看看这个位置包含了什么,我们就有了一个指针:
0:007> dp KERNEL32!_imp_WriteProcessMemory L1
00007ff9`4a7281f0 00007ff9`496f0ca0如果我们问windbg这个指针是什么:
0:007> ln 00007ff9`496f0ca0
Browse module
Set bu breakpoint
(00007ff9`496f0ca0) KERNELBASE!WriteProcessMemory | (00007ff9`496f0dc4) KERNELBASE!OpenWow64CrossProcessWorkConnection
Exact matches:
KERNELBASE!WriteProcessMemory (void)我们可以看到,实际上WriteProcessMemory的“真实”位置实际上是在kernelbase.dll中。
注意:您实际上可以使用dps在一个命令中执行最后两个命令
0:007> dps KERNEL32!_imp_WriteProcessMemory L1
00007ff9`4a7281f0 00007ff9`496f0ca0 KERNELBASE!WriteProcessMemory使用Windbg命令:
ln (List Nearest Symbols):给出了一个地址,找到最近的symbol.u (unassemble):用来拆解functiondp (display memory):显示内存(pointer )。- [`dps(Display Words and Symbols)`](https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/dds--dps--dqs--display-words-and-symbols-): as `dp` but with symbolic information.
https://stackoverflow.com/questions/61769164
复制相似问题