如何破解軟體和製作註冊機?

軟體破解:暴力修改軟體執行機制或者分析軟體相關演算法使免費使用商業

軟體。

逆向工程是反彙編程式而分析出軟體的原始碼。

逆向工程包括:分析軟體,分析閉源軟體的原始碼,分析源軟體的互操作性,

分析編譯器產生的程式碼來驗證編譯器的效能和正確性(軟體註冊)

方法/步驟

10.1

軟體破解

軟體破解:暴力修改軟體執行機制或者分析軟體相關演算法使免費使用商業

軟體。

逆向工程是反彙編程式而分析出軟體的原始碼。

逆向工程包括:分析軟體,分析閉源軟體的原始碼,分析源軟體的互操作性,

分析編譯器產生的程式碼來驗證編譯器的效能和正確性(軟體註冊)

今天我們要舉例的軟體是是一個郵件伺服器所用的軟體:

WebEasyMail

中文標準版本價格如下

使用者數

標準版本價格

(

人民幣

)

250

使用者

530

500

使用者

930

1000

使用者

1530

2000

使用者

2130

5000

使用者

2930

無限制使用者

3930

這些是標準版的價格

530+930+1530+2130+2930+3930

11980

如果破了標準版

我們就等於

破了一個價值

11980

元的軟體

不過我們今天要破的企業版

企業版是這個軟體的高階版本

也是最好的版本

但是企業版的沒有報價,

估計無限制使用者的企業版

10

萬元

首先下載這個軟體的企業版

這裡是官方的下載地址

安裝。

檢測殼

殼的概念:所謂“殼”就是專門壓縮的工具。

這裡的壓縮並不是我們平時使用的

RAR

ZIP

這些工具的壓縮,殼的壓縮指

的是針對

exe

com

、和

dll

等程式檔案進行壓縮,在程式中加入一段如同保護

層的程式碼,使原程式檔案程式碼失去本來面目,從而保護程式不被非法修改和反

編譯,這段如同保護層的程式碼,與自然界動植物的殼在功能上有很多相似的地

方,所以我們就形象地稱之為程式的殼。

1

、殼的作用:

保護程式不被非法修改和反編譯。

對程式專門進行壓縮,以減小檔案大小,方便傳播和儲存。

2

、殼和壓縮軟體的壓縮的區別是:

壓縮軟體只能夠壓縮程式

而經過殼壓縮後的

exe

com

dll

等程式檔案可以跟正常的程式一樣執行

3

、下面來介紹一個檢測殼的軟體

PEID v0.92

這個軟體可以檢測出

450

種殼

新版中增加病毒掃描功能,是目前各類查殼工具中,效能最強的。

另外還可識別出

EXE

檔案是用什麼語言編寫的

VC++

Delphi

VB

Delphi

等。

支援資料夾批量掃描

我們用

PEID

easymail.exe

進行掃描

找到殼的型別了

UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo

說明是

UPX

的殼

脫殼

1

、概念:對一個加了殼的程式,去除其中無關的干擾資訊和保護限制,把他的

殼脫去,解除偽裝,還原軟體本來的面目。這個過程就叫做脫殼。

2

、脫殼成功的標誌

脫殼後的檔案正常執行,功能沒有損耗。

還有一般脫殼後的檔案長度都會大於原檔案的長度。

即使同一個檔案,採用不同的脫殼軟體進行脫殼,由於脫殼軟體的

機理不通,脫出來的檔案大小也不盡相同。

3

、關於脫殼有手動脫殼和自動脫殼

自動脫殼就是用專門的脫殼機脫

很簡單

按幾下就

OK

手動脫殼相對自動脫殼

需要的技術含量微高

4

、工具:

UPX SHELL

的外殼軟體

UPX SHELL v3.09 UPX

外殼程式!

目的讓

UPX

的脫殼加殼傻瓜化

注意:

1

、如果程式沒有加殼

那麼我們就可以省去第二步的脫殼了,直接對軟體

進行分析了。

2

、脫殼後的軟體可用

PEID

軟體識別出

EXE

檔案是用什麼語言編寫的。

嘗試註冊

執行程式

WebEasyMail,

