Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
社課-HowToHackAGame_final.pdf
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Fox
July 25, 2026
6
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
社課-HowToHackAGame_final.pdf
Fox
July 25, 2026
More Decks by Fox
See All by Fox
社課-組合語言.pdf
nyanfox87
0
0
讀書會-CatInTheMiddle.pdf
nyanfox87
0
0
讀書會-Unicorn.pdf
nyanfox87
0
0
讀書會-UnityReverse.pdf
nyanfox87
0
0
2026沙崙競賽決賽-1.pdf
nyanfox87
0
0
讀書會-CVE-2025-59489.pdf
nyanfox87
0
0
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Crafting Experiences
bethany
1
380
Code Reviewing Like a Champion
maltzj
529
40k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
270
Test your architecture with Archunit
thirion
2
2.4k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
320
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
410
GitHub's CSS Performance
jonrohan
1033
470k
We Have a Design System, Now What?
morganepeng
55
8.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Transcript
468 0 How2HackAGAME Presentor: Fox@HackerSir START
$preface • Download Lab and Tools: • Cookie Clicker •
Picaball.exe • Python, pip install pyautogui pynput pillow thinker pymem • CheatEngine • dnSpy
$whoami • 陳柄佑 NyanFox(Fox) • 逢甲大學黑客社現任社長 • CTFer, study on
Reverse Engineering and Malware Analysis • DC:nyanfox87 • 做社團評鑑做得要死不活的
$outline • 模擬玩家操作:pyautogui、pynput • 修改原始碼:dnSpy • 修改記憶體:cheat engine、pymem • Other:Unity
編譯方法、hook Unity … 看時間夠不夠
$Warning • 妨害電腦使用罪 (刑法 358-363) • 無故入侵電腦罪(第358條): 未經允許輸入他人帳號密碼、破解保護、利用漏洞進入他人 電腦或相關設備(如手機)。 •
無故取得、刪除或變更電磁紀錄罪(第359條): 未經授權變動他人電腦內的資料(如:刪 除檔案、偷取遊戲寶物)致生損害。 • 無故干擾電腦罪(第360條): 使用程式等方式干擾他人電腦系統,致生損害(如:用電子 郵件灌爆信箱、發動DoS攻擊)。
$預防針 今天課程內容操作較多 有問題可以盡量發問
$preface 有研究過遊戲外掛的? 或拆過遊戲 or 封包的?
$preface 聽過以下工具的 CheatEngine/dnSpy/il2CppDumper/MelonLoader
$game • 遊戲作弊大致可以分為兩個層面,網路以及本地 • 網路:攔截封包、修改封包、封包重放、DDoS等 • 本地:模擬玩家操作、修改記憶體、修改原始碼等
$網路外掛 • 這堂課不教網路的,所以小科普一下 • 修改、重放封包、中間人攻擊:CatInTheMiddle • https://github.com/jamestiotio/CITM • 透視外掛(我沒研究過) •
https://github.com/PUBG-Radar-Hack/.github
$Lab – PicaBall
$Lab – Cookie Clicker
$Original Cookie Clicker • Unity-MCP + Antigravity
368 STORE LUCK ROYALE CHARACTER VAULT PET COLLECTION 2 01
模擬玩家 操作
$CPS • Click Per Second • 一秒點幾下 • https://www.arealme.com/click-speed-test/zh/
$PyAutoGui • 模擬人類的滑鼠移動、點擊和鍵盤輸入 (Python 版按鍵精靈) • 截圖 screenshot(‘myshot.png‘) • 移動到指定座標
moveTo(x, y, duration) • 相對移動 movRel(xOffset, yOffset) • 點擊 click(x, y, button=‘left‘) • 拖曳鼠標 dragTo, dragRel(x, y) • 滾動滾輪 scroll(amount) • 按下按鍵 keyDown(‘shift‘) • 按住/放開按鍵 keyDown/keyUp(‘esc‘)
$PyAutoGui • 如何透過 python 突破人體極限 • Link: https://github.com/nyanfox87/G4meH4ck1ng/blob/main/pyautogui_script /lab-clickcookie.py
$lab
$lab 1. 當你點擊太快(CPS 大於等於 10)時,餅乾會變成紅色,並開始倒數 5 秒的警 告時間。 2. 在這
5 秒內,如果玩家發覺自己被警告了,只要在最後的 2 秒鐘內「完全忍住不 點擊」,警告一結束,餅乾就會自動變回原來的白色,當作什麼事都沒發生過! 3. 但反過來,如果玩家真的很皮,在倒數的最後 2 秒內竟然還有點擊餅乾,那 5 秒 一到它就會毫不留情地直接消失 10 秒鐘。
$tools • 因此會需要偵測到餅乾顏色 • Link: https://github.com/nyanfox87/G4meH4ck1ng/blob/main/pyautogui_script /color-filter.py
$solve • 變色後會發現除了黑色的地方外,R 會在 100 以上,GB都會是 0 • • (以上條件不精確驗證,有錯跟我說:))
Link: https://github.com/nyanfox87/G4meH4ck1ng/blob/main/pyautogui_script/lab- clickcookie2.py • (請各位 AI 工程師自行尋找效率最佳解)
$lab
$solve • Prompt 請寫一個 Python 高速自動繪圖程式。要求執行後進入待命狀態並使用 pynput 監聽鍵盤,當 按下 s
鍵時以當前鼠標位置為圓心,設定半徑為 200、圓形細分邊數為 400,並透過 threading 開啟異步線程繪製;過程中按下 q 鍵需立即中斷,按下 x 鍵則關閉程式。繪圖邏輯 需將 pyautogui 的 PAUSE 設為 0,先將鼠標移至起點,接著使用 math 三角函數計算座標, 並以 dragTo 函數搭配 0.01 秒持續時間進行拖曳,每點間隔延遲 0.05 秒,繪製完成後自動執 行一次 click 操作。 • Link: https://github.com/nyanfox87/G4meH4ck1ng/blob/main/pyautogui_script/labicing.py
368 STORE LUCK ROYALE CHARACTER VAULT PET COLLECTION 2 02
修改 原始碼
$Before • 在開始拆遊戲之前,要先了解 Unity 的編譯邏輯 • Mono / il2Cpp •
只有 Mono 編譯的才能拆
$Mono/il2Cpp • 在 Build/ Player Setting • 可以選擇
$Mono • Unity 在編譯遊戲時,先將 C# 轉成 CIL 存在檔案中 • 執行時才將
CIL 轉成電腦可執行的機器碼 • JIT(Just in Time):在執行的時候才編譯
$CIL • CIL 是個中間語言 • 可以跟 C# 幾乎無損轉換
$dnSpy • 專門用來逆 .NET 架構的,Unity 就是基於 .NET 架構設計的 • 若採
il2Cpp 編譯,沒辦法簡單地透過 dnSpy 逆向
$Unity mono • dnSpy 可以去拆 Assembly-Csharp.dll • AssetStudio 可以拆圖檔、遊戲資源…
$dnSpy • 用 dnSpy 打開 Assembly-CSharp.dll 就可以看到了神奇東東 • 可以修改!
$dnSpy
$dnSpy • Patch 完後你就可以無視紅餅乾了
$lab • Cookie Clicker 有幾個挑戰 1. 想辦法破解小遊戲 2. 如何每次按的餅乾更多 3.
找到存 Flag 的地方 我知道圖很醜
$MultiPlayer Game • BloodTypers 好玩
$拆圖片 • AssetStudio • Download link: https://github.com/aelurum/AssetStudio/releases/tag/v0.19.0
$AssetStudio • File/Load Folder -> CookieClicker_Data
$AssetStudio
$il2Cpp • template
$DummyDll • Try to use dnSpy to open Assembly-CSharp.dll •
只有方法名稱,沒有邏輯
$il2CppDumper • Run Il2CppDumper.exe • Choose GameAssembly.exe • Choose CookieClicker_Data/il2cpp_data/Metadata/globalmetadata.dat
• 產生出 DummyDll
$how to see logic • 打開 IDA > GameAssembly.dll •
File/script file -> ida_with_struct_py3.py -> script.json -> il2cpp.h • 這樣就可以看到遊戲邏輯
$BUT!!!!!!! • Il2cpp 不能像 Mono 直接打包回去 QQ. • 所以要搞還是乖乖 CheatEngine
吧
368 STORE LUCK ROYALE CHARACTER VAULT PET COLLECTION 2 03
修改 記憶體
$Cheat Engine
$exactly value scan • 反覆幾遍,嘗試更動數值
$lab • Cookie Clicker 有幾個挑戰 1. 想辦法控制餅乾數量 2. 想辦法破解小遊戲 我知道圖很醜
$ASLR • ASLR (Address Space Layout Randomization) • 簡單講:你看到的記憶體位置,並非真實記憶體位置 •
每次開啟遊戲會隨機給你位置 • 每次遊戲 base address 都不一樣,但相對位置會一樣
$find base addr • 假設金錢在兩次重開遊戲後掃描的記憶體位置分別為 0x6114 和 0x5114。 • 且
base address 分別為 0x6000 和 0x5000,請問他距離 base address 多遠。 0x0114 0x6000 0x6114 0x0114 0x5000 0x5114
$find relative address • 基於以上兩點,可以透過尋找相對固定的修改鏈串到 base address。 • int base
= b+5; • int b = c +2; • int c = var + 3;
$some asm • Cheat Engine 中的 Assembler 採 Intel Syntax
• mov rax, 8:將 8 賦值給 rax • add rax, 1:將 rax 加上 1 • sub rax, 2:將 rax 減去 1 • inc rax:將 rax 遞增 1 • dec rax:將 rax 遞減 1 • [] 解引用,mov rax, [rcx] • rcx 中存 0x400,0x400 位置存 5,則將 5 賦值給 rax
$find base addr • 3. 這裡可以看到那些指令修改了值 點進去 Find out what
writes to this address 2. click 1. right click 4. 去找是誰又修改了他,一路套娃
$pointer scan • 將前面動作自動化
$lua language • 一種程式語言 • 可以在 cheat engine 上做自動化和奇怪操作
$pymem • For python lover • 跟 cheat engine 一樣可以修改記憶體
• 還有另一個工具 PyMemoryEditor
$code injection alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) newmem: // 在這裡編寫你的新邏輯 //
原本是 inc [esi+eax*4+3C],現在改為加 2 add dword ptr [esi+eax*4+3C], 2 jmp exitoriginalcode: // 將原本這行註釋掉或刪除,否則會執行兩次 // inc [esi+eax*4+3C] exit: jmp returnhere "picaball.exe"+3CAE: jmp newmem nop 2 // 因為 add 指令比 inc 長,CE 會自動處理剩餘空間 returnhere:
$code injection
None