#
__cdecl(__cdecl) 119, 164, __fastcall(__fastcall) 119, 305
188–189, 191, 305
__stdcall(__stdcall) 119, 191–192, __thiscall(__thiscall) 119,
209–210, 220190–192, 207, 210, 220, 259
A
A* 搜索算法(A* search algorithm) 累加器(accumulator) 104
277
动作间隔(action intervals) 311动作函数(actor functions)
257–261, 266, 268
执行动作(actuation) 256–257, 添加热键(Add Hotkey) 23
259, 266, 311
地址空间布局随机化(Address Space Adobe AIR 钩子(Adobe AIR hooking)
Layout Randomization (ASLR)) 76, 214
78, 157–158
airlog(airlog tool) 207–208, 211反作弊检测(anti-cheat detection)
296
反作弊 rootkit(anti-cheat rootkit) 反作弊软件(anti-cheat software)
310290, 296, 306, 310, 312
反群体控制破解(anti-crowd-control 反调试技术(anti-debugging
hacks) 260techniques) 297, 301
把调用钩子应用到 Adobe AIR(算术指令(arithmetic instructions)
applying call hooks to Adobe AIR) 113–114
120, 205
Asm2Clipboard(Asm2Clipboard) 汇编代码(assembly code) 3,
60, 12934–36, 39, 42–44, 47–49, 54–56, 60,
74, 78, 100, 103, 106–110, 116,
118–119, 122, 125, 128–129, 155, 157,
163–165, 170, 179, 181–183, 185, 189,
207
汇编语言(assembly language) 84, 汇编模式(assembly patterns) 34,
100, 103, 106–107, 112–113, 11539, 126
AStarNode 类(AStarNode class) AT&T;(AT&T; syntax) 102
277–279, 281, 285
自动连击(autocombo) 261自动闪避(autododge) 261
自动治疗(autohealing) 259–261, 自动放风筝(autokite) 289
267
自动放风筝机器人(autokite bots) 自动治疗者(automatic healer)
289259–261, 267
自主机器人(autonomous bots) 2, 4, 自动装填(autoreload) 261
11, 13, 262–289
自动狙击(autosnipe) 289自动狙击机器人(autosnipe bots)
289
自动墙机器人(autowall bots) 288
B
封禁浪潮(ban waves) 290银行(bank) 286
Bigger Than(Bigger Than scan type)二进制验证(binary validation)
19292–293, 306, 310
机器人足迹(bot footprints) 296分支(branching) 65, 84, 116, 118,
150, 185, 201, 249, 263
断点(breakpoints) 39, 41–42, 44,
46, 48, 50–51, 54–56, 58–60, 62–63,
107, 127, 185, 228, 237, 247–248, 251,
257–259, 298, 300
C
C 风格操作符(C-style operators) 51调用钩子(call hooks) 120, 185,
188–189, 191–193, 205, 209–210,
213, 230, 306
调用栈(call stack) 31, 42, 46, 64, 71, 关联它们以定位解析器(call stack
73–74, 84, 103, 105, 107–109, 155, correlation) 248
247–251, 257–258, 302
调用栈图(call stack graph) 64调用约定(calling conventions) 84,
119–120, 187, 190, 192, 259
进位标志(carry flag) 106, 116洞穴机器人(cavebots) 262,
286–289
洞穴(caves) 60, 163–172, Cheat Engine(Cheat Engine) 4, 11,
174–176, 229, 262, 286–28916–39, 50, 54, 57, 61, 66, 68, 84, 99,
120, 122, 126–127, 138–140,
144–145, 147, 236–238, 259
作弊表(cheat tables) 21–23, 28, 33Cheat Utility(Cheat Utility) 61
类实例(class instances) 84, 97, 99, 类(classes) 9–12, 17, 19–24, 28,
119, 189–190, 192–193, 216, 220, 259, 36, 39, 42, 44–46, 50–55, 57, 61,
26769–71, 79–81, 83–86, 88, 90, 92,
94–97, 99–100, 106–107, 113, 115,
117, 119, 122–123, 127, 130–131,
133–138, 141–142, 144, 152–155,
159, 169–170, 177–179, 181,
184–185, 188–194, 196, 202,
206–207, 216, 218, 220, 224, 227,
229–231, 233, 235–238, 240–241,
246, 250, 252, 254, 257, 259, 262–263,
266–267, 277–279, 281, 285–289,
291, 295–296, 311–312
代码洞穴的内存转储(code cave 代码洞穴(code caves) 60, 163–167,
memory dump) 167169–171, 174–176
代码注入(code injection) 3–4, 9, 代码补丁(code patches) 47, 49, 66
12, 147, 161, 163–180
命令行插件(command line plug-in) 注释列(Comment column) 44
50, 54, 61, 63, 107
条件断点(conditional breakpoints) 控制流操纵(control flow
39, 44, 48, 50–51, 54–56, 60manipulation) 109, 179, 181, 225
控制理论(control theory) 13, 260, 写入时复制(copy-on-write)
262–266, 270, 272, 286154–155
复制汇编代码(copying assembly code)计数器(counter register) 104, 140,
60208–209
创建线程(CreateRemoteThread()) 群体控制(crowd control) 260
160, 172, 175
代码段(CS register) 107
D
数据修改(data modification) 112数据寄存器(data register) 104
调试按钮(debug buttons) 40调试寄存器(debug registers) 298
decode()(decode()) 207, 210–211, 存款器(depositor) 286
213
目标索引(destination index) 105检测视觉线索(detecting visual cues)
242–243
Dijkstra 算法(Dijkstra's algorithm) Direct3D 设备(Direct3D device)
276–277216–217, 221, 224, 229–230, 233
Direct3D 钩子(Direct3D hooks) 方向光(directional light) 229
214, 222, 225, 228, 233, 239, 241, 244
反汇编窗格(disassembler pane) 反汇编列(Disassembly column) 44
43–44, 46, 48, 57, 60, 64, 124–125,
208, 248
发现设备(discovering the device) DLL 注入(DLL injection) 177
217, 224
DllMain()(DllMain()) 176–177DNS 缓存扫描(DNS cache scans)
292–293
DOS 头(DOS header) 194–195DrawIndexedPrimitive()(
DrawIndexedPrimitive()) 233–235,
240, 245
绘制循环(drawing loop) 214, 216, 数据段(DS register) 107
218, 228
转储窗格(dump pane) 43, 46–47, 动态诱饵(dynamic lure) 287
97
E
EAX(累加器)(EAX register) 104EBP(栈基址指针)(EBP register)
105
EBX(基址寄存器)(EBX register)ECX(计数器)(ECX register) 104
104
EDX(数据寄存器)(EDX register)EFLAGS 寄存器(EFLAGS register)
104106–107, 116
EIP(EIP) 44–45, 52, 57, 106, 116, 模拟键盘(emulating the keyboard)
118, 171–172, 174, 224251–252
encode()(encode()) 207–210, 213EndScene() 钩子(EndScene() hook)
224, 229, 234, 239
误差校正(error correction) 266, ESEA 反作弊工具包(ESEA
272–273, 275, 288–289Anti-Cheat toolkit) 292
ESP(栈指针)(ESP register) 105欧几里得距离(Euclidean distance)
279
事件日志(event log) 72–73执行索引寄存器(execution index
register) 106
经验 HUD(experience HUD) 238导出表(export table) 74
表达式引擎(expression engine) 39,
50–51, 53–54, 56–57
F
fastcall(fastcall) 119, 305反馈回路(feedback loop) 263–266,
269–271
查找高分文件(finding a high score 查找并关闭互斥体(finding and
file) 69, 74, 81closing a mutex) 75, 81
查找字节序列(findSequence()) 213指纹识别(fingerprinting models)
234, 240, 244
浮点数(floating-point numbers) 53战争迷雾(fog of war) 4, 12, 181,
227–241
浮点单元(FPU registers) 45帧(frame) 36, 56, 74, 103, 105,
109–112, 119, 191, 201, 214, 216–217,
221, 241, 244–246, 256–257, 263
冻结间隔(freeze interval) 23冻结(freezing values) 22–24, 33,
46, 172–173, 237
附加段(FS register) 107函数调用(function calls) 12, 26, 36,
40, 44–45, 55–60, 64, 84, 103,
110–112, 118–119, 125, 127–129,
159, 187, 190, 195, 207, 209–210, 215,
220, 222, 240, 248–249, 258–259, 304
G
游戏更新(game updates) 121–122, GameGuard 工具包(GameGuard
126, 128, 240toolkit) 293
通用寄存器(general registers) GetModuleHandle()(
103–105, 170–171GetModuleHandle()) 159–161, 164,
176, 179
GetProcAddress()(GetProcAddress())金币(gold) 6, 10–11, 53, 238, 286
160, 294
贪婪最佳优先搜索(greedy best-first 守卫页面(guard pages) 154–155
search) 276–277
H
停机问题(halting problem) 295硬件封禁(hardware bans) 291
硬件断点(hardware breakpoints) 哈希验证(hash validation)
62, 298291–292
抬头显示(heads-up display (HUD)) 启发式检测(heuristics) 311
227, 237–238
十六进制转储列(Hex dump column)钩子(hooking) 60, 100, 120, 181,
43185, 188–205, 208–211, 213–214,
216–225, 227–230, 233–234, 237,
239–241, 244–245, 259, 261–263,
266, 272, 293, 296, 300, 304, 306–307,
310
热键(hotkeys) 22–23, 40–42, 44,
47–48, 71, 77
I
IAT 钩子(IAT hooks) 194–197, IDIV(IDIV) 115–116
199–201, 224, 306
导入地址表(import address table 导入描述符(import descriptors)
(IAT)) 185, 194196–198
IMUL(IMUL) 114–116索引寄存器(index registers)
105–106
注入代码(injected code) 11, 84, 147, 内联汇编(inline assembly) 179,
163, 175, 177–179, 185, 200, 216, 304190–191, 207, 259
程序化输入(input emulation) 294指令(instructions) 19–20, 40, 44,
47, 55, 60, 100–103, 106–107,
112–119, 182–186, 191–192,
202–203, 205, 208, 211, 213, 297–298
整数(integers) 24, 47, 53, 72, 85, 拦截网络流量(intercepting network
101, 122, 139, 144, 158, 164, 184, 197traffic) 242, 245
中断处理程序(interrupt handlers)
297–299
J
跳转钩子(jump hooks) 120, 185, 跳转指令(jump instructions)
193, 201–205, 213, 216–218, 116–117
220–221, 224, 228, 244, 306
K
内核模式 rootkit(kernel-mode rootkit)放风筝(kiting) 263, 271, 285, 287,
305289
L
光照破解(lighthacks) 228–231, 236链表(linked lists) 30, 136, 138–140
小端序(little-endian) 85–86, 186加载器锁(loader lock) 176–177
加载画面 HUD(loading-screen LoadLibrary()(LoadLibrary())
HUDs) 241175–177
Lua 脚本(Lua scripting) 16, 22, 34, 诱饵模式(lure mode) 287
36, 126, 139–140, 144–145
M
机器学习(machine learning) 311曼哈顿距离(Manhattan distance)
279, 285
内存地址(memory addresses) 17, 内存断点(memory breakpoints) 46,
27–29, 33, 38, 43, 53, 103–104, 106, 54–55, 62–63, 228, 237
109, 113–114, 118, 127–128,
151–152, 158, 167, 178, 240, 243
内存映射(memory map) 41内存修改(memory modification)
16, 21–22
内存保护(memory protection) 147, 保护类型(memory protection types)
153–154, 156–157, 183–184, 154–155
186–187, 193, 219, 300
内存扫描(memory scanning) 内存欺骗(memory spoofing) 292
16–18, 24, 36, 57, 121–123, 194, 211,
228, 236, 291, 307
内存修改(modifying memory) 16, 监控内存(monitoring memory) 242
21–22
MOV 指令(MOV instruction) 多客户端补丁(multiclient patches)
112–113, 19147
互斥体(mutexes) 75, 79–81
N
近调用(near calls) 185–187, 202, 网络数据包(network packets) 59,
207, 209–210, 306174, 246
NOP 命令(NOP command) NOP 填充(NOPing) 48–49, 100,
183–185181–184, 204
数值数据(numeric data) 51, 85–86
O
观察事件(observing events) 245, 观察游戏事件(observing game events)
259 242
OllyDbg(OllyDbg) 4, 11, 34, OllyFlow(OllyFlow) 63–66
39–66, 68, 74, 78–79, 84, 86, 88, 97,
107, 120, 123–124, 126, 129, 147, 165,
207–208, 237, 247–248, 257–258,
301, 303
OnLostDevice()(OnLostDevice()) OpenProcess()(OpenProcess())
223149–150, 294
操作数语法(operand syntax) 101操作数(operands) 49, 52, 84,
100–103, 107, 109, 112–116, 118, 164,
185
可选头(optional header) 195溢出标志(overflow flag) 116
P
数据包解析(packet parsing) 127, 数据包(packets) 34, 59, 127, 174,
246–247201, 206–207, 210, 240, 245–248,
250–251, 256, 260, 284
加壳(packing) 296–297, 305PAGE_EXECUTE_READWRITE(
PAGE_EXECUTE_READWRITE)
154–155, 157, 183–184, 187, 203, 219
PAGE_READWRITE(补丁(patches) 6, 34, 42, 47–49, 66,
PAGE_READWRITE) 154–155, 128
157, 193, 198, 200
路径重复(path repetition) 311寻路(pathfinding) 13, 275–277, 286
PE 头(PE header) 194–195, 197, PeekMessage()(PeekMessage()) 44,
20158, 224, 259
完美准确度(perfect accuracy) 312选人阶段 HUD(pick-phase HUDs)
241
放置钩子(placing hooks) 60, 192, 放置补丁(placing patches) 47–48
194, 197, 201, 211, 213, 218–219, 222,
224, 306
游戏时间(playtime) 311指针链(pointer chains) 25–26,
32–33, 130, 138, 259
指针重扫(pointer rescanning) 32指针扫描器(pointer scanner)
26–29, 32
指针扫描(pointer scanning) 16, POPAD(POP instruction)
24–30, 32–34, 38, 99, 138, 259170–172, 204–205
进程环境块(process environment Process Explorer(Process Explorer)
block (PEB)) 1794, 11, 42, 66–82
进程句柄(process handles) 进程标识符(process identifier) 147,
149–151, 156, 164, 169, 177–178152, 173
Process Monitor(Process Monitor) 伪代码(pseudocode) 17, 25–27, 55,
4, 11, 66–8259, 100, 115–116, 118–119, 164, 182,
208, 235, 238, 261
PunkBuster(PunkBuster) 290–293, PUSH 指令(PUSH instruction) 55,
304–306118
R
范围破解(range hacks) 240内存读取(reading memory) 38, 53,
130, 151, 154, 178, 206, 237, 240, 242,
262–263, 266, 272, 305
ReadProcessMemory()(ReadProcessMemory()(
ReadProcessMemory()) 149–153, ReadProcessMemory()) 149–153,
156, 294156, 294
重定位(rebase) 195「引用」窗口(References window)
44, 46, 57, 124
补给器(refiller) 286寄存器(registers) 43, 45–46, 50,
52–55, 57, 84, 101–110, 112–116,
164–165, 170–171, 173, 187,
201–202, 204–205, 259, 298
寄存器窗格(registers pane) 43, 45重扫(rescans) 18, 20, 32–33, 236
Reset()(Reset() hook) 221–224响应式破解(responsive hacks)
3–4, 12, 242–261
响应式破解(responsive hacks) RETN(RET instruction) 65, 103,
3–4, 12, 242–261106, 164–166, 168, 171–172, 202, 211
逆向工程(reverse engineering) 3, 5, RTMP(RTMP) 206–207, 210, 213,
11, 73, 128, 194, 228, 241, 276246
RTMPS(RTMPS) 206–207, 210, 运行跟踪(run trace) 42, 49–50,
213, 24658–59
S
扫描码(scan code) 255扫描类型(scan types) 19–20
扫描值(scan values) 17, 19截图(screenshots) 291–292,
305–306
脚本接口(scripting interface) 288搜索算法(search algorithms) 13,
143, 262, 275–277, 285–286
段寄存器(segment registers) 45, 52, 发送数据包(sending packets) 207,
107–108256
SendInput()(SendInput()) 252–253, SendMessage()(SendMessage())
255–256, 294–295253–256, 294
服务器端启发式(server-side shellcode(shellcode) 163, 165–167,
heuristics) 311170–172, 174, 295
符号标志(sign flag) 116基于签名的检测(signature-based
detection (SBD)) 291, 303
技能射击(skillshots) 242, 275, 源索引(source index) 105
288–289, 312
法术训练器(spell trainers) 栈段(SS register) 107
260–261
栈基址指针(stack base pointer) 105栈帧(stack frames) 36, 74, 103, 105,
109–112, 119, 191
栈窗格(stack pane) 43, 46–47, 248栈指针(stack pointer) 105
状态机(state machines) 13, 262, StateDefinition(StateDefinition)
264–272, 286–287265–268, 272, 287
静态地址(static addresses) 20, std::list(std::list) 121, 136–141, 144
25–26, 29, 31–32, 50, 99, 136, 138
std::map(std::map) 121, 141–146std::string(std::string) 121, 130–133
std::vector(std::vector) 121, 字符串(strings) 36–39, 45–46,
133–136, 144, 265, 267, 280, 282, 284, 52–54, 56, 66, 78–79, 87–89,
302123–126, 130–133, 155, 167, 169, 176,
291, 296, 299, 301
结构(structures) 6, 11–13, 26, 30, 子寄存器(subregisters) 104–105
33, 39, 41, 44, 47, 59, 64, 72–73, 76, 84,
90–94, 97, 99, 104, 109, 116, 121–126,
128–134, 136–137, 139, 141–147,
152, 164, 179, 186, 194–196, 214,
230–231, 235, 241, 248, 252, 270
补给(supplies) 133, 238, 262, 286SuspendThread()(SuspendThread())
173, 224, 294
T
模板化函数(templated functions) 线程环境块(thread environment
153, 178block (TEB)) 179
线程劫持(thread hijacking) 163, 线程注入(thread injection)
170, 172, 224163–164, 169–170, 172, 175–176
线程同步(thread synchronization) thunk(thunks) 196–200
169, 200–201
跟踪汇编代码(tracing assembly code)训练器(trainer) 22–24, 260–261
49
训练器生成器(trainer generator) 蹦床函数(trampoline functions)
22, 24201–202, 204–205, 220
遍历 IAT(traversing the IAT)
196–197
U
一元算术指令(unary arithmetic 联合(unions) 84, 93–94, 104, 133
instructions) 113
未知初始值(Unknown Initial Value)用户模式 rootkit(user-mode rootkit)
236 294, 310
V
VAC 工具包(VAC toolkit) 292数值类型(value types) 19, 21, 24, 36
VF 表钩子(VF table hooks) VF 表(VF tables) 90, 94, 97, 99,
189–193, 205, 217, 221, 259189–194, 198, 205, 216–218,
220–223, 230, 233, 259
视口(viewport) 231–232虚函数(virtual functions) 30, 84,
95–97, 155, 185, 189–190, 193, 218,
266
可视化控制流(visualizing control
flow) 63
W
透视(wallhacks) 227, 231, Warden 工具包(Warden toolkit)
233–236, 240, 244295
航点(waypoints) 263, 271, 282, 窗口(windows) 18, 23, 32–34,
286–288, 31140–50, 57–58, 61, 63, 65, 70, 73,
75–77, 124–126, 129, 147–148, 185,
236, 252–254, 296
Wingraph32(Wingraph32) 63WM_CHAR(WM_CHAR) 254–255
WM_KEYDOWN(WM_KEYDOWN)WM_KEYUP(WM_KEYUP)
254–255254–255
WriteProcessMemory()(WriteProcessMemory()(
WriteProcessMemory()) 149–153, WriteProcessMemory()) 149–153,
156, 166–167, 169, 294, 310–311156, 166–167, 169, 294, 310–311
写入内存(writing memory) 151,
153, 157, 166, 169, 175, 203, 228, 310
X
x86 汇编(x86 assembly) 9, 35, 47, XP 基址(XP base) 158
84, 100–101, 104–105, 108, 115, 182,
185
Z
Z 缓冲(z-buffering) 231–234零标志(zero flag) 116
缩放破解(zoomhacks) 227,
236–237, 241