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
Reverse 0x2@HackerSir 10th
Search
YJK
August 31, 2024
47
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Reverse 0x2@HackerSir 10th
YJK
August 31, 2024
More Decks by YJK
See All by YJK
CVE-2024-2961@HackerSir StudyGroup
yjk0805
0
40
From 0 to Shell PWN Basic
yjk0805
0
43
Master of ROP:PWN Advanced
yjk0805
0
71
Basic Reverse-逆要做什麼@THUHC
yjk0805
0
77
Reproducing Vulnerability in IoT@HackerSir StudyGroup
yjk0805
0
110
你 PWN 不動我@HackerSir 10th
yjk0805
0
60
Reverse 0x1@HackerSir 10th
yjk0805
0
43
不要亂 PWN 我@HackerSir 10th
yjk0805
0
44
Assembly@HackerSir 10th
yjk0805
0
67
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
830
We Have a Design System, Now What?
morganepeng
55
8.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
ラッコキーワード サービス紹介資料
rakko
1
4.9M
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
The Mindset for Success: Future Career Progression
greggifford
PRO
0
500
The SEO Collaboration Effect
kristinabergwall1
1
570
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
320
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
Transcript
Reverse 0x2 阿是怎樣逆 YJK @ HackerSir 12/13
How to use GDB Outline 01 02 03 Dynamic Analysis
Other Language Reverse
Dynamic Analysis
Dynamic Analysis • 將程式執行觀察程式行為並分析 • 建議在虛擬環境
Why Dynamic Analysis • 如果執行完某個函式發現有些數值變化,代表有可能是關鍵 • 可以透過 debugger 跳過或繞過某些部分,甚至跳到重點 •
設定中斷點,觀察暫存器、記憶體 • 動態修改數值,使數值成立 • 用工具紀錄程式行為
Dynamic Analysis Tool GDB • GNU Debugger • 互動式的 shell
• CLI x64dbg • For Windows • GUI • x32dbg WinDbg • 微軟開發 • 對 Windows 相容性較高 • GUI
上週內容補充
Why strace • 追蹤 system call 和 signal • ls
command 是如何實現
Why ltrace • 追蹤使用函式庫 • ls command 是如何實現
Practice • static or dynamic
GDB
GDB • GNU Debugger • GNU 系統中的標準除錯器 • 許多類 UNIX
系統都可以使用 • 支援許多語言,包括 C、C++ 等
GDB Plugin • peda • pwndbg • gdbgui • gef
How to use GDB • gdb ./[執行檔] • 會發現 gdb
開始執行你的程式
GDB - run • 執行程式 • run、r
GDB - breakpoints • 設定中斷點,可以是函式、記憶體位置、行數 • break [中斷點]、b [中斷點] •
ex: b main
GDB - continue • 程式中斷後再執行 • continue、c
GDB - backtrace • 追蹤 stack 的狀態 • backtrace、bt
GDB - disassemble • 反組譯執行的程式 • disas
GDB - next instruction • 下一步指令 • ni
GDB - step instruction • 下一步指令 • si
GDB - si vs ni • 遇到函式的操作 • ni 會將函式直接執行
• si 會跳進函式 si ni
GDB - finish • 結束函式 • finish、fini
GDB - information • 顯示暫存器、函式、中斷點...資訊 • info functions、breakpoints
GDB - Examine • 列出記憶體資訊 • x $rax、x 0x7fffffffd9b8
GDB - Examine • 特定格式將記憶體印出 • x/<fmt> <address> • fmt
= count + size + format • ex: x/2gx $rax • size: b (byte)、h (halfword)、w (word)、g (giant, 8 bytes) • format: x (hex)、d (decimal)、c (char)、s (string)…
GDB - Examine
GDB - Delete • 刪除中斷點 • delete、del、d 刪除全部 • delete、del、d
<id> 刪除特定中斷點
GDB - jump • 直接讓指令跳轉到指定位址 • jump LOCATION • jump
read_flag、jump *0x00000000080015c2
GDB - help • 查看有什麼參數 • help、help <指令>
初步使用 GDB • 先將程式執行 • b main • r •
後面再看該怎麼做
Practice • GDB
Java Reverse
Bytecode • 像是 x86、ARM 一樣的指令格式 • 一種中間語言 • 只需要編譯一次,如果有相對應的 VM
就可以執行 (ex: JVM) • 比前面的 asm 相對好逆向
Operation code • Opcode、instruction code • 與 asm 中的 mov、lea…
類似
Operation code • ldc: 將常數載入到 stack 上 • astore_1: 將資料儲存到區域變數索引值
= 1 的位置 • aload_1: 將區域變數索引值 = 1 的資料載入到 stack 上
Virtual Machine?
Virtual Machine?
Virtual Machine?
Virtual Machine System Virtual Machine • 完整系統 (ex: Ubuntu、kali、Windows) •
Hypervisor • ex: VMWare、VirtualBox Process Virtual Machine • 專門提供給特定架構 • 環境提供執行某個特定架構的程式 • ex: JVM (Java Virtual Machine)
Java • 編譯成 bytecode 形式 • 在 JVM 上執行 •
只要有對應的環境就可以執行
How Java Works? source code (.java) Java Compiler (javac) Java
ByteCode (.class) JVM JVM Windows Linux
How to compile and run
Java disassemble • 安裝好 JDK 後有個指令 javap • javap <options>
<classes> • Options: -c Disassemble the code • javap –c main
Java decompile • JD-GUI • Procyon • CFR • JD-Core
• Jadx • Fernflower • JAD • Online-tool
Decompile .jar or .class • 選擇一個 .class 或是 .jar •
底下選項不用特地改變 • 上傳並反編譯
How to solve and get flag • 靜態分析 • 修改程式碼
• Online-tool
Practice • BAD FLAG CHECKER
Bonus
.NET • 跨平台、免費、open source
.NET Decompile • dnSpy • Debugger & decompiler • 可以靜態分析也可以動態分析
更多題目 • picoCTF • Hackme CTF
None