SlideShare uma empresa Scribd logo
1 de 173
Baixar para ler offline
從技術面簡介線上遊戲外掛
An Introduction to Online-Game Hacks, From a
Technical Perspective
Zuan@chroot.org
僅學術研究性質
請不要違反 EULA
本篇沒有任何
外掛的 Live Demo
Who am I?
●
2006 年左右活耀於 Cheat Engine
Forum, 為其 Underground 成員
●
當年主要玩楓之谷外掛 , 專門破解
nProtect GameGuard (rev641~12xx)
●
MzBot 作者
Who am I?
●
台科大不分系大五
– 主修資工 , 電子 , 輔修機械 , 企管
●
chr00t 資安社群成員
●
2010 趨勢雲端程式競賽第一名
●
2013 International Future Energy Challenge –
Grand Prize
為什麼今天要來講
1. 想學寫外掛的能入門
2. 想寫遊戲的能了解外掛
目錄
●
自動化外掛
●
記憶體修改外掛
– 分析
– 修改
●
反 - 反外掛
遊戲外掛有兩大類
自動化外掛
(俗稱按鍵精靈 )
封包修改外掛
記憶體修改外掛
自動化外掛
(俗稱
按鍵精靈 )
記憶體修改外掛
封包修改外掛
是否有作弊的效果 ? 無 有
理論上是否能防堵 ? 不能 能
運作原理
無聊的事情
由電腦代勞
欺騙遊戲伺服器
自動化工具很多
AutoIt, Sikuli, ACTools
讀取螢幕
/ 讀取記憶體
判定動作
模擬鍵盤
滑鼠
在模擬鍵盤滑鼠方面
One API
to rule them all
SendInput()
從技術面簡介線上遊戲外掛
UINT WINAPI SendInput(
_In_ UINT nInputs,
_In_ LPINPUT pInputs,
_In_ int cbSize
);
INPUT inp[2];
inp[0].type = inp[1].type = INPUT_KEYBOARD;
inp[0].ki.wScan = inp[1].ki.wScan = 0;
inp[0].ki.time = inp[1].ki.time = 0;
inp[0].ki.dwExtraInfo = 0;
inp[1].ki.dwExtraInfo = 0;
inp[0].ki.wVk = inp[1].ki.wVk = VK_RETURN;
inp[0].ki.dwFlags = 0;
inp[1].ki.dwFlags = KEYEVENTF_KEYUP;
SendInput( 2, inp, sizeof(INPUT) );
讀取螢幕方面使用
GetDC(), GetPixel(),
bitblt()
HDC GetDC(
_In_ HWND hWnd
);
COLORREF GetPixel(
_In_ HDC hdc,
_In_ int nXPos,
_In_ int nYPos
);
HDC hDC = GetDC( NULL );
COLORREF color = GetPixel(
hDC, x, y );
記憶體修改外掛
封包修改外掛
欺騙遊戲伺服器 ?
是怎麼個欺騙法 ?
遊戲
伺服器
遊戲
客戶端
螢幕上有 :
怪 A, 怪 B,
玩家
玩家攻擊怪 A
傷害 9999 OS:
你說的我
都相信 !
超自然嘛
~
玩家資訊 :
…
攻擊力 50+/-15
玩家輸入
攻擊怪 A
計算傷害
= 56
記憶體修改
封包修改
移除怪 A
經驗值 +xx
遊戲
伺服器
遊戲
客戶端
草叢裡有玩家 A
但是你別顯示
記憶體修改
封包竊聽
顯示玩家 A
1. 為什麼這類計算不放到伺服器 ?
2. 為什麼這類資訊要給客戶端 ?
3. 為什麼這些計算沒有被檢查 ?
1)為什麼這類資訊要給客戶端 ?
– 遊戲架構已經確定修改起來不符合成
本效益
2)有些計算無法搬到伺服器
– 網路延遲問題
3)為什麼這些計算沒有被檢查 ?
– 檢 成本高查 (CPU/ 記憶體 )
– 沒有人力去寫
當然面對以上三個問題
“ 因為遊戲作者
太腦殘不了解”
都可以是答案
舉 rand() 為例子
傷害 =
傷害基準 +rand()%5
xkcd 221: http://xkcd.com/221/
檢測亂數產生器
●
需保有亂數產生器狀態
● 不能漏掉任何對 rand() 的呼叫
●
Replay 一遍確保沒被修改
記憶體修改外掛
vs.
封包修改外掛
現今幾乎所有外掛都是
記憶體修改外掛
封包修改的困難
●
封包修改外掛不好實作
● 沒有公開 API 可以進行封包修改
●
需要自己寫 NDIS Passthrough 驅動
●
大多遊戲都有加密封包
// From OdinMS
記憶體修改相較簡單
柿子挑軟的吃
記憶體修改外掛
修改哪裡 ?
如何修改 ?
如何不被阻止 ?
修改 裡哪
原始碼
原始碼
原始碼 編譯 執行檔
EXE
所有程式經過編譯後
都成為二進位的程式碼
人不能讀二進位
所以二進位的程式碼
被一對一轉換成文字
這就是組合語言
(Assembly Language)
暫存器
EAX
EBX
ECX
EDX
ESI
EDI
EBP
ESP
EIP
EFLAGS
記憶體
常見指令
● MOV 目的地 , 來源 ( 把來源複製到目的地 )
– MOV EAX, EBX => EAX = EBX;
– MOV EAX, [0x005C] => EAX = *((int*)0x005C);
● ADD 目的地 , 來源 ( 把來源加到目的地 )
– ADD ECX, 5 => ECX += 5;
– ADD ECX, [x] => ECX += x;
● SUB, XOR, OR, AND... 等指令 , 一樣的用法
常見指令
● CMP A, B ( 比較 A 跟 B, 結果寫到 FLAGS)
– CMP EAX, 5
– CMP ECX, EDX
● JMP 地址 ( 跳到地址去 )
– JMP 0x7FFE0300
● JE 地址 ( 如果上次比較時 , A==B, 就跳 )
– JE 0x00401753
● JNE, JGE, JG, JL, JLE... 等等是不同的比較狀
況
C
F
P
F
A
F
Z
F
S
F
if ( x == 3 )
{
// ooo
} else {
// xxx
}
MOV EAX, [x]
CMP EAX, 3
JNE NEXT
; ooo
JMP END
NEXT:
; xxx
END:
堆疊
... :0x080
... :0x07C
... :0x078
... :0x074
... :0x070
... :0x06C
... :0x068
... :0x064
ESP
常見指令
● PUSH 來源 ( 把來源 Push 到堆疊上 )
– PUSH 5 => ESP-=4; *((int*)ESP)=5;
– PUSH EAX => ESP-=4; *((int*)ESP)=EAX;
● POP 目的地 ( 把堆疊最上面 Pop 到目的
地 )
– POP EAX => EAX=*((int*)ESP); ESP+=4;
● CALL 地址 ( 呼叫在地址的函數 )
– CALL 0x004027A0 => PUSH EIP, JMP 0x004027A0
● RET ( 從目前函數 Return)
– RET => POP EIP
函數呼叫
新函數變數 :0x080
原函數 EBP :0x07C
RET 地址 :0x078
新函數參數 :0x074
新函數參數 :0x070
新函數參數 :0x06C
原函數變數 :0x068
原函數變數 :0x064
ESP
這些只是常見指令
如果遇到不會的指令
請找 Intel 算帳
去 Google
Intel 64 and IA-32
Architectures Software
Developer's Manual
從技術面簡介線上遊戲外掛
學了組合語言
但怎麼拆解 EXE 檔 ?
靜態分析 :
IDA Pro
動態分析 :
OllyDbg
Cheat Engine
IDA Pro
OllyDbg
OllyDbg 跟 IDA 都是正規的
逆向工程工具
他們只是輔助
Break 下去 ,
遊戲就斷線了
從技術面簡介線上遊戲外掛
從技術面簡介線上遊戲外掛
從技術面簡介線上遊戲外掛
外掛不只是改數字 ,
還有改程式碼
從技術面簡介線上遊戲外掛
從技術面簡介線上遊戲外掛
從技術面簡介線上遊戲外掛
怎麼修改
使用現有工具
Cheat Engine
從技術面簡介線上遊戲外掛
Player.health--; ...
DEC [EBX+047C]
...
...
NOP
...
...
DEC [EBX+047C]
...
...
FF 8B 7C 04 00 00
...
...
NOP
NOP
NOP
NOP
NOP
NOP
...
...
90 90 90 90 90 90
...
...
DEC [EBX+047C]
...
...
FF 8B 7C 04 00 00
...
...
NOP
NOP
NOP
NOP
NOP
NOP
...
...
90 90 90 90 90 90
...
if ( Player.ID != 1 )
{
Player.health--;
}
...
MOV EAX, [EBX+010]
CMP EAX, 1
JE END
DEC [EBX+047C]
END:
...
Code Injection
從技術面簡介線上遊戲外掛
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
Newmem:
mov EAX, [EBX+010]
cmp EAX, 1
je END
dec [EBX+047C]
end:
jmp returnhere
00426E99:
jmp newmem
nop
returnhere:
...
00426E99:
DEC [EBX+047C]
...
...
00426E99:
JMP Newmem
...
Newmem:
mov EAX, [EBX+010]
cmp EAX, 1
je END
dec [EBX+047C]
end:
jmp returnhere
用 CE 有點 Low
真男人外掛就要自己寫
0x00000000
0xFFFFFFFF
線上遊戲 .exe
0x00000000
0xFFFFFFFF
外掛 .exe explorer.exe
0x00000000
0xFFFFFFFF
…...
…...
1. Windows API
2. DLL Injection
OpenProcess()
ReadProcessMemory()
WriteProcessMemory()
DLL Injection
0x00000000
0xFFFFFFFF
線上遊戲 .exe
0x00000000
0xFFFFFFFF
外掛 .exe explorer.exe
0x00000000
0xFFFFFFFF
…...
…...
外掛 .DLL
int main( int argc, char** argv )
int CALLBACK WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
BOOL WINAPI DllMain(
HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpvReserved
)
BOOL WINAPI DllMain(
HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpvReserved
)
{
if ( fwdReason == DLL_PROCESS_ATTACH ) {
CreateThread( ... );
}
return TRUE;
};
00426E99:
nop
nop
nop
((unsigned char*)0x00426E99) = 0x90;
((unsigned char*)0x00426E9A) = 0x90;
((unsigned char*)0x00426E9B) = 0x90;
LPVOID WINAPI VirtualAlloc(
_In_opt_ LPVOID lpAddress,
_In_ SIZE_T dwSize,
_In_ DWORD flAllocationType,
_In_ DWORD flProtect
);
unsigned char *mem =
VirtualAlloc( NULL, 2048,
MEM_COMMIT, PAGE_EXECUTE_READWRITE );
mem[0] = ...;
DLL 怎麼把他塞
到遊戲程式裡面?
1. Cheat Engine
2. WriteProcessMemory +
CreateRemoteThread
3. Target IAT
注入的時間很重要
如何不被阻止 ?
防止程式被分析
加殼技術 (Packer)
PE Header
.text
.data
.rsrc
Entry Point
( 進入點 )
PE Header
.text
.data
.rsrc
Packer Entry Point
( 進入點 )
非保護性加殼 :
UPX, ASPack... etc
Armadillo
●
2003 年左右
●
OEP 難找
●
透過隱藏 OEP 來避免被脫殼
●
Anti-Debugging
Anti-Debugging
現今使用 Olly 的 Plugin
( 如 StrongOD) 就能解決
ASProtect
●
2006 年左右
●
IAT 隱藏
●
Stolen Code
載入 DLL 前 :
…
CALL printf
…
printf:
jmp xxxx
載入 DLL 後 :
…
CALL printf
…
printf:
jmp 10A0573C
保護後 :
…
CALL FunctionA
…
FunctionA:
jmp Packer_FunctionA
…
Packer_FunctionA:
…
Import Reconstructor
OEP:
PUSH XXX
PUSH XXX
CALL XXX
XOR EBX, EBX
PUSH EBX
MOV EDI,
[GetModuleHandleA]
CALL EDI
...
Themida/VMProtect
●
2008 年左右
●
VM 技術
●
需要專門的反組譯器
反外掛系統
從技術面簡介線上遊戲外掛
1. 防堵
2. 偵測
防堵
.exe
User mode (Ring 3)
Kernel mode (Ring 0)
ntoskrnl.exe
Kernel32.dll User32.dll GDI32.dll
ntdll.dll
SSDT
Kernel32.dll
● OpenProcess()
● ReadProcessMemory()
● WriteProcessMemory()
● VirtualAlloc()
● CreateThread()
● TerminateProcess()
User32.dll
● CreateWindow()
● PostMessage()
● SendInput()
● GetDC()
GDI32.dll
● bitblt()
Detour Hook
IAT Hook
...
call SendInputA
...
SendInputA:
jmp xxxx
IAT Hook
Detour Hook
其實就是 Code Injection
SendInputA:
push ebp
mov ebp, esp
...
Detour Hook
SendInputA:
jmp xxx
...
.exe
User mode (Ring 3)
Kernel mode (Ring 0)
ntoskrnl.exe
Kernel32.dll User32.dll GDI32.dll
ntdll.dll
SSDT
Detour/IAT Hook
Detour/IAT Hook
SSDT Hook
typedef void(*FuncPtr)( … );
FuncPtr SSDT[xxx] =
{ KernelFunction1,
KernelFunction2, … }
void onSysenter( int callID, …
)
{
(SSDT[callID])( … );
}
.exe
User mode (Ring 3)
Kernel mode (Ring 0)
ntoskrnl.exe
Kernel32.dll User32.dll GDI32.dll
ntdll.dll
SSDT
SSDT Hook
Detour Hook in Kernel
.exe
User mode (Ring 3)
Kernel mode (Ring 0)
ntoskrnl.exe
Kernel32.dll User32.dll GDI32.dll
ntdll.dll
SSDT
Detour Hook
遇到 Kernel 的 Hook
就幾乎一定要寫驅動
DDK
Driver Development Kit
偵測
跟防毒軟體一樣
只是他是掃描記憶體
免殺
免殺過的 Cheat Engine,
叫做 UCE
Undetected Cheat Engine
首先偵測字串
const char* var =“xxx”;
funcA( “xxx” );
DLL Export 的函數名稱
也會被偵測
__declspec(dllexport)
void __cdecl
Function1(void);
使用 strings 指令確認
有些時候 , 程式碼
也會被偵測到
被偵測到
的外掛
?
反外掛系統的未來發展
道高一尺
魔高一丈
1. x64 下的變化
2. 虛擬化的崛起
以上都是 x86 下
也就是 32 位元的
Windows
64 位元的 Windows
下有很大的變化
從 64-bit 的 Vista 開始
1. 驅動程式數位簽章
2. PatchGuard
沒有簽章的驅動程式
不能載入
除非開 開發者模式啟
PatchGuard
SSDT 不能改
Ntoskrnl.exe 不能改
GDT&IDT 不能改
MSR 不能改
從技術面簡介線上遊戲外掛
M$:
“ 朕不給的 , 你們不能搶”
Kaspersky 表示 :...
McAfee 表示 :...
x64 下 , 主場優勢更大
順帶一題
One Microsoft Way
Redmond, WA 98052-7329
USA
美國華盛頓州
雷德蒙特市
微軟路一號
“One Microsoft Way”
只有一條路 , 就是聽微軟的
虛擬化
就是 VMWare,
VirtualBox 那種虛擬化
以前統統要自己寫
Intel VT-x
AMD-V
Host OS
Guest OS
Host OS
Guest OS
遊戲外掛
反外掛
DTDebug
Ddvp
Cheat Engine
疑似也有類似功能
謝謝大家
工商時間
台灣駭客年會
1. 參加
2. 應徵工作人員
3. 投 Paper
http://hitcon.org/
Q & A

