首页
社区
课程
招聘
[求助][求助]为什么OpenProcess返回失败?
发表于: 2009-8-19 20:27 12921

[求助][求助]为什么OpenProcess返回失败?

2009-8-19 20:27
12921
POINT pt1;
  pt1.x=500;
  pt1.y=350;
  HWND0=WindowFromPoint(pt1);//游戏句柄//游戏句柄
  DWORD  hProcId;
  GetWindowThreadProcessId(HWND0,&hProcId); 
  HANDLE nOK = HANDLE nOK = OpenProcess(PROCESS_ALL_ACCESS|PROCESS_TERMINATE|PROCESS_VM_OPERATION|PROCESS_VM_READ| PROCESS_VM_WRITE,FALSE,hProcId);
这里绝大部分是能成功的,为什么有些时候却是失败啊.特别是现在有一些加壳的软件是失败的,这是为什么,有高手指教一下吗.(征途,地下城与勇士这两个游戏是失败的)

  CloseHandle(nOK);

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
2
hook 了 NtOpenProcess,你打开肯定失败的嘛。。。
2009-8-19 20:55
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
都AllAccess了还要后面那一坨干啥?权限这东西需要多大就用多大,另外现在的游戏一般都有保护(np,hs,xtrap,tessafe之类),没那么容易让你折腾
2009-8-19 20:55
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
hook 了 NtOpenProcess,你打开肯定失败的嘛。。。

这个问题已经解决了,朋友,你以管理员身份运行你的软件就行了(这是我的一个欧美客户教我的)
2009-8-19 21:11
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
另外现在的游戏一般都有保护(np,hs,xtrap,tessafe之类),朋友,这是一些什么啊.(我没有上过电脑课,不明白这些是什么,别见笑)
2009-8-19 21:12
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
6
nProtect GameGuard,HackShield,XTrap,Tessafe,自己百度吧~
2009-8-19 22:15
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
楼上的朋友,谢谢你告诉我的这些,可是好象问题不在这里的.还是我再想想吧,我本想在这里找到答案的.
2009-8-20 00:08
0
雪    币: 636
活跃值: (174)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
8
OpenProcess不要动不动就 PROCESS_ALL_ACCESS 吧……至少之前提下权(SE_DEBUG_NAME)吧
2009-8-20 09:00
0
雪    币: 371
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hyp
9
问题在于你搞懂怎么填权限先吧
2009-8-20 09:34
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
那个用法主要是因为我没有上过电脑课,这是从网上找到的源码,我用了6年一直没有变的原因.实际上我都不知那些代码是什么意思的,发现能打开进程就行了.不好意思啊.以后我会改进的.
2009-8-20 10:36
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
象我现在都不知如何在指定进程中申请一些空间,无意无发现了一个替代的办法就是,建立起一个大的数组,然后不要设初始值就行了.
如下实现:
long  funcl[100][100];
////////////1装备损耗保护定义////////////////
long m_tzz=0xcc;//脚本特征值
//*******以下要开放成INI文件********
long ADDR_10=(long)funcl+0xa0;//将下面的代码写入这个数组
DWORD B10[20]=
{
        0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
        0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,//这里是20个空格
};
DWORD B11[208]=
{
        0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
        0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,//这里是20个空格
        0x90,0xa3,0x00,0x00,0x55,0x00,//mov [1],eax    01
        0x89,0x1d,0x00,0x00,0x55,0x00,//mov [2],ebx    02
        0x89,0x0d,0x00,0x00,0x55,0x00,//mov [3],ecx    03
        0x89,0x15,0x00,0x00,0x55,0x00,//mov [4],edx    04
        0x89,0x2d,0x00,0x00,0x55,0x00,//mov [5],ebp    05  
        0x89,0x3d,0x00,0x00,0x55,0x00,//mov [6],edi    06
        0x89,0x35,0x00,0x00,0x55,0x00,//mov [7],esi    07
        0x89,0x25,0x00,0x00,0x55,0x00,//mov [8],esp    08
        0x8b,0x1d,0x00,0x00,0x55,0x00,//mov ebx,[3]    09
        0x81,0xe3,0xff,0xff,0x00,0x00,//mov eax,[3]捡物品专用10          0x90,0xa1,0x00,0x00,0x00,0x00,
        0x90,0x90,0x90,0x90,0x90,0x90,//mov edx,[3]捡物品专用11     0x8b,0x15,0x00,0x00,0x00,0x00,
        0x90,0x90,0x90,0x90,0x90,0x90,//mov ecx,[9]    12
        0x90,0x90,0x90,0x90,0x90,0x90,//mov[ecx],ebx   13
        0x90,0x90,0x90,0x90,0x90,0x90,//mov[ecx+4],eax 捡物品专用14 0x90,0x90,0x89,0x41,0x04,0x90,
        0x90,0x90,0x90,0x90,0x90,0x90,//mov[ecx+8],edx 捡物品专用15 0x90,0x90,0x89,0x51,0x08,0x90,
        0x90,0x90,0x90,0x90,0x90,0x90,//add ecx,04 捡物品时变成1016
        0x3b,0x1d,0x00,0x00,0x55,0x00,//cmp ebx,[9]     17
        0x90,0x90,0x90,0x90,0x7f,0x06,//jg   --------------|18  不是练级与捡物品代码为        0x90,0x90,0x90,0x90,0x90,0x90,
        0x89,0x1d,0x00,0x00,0x55,0x00,//mov [9],ebx        |19
        0x90,0x90,0x90,0x90,0x90,0x90,//mov [9],ecx   *<---|20
        0x8b,0x25,0x00,0x00,0x55,0x00,//mov esp,[8]    21
        0x8b,0x35,0x00,0x00,0x55,0x00,//mov esi,[7]    22
        0x8b,0x3d,0x00,0x00,0x55,0x00,//mov edi,[6]    23
        0x8b,0x2d,0x00,0x00,0x55,0x00,//mov ebp,[5]    24
        0x8b,0x15,0x00,0x00,0x55,0x00,//mov edx,[4]    25
        0x8b,0x0d,0x00,0x00,0x55,0x00,//mov ecx,[3]    26
        0x8b,0x1d,0x00,0x00,0x55,0x00,//mov ebx,[2]    27
        0x90,0xa1,0x00,0x00,0x55,0x00,//mov eax,[1]    28
        0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
        0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,//这里是20个空格
};
2009-8-20 10:40
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我主要是不明白那些东东的.所以用的都是最最土的办法.望大家谅解
2009-8-20 10:43
0
游客
登录 | 注册 方可回帖
返回
//