首页
社区
课程
招聘
[求助]在Windows下,如果给定一个内存的物理地址,怎样在指令中直接使用这个地址呢?是不是要先转化成线性地址后才能在指令中使用??
发表于: 2008-11-28 17:44 5791

[求助]在Windows下,如果给定一个内存的物理地址,怎样在指令中直接使用这个地址呢?是不是要先转化成线性地址后才能在指令中使用??

2008-11-28 17:44
5791
谁能解释一下啊!
如果物理地址是XXXX,那么MOV EAX,[XXXX]应该是错误的吧!!!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 260
活跃值: (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
CreateFile Device ......
2008-11-28 19:19
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
3
这种需求真是没见过,知道物理地址却不知道虚拟地址。

难道是DMA缓冲池?

我只知道原理上可以将\Device\PhysicalMemory对象映射到进程的地址空间中,然后就可以访问了。

不过只有Administrator对有“读”权限,SYSTEM用户具有完全访问权限

而普通用户则没有访问该对象的权限。

原理上这样,不过我没有实现过,如果说错了,请指教。
2008-11-29 00:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你说的线性地址是指带下划线的重定位地址么?
2008-11-29 00:29
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
5
刚才大致查了下,Windows Server 2003 SP1以后\Device\PhysicalMemory对象已经不允许从用户态访问了,那么Windows XP大概在SP2后也不允许了。
2008-11-29 00:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
hookin

hwd dll=lodbibary("xxx.dll");
PROC function=getProAddress(dll,"fuction");
typedef void (WINAPI *FUNCTION)();
FUNCTION f=(FUNCTION )function;
f();

or:
FUNCTION f=(FUNCTION )((PROC)imagebase+offsetof("xxx.dll","fuction"));
f();

or:
FUNCTION f=(FUNCTION )((PROC)00405000);
f();
2008-12-2 09:38
0
雪    币: 2134
活跃值: (14)
能力值: (RANK:170 )
在线值:
发帖
回帖
粉丝
7
[QUOTE=随风流浪;542646]谁能解释一下啊!
如果物理地址是XXXX,那么MOV EAX,[XXXX]应该是错误的吧!!![/QUOTE]

在分页保护模式下是错的
2008-12-3 01:07
0
游客
登录 | 注册 方可回帖
返回
//