Mais conteúdo relacionado

Mais procurados

はじめてのConfluence!一歩を踏み出そう!
はじめてのConfluence!一歩を踏み出そう!はじめてのConfluence!一歩を踏み出そう!
はじめてのConfluence!一歩を踏み出そう!Narichika Kajihara
 
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...Altinity Ltd
 
淺談編譯器最佳化技術
淺談編譯器最佳化技術淺談編譯器最佳化技術
淺談編譯器最佳化技術Kito Cheng
 
2018 종합선물세트 for 취준생
2018 종합선물세트 for 취준생2018 종합선물세트 for 취준생
2018 종합선물세트 for 취준생Yu Yongwoo
 
ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...
ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...
ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...Altinity Ltd
 
React + Amplifyで アプリ開発
React + Amplifyで アプリ開発React + Amplifyで アプリ開発
React + Amplifyで アプリ開発虎の穴 開発室
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsBrendan Gregg
 
스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기Hyun-woo Park
 
epoll() - The I/O Hero
epoll() - The I/O Heroepoll() - The I/O Hero
epoll() - The I/O HeroMohsin Hijazee
 
Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20Jelena Zanko
 
MySQL勉強会 クエリチューニング編
MySQL勉強会 クエリチューニング編MySQL勉強会 クエリチューニング編
MySQL勉強会 クエリチューニング編MicroAd, Inc.(Engineer)
 
