Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advantage And Disadvantage

Similar presentations


Presentation on theme: "Advantage And Disadvantage"— Presentation transcript:

1 Advantage And Disadvantage
Reduced Risk Reduced Cost Disadvantage : There are practical limits to the extent that a system can be improved by re-engineering 例子 : 影音聊天室

2 Software Re-Engineering
Process : Source Code Translation (C C++) Reverse Engineering Program Structure Improvement Program Modularization Data Re-Engineering

3 Re-Engineering Issues
The quality of the software to be re-engineered The tool support available for re-engineering The extent of data conversion required The availability of expert staff 例子 : Microsoft Window系列

4 Reverse Engineering Definition
The Process of analyzing software with the objective of recovering its design and specification Help Engineers to understand a program before reorganizing its structure

5 Realism of Reverse Engineering
BCB6.0(已註冊) BCB 6.0(未註冊) + Key Generator Reverse Engineering

6 我們通常破解些什麼? 根據你輸入的名字找出註冊碼
改變程式的流程﹕用除錯器找出註冊流程,並用hex editor修改程式,以便輸入任何密碼也能註冊 把程式的註冊碼計算方法找出。然後寫出註冊碼產生器(註冊機)

7 在破解中常見的組合語言 CALL -- 呼叫 function JNZ -- jump if not zero
JZ -- jump if zero CMP -- 比較

8 Demo

9 這些例子是極其簡單的, 真實的程式絕不會這樣簡單

10 Reference Heko的破解站

11 Merry Christmas and Happy New Year

12 用SoftICE進行破解 Reverse-Engineering
電機四 紀博文

13 什麼是SoftICE? SoftICE Driver Suite 是一套用來加速微軟Windows裝置驅動程式開發和偵錯的核心 工具。
SoftICE Driver Suite包括: DriverAgent-開發硬體雛型或全部的應用軟體。 VtoolsD-產生Windows的VxDs驅動程式。 DriverWorks-輕鬆的使用功能強大的精靈開發裝置驅動程式。 SoftICE-輕鬆的對核心模式的驅動程式進行偵錯。

14 NuMega SoftICE 特色: 1.透過Internet進行遠端偵錯,提供在單台機器上進行原始程式碼除錯的能力。
2.支援 Windows Millennium Edition,Windows NT,Windows 95,Windows98 和 Windows 2000,提供所有Windows 平台下建立裝置驅動程式和系統元件之強而有力 、可靠的除錯工具。 3.可在Pentium, Pentium Pro, Pentium III多元處理器系統上進行程式碼除錯,透過 使用支援SMP(SoftICE Windows NT)標準的Intel多元處理器方案(APIC)最多可支援8 個CPU。 4.支援Microsoft Kernel Debug extensions。

15 SoftICE的畫面

16 SoftICE Registers 和 Flags 用 R 去修改 最上層的顯示 register 資料 Data Window
用 E 去修改, D 來看 顯示記憶體內的資料 Code Window 用 A 去修改, U 來看 顯示組合語言碼, 即 mov eax, ebx 的東西 Command Window 像 DOS一般 指令視窗: 輸入指令

17 常用HOTKEY F1 - Help F5 - RUN F8 - Trace (into call) F10 - Trace (not into call) F12 - RET

18 Example 1 137C:0151       CMP BYTE PTR [14AC],00  137C:0156       JNZ  015C  137C:0159       CALL 1A43  137C:015C       MOV  AL,9 假設程式設計師把記憶體位置14AC設為00,目的是要表示那程式是未註冊的。 而第1行的目的是要比較那記憶體位置是否等於00 ,如果不是的話,當程式跳到第2行的時候,程式的流程便會到第4行(015C) 如果是的話,程式會略過第2行,執行第3行

19 Example 1 將第2行改成相反的,即是 JZ 015C。這樣便將未註冊的軟件當成註冊的
或者索性改成 JMP 015C,不論第1行的結果如何程式也不會走到第3行 你還可以改第一行成 JMP 015C 將第1行改成 MOV BYTE PTR [14AC], 01 ,將第2行改成 JMP 015C

20 Example 2(Winzip32 v6.3) 00409D89    call EA  D8E    test eax, eax  D90    jne 00409DD3  D92    call 00409F9C 第 1 行. 那個 call 是一個比較或計算,它將會設定 eax 成  1 或 0 第 2 行. test eax, eax 是檢查 eax 是否 0 第 3 行 如果 eax 是 0 的話,就走到第 4 行那個 call如果 eax 不是 0 的話,就跳到 00409DD3


Download ppt "Advantage And Disadvantage"

Similar presentations


Ads by Google