明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

爆破的思路與斷點(diǎn)設(shè)置

[摘要]破 顧名思義就是暴力修改程序的代碼來(lái)達(dá)到破解的目的 當(dāng)然根據(jù)共享軟件的注冊(cè)方式我們可以對(duì)癥下藥 比如說(shuō)沒(méi)有注冊(cè)的軟件有功能限制、使用次數(shù)限制、使用日期限制等 我們就可以分別對(duì)待了!我們只需要解...

破 顧名思義就是暴力修改程序的代碼來(lái)達(dá)到破解的目的
當(dāng)然根據(jù)共享軟件的注冊(cè)方式我們可以對(duì)癥下藥

比如說(shuō)沒(méi)有注冊(cè)的軟件有功能限制、使用次數(shù)限制、使用日期限制等
我們就可以分別對(duì)待了!我們只需要解除這些限制自然就達(dá)到了破解的目的了!

暴力破解的一般流程
1、有殼者自然得先脫殼
2、試注冊(cè)看看有何提示,讓我們抓抓小尾巴
3、若有提示,用OD動(dòng)態(tài)調(diào)試器或者是W32靜態(tài)調(diào)試器查找錯(cuò)誤提示
4、來(lái)到錯(cuò)誤提示處分析代碼找關(guān)鍵CALL、關(guān)鍵跳!
5、修改代碼
6、復(fù)制保存!

如果沒(méi)有提示,我們可以使用很多斷點(diǎn)來(lái)完成這些操作
現(xiàn)今軟件的保護(hù)方式有
1、序列號(hào)保護(hù)方式(注冊(cè)碼=f(機(jī)器碼/序列號(hào)))
2、警告(NAG)窗口
3、時(shí)間限制/次數(shù)限制。。
4、菜單功能限制
5、Key File保護(hù)
6、CD-Check
7、只運(yùn)行一個(gè)實(shí)例

一些軟件通過(guò)把注冊(cè)碼保存在.ini文件、注冊(cè)表、.dat文件等等方式進(jìn)行注冊(cè)驗(yàn)證

常見斷點(diǎn)設(shè)置(后面帶"*" 的為常用的)

字符串
bp GetDlgItemTextA(W) ****
bp GetDlgItemInt
bp GetWindowTextA(W) ****
bp GetWindowWord
bmsg XXXX wm_gettext

對(duì)話框
bp MessageBeep
bp MessageBoxA(W) ****
bp MessageBoxExA(W)
bp DialogBoxParamA(W)
bp GreateWindowExA(W)
bp ShowWindow
bp UpdateWindow
bmsg XXXX wm_command

對(duì)于VB的程序用bp MessageBoxA是無(wú)法斷下來(lái)的,bp rtcMsgBox

注冊(cè)表相關(guān)
bp RegCreateKeyA(W)
bp RegDeleteKeyA(W)
bp RegQueryValueA(W)
bp RegCloseKey
bp RegOpenKeyA(W) ****

時(shí)間相關(guān)
bp GetLocalTime
bp GetFileTime
bp GetSystemtime

CD-ROM或磁盤相關(guān)
bp GetFileAttributesA(W)
bp GetFileSize
bp GetDriveType
bp GetLastError
bp ReadFile
bpio -h (CD-ROM端口地址) R

軟件狗
bpio -h 278R
bpio -h 378R

INI初始化文件相關(guān)
bp GetPrivateProfileStringA ****
bp GetPrivateProfileInt
bp WritePrivateProfileString
bp WritePrivateProfileInt

文件訪問(wèn)相關(guān)
bp ReadFile
bp WriteFile
bp CreateFileA ****
bp SetFilePointer
bp GetSystemDirectory
VB程序?qū)S脭帱c(diǎn):
bpx msvbvm60!rtcMsgBox
bpx msvbvm60!__vbaStrCmp
bpx msvbvm60!__vbaStrComp
bpx msvbvm60!__vbaStrCompVar
bpx msvbvm60!__vbaStrTextCmp
bpx msvbvm60!__vbaFileOpen
bpx msvbvm60!__vbaInputFile
bpx msvbvm60!__vbaFileSeek
bpx msvbvm60!__vbaWriteFile
bpx msvbvm60!__vbaFileClose
bpx msvbvm60!rtcFileAttributes
bpx msvbvm60!rtcFileDateTime
bpx msvbvm60!rtcFileLen
bpx msvbvm60!rtcFileLength
bpx msvbvm60!__vbaVarInt
bpx msvbvm60!__vbaVarCmpGe
bpx msvbvm60!__vbaVarCmpGt
bpx msvbvm60!__vbaVarCmpLe
bpx msvbvm60!__vbaVarCmpLt
bpx msvbvm60!__vbaVarCmpNe
bpx msvbvm60!__vbaVarTextCmpEq
bpx msvbvm60!__vbaVarTextCmpGe
bpx msvbvm60!__vbaVarTextCmpGt
bpx msvbvm60!__vbaVarTextCmpLe
bpx msvbvm60!__vbaVarTextCmpLt
bpx msvbvm60!__vbaVarTextCmpNe
bpx msvbvm60!__vbaVarTextTstEq
bpx msvbvm60!__vbaVarTextTstGe
bpx msvbvm60!__vbaVarTextTstGt
bpx msvbvm60!__vbaVarTextTstLe
bpx msvbvm60!__vbaVarTextTstLt
bpx msvbvm60!__vbaVarTextTstNe
bpx msvbvm60!__vbaVarTstEq
bpx msvbvm60!__vbaVarTstGe
bpx msvbvm60!__vbaVarTstGt
bpx msvbvm60!__vbaVarTstLe
bpx msvbvm60!__vbaVarTstLt
bpx msvbvm60!__vbaVarTstNe
注意:VB程序仍然可以使用普通API函數(shù),只要函數(shù)“最終”CALL了這個(gè)函數(shù)
上面的斷點(diǎn)對(duì)應(yīng)VB6程序,如果是VB5程序則將msvbvm60改成msvbvm50即可