Parser combinatorってなんなのさ
Parser combinatorってなんなのさParser combinatorってなんなのさ
Parser combinatorってなんなのさcct-inc
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーyoku0825
 
自己組織的なScrumチームの目指し方
自己組織的なScrumチームの目指し方自己組織的なScrumチームの目指し方
自己組織的なScrumチームの目指し方Takuo Doi
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
icecream / icecc:分散式編譯系統簡介
icecream / icecc:分散式編譯系統簡介icecream / icecc:分散式編譯系統簡介
icecream / icecc:分散式編譯系統簡介Kito Cheng
 

Mais procurados (20)

はじめてのConfluence!一歩を踏み出そう!
はじめてのConfluence!一歩を踏み出そう!はじめてのConfluence!一歩を踏み出そう!
はじめてのConfluence!一歩を踏み出そう!
 
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
Analytics at Speed: Introduction to ClickHouse and Common Use Cases. By Mikha...
 
淺談編譯器最佳化技術
淺談編譯器最佳化技術淺談編譯器最佳化技術
淺談編譯器最佳化技術
 
Windows formsアプリケーション開発経験者のためのWPF開発のポイント集
Windows formsアプリケーション開発経験者のためのWPF開発のポイント集Windows formsアプリケーション開発経験者のためのWPF開発のポイント集
Windows formsアプリケーション開発経験者のためのWPF開発のポイント集
 
