一本到国产在线精品国内,国产大屁股视频免费区无卡,精品国产日韩aV在线免费观看,国产欧美日韩综合精品一区二区

建立先進理念和體系,創(chuàng)造更好技術(shù)和工藝,開創(chuàng)不凡業(yè)績和局面

當前位置:首頁>技術(shù)中心>關(guān)于知識產(chǎn)權(quán)> 瀏覽正文

軟件保護技術(shù)--Key File保護

來源:龍人計算機研究所 作者:站長 時間:2006-11-04 17:42:20


Key File(注冊文件)是一種利用文件來注冊軟件的保護方式。Key File一般是一個小文件,可以是純文本文件,也可以是包含不可顯示字符的二進制文件,其內(nèi)容是一些加密過或未加密的數(shù)據(jù),其中可能有用戶名、注冊碼等信息。文件格式則由軟件作者自己定義。試用版軟件沒有注冊文件,當用戶向作者付費注冊之后,會收到作者寄來的注冊文件,其中可能包含用戶的個人信息。用戶只要將該文件放入指定的目錄,就可以讓軟件成為正式版。該文件一般是放在軟件的安裝目錄中或系統(tǒng)目錄下。軟件每次啟動時,從該文件中讀取數(shù)據(jù),然后利用某種算法進行處理,根據(jù)處理的結(jié)果判斷是否為正確的注冊文件,如果正確則以注冊版模式來運行。 (1)破解Key File一般思路

1. 最好分析Key File的工具是十六進制工具,普通的文本編輯工具不太適合。

2. 對付這類程序,你首先建立一假的Key File文件。一般的軟件容許Key File有不同的大小和文件名,你建立的文件內(nèi)容必須易讀,跟據(jù)情況調(diào)整Key File的大小和文件名。為什么要易讀呢?因為目標程序從KeyFile中讀取數(shù)據(jù),然后進行處理,易讀有利于你分析其運算過程。

3. Key File文件在大多數(shù)情況下,是以'*.key'形式存在的。

4. Key File文件名可用W32DASM或十六進制工具打開程序用查找字符串方式確定;

5. 讀用戶手冊(有時作者可能會提到);

6. 用Filemon 這一工具,它能實時監(jiān)視系統(tǒng)各文件的狀態(tài),因此運行程序時,如它去讀指定文件名的Key File時,會在Filemon顯示Key File文件名。一但你發(fā)現(xiàn)Key File文件名,就建立一假的Key File到要被crack軟件目錄下,然后去crack。

(2)Windows下破解Key File幾個常用的函數(shù):


函數(shù)ReadFile
作用:從文件中讀出數(shù)據(jù)
參數(shù):其中Long,非零表示成功,零表示失敗。

BOOL ReadFile(
HANDLE hFile, // Long,文件的句柄
LPVOID lpBuffer, // Any,用于保存讀入數(shù)據(jù)的一個緩沖區(qū)
DWORD nNumberOfBytesToRead, //Long,要讀入的字符數(shù)
LPDWORD lpNumberOfBytesRead, // Long,從文件中實際讀入的字符數(shù)
LPOVERLAPPED lpOverlapped // address of structure for data
);


函數(shù)CreateFileA
作用:可打開和創(chuàng)建文件、管道、郵槽、通信服務(wù)、設(shè)備以及控制臺


HANDLE CreateFileA(

LPCTSTR lpFileName, // String,要打開的文件的名字
DWORD dwDesiredAccess, // 允許對設(shè)備進行讀寫訪問;
DWORD dwShareMode, // 共享模式
LPSECURITY_ATTRIBUTES lpSecurityAttributes// 指向一個SECURITY_ATTRIBUTES結(jié)構(gòu)的指針,定義了文件的安全特性(如果操作系統(tǒng)支持的)
DWORD dwCreationDistribution, // 如何創(chuàng)建文件
DWORD dwFlagsAndAttributes, // file attributes
HANDLE hTemplateFile //Long,如果不為零,則指定一個文件句柄。新文件將從這個文件中復(fù)制 擴展屬性
);


函數(shù)_lopen( )
作用:以二進制模式打開指定的文件


HFILE _lopen(

LPCSTR lpPathName, // 欲打開文件的名字
int iReadWrite // 訪問模式和共享模式常數(shù)的一個組合
);


函數(shù)FindFirstFileA( )
作用:根據(jù)文件名查找文件

HANDLE FindFirstFile(

LPCTSTR lpFileName, // 欲搜索的文件名。可包含通配符,并可包含一個路徑或相對路徑名
LPWIN32_FIND_DATA lpFindFileData // WIN32_FIND_DATA,這個結(jié)構(gòu)用于裝載與找到的文件有關(guān)的信息。該結(jié)構(gòu)可用于后續(xù)的搜索
);