自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 游戏保护模块

第八章:定位游戏保护模块GameSpiderkernel Detective1.定位ring0驱动级保护模块可以用KD比较游戏启动前后差异。2.定位ring3可以hook低层接口再栈回塑。(游戏可以自加载同一模块的另一份来用,此时hook无效)3.保护模块可能hook系统原生dll接口来保护,此时可以比较原生dll文件与加载到内存的映像来定位哪些被HOOK。为防止被保护模块

2015-04-15 23:26:42 2371

原创 页面异常反dump 及 内存访问异常hook

第七章:应用层保护加密,加壳,反调试,混淆。。。静态保护:去静态特征,去字符串,全局指针等。动态保护:在dump模块的方法中,一般会调用ReadProcessMemory来读取,可以修改PE结构中可选头中的ImageOfSize,还有抹去PE头的方法干扰,但对指定基址和大小就无效。修改页面访问属性为PAGE_NO_ACCESS可以反dump.修改代码方式的HOOK很难绕过代

2015-04-15 18:43:21 2308

原创 VEH Hook 及 检测

SEH(Struct Exception Handler,结构化异常) VEH(Vector Exception Handler,向量异常处理)SEH是OS提供给线程来感知和处理异常的一种回调机制。在Intel Win32平台上,由于FS寄存器问题指向当前的TIB(线程信息块),因此FS:[0]处能找到最新的一个EXCEPTION_REGISTRATION_RECORD结构。typed

2015-04-15 16:38:37 11626

原创 通过SEH 非inline hook

SEH(Struct Exception Handler,结构化异常) VEH(Vector Exception Handler,向量异常处理)SEH是OS提供给线程来感知和处理异常的一种回调机制。在Intel Win32平台上,由于FS寄存器问题指向当前的TIB(线程信息块),因此FS:[0]处能找到最新的一个EXCEPTION_REGISTRATION_RECORD结构。typed

2015-04-15 14:44:02 1625

原创 hook虚表监控虚表

RTTI(Runtime Type Identification,运行时类型识别)由c++编译器将对象的类型信息嵌入程序的只读数据段,以 支持C++的各种操作符在运行时确定(typeid)和检查(dynamic_cast)一个对象的数据类型。对微软的编译器而言,RTTI和虚表位置在-4的地址构建。#include #include #define VTSIZE 6#pragma pa

2015-04-15 09:24:56 869

原创 安全的交互通道 及 栈回塑检查与伪造

第四章:安全的交互通道消息钩子,Hook游戏消息处理过程,GetKeyState(),GetAsyncKeyState()和GetKeyBoardState()函数,进程间通信。消息钩子:SetWindowsHookEx(),UnhookWindowsHookEx()Hook游戏消息处理过程:GetWindowLong(),SetWindowLong()GetKeyState(),

2015-04-14 17:06:57 686

转载 模块隐藏(LDR_MODULE链 与 PE特征)

比较常见的模块隐藏方法有抹去模块的PE头,断开进程的LDR_MODULE链,Hook模块枚举函数等。后面备注VAD隐藏。//测试EXE,加载WaiGua.dll,再隐藏。#include #include #include typedef struct _LSA_UNICODE_STRING { USHORT Length; USHORT MaximumLength; PW

2015-04-14 15:54:49 7676

转载 注入(二):修改导入表(c++)

导入表注入:修改游戏EXE依赖dll树上找个结点,程序运行前加载,加载修改回导入表。 优:游戏依赖库多,不易用完整性来查验,同时客户端版本不同,更易躲过检测 缺点:文件操作明显,易被ProcessMonitor检测到//BeModeImportTableExe.exevoid main(void){ int i = 0; while(true) { __asm{ mo

2015-04-14 12:48:18 1415

原创 注入(一):APC注入

APC注入:Asynchronous Procedure Call,异步过程调用,每个线程都有一个APC队列,在用户模式下,当线程调用SleepEx,WaitForSingleObjectEx等进入"Alterable Wait Status. 此时系统会遍历APC队列,先进先出地处理其中函数(QueueUserAPC) 优:比较隐蔽 缺:实现的条件苛刻//负责注入的exe#incl

2015-04-14 10:20:56 1430

原创 游戏学习

外挂思想1.对于注入内存的内存挂,首先是注入外挂模块2.隐藏外挂模块3.与用户交互并操作游戏核心功能4.分析游戏安全保护并绕过5.外挂模块自我保护反外挂思路1.防止游戏客户端代码被分析(去明文字符串,加壳等等)2.防止被注入外挂模块(双进程保护,驱动监控加载模块)3.加密通信协议,防止重放数据包4.防止外挂call函数,修改代码与数据。第

2015-04-14 00:01:10 623

转载 PE学习(十一)第十一章:动态加载技术

kernel32.dll默认很早加载进去,其中有函数用于加载进程,否则进程创建不出。获取kernel32.dll的基地址:1.使用vs cmd自带的dumpbin工具:dumpbin /headers kernel32.dll 还有PEinfo,onlydbg XP OS下ntdll.dll,kernel32.dll不会被重定位。2.从进程地址空间开始搜索 寻找PE特征字符

2015-04-10 17:53:37 822

转载 PE学习(十)第十章: 加载配置信息表

第十章:加载配置信息加载配置信息表最初是用来存放附加信息,后来用来存放SEH各种导演句柄变成“异常处理表”异常与中断类似,中断有点外部(键盘)发出,异常由软件,异常发生时跑到异常处理函数,这个函数存放在中断描述符表(IDT)的数据结构中。异常:硬异常(系统异常)和软异常(程序自己抛出的异常);------------------------; 测试异常处理; 戚利;

2015-04-10 09:58:56 718

原创 PE学习(九)第九章:TLS 动态TLS与静态TLS

第九章:线程局部存储PEB,在NT中,该结构可以从进程空间的FS:[0x30]处找到,PEB描述的信息主要包括:进程状态、进程堆、PE映像信息等,其中Ldr记录了进程加载进内存的所有模块的基地址。TLS技术:动态线程局部存储技术、静态线程局部存储技术OS动态申请通过四个API,静态则通过预先在PE文件中声明数据存储空间。TlsAlloc函数一旦得到一个可用的索引值后,还会遍历进

2015-04-09 20:13:09 1359

转载 addr 与 offset 区别

一、相同点1、addr 和 offset 操作符都是获得操作数的偏移地址;2、addr 和 offset 的处理都是先检查处理的是全局还是局部变量,若是全局变量则把其地址放到目标文件中。二、不同点1、addr    伪操作符,只能用在 invoke 伪指令语句中;2、offset 伪操作符可以用在任何可能涉及偏移地址的指令(当然包括 invoke 伪指令)并想获取操

2015-04-09 18:49:35 649

原创 PE 学习(七)第七章:资源表

第七章:资源表call 0xXXXXXXXX   ;//push 后面的返回地址  再 jump 0xXXXXXXXXjump后面跟的是偏移量jump AA: EB 02 nop nopAA: jump AA: //EB FE   -2 因为本指令使EIP加2了IMAGE_RESOURCE_DIRECTORY STRUCT{ Characteristics dd

2015-04-08 10:27:18 446

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除