另外還有一類軟件通過(guò)網(wǎng)絡(luò)驗(yàn)證、重啟驗(yàn)證來(lái)判斷程序是否注冊(cè)
當(dāng)然前者一般應(yīng)用于外掛程序上較多,一般是改網(wǎng)絡(luò)驗(yàn)證為本地驗(yàn)證達(dá)到欺騙遠(yuǎn)程網(wǎng)絡(luò)主機(jī)的目的達(dá)到通過(guò)驗(yàn)證!
后者也是很常見的,他一般把用戶輸入的注冊(cè)碼直接或者是通過(guò)加密運(yùn)算后得到的數(shù)值保存到文件、注冊(cè)表中,然后提示用戶重啟驗(yàn)證是否注冊(cè),當(dāng)然當(dāng)你 重新打開程序的時(shí)候他會(huì)從文件或者是注冊(cè)表中讀取用戶輸入的注冊(cè)碼,再通過(guò)程序注冊(cè)算法來(lái)進(jìn)行比照,正確者當(dāng)然就成為正版,錯(cuò)誤的自然就88了,另外以重 啟驗(yàn)證的軟件一般是把注冊(cè)碼保存在注冊(cè)表或文件中!

下面來(lái)說(shuō)說(shuō)解決這類軟件的一般方法!

重啟驗(yàn)證類軟件大致的驗(yàn)證過(guò)程。
1、運(yùn)行軟件輸入注冊(cè)信息,點(diǎn)注冊(cè)后。一般軟件會(huì)提示你重新運(yùn)行軟件,以便驗(yàn)證注冊(cè)信息的正確性(如FlashGet);
也有的只在你輸入正確的注冊(cè)信息時(shí)才有這個(gè)提示,不然會(huì)告訴你輸入的注冊(cè)信息有問(wèn)題(此軟件就屬這類)

2、要破解這種軟件,首先是判斷一下她把注冊(cè)信息存在哪里(因?yàn)樗貑Ⅱ?yàn)證時(shí)要用)。大致有兩種存放方式,第一種是放在注冊(cè)表里;第二種是放在文件里。(我們可以在輸入注冊(cè)信息,點(diǎn)擊確定前,利用監(jiān)視類軟件來(lái)查看一下,如FileMon和RegShot等)

3、知道她的注冊(cè)信息的存放地點(diǎn)后,就可以選則相應(yīng)的API斷點(diǎn),來(lái)調(diào)試了

訪問(wèn)注冊(cè)表類常用API
bp RegOpenKeyA 打開一個(gè)現(xiàn)有的注冊(cè)表項(xiàng) ****
bp RegOpenKeyExA 打開一個(gè)現(xiàn)有的注冊(cè)表項(xiàng) ****
bp RegCreateKeyA 在指定的項(xiàng)下創(chuàng)建或打開一個(gè)項(xiàng)
bp RegCreateKeyExA 在指定項(xiàng)下創(chuàng)建新項(xiàng)的更復(fù)雜的方式
bp RegDeleteKeyA 刪除現(xiàn)有項(xiàng)下方一個(gè)指定的子項(xiàng)
bp RegDeleteValueA 刪除指定項(xiàng)下方的一個(gè)值
bp RegQueryValueA 獲取一個(gè)項(xiàng)的設(shè)置值
bp RegQueryValueExA 獲取一個(gè)項(xiàng)的設(shè)置值
bp RegSetValueA 設(shè)置指定項(xiàng)或子項(xiàng)的值
bp RegSetValueExA 設(shè)置指定項(xiàng)的值
bp RegCloseKey 關(guān)閉系統(tǒng)注冊(cè)表中的一個(gè)項(xiàng)(或鍵)

