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
150
東華大學資工周-我的程式安全嗎
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
ユーザーも開発者も悩ませない TV アプリ開発 ~Compose の内部実装から学ぶフォーカス制御~
taked137
0
190
アセットのコンパイルについて
ojun9
0
130
GitHubとGitLabとAWS CodePipelineでCI/CDを組み比べてみた
satoshi256kbyte
4
250
RDoc meets YARD
okuramasafumi
4
170
アプリの "かわいい" を支えるアニメーションツールRiveについて
uetyo
0
280
時間軸から考えるTerraformを使う理由と留意点
fufuhu
16
4.8k
今だからこそ入門する Server-Sent Events (SSE)
nearme_tech
PRO
3
250
為你自己學 Python - 冷知識篇
eddie
1
350
Deep Dive into Kotlin Flow
jmatsu
1
360
MCPとデザインシステムに立脚したデザインと実装の融合
yukukotani
4
1.5k
AIコーディングAgentとの向き合い方
eycjur
0
280
複雑なフォームに立ち向かう Next.js の技術選定
macchiitaka
2
210
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
525
40k
4 Signs Your Business is Dying
shpigford
184
22k
Designing for Performance
lara
610
69k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Visualization
eitanlees
148
16k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Music & Morning Musume
bryan
46
6.8k
Typedesign – Prime Four
hannesfritz
42
2.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
The Language of Interfaces
destraynor
161
25k
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+實作