SlideShare a Scribd company logo
逆向⼯工程基礎⼊入⾨門實務
TDOH-workshop
Leg_Bone
⾸首先……
這是個很輕鬆的

演(聊)講(天)
在跟⼤大家聊天的過程中

⼤大家只要......
聽台上那個⼈人

<del> 唬爛 </del>
把該記的好好記住
最好是跟著做!

這是workshop!!!!
<b> 把不該記的全忘掉 </b>
貼⼼心提醒
在聊天的過程中.....
有什麼問題隨時舉⼿手提問
可以睡覺
但是打呼不要吵到⼈人
聊天不要⽐比我⼤大聲
請不要拿垃圾丟
我 !!!!
<(_ _)>  m(_ _)m  <(_ _)>
P.S 這次會有很多很多很多的Live demo
所以如果不幸凸槌請不要揍我QQ
<(_ _)>  m(_ _)m  <(_ _)>
⼤大家好~ 我是腿⾻骨
About Me
撰寫BY PASS Hackshield
TDOHacker 南區召集⼈人
SITCON 2014/2015 short talk 講者
About Me
晶睿科技資安實習⽣生
穩定單⾝身中的⼩小⼩小魯蛇Q_Q
然後我的實際⾝身分……..
是個廚師
聽完下⾯面這場workshop,你可以…………
還是只能逆⼀一些簡單的⼩小東⻄西T_T
每個DEMO都會留時間給各位練習實做
在開始前我想了解⼀一下各位同
學對逆向⼯工程的認知
逆向⼯工程(⼜又稱反向⼯工程),是⼀一種技術過程,即對⼀一
專案標產品進⾏行逆向分析及研究,從⽽而演繹並得出該產
品的處理流程、組織結構、功能效能規格等設計要素,
以製作出功能相近,但⼜又不完全⼀一樣的產品。逆向⼯工程
源於商業及軍事領域中的硬體分析。其主要⺫⽬目的是,在
不能輕易獲得必要的⽣生產資訊下,直接從成品的分析,
推匯出產品的設計原理。
逆向⼯工程可能會被誤認為是對智慧財產權的嚴重侵害,
但是在實際應⽤用上,反⽽而可能會保護智慧財產權所有者。
例如在積體電路領域,如果懷疑某公司侵犯智慧財產權,
可以⽤用逆向⼯工程技術來尋找證據。
這邊有誰學過C/C++?哪種C/C++?
那這邊有誰學過ASM(assembly language)

⼜又是哪種ASM??
前置技能:會寫CODE,看得懂ASM
本⽇日課程
逆向基礎詳解
1.OLLYDBG實作演練
Crack me破解
商業軟體010Editor破解
2.IDA實作演練
Crack me破解
商業軟體010Editor破解
3.Cheat engine實作演練
植物⼤大戰殭屍分析修改
ASM惡補!!!!!
暫存器⽤用途 暫存器名稱
位元暫存器 EAX,EBX,ECX,EDX
索引暫存器 ESI,EDI
堆疊、基底暫存器 ESP,EBP
指位/指標暫存器 EIP
旗標暫存器 AF:輔助進位旗標
CF:進位旗標
OF:溢位旗標
指令 ⽤用途
jmp 地址 無條件跳轉到某地址
je 地址 如果暫存器ZF=1就跳轉
jne 地址 如果暫存器ZF=0就跳轉
add 數值A,數值B 把數值B加到數值A 數值A可為地址
call 地址 把返回地址壓進堆疊 之後跳轉到地址
mov 內容A,內容B 把內容B複製到內容A
cmp 內容A,內容B ⽐比較地址A跟地址B的內容,並將結果反映在
旗標上
nop 不做任何動作
jmp
je
je
Jne/jnz
Jne/jnz
讓我⼩小⼩小休息⼀一下QQ

Q&A
逆向⼯工程有分成

