首页
社区
课程
招聘
进程安全令牌的问题
发表于: 2010-1-17 22:25 3681

进程安全令牌的问题

2010-1-17 22:25
3681
大家好,最近小弟OD了一个病毒exe
上面的dll里有一句话是这样的;
HANDLE hToken;
BOOL b = OpenProcessToken((void *)-1, TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES, &hToken);
我确认第一个变量是硬编码的0xFFFFFFFF,但是我参考MSDN和文档,说第一个是进程的句柄,没说可以是-1,请问-1是什么意思啊,代表全部进程吗。。。

还有,我在dll里使用这句,跟踪完直接从函数跳出来了,不能跟踪下面的语句了。不知道为什么(我用vc6.0)
但是我把自己的dll用0D走,发现还是可以继续走。。不明白,请问大大们啦~

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 95
活跃值: (419)
能力值: ( LV9,RANK:310 )
在线值:
发帖
回帖
粉丝
2
最好先调用GetCurrentProcess,虽然它返回的句柄就是-1
MSDN里有如下内容:
A pseudo handle is a special constant, currently (HANDLE)-1, that is interpreted as the current process handle. For compatibility with future operating systems, it is best to call GetCurrentProcess instead of hard-coding this constant value. The calling process can use a pseudo handle to specify its own process whenever a process handle is required. Pseudo handles are not inherited by child processes.
2010-1-17 23:37
0
雪    币: 18
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
哦。谢谢,我才知道返回当前句柄是-1
我怎么给你分呀。~
还有,我看的汇编代码是直接写的push -1,没调用GetCurrentProcess(),是编译器的原因吗
2010-1-18 22:14
0
雪    币: 95
活跃值: (419)
能力值: ( LV9,RANK:310 )
在线值:
发帖
回帖
粉丝
4
不是编译器的原因,其实目前直接用-1也行,但是为了程序能和将来的操作系统兼容,最好是调用GetCurrentProcess来代替硬编码0xFFFFFFFF

ps:点击主题上面的结贴就可以进入给分页
2010-1-19 00:40
0
游客
登录 | 注册 方可回帖
返回