嘗試註冊

,

獲取註冊相關資訊通過嘗試註冊

我們發

現一個關鍵的字串“序列號輸入錯誤”

反彙編(

W32Dasm

反彙編就是把可執行的二進位制檔案轉為彙編程式碼

,

進而可以研究該程式

我們平時寫程式用的都是這樣那樣的語言

.

但是計算機是不認這種語言的

.

所以在程式釋出前就要進行彙編

,

把你的程式彙編成計算機能夠識別的二進位制

程式碼後再交由計算機機執行

.

反彙編就是彙編的逆過程

,

將二進位制程式碼轉換成原

來的程式語句

.

作用

:

把軟體的程式碼從

EXE

中解析出來

.

通常編寫程式是利用高階語言如

C

Pascal

等語言進行程式設計的,後再經過編譯程式生成可以被計算機系統直接執行

的執行檔案。反彙編即是指將這些執行檔案反編譯還原成組合語言或其他高階

語言。但通常反編譯出來的程式與原程式會存在許多不同,雖然執行效果相同,

但程式程式碼會發生很大的變化,非程式設計高手很難讀懂。

另外,有許多程式也可以進行逆向操作即反編譯以求修改,例如

Flash

檔案生成的

SWF

檔案,也可以被反彙編成

Flash

原碼,但會發現與原程式有很

大變化

反彙編一般用到的軟體

都是

W32Dasm

W32dasm

對於新手

易於上手

操作

簡單,

W32Dasm

有很多版本

這裡我推薦使用

W32Dasm

無極版

1

、我們現在反彙編

WebEasyMail

的程式檔案

easymail.exe

2

、然後看看

PE

資訊

--

字串參考,在搜尋欄中輸入“序列號輸入錯誤”

解析漢化(

eXeScope

通過

eXeScope

這個軟體來檢視未能在

w32dasm

中正確顯示的字串資訊。

1

、沒搜尋到,原因不識別漢字,所以使用

eXeScope v6.50

更改字型,更改選單,更改對話方塊的排列,重寫可執行檔案的資源,包括

(EXE

DLL

OCX

等。

是方便強大的漢化工具,

可以直接修改用

VC++

DELPHI

編制的程式的資源,包括選單、對話方塊、字串表等新版可以直接檢視

加殼文

件的資源。

2

、在

eXeScope v6.50

中檔案開啟

easymail.exe

,選擇資源—字串找到

關鍵字序列號輸入錯誤對應的編號。

3

、我們找到如下字串符

122,"

序列號輸入錯誤

"

123,"

恭喜您成為

WebEasyMail

正式使用者中的一員

! "

124,

註冊成功

125,

失敗

重點是

122

確定註冊程式碼位置

再次返回

w32dasm

查詢

122

得到

Possible Reference to String Resource ID=00122: "?

e

?"

在查詢中找

Possible Reference to String Resource ID=00122:

對應的

組合語言。

mov a,b

b

的值賦給

a

,使

a

b

call

:呼叫子程式

,子程式以

ret

結為

ret

:返回主程式

je

jz

:若相等則跳轉

jne

jnz

:若不相等則跳轉

push xx

xx

壓棧

pop xx

xx

出棧

棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的

儲存區。裡面的變數通常是區域性變數、函式引數等。

我們記住除錯斷點的這個地址

除錯(

ollydbg

用到的軟體是

ollydbg

測試程式

1

開啟

WebEasyMail

2

點選右鍵選擇“前往”

==

》表達輸入

406F01

地址

3

設定斷點

4

執行

5

註冊觀察提示資訊

6

F8

單步跳過,觀察提示資訊,能看到註冊碼,

7

好了我們找到了

註冊碼

ASCII

後面的

8

用註冊碼在執行成功。

但是這個並不是我們的主要目的,我們還要做出屬於自己的註冊機,相信這個

是很多人夢寐以求的事情

步驟八:製作註冊機(

KEYMAKE

註冊機我們需要的是一個

KEYMAKE

的軟體

因為

2.0

是演示版而且停止更新了,所以我們用

1.73

注意事項

因為2.0是演示版而且停止更新了,所以我們用1.73版

相關問題答案