2018 종합선물세트 for 취준생
2018 종합선물세트 for 취준생2018 종합선물세트 for 취준생
2018 종합선물세트 for 취준생
 
ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...
ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...
ClickHouse Data Warehouse 101: The First Billion Rows, by Alexander Zaitsev a...
 
React + Amplifyで アプリ開発
React + Amplifyで アプリ開発React + Amplifyで アプリ開発
React + Amplifyで アプリ開発
 
Linux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old SecretsLinux Performance Analysis: New Tools and Old Secrets
Linux Performance Analysis: New Tools and Old Secrets
 
스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기
 
Prometheus monitoring
Prometheus monitoringPrometheus monitoring
Prometheus monitoring
 
Boost tour 1.60.0 merge
Boost tour 1.60.0 mergeBoost tour 1.60.0 merge
Boost tour 1.60.0 merge
 
epoll() - The I/O Hero
epoll() - The I/O Heroepoll() - The I/O Hero
epoll() - The I/O Hero
 
Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20Imply at Apache Druid Meetup in London 1-15-20
Imply at Apache Druid Meetup in London 1-15-20
 
MySQL勉強会 クエリチューニング編
MySQL勉強会 クエリチューニング編MySQL勉強会 クエリチューニング編
MySQL勉強会 クエリチューニング編
 
