Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第一次自幹debugger就上手
Search
LegBone
March 16, 2014
Research
950
1
Share
第一次自幹debugger就上手
LegBone
March 16, 2014
More Decks by LegBone
See All by LegBone
SITCON2015-列印點數歡樂談
cowby123
0
340
東華大學資工周-我的程式安全嗎
cowby123
0
160
Other Decks in Research
See All in Research
機械学習で作った ポケモン対戦bot で 遊ぼう!
fufufukakaka
0
190
Tiaccoon: Unified Access Control with Multiple Transports in Container Networks
hiroyaonoe
0
1.7k
2026 東京科学大 情報通信系 研究室紹介 (すずかけ台)
icttitech
0
3.3k
東京大学工学部計数工学科、計数工学特別講義の説明資料
kikuzo
0
390
2026 東京科学大 情報通信系 研究室紹介 (大岡山)
icttitech
0
3.3k
都市交通マスタープランとその後への期待@熊本商工会議所・熊本経済同友会
trafficbrain
0
210
討議:RACDA設立30周年記念都市交通フォーラム2026
trafficbrain
0
860
ペットのかわいい瞬間を撮影する オートシャッターAIアプリへの スマートラベリングの適用
mssmkmr
0
480
多様なデータを許容し学習し続ける模倣学習 / Advanced Imitation Learning for VLA
prinlab
0
180
論文紹介 "ReSim: Reliable World Simulation for Autonomous Driving"
kogo
0
520
それ、チームの改善になってますか?ー「チームとは?」から始めた組織の実験ー
hirakawa51
0
1.1k
Can We Teach Logical Reasoning to LLMs? – An Approach Using Synthetic Corpora (AAAI 2026 bridge keynote)
morishtr
1
230
Featured
See All Featured
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
160
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
570
The Language of Interfaces
destraynor
162
26k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
150
The agentic SEO stack - context over prompts
schlessera
0
780
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
270
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
170
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
230
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
530
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
740
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
360
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Transcript
第一次自幹DEBUGGER就上手 軟體除錯器撰寫 SITCON 2014
About Me • LegBone(蔡耀德) • TDOH 南區召集人 • 本業是廚師,coder 的身份
只是掩飾,平常最大的興趣 就是到處亂拆,debug 只是 為了世界和平,來自傳說中 的黑暗料理界。 • 慣用Visual C/C++,asm • 平常到處拆點東西 • 不務正業
以下內容如果有錯誤,歡迎指正
What is debugger?
相信大家寫code常用到 (Micro$oft visual studio)
當你SOURCE CODE 不見又想修改的時候... (OllyDbg)
還有你想註冊的時候…疑!? (LegDbg)
None
「有了Debugger Cracking也是彩色的」 -貝拉克.歐巴馬
今天的重點
可以對64-bit的程式除錯的Debugger
跳坑的起因
撰寫工具:Visual Studio 2013
先來談談Debugger的運作原理
透過中斷系統以及自己程式裡面接 收被Debug行程的異常來進行處理
Well……聽起來很複雜很麻煩
但是M$很好心的幫我們封裝好了 Debug函數
首先要Debug一個process就要先以 Debug模式啟動 建立一個Debug的執行緒 DEBUG_ONLY_THIS_PROCESS
使用範例 CreateProcess(“要啟動程式的路徑”, NULL, NULL, NULL, False, /* bInheritHandles */ /*
DWORD dwCreationFlags */ DEBUG_ONLY_THIS_PROCESS, NULL, NULL, &si, &pi)
異常訊息接收 在我們自己的程式裡面,也有一個迴圈在等著接收異 常訊息 while (!isExit&&WaitForDebugEvent(&de, INFINITE)) 由de.dwDebugEventCode裡面的異常訊息來判斷 除錯的目標發生的異常事件
顯示數值 很單純就用ReadProcessMemory這個WINAPI去讀取
補充資訊 • 64-bit的CPU底下有16個通用 暫存器 • 其中,R8到R15,是新增的; 而前面的八個暫存器,RAX、 RBX、RCX、RDX、RBP、 RSP、RSI、RDI,是把原有的 32
位元加以擴充而成。 32位元 64位元 EAX RAX EBX RBX ECX RCX EDX RDX EBP RBP ESP RSP EDI RDI EIP RIP R8 R9 R10 R11 R12 R13 R14 R15
顯示暫存器內容 從CONTEXT這個結構體中取得暫存器內容 CONTEXT ctThreadContext; ctThreadContext.(暫存器名稱)就可以存取了
顯示堆疊內容 ESP <= 在32-bit中是堆疊指標暫存器 只不過在64-bit底下ESP變成RSP 所以讀取程序的RSP就可以了
攔截載入DLL訊息 攔截到LOAD_DLL_DEBUG_EVENT訊息後,在對他 做出相關的回應
顯示組合語言內容 由於自己刻一個反組譯核心工程太大了,所以用了一 個Open source的反組譯核心BeaEngine
然後由於這個64bit的除錯器的反組 譯核心是開源的…… 整個除錯器也是參考一款32bit的除 錯器寫出來的…… 所以…………………
它也是Open source
只不過下載回去的使用者請安裝 http://www.microsoft.com/zh- tw/download/details.aspx?id=40770 讓VS2013支援多位元組字元集
請各位有興趣的大大一起修改它,完 善它,希望有朝一日它可以成為64bit 底下的ollydbg! <(_ _)>
DEMO
工商服務時間 由於莫風大大去年還是沒徵到另一伴… 誠徵女友!! 有興趣請洽大大本人 <(_ _)>
The Declaration of hacker (TDOH)
如果你對資安有興趣
也對我們想作的事情有興趣
可以到這邊了解我們 ↓ http://tdohacker.org/
也可以在FB上搜尋 "The Declaration of hacker"
等一下還有我們的總召集人的 Lightning Talk 敬請期待
Q&A