1.動態分析
2.靜態分析
軟體執⾏行中,邊執⾏行邊分析,⽅方便觀 察
暫存器的變化
動態分析
常⽤用⼯工具:OLLYDBG, Cheat engine
直接閱讀他的組合語⾔言來分析那段組
合語⾔言的⽤用途
靜態分析
常⽤用⼯工具:IDA PRO
1.OLLYDBG實作演練
OLLYDBG介紹
OllyDbg 是⼀一種具有可視化介⾯面
的 32 位彙編-分析偵錯器。它的
特別之處在於可以在沒有來源碼
時解決問題,並且可以處理其它
編譯器無法解決的難題。
OLLYDBG介⾯面介紹
逆向工程入門
逆向工程入門
逆向工程入門
逆向工程入門
逆向工程入門
逆向工程入門
逆向工程入門
逆向工程入門
逆向工程入門
逆向工程入門
逆向工程入門
逆向工程入門
MessageBoxA(NULL,”標題”,”內容”,NULL);



push 0

push 內容

push 標題

push 0

CALL MessageBoxA
If(key == 123){

::MessageBoxA(NULL,”標題”,”註冊成功”,NULL);

}

else{

::MessageBoxA(NULL,”標題”,”註冊失敗”,NULL);

}
實際破解DEMO
實作時間……….
讓我⼩小⼩小休息⼀一下QQ

Q&A
2.IDA PRO實作演練
逆向工程入門
逆向工程入門
實際破解DEMO
實作時間……….
讓我⼩小⼩小休息⼀一下QQ

Q&A
3.Cheat engine實作演練
逆向工程入門
⼀一套強⼤大到爆炸的⼯工具!!!!
⼀一套⼯工具可以……..
1.找數值
2.找指針/偏移
3.找中⽂文(超重要TAT)
4.找出訪問的地址
5.加速
6.有內鑲ASM的腳本語⾔言
所以我們要定位出⼈人物
⾎血量就必須要找出最上
層的CLASS
再來,開始⽰示範上⾯面那些功能
今天就拿它來開⼑刀……..
植物⼤大戰殭屍
實際破解DEMO
實作時間……….
讓我⼩小⼩小休息⼀一下QQ

