Tesla.Angela 发表于 2014-8-16 12:11:37

[原创]WIN8/8.1X64上获取WOW64进程模块基址一个非常坑人的地方

大家都知道,WOW64进程一般有4个64位的DLL,以及N个32位的DLL。

4个64位的DLL分别是:wow64.dll、wow64win.dll、wow64cpu.dll、ntdll.dll,它们都在c:\windows\system32目录下。

在N个32位的DLL中,有一个32位的NTDLL,它在C:\WINDOWS\SYSWOW64目录下。其它的系统DLL,比如kernel32.dll,也在SYSWOW64目录下。

但是在WIN8上,如果用EnumProcessModulesEx来枚举模块,你会发现:有两个BASE不同的NTDLL,但显示的路径都在SYSTEM32目录下;其它诸如kernel32.dll的系统DLL,也全在SYSTEM32目录下。但对比一下64位进程的同名DLL的BASE,又不相同。

我一开始对这个现象感到百思不得其解,后来通过WINDBG才看出:除了BASE大于0xFFFFFFFF的DLL,即使路径显示在SYSTEM32目录下,实际上却是在SYSWOW64目录下!!!

为了解决这个问题,我写了一段QUICK AND DIRTY的代码。当你输入c:\windows\syswow64\ntdll.dll,将返回32位NTDLL的基址,输入c:\windows\system32\ntdll.dll,将返回64位NTDLL的基址。
**** Hidden Message *****

andylau004 发表于 2014-8-30 22:17:42

学习下,,大牛的文档

virus_kf 发表于 2014-10-30 14:53:04

没怎么看懂呢

mlyknown 发表于 2014-11-3 23:51:56

学习了

5ak 发表于 2014-11-9 15:56:56

恰好在这个地方有疑惑。谢谢分享

crkey 发表于 2015-7-4 00:15:42

遇到同样的问题,R3层要咋弄?

baohongyu 发表于 2015-8-1 20:19:01

回复.................

xiaomo 发表于 2015-10-11 15:49:57

学习啊

xiaomo 发表于 2015-10-11 15:49:59

学习啊

xiaomo 发表于 2015-10-11 15:50:02

学习啊

laily2008 发表于 2015-10-22 13:51:28

这是个头疼的问题,上次搞半天都没搞好...

luqi_44 发表于 2015-10-22 23:03:15

看看是怎么回事!!!!

link2006 发表于 2015-10-26 09:51:28

感谢楼主分享,顶贴支持~

yestodo 发表于 2015-10-26 14:38:39

哦,来看看是什么。

284406022 发表于 2015-10-27 00:09:11

来看看说法的

jgyolm 发表于 2016-3-14 15:31:43

thank you for share

Hijack 发表于 2016-4-13 11:15:19

学习一下。。。

haidejintou 发表于 2016-4-17 22:28:53

看看,啥东西

软绵绵 发表于 2016-4-17 22:30:27

学习了

锅炉猫MC 发表于 2016-4-24 21:20:33

a195097 发表于 2016-7-15 15:16:28

学习下,,大牛的文档

happyskysm 发表于 2016-9-6 09:54:47

一定要学习

黄枫叶 发表于 2016-9-6 20:14:13

原创意味着不开源??

chilun 发表于 2016-11-15 22:15:59

看看

liusenls 发表于 2016-11-17 23:17:26

学习了阿

flac 发表于 2016-12-29 13:55:45

正好要用到,谢谢分享

3207145141 发表于 2016-12-30 22:47:11

学习经验,少跳坑..

paigle 发表于 2017-1-4 10:58:11

经验=时间

freecat 发表于 2017-1-14 14:26:47

学习了

CleanLove 发表于 2017-4-23 23:14:45

恩 学习啦!

meesong 发表于 2017-5-29 12:43:45

学习!~

var 发表于 2017-6-23 10:02:07

因为windows将x86的dll都重写到syswow64了
页: [1] 2
查看完整版本: [原创]WIN8/8.1X64上获取WOW64进程模块基址一个非常坑人的地方