Parser combinatorってなんなのさ
Parser combinatorってなんなのさParser combinatorってなんなのさ
Parser combinatorってなんなのさ
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
 
ClickHouse導入事例紹介
ClickHouse導入事例紹介ClickHouse導入事例紹介
ClickHouse導入事例紹介
 
自己組織的なScrumチームの目指し方
自己組織的なScrumチームの目指し方自己組織的なScrumチームの目指し方
自己組織的なScrumチームの目指し方
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
icecream / icecc:分散式編譯系統簡介
icecream / icecc:分散式編譯系統簡介icecream / icecc:分散式編譯系統簡介
icecream / icecc:分散式編譯系統簡介
 

Semelhante a 從技術面簡介線上遊戲外掛

Introduction of Reverse Engineering
Introduction of Reverse EngineeringIntroduction of Reverse Engineering
Introduction of Reverse EngineeringYC Ling
 
Sy03091说明书
Sy03091说明书Sy03091说明书
Sy03091说明书guest8f3690
 
Ch1 系统启动
Ch1 系统启动Ch1 系统启动
Ch1 系统启动guest4d1b8c
 
S3 cev40getting startv2.1 cn
S3 cev40getting startv2.1 cnS3 cev40getting startv2.1 cn
S3 cev40getting startv2.1 cnVidur Garg
 
