爆破的思路與斷點(diǎn)設(shè)置
發(fā)表時(shí)間:2023-08-01 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]破 顧名思義就是暴力修改程序的代碼來(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)電腦中毒的煩擾。