首页
社区
课程
招聘
[求助]这种情况是否说明这游戏采取了某种保护措施?
2008-2-25 22:01 5390

[求助]这种情况是否说明这游戏采取了某种保护措施?

2008-2-25 22:01
5390
本人新手,努力了三个月,终于从什么都不会学会了如何写远程钩子注入代码,在一般程序上测试正常,兴冲冲的向目标游戏动手,这个游戏名字我就不提了,反正我事先用OD和win32dsm都反汇编过,没遇到任何障碍,而且扫壳工具看了看貌似连壳子都没加,所以我觉得似乎没有保护,于是动手了,结果:注入钩子,提示成功,哈,没保护,ohyeah!按快捷键呼出控制界面……控制界面呼出了,但是……只见我封装在dll中控制界面仿佛中病毒一般疯狂的不断出现啊……囧,停都停不下来,只好注销。请问,这是不是他采取了某种保护措施啊?另外,这种保护的实现原理是什么,为什么能让我的控制界面像中毒一样疯狂的建立呢

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zuike 2008-2-26 08:38
2
0
代码问题。CreateForm问题……
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
abcxiawei 2008-2-26 10:29
3
0
那你怎么解释同样的代码在别的程序上注入呼出界面都是正常,唯独在游戏上不行呢?
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xunmeng 2008-2-26 10:49
4
0
这种情况我出现过 跟2楼说法 很相似
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
abcxiawei 2008-2-26 14:30
5
0
能说一下你当时出现的原因和解决办法吗,我附上dll文件的源代码

unit mydll;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls , ComCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  function HookProc(nCode:Integer;WParam: WPARAM;LParam:LPARAM):LRESULT;stdcall;
  function HookOn(lpHwnd:HWND;lpType:Longint):Longint;stdcall;export;
  function HookOff:Boolean;stdcall;export;
  
implementation


var
hHk: HHOOK=0; //钩子的句柄
hThread: Cardinal;  //长整形数据,窗口线程的标示符
hmod: Pointer;   //进程标示符的指针

//以下就是呼出封装在dll文件中窗口的代码
{$R *.dfm}
function HookProc(nCode:Integer;WParam: WPARAM;LParam:LPARAM):LRESULT;stdcall;
begin
if (wParam=VK_END) and ((LParam and $40000000) <> 0) then
  begin
  Form1:=TForm1.Create(Application);
  Form1.show;
  end;
Result :=0 //CallNextHookEx(hHk,nCode,WParam,LParam);
end;

function HookOn(lpHwnd:HWND;lpType:Longint): Longint;stdcall; export;
begin
hThread :=GetWindowThreadProcessId(lpHwnd,hmod);
//注入开始
hHk :=SetWindowsHookEx(lpType,@HookProc,hInstance,hThread); // WH_KEYBOARD
Result :=hHk
end;

function HookOff:Boolean;stdcall; export;
begin
if hHk<>0 then
begin
//移除挂钩
UnHookWindowsHookEx(hHk);
hHk :=0;
Result :=true;
end
else
Result :=false;
end;

end.
雪    币: 212
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
writer15 2008-6-21 14:59
6
0
随便加个全局变量判断窗口创建了没有, 创建了就不要再创建
游客
登录 | 注册 方可回帖
返回