首页
社区
课程
招聘
ring3下如何将DOSNAME转成NTNAME
发表于: 2012-1-30 13:46 5585

ring3下如何将DOSNAME转成NTNAME

2012-1-30 13:46
5585
比如将C:\\windows\\system32\\taskmgr.exe转成\\Device\\HarddiskVolume1\\windows\\system32\\taskmgr.exe

还有这两个叫什么名字
\\??\\C:\\windows\\system32\\taskmgr.exe
\\DOSDEVICE\\C:\\windows\\system32\\taskmgr.exe

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 28
活跃值: (69)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
QueryDosDevice
2012-1-30 13:54
0
雪    币: 227
活跃值: (66)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
DWORD WINAPI QueryDosDevice(
  __in          LPCTSTR lpDeviceName,
  __out         LPTSTR lpTargetPath,
  __in          DWORD ucchMax
);

这个是W版的声明,支持UNICODE,ANSI的话工程设置里选,对应的TSTR改成STR
这样调用:
TCHAR tcNtName[MAX_PATH];
memset((PVOID)tcNtName, 0, MAX_PATH * sizeof(TCHAR));
wcscpy(tcNtName, "C:\\windows\\system32\\taskmgr.exe");       //初始化Nt名
TCHAR tcDosName[MAX_PATH];
memset((PVOID)tcDosName, 0, MAX_PATH * sizeof(TCHAR));
QueryDosDevice(tcDosName, tcNtName, MAX_PATH);   //由Nt名得到Dos名


\\??\\C:\\windows\\system32\\taskmgr.exe这个就是Nt名,\?\代表本机
2012-2-2 08:41
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
4
要第一次初始化数组的话,不用调用 memset 。直接这样就可以
TCHAR tcDosName[MAX_PATH] = {0};

即使用 memset ,也不用这样写:
memset((PVOID)tcNtName, 0, MAX_PATH * sizeof(TCHAR));
这样写更直观:
memset(tcNtName, 0, sizeof(tcNtName));
2012-2-2 11:14
0
雪    币: 12
活跃值: (767)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
那DOSDEVICE\\C:\\windows\\system32\\taskmgr.exe 是不是NT  NAME?
2012-2-9 17:06
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
6
没有见过这个路径。。从哪得到的?
2012-2-9 18:24
0
雪    币: 12
活跃值: (767)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
忘了。。。我只是记录过。。,算了,也不常用
2012-2-10 10:07
0
游客
登录 | 注册 方可回帖
返回
//