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

破 顧名思義就是暴力修改程序的代碼來達(dá)到破解的目的
當(dāng)然根據(jù)共享軟件的注冊方式我們可以對(duì)癥下藥
比如說沒有注冊的軟件有功能限制、使用次數(shù)限制、使用日期限制等
我們就可以分別對(duì)待了!我們只需要解除這些限制自然就達(dá)到了破解的目的了!
一般流程
1、有殼者自然得先脫殼
2、試注冊看看有何提示,讓我們抓抓小尾巴
3、若有提示,用OD動(dòng)態(tài)調(diào)試器或者是W32靜態(tài)調(diào)試器查找錯(cuò)誤提示
4、來到錯(cuò)誤提示處分析代碼找關(guān)鍵CALL、關(guān)鍵跳!
5、修改代碼
6、復(fù)制保存!
如果沒有提示,我們可以使用很多斷點(diǎn)來完成這些操作
現(xiàn)今軟件的保護(hù)方式有
1、序列號(hào)保護(hù)方式(注冊碼=f(機(jī)器碼/序列號(hào)))
2、警告(NAG)窗口
3、時(shí)間限制/次數(shù)限制。。
4、菜單功能限制
5、Key File保護(hù)
6、CD-Check
7、只運(yùn)行一個(gè)實(shí)例
一些軟件通過把注冊碼保存在.ini文件、注冊表、.dat文件等等方式進(jìn)行注冊驗(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是無法斷下來的,bp rtcMsgBox
注冊表相關(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
文件訪問相關(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即可
另外還有一類軟件通過網(wǎng)絡(luò)驗(yàn)證、重啟驗(yàn)證來判斷程序是否注冊
當(dāng)然前者一般應(yīng)用于外掛程序上較多,一般是改網(wǎng)絡(luò)驗(yàn)證為本地驗(yàn)證達(dá)到欺騙遠(yuǎn)程網(wǎng)絡(luò)主機(jī)的目的達(dá)到通過驗(yàn)證!
后者也是很常見的,他一般把用戶輸入的注冊碼直接或者是通過加密運(yùn)算后得到的數(shù)值保存到文件、注冊表中,然后提示用戶重啟驗(yàn)證是否注冊,當(dāng)然當(dāng)你重新打開程序的時(shí)候他會(huì)從文件或者是注冊表中讀取用戶輸入的注冊碼,再通過程序注冊算法來進(jìn)行比照,正確者當(dāng)然就成為正版,錯(cuò)誤的自然就88了,另外以重啟驗(yàn)證的軟件一般是把注冊碼保存在注冊表或文件中!
下面來說說解決這類軟件的一般方法!
重啟驗(yàn)證類軟件大致的驗(yàn)證過程。
1、運(yùn)行軟件輸入注冊信息,點(diǎn)注冊后。一般軟件會(huì)提示你重新運(yùn)行軟件,以便驗(yàn)證注冊信息的正確性(如FlashGet);
也有的只在你輸入正確的注冊信息時(shí)才有這個(gè)提示,不然會(huì)告訴你輸入的注冊信息有問題(此軟件就屬這類)
2、要破解這種軟件,首先是判斷一下她把注冊信息存在哪里(因?yàn)樗貑Ⅱ?yàn)證時(shí)要用)。大致有兩種存放方式,第一種是放在注冊表里;第二種是放在文件里。(我們可以在輸入注冊信息,點(diǎn)擊確定前,利用監(jiān)視類軟件來查看一下,如FileMon和RegShot等)
3、知道她的注冊信息的存放地點(diǎn)后,就可以選則相應(yīng)的API斷點(diǎn),來調(diào)試了
訪問注冊表類常用API
bp RegOpenKeyA 打開一個(gè)現(xiàn)有的注冊表項(xiàng) ****
bp RegOpenKeyExA 打開一個(gè)現(xiàn)有的注冊表項(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)注冊表中的一個(gè)項(xiàng)(或鍵)
訪問文件類常用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)警告聲(如果沒有聲卡就直接驅(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ù)
攔截注冊表:
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)以來所經(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字符串
相關(guān)文章
封UDP的服務(wù)器真的打不了么?封UDP、封海外服務(wù)器
很多游戲服務(wù)器租用的時(shí)候會(huì)出現(xiàn)一些封UDP的字眼,網(wǎng)上一些文章也說UDP協(xié)議不可靠!為什么要封UDP呢?既然不可靠,為什么有些人還要使用它呢?今天與你們分享一下UDP,希望2024-05-07魔獸世界服務(wù)器被DDoS攻擊怎么辦?DDoS攻擊防御方法
魔獸世界服務(wù)器被攻擊在目前來說也是比較常見的,同行競爭激烈,在官服開放時(shí)也遇到過DDOS攻擊,要是飛飛沒記錯(cuò)是在22年9月14日,從剛開始的身份驗(yàn)證服務(wù)器出現(xiàn)問題,到確2023-07-17分享五大免費(fèi)企業(yè)網(wǎng)絡(luò)入侵檢測(IDS)工具
這篇文章主要分享一下五大免費(fèi)企業(yè)網(wǎng)絡(luò)入侵檢測(IDS)工具,當(dāng)前企業(yè)對(duì)于網(wǎng)絡(luò)安全越來越重視,那么后期可能就需要大家多多關(guān)注一些安全工具的使用于檢測2019-12-01網(wǎng)絡(luò)安全基礎(chǔ)之網(wǎng)絡(luò)協(xié)議與安全威脅的關(guān)系介紹
網(wǎng)絡(luò)協(xié)議是什么呢?網(wǎng)絡(luò)協(xié)議是網(wǎng)絡(luò)中計(jì)算機(jī)或設(shè)備之間進(jìn)行通信的一系列規(guī)則集合。本文中小編介紹的是網(wǎng)絡(luò)協(xié)議和安全威脅的關(guān)系,需要的朋友不妨閱讀本文了解一下2019-04-02DDoS攻擊原理是什么?DDoS攻擊原理及防護(hù)措施介紹
DDoS攻擊是由DoS攻擊轉(zhuǎn)化的,這項(xiàng)攻擊的原理以及表現(xiàn)形式是怎樣的呢?要如何的進(jìn)行防御呢?本文中將會(huì)有詳細(xì)的介紹,需要的朋友不妨閱讀本文進(jìn)行參考2019-01-15基于Web攻擊的方式發(fā)現(xiàn)并攻擊物聯(lián)網(wǎng)設(shè)備介紹
本文中介紹的是基于Web攻擊的方式發(fā)現(xiàn)并攻擊物聯(lián)網(wǎng)設(shè)備,感興趣的朋友不妨閱讀本文進(jìn)行了解2019-01-11為何黑客要挾制路由器DNS 用戶該怎樣實(shí)時(shí)發(fā)覺和防備方法
起首說說挾制路由器是什么意思,路由器挾制平日指的是,開啟了無線網(wǎng)絡(luò)功效的無線路由器,攻擊者經(jīng)由過程破解無線暗碼銜接上無線網(wǎng)后,再登錄路由治理界面來節(jié)制全部無線網(wǎng)2018-05-16大勢至共享文件監(jiān)控軟件、共享文件權(quán)限管理軟件主控端與客戶端的連接設(shè)
這篇文章主要介紹了大勢至共享文件監(jiān)控軟件、共享文件權(quán)限管理軟件主控端與客戶端的連接設(shè)置方法詳解,,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,下面就來和小編一起看看2018-01-25詳細(xì)介紹sd卡加密軟件的選擇以及給sd卡設(shè)置密碼、給sd卡加密
這篇文章主要介紹了詳細(xì)介紹sd卡加密軟件的選擇以及給sd卡設(shè)置密碼、給sd卡加密,如何保護(hù)sd卡文件的安全,如何給SD卡設(shè)置密碼、如何給SD卡加密,下面就跟小編一起來看看吧2018-01-19server2008共享設(shè)置、服務(wù)器共享文件設(shè)置、服務(wù)器設(shè)置共享文件夾的方法
這篇文章主要介紹了server2008共享設(shè)置、服務(wù)器共享文件設(shè)置、服務(wù)器設(shè)置共享文件夾的方法詳細(xì)介紹,保護(hù)服務(wù)器共享文件設(shè)置訪問權(quán)限,讓每個(gè)部門只訪問自己的共享文件等,2018-01-19