Hxhsm——取代mvc的状态机框架
Hxhsm——取代mvc的状态机框架Hxhsm——取代mvc的状态机框架
Hxhsm——取代mvc的状态机框架Tencent
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Kris Mok
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享Chong-Kuan Chen
 
STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1Jack Wang
 
基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计Hengyi
 
系統程式 -- 第 11 章
系統程式 -- 第 11 章系統程式 -- 第 11 章
系統程式 -- 第 11 章鍾誠 陳鍾誠
 
新手無痛入門Apk逆向
新手無痛入門Apk逆向新手無痛入門Apk逆向
新手無痛入門Apk逆向hackstuff
 
Talking about exploit writing
Talking about exploit writingTalking about exploit writing
Talking about exploit writingsbha0909
 
Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)FLASH开发者交流会
 
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)Shanda innovation institute
 
如何設計電腦 -- 還有讓電腦變快的那些方法
如何設計電腦  -- 還有讓電腦變快的那些方法如何設計電腦  -- 還有讓電腦變快的那些方法
如何設計電腦 -- 還有讓電腦變快的那些方法鍾誠 陳鍾誠
 
密碼學漏洞與他們的產地 Crypto fail and where to find them
密碼學漏洞與他們的產地   Crypto fail and where to find them密碼學漏洞與他們的產地   Crypto fail and where to find them
密碼學漏洞與他們的產地 Crypto fail and where to find themJohn L Chen
 
6.ctf经验分享
6.ctf经验分享6.ctf经验分享
6.ctf经验分享Hsiao Tim
 
系統程式 -- 第 11 章 嵌入式系統
系統程式 -- 第 11 章 嵌入式系統系統程式 -- 第 11 章 嵌入式系統
系統程式 -- 第 11 章 嵌入式系統鍾誠 陳鍾誠
 

Semelhante a 從技術面簡介線上遊戲外掛 (20)

Introduction of Reverse Engineering
Introduction of Reverse EngineeringIntroduction of Reverse Engineering
Introduction of Reverse Engineering
 
Sy03091说明书
Sy03091说明书Sy03091说明书
Sy03091说明书
 
Ch1 系统启动
Ch1 系统启动Ch1 系统启动
Ch1 系统启动
 
