首页
社区
课程
招聘
[旧帖] [求助]------------------------一个大难题---------复制内核对象句柄,关闭的问题 0.00雪花
发表于: 2012-7-2 23:15 1204

[旧帖] [求助]------------------------一个大难题---------复制内核对象句柄,关闭的问题 0.00雪花

2012-7-2 23:15
1204
h3:=OpenProcess(PROCESS_ALL_ACCESS , FALSE, pi1);{pi1是远程进程PID}
            DuplicateHandle(h3,buffer1.SystemHandleInformations[I].Handle,GetCurrentProcess(),@h2,0,true,DUPLICATE_SAME_ACCESS and DUPLICATE_CLOSE_SOURCE);
以上是写权限,复制远程对象句柄到本地进程

         ObjName.Name.Buffer:=GetMemory(300);
         ZwQueryObject(h2,ObjectNameInformation,ObjName.Name.Buffer,300,0);

         ObjName2 :=WideCharToString(ObjName.Name.Buffer);
         objname3:=MidStr(ObjName2,5,300);

        bool1:=AnsiEndsText('\device\HarddiskVolume\Windows\Fonts\StaticCache.dat',ObjName2);
     取出远程内核对象句柄比较是否关闭
    if bool1=True then
              begin
                   ntclose(h2);
              end;
{……………………………………………………………………………………………………………}                         
问题是这样复制过来的句柄关闭只是减少了句柄的引用计数,关闭不了远程的对象
更可怕的是复制一次句柄引用数就加1,再关闭那个复制过来的句柄就减1,等于什么都没做。
我测试本地进程的可以关闭对象,不管引用计数为多少。

我看到XueTr直接就可以关闭远程的对象,那个是怎么搞的?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 8
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
原来DuplicateHandle 最后一个参数可以自动关闭原句对象

没人教真是浪费时间,害的我弄了2小时
2012-7-2 23:36
0
游客
登录 | 注册 方可回帖
返回
//