爆破的思路與斷點設(shè)置
發(fā)表時間:2023-09-08 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]破 顧名思義就是暴力修改程序的代碼來達(dá)到破解的目的 當(dāng)然根據(jù)共享軟件的注冊方式我們可以對癥下藥 比如說沒有注冊的軟件有功能限制、使用次數(shù)限制、使用日期限制等 我們就可以分別對待了!我們只需要解除這些限制自然就達(dá)到了破解的目的了! 暴力破解的一般流程 1、有殼者自然得先脫殼 2、試注冊看...
破 顧名思義就是暴力修改程序的代碼來達(dá)到破解的目的
當(dāng)然根據(jù)共享軟件的注冊方式我們可以對癥下藥
比如說沒有注冊的軟件有功能限制、使用次數(shù)限制、使用日期限制等
我們就可以分別對待了!我們只需要解除這些限制自然就達(dá)到了破解的目的了!
暴力破解的一般流程
1、有殼者自然得先脫殼
2、試注冊看看有何提示,讓我們抓抓小尾巴
3、若有提示,用OD動態(tài)調(diào)試器或者是W32靜態(tài)調(diào)試器查找錯誤提示
4、來到錯誤提示處分析代碼找關(guān)鍵CALL、關(guān)鍵跳!
5、修改代碼
6、復(fù)制保存!
如果沒有提示,我們可以使用很多斷點來完成這些操作
現(xiàn)今軟件的保護(hù)方式有
1、序列號保護(hù)方式(注冊碼=f(機(jī)器碼/序列號))
2、警告(NAG)窗口
3、時間限制/次數(shù)限制。。
4、菜單功能限制
5、Key File保護(hù)
6、CD-Check
7、只運行一個實例
一些軟件通過把注冊碼保存在.ini文件、注冊表、.dat文件等等方式進(jìn)行注冊驗證
常見斷點設(shè)置(后面帶"*" 的為常用的)
字符串
bp GetDlgItemTextA(W) ****
bp GetDlgItemInt
bp GetWindowTextA(W) ****
bp GetWindowWord
bmsg XXXX wm_gettext
對話框
bp MessageBeep
bp MessageBoxA(W) ****
bp MessageBoxExA(W)
bp DialogBoxParamA(W)
bp GreateWindowExA(W)
bp ShowWindow
bp UpdateWindow
bmsg XXXX wm_command
對于VB的程序用bp MessageBoxA是無法斷下來的,bp rtcMsgBox
注冊表相關(guān)
bp RegCreateKeyA(W)
bp RegDeleteKeyA(W)
bp RegQueryValueA(W)
bp RegCloseKey
bp RegOpenKeyA(W) ****
時間相關(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
文件訪問相關(guān)
bp ReadFile
bp WriteFile
bp CreateFileA ****
bp SetFilePointer
bp GetSystemDirectory
VB程序?qū)S脭帱c:
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了這個函數(shù)
上面的斷點對應(yīng)VB6程序,如果是VB5程序則將msvbvm60改成msvbvm50即可
另外還有一類軟件通過網(wǎng)絡(luò)驗證、重啟驗證來判斷程序是否注冊
當(dāng)然前者一般應(yīng)用于外掛程序上較多,一般是改網(wǎng)絡(luò)驗證為本地驗證達(dá)到欺騙遠(yuǎn)程網(wǎng)絡(luò)主機(jī)的目的達(dá)到通過驗證!
后者也是很常見的,他一般把用戶輸入的注冊碼直接或者是通過加密運算后得到的數(shù)值保存到文件、注冊表中,然后提示用戶重啟驗證是否注冊,當(dāng)然當(dāng)你 重新打開程序的時候他會從文件或者是注冊表中讀取用戶輸入的注冊碼,再通過程序注冊算法來進(jìn)行比照,正確者當(dāng)然就成為正版,錯誤的自然就88了,另外以重 啟驗證的軟件一般是把注冊碼保存在注冊表或文件中!
下面來說說解決這類軟件的一般方法!
重啟驗證類軟件大致的驗證過程。
1、運行軟件輸入注冊信息,點注冊后。一般軟件會提示你重新運行軟件,以便驗證注冊信息的正確性(如FlashGet);
也有的只在你輸入正確的注冊信息時才有這個提示,不然會告訴你輸入的注冊信息有問題(此軟件就屬這類)
2、要破解這種軟件,首先是判斷一下她把注冊信息存在哪里(因為她重啟驗證時要用)。大致有兩種存放方式,第一種是放在注冊表里;第二種是放在文件里。(我們可以在輸入注冊信息,點擊確定前,利用監(jiān)視類軟件來查看一下,如FileMon和RegShot等)
3、知道她的注冊信息的存放地點后,就可以選則相應(yīng)的API斷點,來調(diào)試了
訪問注冊表類常用API
bp RegOpenKeyA 打開一個現(xiàn)有的注冊表項 ****
bp RegOpenKeyExA 打開一個現(xiàn)有的注冊表項 ****
bp RegCreateKeyA 在指定的項下創(chuàng)建或打開一個項
bp RegCreateKeyExA 在指定項下創(chuàng)建新項的更復(fù)雜的方式
bp RegDeleteKeyA 刪除現(xiàn)有項下方一個指定的子項
bp RegDeleteValueA 刪除指定項下方的一個值
bp RegQueryValueA 獲取一個項的設(shè)置值
bp RegQueryValueExA 獲取一個項的設(shè)置值
bp RegSetValueA 設(shè)置指定項或子項的值
bp RegSetValueExA 設(shè)置指定項的值
bp RegCloseKey 關(guān)閉系統(tǒng)注冊表中的一個項(或鍵)
訪問文件類常用API
bp CreateFileA 打開和創(chuàng)建文件、管道、郵槽、通信服務(wù)、設(shè)備以及控制臺 ****
bp OpenFile 這個函數(shù)能執(zhí)行大量不同的文件操作
bp ReadFile 從文件中讀出數(shù)據(jù)
bp ReadFileEx 與ReadFile相似,只是它只能用于異步讀操作,并包含了一個完整的回調(diào)
======================================================
常用斷點(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)警告聲(如果沒有聲卡就直接驅(qū)動系統(tǒng)喇叭發(fā)聲)
攔截對話框:
bp DialogBox 創(chuàng)建模態(tài)對話框
bp DialogBoxParam(A) 創(chuàng)建模態(tài)對話框
bp DialogBoxIndirect 創(chuàng)建模態(tài)對話框
bp DialogBoxIndirectParam(A) 創(chuàng)建模態(tài)對話框
bp CreateDialog 創(chuàng)建非模態(tài)對話框
bp CreateDialogParam(A) 創(chuàng)建非模態(tài)對話框
bp CreateDialogIndirect 創(chuàng)建非模態(tài)對話框
bp CreateDialogIndirectParam(A) 創(chuàng)建非模態(tài)對話框
bp GetDlgItemText(A) 獲取對話框文本
bp GetDlgItemInt 獲取對話框整數(shù)值
攔截剪貼板:
bp GetClipboardData 獲取剪貼板數(shù)據(jù)
攔截注冊表:
bp RegOpenKey(A) 打開子健
bp RegOpenKeyEx 打開子健
bp RegQueryValue(A) 查找子健
bp RegQueryValueEx 查找子健
bp RegSetValue(A) 設(shè)置子健
bp RegSetValueEx(A) 設(shè)置子健
功能限制攔截斷點:
bp EnableMenuItem 禁止或允許菜單項
bp EnableWindow 禁止或允許窗口
攔截時間:
bp GetLocalTime 獲取本地時間
bp GetSystemTime 獲取系統(tǒng)時間
bp GetFileTime 獲取文件時間
bp GetTickCount 獲得自系統(tǒng)成功啟動以來所經(jīng)歷的毫秒數(shù)
bp GetCurrentTime 獲取當(dāng)前時間(16位)
bp SetTimer 創(chuàng)建定時器
bp TimerProc 定時器超時回調(diào)函數(shù)
攔截文件:
bp CreateFileA 創(chuàng)建或打開文件 (32位)
bp OpenFile 打開文件 (32位)
bp ReadFile 讀文件 (32位)
bp WriteFile 寫文件 (32位)
攔截驅(qū)動器:
bp GetDriveTypeA 獲取磁盤驅(qū)動器類型
bp GetLogicalDrives 獲取邏輯驅(qū)動器符號
bp GetLogicalDriveStringsA 獲取當(dāng)前所有邏輯驅(qū)動器的根驅(qū)動器路徑
★★VB程序?qū)S脭帱c★★
bp __vbaStrCmp 比較字符串是否相等
bp __vbaStrComp 比較字符串是否相等
bp __vbaVarTstNe 比較變量是否不相等
bp __vbaVarTstEq 比較變量是否相等
bp __vbaStrCopy 復(fù)制字符串
bp __vbaStrMove 移動字符串
bp MultiByteToWideChar ANSI字符串轉(zhuǎn)換成Unicode字符串
bp WideCharToMultiByte Unicode字符串轉(zhuǎn)換成ANSI字符串
上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識,學(xué)習(xí)了安全知識,幾乎可以讓你免費電腦中毒的煩擾。