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
東華大學資工周-我的程式安全嗎
Search
LegBone
June 04, 2014
Programming
0
160
東華大學資工周-我的程式安全嗎
LegBone
June 04, 2014
Tweet
Share
More Decks by LegBone
See All by LegBone
SITCON2015-列印點數歡樂談
cowby123
0
340
第一次自幹debugger就上手
cowby123
1
950
Other Decks in Programming
See All in Programming
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
170
SourceGeneratorのマーカー属性問題について
htkym
0
200
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
190
Feature Toggle は捨てやすく使おう
gennei
0
120
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
670
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
280
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
600
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
160
ふつうのRubyist、ちいさなデバイス、大きな一年 / Ordinary Rubyists, Tiny Devices, Big Year
chobishiba
1
480
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.5k
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
400
AI時代の脳疲弊と向き合う ~言語学としてのPHP~
sakuraikotone
1
1.1k
Featured
See All Featured
The Limits of Empathy - UXLibs8
cassininazir
1
270
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
160
Game over? The fight for quality and originality in the time of robots
wayneb77
1
140
Building the Perfect Custom Keyboard
takai
2
710
The agentic SEO stack - context over prompts
schlessera
0
700
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Designing for Performance
lara
611
70k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Designing for humans not robots
tammielis
254
26k
Documentation Writing (for coders)
carmenintech
77
5.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
790
Test your architecture with Archunit
thirion
1
2.2k
Transcript
初探滲透測試系列 – 我的程式安全嗎? 我的心血會不會被免費公布?
About Me • LegBone(蔡耀德) • 撰寫BY PASS Hackshield • TDOHacker
南區召集人 • 本業是廚師,coder 的身份 只是掩飾,平常最大的興趣 就是到處亂拆,debug 只是 為了世界和平,來自傳說中 的黑暗料理界。 • 慣用VC,asm • 平常拆點東西 • 不務正業
逆向工程
可以用在….改遊戲,挖0day,註冊軟體,繁化軟體….等
每種保護都有相對應的破解方式 但是你只要讓破解者花費更多心 力,你就成功了!
前置技能:會寫CODE,看得懂ASM
逆向常用工具介紹
OllyDbg
Cheat Engine
IDA PRO
當然不止這三套
再來 開始改!
三分鐘惡補! 我猜這裏的人大多數都看不懂組合語言
指令 用途 Jmp 地址 無條件跳轉到某地址 je 地址 如果暫存器Z=1就跳轉 jne 地址
如果暫存器Z=0就跳轉 add 數值A,數值B 把數值A加到數值B 數值A可為地址 Call 地址 把返回地址壓進堆疊 之後跳轉到地址 nop 不做任何動作
MessageBoxA(NULL,”標題”,”內容”,NULL); push 0 push 標題 push 內容 push 0 CALL
MessageBoxA
If(true){ ::MessageBoxA(NULL,”標題”,”註冊成功”,NULL); } else{ ::MessageBoxA(NULL,”標題”,”註冊失敗”,NULL); }
DEMO+實作
再來 怎麼保護軟體呢?
1.把一些東西寫進註冊檔裡面,可能是某個dll,沒 有那個註冊DLL,軟體就沒辦法擁有完整功能
2.加殼
這次介紹的是VMProtect 他有原始碼的狀況下 可以對某段程式碼加上虛擬機
DEMO+實作
逆向工程在遊戲上的用途!
植物大戰殭屍
要是用C++來寫的話……. cd = cd-1; If(cd == 0){ 產生陽光; }
要是用ASM來寫的話……. add [cd],0xFF FF在這裡表示-1 add是加 CD這個地址裡面的數值加上-1
DEMO+實作