訪問(wèn)文件類常用API
bp CreateFileA 打開和創(chuàng)建文件、管道、郵槽、通信服務(wù)、設(shè)備以及控制臺(tái) ****
bp OpenFile 這個(gè)函數(shù)能執(zhí)行大量不同的文件操作
bp ReadFile 從文件中讀出數(shù)據(jù)
bp ReadFileEx 與ReadFile相似,只是它只能用于異步讀操作,并包含了一個(gè)完整的回調(diào)
======================================================

常用斷點(diǎn)(OD中)
攔截窗口:
bp CreateWindow 創(chuàng)建窗口
bp CreateWindowEx(A) 創(chuàng)建窗口
bp ShowWindow 顯示窗口
bp UpdateWindow 更新窗口
bp GetWindowText(A) 獲取窗口文本
攔截消息框:
bp MessageBox(A) 創(chuàng)建消息框
bp MessageBoxExA 創(chuàng)建消息框
bp MessageBoxIndirect(A) 創(chuàng)建定制消息框
攔截警告聲:
bp MessageBeep 發(fā)出系統(tǒng)警告聲(如果沒(méi)有聲卡就直接驅(qū)動(dòng)系統(tǒng)喇叭發(fā)聲)
攔截對(duì)話框:
bp DialogBox 創(chuàng)建模態(tài)對(duì)話框
bp DialogBoxParam(A) 創(chuàng)建模態(tài)對(duì)話框
bp DialogBoxIndirect 創(chuàng)建模態(tài)對(duì)話框
bp DialogBoxIndirectParam(A) 創(chuàng)建模態(tài)對(duì)話框
bp CreateDialog 創(chuàng)建非模態(tài)對(duì)話框
bp CreateDialogParam(A) 創(chuàng)建非模態(tài)對(duì)話框
bp CreateDialogIndirect 創(chuàng)建非模態(tài)對(duì)話框
bp CreateDialogIndirectParam(A) 創(chuàng)建非模態(tài)對(duì)話框
bp GetDlgItemText(A) 獲取對(duì)話框文本
bp GetDlgItemInt 獲取對(duì)話框整數(shù)值
攔截剪貼板
bp GetClipboardData 獲取剪貼板數(shù)據(jù)
攔截注冊(cè)表:
bp RegOpenKey(A) 打開子健
bp RegOpenKeyEx 打開子健
bp RegQueryValue(A) 查找子健
bp RegQueryValueEx 查找子健
bp RegSetValue(A) 設(shè)置子健
bp RegSetValueEx(A) 設(shè)置子健
功能限制攔截?cái)帱c(diǎn):
bp EnableMenuItem 禁止或允許菜單項(xiàng)
bp EnableWindow 禁止或允許窗口
攔截時(shí)間:
bp GetLocalTime 獲取本地時(shí)間
bp GetSystemTime 獲取系統(tǒng)時(shí)間
bp GetFileTime 獲取文件時(shí)間
bp GetTickCount 獲得自系統(tǒng)成功啟動(dòng)以來(lái)所經(jīng)歷的毫秒數(shù)
bp GetCurrentTime 獲取當(dāng)前時(shí)間(16位)
bp SetTimer 創(chuàng)建定時(shí)器
bp TimerProc 定時(shí)器超時(shí)回調(diào)函數(shù)
攔截文件:
bp CreateFileA 創(chuàng)建或打開文件 (32位)
bp OpenFile 打開文件 (32位)
bp ReadFile 讀文件 (32位)
bp WriteFile 寫文件 (32位)
攔截驅(qū)動(dòng)器:
bp GetDriveTypeA 獲取磁盤驅(qū)動(dòng)器類型
bp GetLogicalDrives 獲取邏輯驅(qū)動(dòng)器符號(hào)
bp GetLogicalDriveStringsA 獲取當(dāng)前所有邏輯驅(qū)動(dòng)器的根驅(qū)動(dòng)器路徑

★★VB程序?qū)S脭帱c(diǎn)★★
bp __vbaStrCmp 比較字符串是否相等
bp __vbaStrComp 比較字符串是否相等
bp __vbaVarTstNe 比較變量是否不相等
bp __vbaVarTstEq 比較變量是否相等
bp __vbaStrCopy 復(fù)制字符串
bp __vbaStrMove 移動(dòng)字符串
bp MultiByteToWideChar ANSI字符串轉(zhuǎn)換成Unicode字符串
bp WideCharToMultiByte Unicode字符串轉(zhuǎn)換成ANSI字符串


上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識(shí),學(xué)習(xí)了安全知識(shí),幾乎可以讓你免費(fèi)電腦中毒的煩擾。