游戏保护资料总结

考虑

1.tp,np,QQ对游戏的驱动保护怎么做的

2.360保险箱怎么做的

3.从键盘按键到驱动,然后到应用层的编辑框,按键码怎么传过去的? 比如QQ的编辑框接受,底层键盘钩子修改按键码 io device->总线->ioapic(prt table irq1 哪一个apic和中断号 int   9h 键盘中断处理  例程)->local apic->?? keycrypt

4.消息机制的内核实现? 比如给qq发最小化消息,弹假客户端,从应用层到驱动的实现过程.

5.防止别人通过openprocess,getsysteminfo,virtualqueryex,readprocessmemory,读目标进程的数据,比如做QQ号的进程查询

6.钩子和消息有全局和非全局之分,这个全局是workstation?session?

7.window提供的默认键盘驱动做了什么?向上层传break code.

 

游戏保护及密码框保护汇总: 

nProtect GameGuard,tp,Hackshield

 

http://www.cnblogs.com/ZYM/archive/2009/04/23/1442394.html  QQ2008仿造和webqq仿造

http://blog.csdn.net/lonlycode/article/category/498445  qq2008协议

http://bbs.pediy.com/showthread.php?t=126802  散谈游戏保护那点事~就从_TP开始入手吧

http://bbs.pediy.com/showthread.php?t=139541  X游戏保护,过了很多 还有问题

http://bbs.pediy.com/showthread.php?t=140344 围观一下tp的游戏保护

http://bbs.pediy.com/showthread.php?t=175448  密码控件安全技术浅析及攻击实例

http://bbs.hackav.com/thread-2174-1-1.html  截获QQ2010明文聊天消息附源码,最新版本QQ可用

http://bbs.pediy.com/showthread.php?t=166288  简单谈谈“游戏圈”所谓的神乎其技的行为检测  EPA对抗,CRC对抗

http://www.bmpay.net/thread-406-1-1.html 修改pe结构--debugport清零过np

http://bbs.pediy.com/showthread.php?t=142443 GalaxyAP过游戏反调试框架

http://www.cnblogs.com/BoyXiao/archive/2012/06/09/2542831.html   过 DNF TP 驱动保护(一)

http://bbs.pediy.com/showthread.php?t=158231  2012年11月TP的debugport清零 64位

http://bbs.pediy.com/showthread.php?t=104951  HackShield分析(1)

http://bbs.pediy.com/showthread.php?t=146953 散谈游戏保护那点事:HShield

http://www.bmpay.net/thread-266-1-1.html 腾讯游戏TP保护详解 

http://www.bmpay.net/thread-372-1-1.html 调戏gameguard 就是np

http://www.bmpay.net/thread-382-1-1.html DNF检测原理分析 

 

按键加密代码。绕过系统,直接获取键盘输入。

tp客户端的ppt

 

 

 

 

游戏启动前:

1.在windows的给QQ进程法最小化消息或者“显示桌面”的过程中做拦截,阻止QQ被最小化,除非人为点击。 

  hook NtUserMessageCall,如果消息id是最小化或者显示桌面,目标窗口是qq,则将消息源文件直接返回拒绝或发给bav判断。 setwindowsize 

2.防止别人通过openprocess,getsysteminfo,virtualqueryex,readprocessmemory,读目标进程的数据,比如做QQ号的进程查询

3.创建一个线程,不断检测当前窗口状态

4.通过像素的对比,不断检测是否有相似窗口,颜色和窗口大小的相似

 

5.随机窗口类名,非法窗口没法拿到QQ句柄,但也可以通过4拿到,不适合bav第三方软件做保护。

6.如果QQ窗口被非法隐藏了,强制恢复。

7.做键盘钩子的过滤,防止恶意软件直接拦截QQ窗口的键盘输入。

 

 

游戏启动后(类似游戏保险箱):   指定要保护的游戏的exe文件路径  ,360游戏保险箱的保护方式还没有逆向,具体不详

1.挂接消息处理

2.检测非法热键

3.检测ssdt的NtUserSendInput ,检测模拟按键

4.防止apc注入,防止其他模块注入到保护游戏内。

5.进程内SendInput上报

6.NtOpenProcess(防止od打开,防止蠕虫打开),NtOpenThread(防止调试器在内创建线程),NtReadVirtualMemory,NtWriteVirtualMemory,KiAttachProcess(防止别的软件附加),NtUserGetDC,NtUserGetDCEx,NtUserFindWindowEx,

  NtUserGetForegroundWindow,NtUserWindowFromPoint,NtUserSendInput,KDCOM.dll:KdReceivePacket,KDCOM.dll:KdSendPacket(这两个是COM串口的接受和发送数据主要用来方式别人双机调试)

7.检测钩子注入(消息钩子)

8.游戏启动时显示启动界面,检测内存外挂或者木马,简单扫描。

9.检测常用ARK,调试器,提示检测到非法模块。禁止分析。   

 

ObQueryNameString是通过object_header中的NameInfoOffset找到OBJECT_HEADER_NAME_INFO结构.然后根据OBJECT_HEADER_NAME_INFO的Directory..循环到ObpRootDirectoryObject.然后把Name拼起来以得到全路径的...然而Process的object_header中的NameInfoOffset为0.所以ObQueryNameString不会得到名字呀 

 

 

ReadProcessMemory:NtReadVirtualMemory

http://www.cnblogs.com/gussing/archive/2009/07/01/1514925.html

 

模拟按键:

getkeystate 

getasynckeystate

getkeyboardstate

directx

lowlevel hook

journalRecored Hook

getrawinputdata

 

 

 

ntusersendinput

->xxxSendInput->如果是INPUT_KEYBOARD,xxxInternalKeyEventDirect->

xxxProcessKeyEvent(正常按键也调用)->xxxKeyEvent->

 

 

typedef struct tagKEYBDINPUT {

    WORD    wVk;

    WORD    wScan;

    DWORD   dwFlags;

    DWORD   time;

    ULONG_PTR dwExtraInfo;

} KEYBDINPUT, *PKEYBDINPUT, FAR* LPKEYBDINPUT;

--写于2013-11-3

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值