S3 cev40getting startv2.1 cn
S3 cev40getting startv2.1 cnS3 cev40getting startv2.1 cn
S3 cev40getting startv2.1 cn
 
Hxhsm——取代mvc的状态机框架
Hxhsm——取代mvc的状态机框架Hxhsm——取代mvc的状态机框架
Hxhsm——取代mvc的状态机框架
 
Tcfsh bootcamp day2
 Tcfsh bootcamp day2 Tcfsh bootcamp day2
Tcfsh bootcamp day2
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)
 
HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享HITCON CTF 2014 BambooFox 解題心得分享
HITCON CTF 2014 BambooFox 解題心得分享
 
STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1STM32F4 for 智慧型電動輪椅系統Part1
STM32F4 for 智慧型電動輪椅系統Part1
 
Arduino AMA中級認證術科實作 all
Arduino AMA中級認證術科實作 allArduino AMA中級認證術科實作 all
Arduino AMA中級認證術科實作 all
 
基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计基于嵌入式系统的Avs P10编码系统设计
基于嵌入式系统的Avs P10编码系统设计
 
系統程式 -- 第 11 章
系統程式 -- 第 11 章系統程式 -- 第 11 章
系統程式 -- 第 11 章
 
新手無痛入門Apk逆向
新手無痛入門Apk逆向新手無痛入門Apk逆向
新手無痛入門Apk逆向
 
Talking about exploit writing
Talking about exploit writingTalking about exploit writing
Talking about exploit writing
 
Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)Avm2虚拟机浅析与as3性能优化(陈士凯)
Avm2虚拟机浅析与as3性能优化(陈士凯)
 
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
[Flash开发者交流][2010.05.30]avm2虚拟机浅析与as3性能优化(陈士凯)
 
如何設計電腦 -- 還有讓電腦變快的那些方法
如何設計電腦  -- 還有讓電腦變快的那些方法如何設計電腦  -- 還有讓電腦變快的那些方法
如何設計電腦 -- 還有讓電腦變快的那些方法
 
密碼學漏洞與他們的產地 Crypto fail and where to find them
密碼學漏洞與他們的產地   Crypto fail and where to find them密碼學漏洞與他們的產地   Crypto fail and where to find them
密碼學漏洞與他們的產地 Crypto fail and where to find them
 
6.ctf经验分享
6.ctf经验分享6.ctf经验分享
6.ctf经验分享
 
系統程式 -- 第 11 章 嵌入式系統
系統程式 -- 第 11 章 嵌入式系統系統程式 -- 第 11 章 嵌入式系統
系統程式 -- 第 11 章 嵌入式系統
 

Último

20170104 - transaction_pattern
20170104 - transaction_pattern20170104 - transaction_pattern
20170104 - transaction_patternJamie (Taka) Wang
 
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLPJamie (Taka) Wang
 
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxSymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxNCU MCL
 
20161220 - domain-driven design
20161220 - domain-driven design20161220 - domain-driven design
20161220 - domain-driven designJamie (Taka) Wang
 

Último (9)

20200226 - AI Overview
20200226 - AI Overview20200226 - AI Overview
20200226 - AI Overview
 
20161027 - edge part2
20161027 - edge part220161027 - edge part2
20161027 - edge part2
 
20200323 - AI Intro
20200323 - AI Intro20200323 - AI Intro
20200323 - AI Intro
 
20170104 - transaction_pattern
20170104 - transaction_pattern20170104 - transaction_pattern
20170104 - transaction_pattern
 
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP
 
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptxSymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
 
Entities in DCPS (DDS)
Entities in DCPS (DDS)Entities in DCPS (DDS)
Entities in DCPS (DDS)
 
20161220 - domain-driven design
20161220 - domain-driven design20161220 - domain-driven design
20161220 - domain-driven design
 
20151111 - IoT Sync Up
20151111 - IoT Sync Up20151111 - IoT Sync Up
20151111 - IoT Sync Up
 

從技術面簡介線上遊戲外掛