Q&A
為什麼我要講這麼多⼯工具呢?
怎麼⼤大幅度加快分析效率?
組合技!!!!
逆向冷知識
每種語⾔言的⼊入⼝口點都不⼀一樣
Microsoft Visual C++ 6.0
00496EB8 >/$ 55 PUSH EBP ; (初始 cpu 选择)
00496EB9 |. 8BEC MOV EBP,ESP
00496EBB |. 6A FF PUSH -1
00496EBD |. 68 40375600 PUSH Screensh.00563740
00496EC2 |. 68 8CC74900 PUSH Screensh.0049C78C ; SE 处理程序安
00496EC7 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00496ECD |. 50 PUSH EAX
00496ECE |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP
00496ED5 |. 83EC 58 SUB ESP,58
Microsoft Visual Basic 5.0 / 6.0
00401166 - FF25 6C104000 JMP DWORD PTR DS:[<&MSVBVM60.#100>] ;
MSVBVM60.ThunRTMain
0040116C > 68 147C4000 PUSH PACKME.00407C14
00401171 E8 F0FFFFFF CALL <JMP.&MSVBVM60.#100>
00401176 0000 ADD BYTE PTR DS:[EAX],AL
00401178 0000 ADD BYTE PTR DS:[EAX],AL
0040117A 0000 ADD BYTE PTR DS:[EAX],AL
0040117C 3000 XOR BYTE PTR DS:[EAX],AL
BC++
0040163C > $ /EB 10 JMP SHORT BCLOCK.0040164E
0040163E |66 DB 66 ; CHAR 'f'
0040163F |62 DB 62 ; CHAR 'b'
00401640 |3A DB 3A ; CHAR ':'
00401641 |43 DB 43 ; CHAR 'C'
00401642 |2B DB 2B ; CHAR '+'
00401643 |2B DB 2B ; CHAR '+'
00401644 |48 DB 48 ; CHAR 'H'
00401645 |4F DB 4F ; CHAR 'O'
00401646 |4F DB 4F ; CHAR 'O'
00401647 |4B DB 4B ; CHAR 'K'
00401648 |90 NOP
00401649 |E9 DB E9
0040164A . |98E04E00 DD OFFSET BCLOCK.___CPPdebugHook
0040164E > A1 8BE04E00 MOV EAX,DWORD PTR DS:[4EE08B]
00401653 . C1E0 02 SHL EAX,2
00401656 . A3 8FE04E00 MOV DWORD PTR DS:[4EE08F],EAX
0040165B . 52 PUSH EDX
0040165C . 6A 00 PUSH 0 ; /pModule = NULL
0040165E . E8 DFBC0E00 CALL <JMP.&KERNEL32.GetModuleHandleA> ; GetModuleH
00401663 . 8BD0 MOV EDX,EAX
-----------------------------------------------------------------------------------------------
Borland Delphi 6.0 - 7.0
00509CB0 > $ 55 PUSH EBP
00509CB1 . 8BEC MOV EBP,ESP
00509CB3 . 83C4 EC ADD ESP,-14
00509CB6 . 53 PUSH EBX
00509CB7 . 56 PUSH ESI
00509CB8 . 57 PUSH EDI
00509CB9 . 33C0 XOR EAX,EAX
00509CBB . 8945 EC MOV DWORD PTR
SS:[EBP-14],EAX
00509CBE . B8 20975000 MOV
EAX,unpack.00509720
00509CC3 . E8 84CCEFFF CALL unpack.
0040694C
易语⾔言⼊入⼝口
00401000 > E8 06000000 call dump_.0040100B
00401005 50 push eax
00401006 E8 BB010000 call <jmp.&KERNEL32.ExitProcess>
0040100B 55 push ebp
0040100C 8BEC mov ebp,esp
0040100E 81C4 F0FEFFFF add esp,-110
00401014 E9 83000000 jmp dump_.0040109C
00401019 6B72 6E 6C imul esi,dword ptr ds:[edx+6E],6C
0040101D 6E outs dx,byte ptr es:[edi]
對於沒有加殼加密或隱藏
OEP的軟體,我們可以直接判
斷出他⽤用的程式語⾔言
判斷他⽤用什麼程式語⾔言寫得有什麼⽤用呢?
《《《Delphi程序》》》

特征码:FF 93 20 01 00 00 5B C3 53

-----------------------------------------------------------------------------

《《《易语⾔言程序》》》

特征码:FF 55 FC 5F 5E 89 5D F4

特征码来源:krnln.fnr

-----------------------------------------------------------------------------

《《《MFC程序》》》

RELEASE

特征码:FF 55 14 EB 7F FF 75 0C

特征码来源:MFC42.DLL

DEBUG

特征码:FF 55 FC E9 48 04 00 00 33 C9

特征码来源:MFC42D.DLL

-----------------------------------------------------------------------------

使⽤用⽅方法:OD载⼊入程序---F9运⾏行---Alt+M打开内存镜像---Ctrl+B搜
索特征码---Ctrl+G跳到找到的地址---F2下断---点击按钮---断下后F7
进⼊入CALL(此处即为事件代码)

Q&A

More Related Content

PDF
台科逆向簡報
耀德 蔡
 
PDF
TDOH x 台科 pwn課程
Weber Tsai
 
PDF
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021
Valeriy Kravchuk
 
PDF
Q2.12: Debugging with GDB
Linaro
 
PDF
Qemu JIT Code Generator and System Emulation
National Cheng Kung University
 
PDF
ROP 輕鬆談
hackstuff
 
PDF
Security Monitoring with eBPF
Alex Maestretti
 
PPT
嵌入式系统开发流程.ppt
JasonCoder2
 
台科逆向簡報
耀德 蔡
 
TDOH x 台科 pwn課程
Weber Tsai
 
Tracing MariaDB server with bpftrace - MariaDB Server Fest 2021
Valeriy Kravchuk
 
Q2.12: Debugging with GDB
Linaro
 
Qemu JIT Code Generator and System Emulation
National Cheng Kung University
 
ROP 輕鬆談
hackstuff
 
Security Monitoring with eBPF
Alex Maestretti
 
嵌入式系统开发流程.ppt
JasonCoder2
 

What's hot (20)

PDF
Interpreter, Compiler, JIT from scratch
National Cheng Kung University
 
PDF
Binary exploitation - AIS3
Angel Boy
 
PDF
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例
National Cheng Kung University
 
PDF
OSNoise Tracer: Who Is Stealing My CPU Time?
ScyllaDB
 
PDF
Kernel Recipes 2019 - XDP closer integration with network stack
Anne Nicolas
 
PDF
[143] Modern C++ 무조건 써야 해?
NAVER D2
 
PDF
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
tshiroyama
 
PPT
ПРИСТРОЇ ВВЕДЕННЯ ІНФОРМАЦІЇ
URATSOS
 
PDF
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
The Linux Foundation
 
PDF
마칭 큐브 알고리즘 - ZP 2019 데캠
동환 김
 
PDF
Kupdf.com roto biblioteka-x-100-nova-serija-611-feston-lun-i-beli-demon
zoran radovic
 
PDF
MySQLチューニング
yoku0825
 
PDF
Linux Profiling at Netflix
Brendan Gregg
 
PDF
GoogleのSHA-1のはなし
MITSUNARI Shigeo
 
PPTX
競技プログラミングのためのC++入門
natrium11321
 
PDF
Gliederung Bachelorarbeit
MolhamUgus
 
PDF
메이플스토리 사례를 통해 살펴보는 서버사이드 봇/핵 탐지 시스템
ByungTak Kang
 
PDF
Introduction to Perf
Wang Hsiangkai
 
PDF
レシピの作り方入門
Nobuhiro Iwamatsu
 
PDF
NTUSTxTDOH - Pwn基礎 2015/12/27
Sheng-Hao Ma
 
Interpreter, Compiler, JIT from scratch
National Cheng Kung University
 
Binary exploitation - AIS3
Angel Boy
 
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例
National Cheng Kung University
 
OSNoise Tracer: Who Is Stealing My CPU Time?
ScyllaDB
 
Kernel Recipes 2019 - XDP closer integration with network stack
Anne Nicolas
 
[143] Modern C++ 무조건 써야 해?
NAVER D2
 
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方
tshiroyama
 
ПРИСТРОЇ ВВЕДЕННЯ ІНФОРМАЦІЇ
URATSOS
 
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, Xilinx
The Linux Foundation
 
마칭 큐브 알고리즘 - ZP 2019 데캠
동환 김
 
Kupdf.com roto biblioteka-x-100-nova-serija-611-feston-lun-i-beli-demon
zoran radovic
 
MySQLチューニング
yoku0825
 
Linux Profiling at Netflix
Brendan Gregg
 
GoogleのSHA-1のはなし
MITSUNARI Shigeo
 
競技プログラミングのためのC++入門
natrium11321
 
Gliederung Bachelorarbeit
MolhamUgus
 
메이플스토리 사례를 통해 살펴보는 서버사이드 봇/핵 탐지 시스템
ByungTak Kang
 
Introduction to Perf
Wang Hsiangkai
 
レシピの作り方入門
Nobuhiro Iwamatsu
 
NTUSTxTDOH - Pwn基礎 2015/12/27
Sheng-Hao Ma
 
Ad

Recently uploaded (20)

PPTX
活佛師尊: 「半部論語治天下, 移風易俗百孝經。」 鍾離大仙云: 「百孝經舉,孝傳塵世, 經歷千載不磨。」百孝經聖訓輯要第九.pptx
ray387615
 
PPTX
class deco words for every class PAK 21.pptx
huiyentan1
 
PPTX
一比一制作南卫理公会大学毕业证SSMU毕业证学校版本
g4jp77xf2
 
PPTX
一比一制作贝勒大学毕业证Baylor毕业证学校版本
srzw5w6jh
 
PPTX
一比一制作莫纳什大学毕业证Monash毕业证学校版本
4vrmnd7m
 
PPTX
一比一制作墨尔本大学毕业证UniMelb毕业证学校版本
4vrmnd7m
 
PPTX
一比一制作克拉克大学毕业证Clark U毕业证学校版本
tenqxr2ky
 
PPTX
一比一制作爱荷华大学毕业证UI毕业证学校版本
g4jp77xf2
 
PPTX
美国学位证书,奥本大学毕业证学历认证Auburn毕业证办
ewzt6ecilqqoketh
 
PPTX
美国学位证书,帝国理工学院毕业证学历认证Imperial College毕业证咨询
3of9
 
PPTX
一比一制作印地安那大学伯明顿分校毕业证IUB毕业证学校版本
srzw5w6jh
 
PPTX
26每每风雨过后,特别是下雨过后,人们会感到较明显的降温。故有:“一场秋雨(风)一场寒”之说。
g4jp77xf2
 
PPTX
一比一制作马凯特大学毕业证MU毕业证学校版本
srzw5w6jh
 
PPTX
一比一制作查尔斯达尔文大学毕业证CDU毕业证学校版本
aty55mpph
 
PPTX
新西兰学位证书,奥塔哥大学毕业证学历认证Otago毕业证加急购买
yw0wm7grzexpu69wx
 
PPTX
英国学位证书,拉夫堡大学毕业证学历认证LU毕业证买
3of9
 
PPTX
13每每风雨过后,特别是下雨过后,人们会感到较明显的降温。故有:“一场秋雨(风)一场寒”之说。
g4jp77xf2
 
PPTX
一比一制作堪萨斯大学毕业证UKansas毕业证学校版本
tenqxr2ky
 
PPTX
一比一制作俄亥俄大学毕业证OU毕业证学校版本
tenqxr2ky
 
PPTX
一比一制作北卡罗来纳州立大学毕业证NCSU毕业证学校版本
tenqxr2ky
 
活佛師尊: 「半部論語治天下, 移風易俗百孝經。」 鍾離大仙云: 「百孝經舉,孝傳塵世, 經歷千載不磨。」百孝經聖訓輯要第九.pptx
ray387615
 
class deco words for every class PAK 21.pptx
huiyentan1
 
一比一制作南卫理公会大学毕业证SSMU毕业证学校版本
g4jp77xf2
 
一比一制作贝勒大学毕业证Baylor毕业证学校版本
srzw5w6jh
 
一比一制作莫纳什大学毕业证Monash毕业证学校版本
4vrmnd7m
 
一比一制作墨尔本大学毕业证UniMelb毕业证学校版本
4vrmnd7m
 
一比一制作克拉克大学毕业证Clark U毕业证学校版本
tenqxr2ky
 
一比一制作爱荷华大学毕业证UI毕业证学校版本
g4jp77xf2
 
美国学位证书,奥本大学毕业证学历认证Auburn毕业证办
ewzt6ecilqqoketh
 
美国学位证书,帝国理工学院毕业证学历认证Imperial College毕业证咨询
3of9
 
一比一制作印地安那大学伯明顿分校毕业证IUB毕业证学校版本
srzw5w6jh
 
26每每风雨过后,特别是下雨过后,人们会感到较明显的降温。故有:“一场秋雨(风)一场寒”之说。
g4jp77xf2
 
一比一制作马凯特大学毕业证MU毕业证学校版本
srzw5w6jh
 
一比一制作查尔斯达尔文大学毕业证CDU毕业证学校版本
aty55mpph
 
新西兰学位证书,奥塔哥大学毕业证学历认证Otago毕业证加急购买
yw0wm7grzexpu69wx
 
英国学位证书,拉夫堡大学毕业证学历认证LU毕业证买
3of9
 
13每每风雨过后,特别是下雨过后,人们会感到较明显的降温。故有:“一场秋雨(风)一场寒”之说。
g4jp77xf2
 
一比一制作堪萨斯大学毕业证UKansas毕业证学校版本
tenqxr2ky
 
一比一制作俄亥俄大学毕业证OU毕业证学校版本
tenqxr2ky
 
一比一制作北卡罗来纳州立大学毕业证NCSU毕业证学校版本
tenqxr2ky
 
Ad

逆向工程入門