QQ堂3.0 用openprocess不能打开进程了,谁有办法解决?
总是返回 0
打开其他游戏是可以的,怀疑是驱动保护了,有什么解决办法啊?

解决方案 »

  1.   

    这个很麻烦
    要么,你去脱壳,QQ堂3.0应该是用了某种保护措施,比如Nprotect,那游戏我没玩过,所以不清楚,如果是那样的话,有两种方法,一是写个驱动把Nprotect的钩子全部unhook,但是不知道这种方法现在还有没有什么用,二是直接脱Nprotect的壳,总之哪一个方法都不是简单的方法,建议楼主到看雪寻求专业人士咨询。
      

  2.   

     谢谢你的建议,但那个游戏没有用Nprotect保护,是我发现所有腾迅出的游戏都不能openprocess,真奇怪,听高手说可以自己写驱动,但我不会怎么写驱动,有没有人有写好的openprocess驱动啊?
      

  3.   

    提升权限试试
    function AdjustProcessPrivilege(ProcessHandle:THandle;Token_Name:Pchar):boolean; 
    var 
    Token:Cardinal; 
    TokenPri:_TOKEN_PRIVILEGES; 
    ProcessDest:int64; 
    l:DWORD; 
    begin 
      Result:=False; 
      if OpenProcessToken(ProcessHandle,TOKEN_Adjust_Privileges,Token) then 
      begin 
        if LookupPrivilegeValue(nil,Token_Name,ProcessDest) then 
        begin 
          TokenPri.PrivilegeCount:=1; 
          TokenPri.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED; 
          TokenPri.Privileges[0].Luid:=ProcessDest; 
          l:=0; 
          //更新进程令牌,成功返回TRUE 
          if AdjustTokenPrivileges(Token,False,TokenPri,sizeof(TokenPri),nil,l) then 
            Result:=True; 
        end; 
      end; 
    end;