久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

OllyDBG 入門之四--破解常用斷點(diǎn)設(shè)

 葫蘆寶寶 2011-03-18

軟件漢化:OllyDBG 入門之四--破解常用斷點(diǎn)設(shè)置(轉(zhuǎn))

軟件漢化 2010-07-08 16:25:23 閱讀76 評(píng)論0   字號(hào): 訂閱

bpx hmemcpy    破解萬能斷點(diǎn),攔截內(nèi)存拷貝動(dòng)作
bpx Lockmytask 當(dāng)你用其它斷點(diǎn)都無效時(shí)可以試一下,,這個(gè)斷點(diǎn)攔截按鍵的動(dòng)作
bmsg handle wm_gettext 攔截注冊(cè)碼(handle為對(duì)應(yīng)窗口的句柄)
bmsg handle wm_command 攔截OK按鈕(handle為對(duì)應(yīng)窗口的句柄)


攔截窗口:
bpx CreateWindow      創(chuàng)建窗口
bpx CreateWindowEx(A) 創(chuàng)建窗口
bpx ShowWindow        顯示窗口
bpx UpdateWindow      更新窗口
bpx GetWindowText(A)  獲取窗口文本


攔截消息框:

bpx MessageBox(A) 創(chuàng)建消息框
bpx MessageBoxExA 創(chuàng)建消息框
bpx MessageBoxIndirect(A) 創(chuàng)建定制消息框


攔截警告聲:
bpx MessageBeep 發(fā)出系統(tǒng)警告聲(如果沒有聲卡就直接驅(qū)動(dòng)系統(tǒng)喇叭發(fā)聲)


攔截對(duì)話框:
bpx DialogBox         創(chuàng)建模態(tài)對(duì)話框
bpx DialogBoxParam(A) 創(chuàng)建模態(tài)對(duì)話框
bpx DialogBoxIndirect 創(chuàng)建模態(tài)對(duì)話框
bpx DialogBoxIndirectParam(A) 創(chuàng)建模態(tài)對(duì)話框
bpx CreateDialog         創(chuàng)建非模態(tài)對(duì)話框
bpx CreateDialogParam(A) 創(chuàng)建非模態(tài)對(duì)話框
bpx CreateDialogIndirect 創(chuàng)建非模態(tài)對(duì)話框
bpx CreateDialogIndirectParam(A) 創(chuàng)建非模態(tài)對(duì)話框
bpx GetDlgItemText(A)    獲取對(duì)話框文本
bpx GetDlgItemInt        獲取對(duì)話框整數(shù)值


攔截剪貼板:
bpx GetClipboardData 獲取剪貼板數(shù)據(jù)


攔截注冊(cè)表:
bpx RegOpenKey(A)    打開子健 ( 例:bpx RegOpenKey(A) if *(esp+8)=='****' )
bpx RegOpenKeyEx     打開子健 ( 例:bpx RegOpenKeyEx if *(esp+8)=='****' )
bpx RegQueryValue(A) 查找子健 ( 例:bpx RegQueryValue(A) if *(esp+8)=='****' )
bpx RegQueryValueEx  查找子健 ( 例:bpx RegQueryValueEx if *(esp+8)=='****' )
bpx RegSetValue(A)   設(shè)置子健 ( 例:bpx RegSetValue(A) if *(esp+8)=='****' )
bpx RegSetValueEx(A) 設(shè)置子健 ( 例:bpx RegSetValueEx(A) if *(esp+8)=='****' )
“****”為指定子鍵名的前4個(gè)字符,,如子鍵為“Regcode”,則“****”= “Regc”


功能限制攔截?cái)帱c(diǎn):

bpx EnableMenuItem 禁止或允許菜單項(xiàng)
bpx EnableWindow 禁止或允許窗口
bmsg hMenu wm_command 攔截菜單按鍵事件,其中hMenu為菜單句柄
bpx K32Thk1632Prolog 配合bmsg hMenu wm_command使用,可以通過這個(gè)斷點(diǎn)進(jìn)入菜單處理程序


應(yīng)用示例:
CALL [KERNEL32!K32Thk1632Prolog]
CALL [......]      <-- 由此跟蹤進(jìn)入菜單處理程序
CALL [KERNEL32!K32Thk1632Epilog]


攔截時(shí)間:
bpx GetLocalTime  獲取本地時(shí)間
bpx GetSystemTime 獲取系統(tǒng)時(shí)間
bpx GetFileTime   獲取文件時(shí)間
bpx GetTickCount  獲得自系統(tǒng)成功啟動(dòng)以來所經(jīng)歷的毫秒數(shù)
bpx GetCurrentTime 獲取當(dāng)前時(shí)間(16位)
bpx SetTimer      創(chuàng)建定時(shí)器
bpx TimerProc     定時(shí)器超時(shí)回調(diào)函數(shù)


攔截文件:
bpx CreateFileA  創(chuàng)建或打開文件 (32位)
bpx OpenFile     打開文件 (32位)
bpx ReadFile     讀文件 (32位)
bpx WriteFile    寫文件 (32位)
bpx _lcreat     創(chuàng)建或打開文件 (16位)
bpx _lopen      打開文件 (16位)
bpx _lread      讀文件 (16位)
bpx _lwrite     寫文件 (16位)
bpx _hread      讀文件 (16位)
bpx _hwrite     寫文件 (16位)


攔截驅(qū)動(dòng)器:
bpx GetDrivetype(A) 獲取磁盤驅(qū)動(dòng)器類型
bpx GetLogicalDrives 獲取邏輯驅(qū)動(dòng)器符號(hào)
bpx GetLogicalDriveStringsA 獲取當(dāng)前所有邏輯驅(qū)動(dòng)器的根驅(qū)動(dòng)器路徑


攔截狗:
bpio -h 378(或278、3BC) R 378,、278、3BC是并行打印端口
bpio -h 3F8(或2F8,、3E8,、2E8) R 3F8、2F8,、3E8,、2E8是串行端口


VB程序?qū)S脭帱c(diǎn):
bpx msvbvm50!__vbaStrCmp   比較字符串是否相等
bpx msvbvm50!__vbaStrComp  比較字符串是否相等
bpx msvbvm50!__vbaVarTstNe 比較變量是否不相等
bpx msvbvm50!__vbaVarTstEq 比較變量是否相等
bpx msvbvm50!__vbaStrCopy  復(fù)制字符串
bpx msvbvm50!__vbaStrMove  移動(dòng)字符串
bpx MultiByteToWideChar    ANSI字符串轉(zhuǎn)換成Unicode字符串
bpx WideCharToMultiByte    Unicode字符串轉(zhuǎn)換成ANSI字符串
上面的斷點(diǎn)對(duì)應(yīng)VB5程序,如果是VB6程序則將msvbvm50改成msvbvm60即可

VB程序的破解
記住VB常用的一些函數(shù):
MultiByteToWideChar   將ANSI字符串轉(zhuǎn)換成UNICODE字符
WideCHatToMultiByte  將UNICODE字符轉(zhuǎn)換成ANSI字符
rtcT8ValFromBstr    把字符轉(zhuǎn)換成浮點(diǎn)數(shù)  
vbaStrCmp        比較字符串(常用斷點(diǎn))
vbaStrComp       字符串比較(常用斷點(diǎn))
vbaStrCopy       復(fù)制字符串
StrConv         轉(zhuǎn)換字符串
vbaStrMove       移動(dòng)字符串
__vbaVarCat          連接字符串
rtcMidCharVar        在字符串中取字符或者字符串!
__vbaLenBstr         取字符串的長度
vbaVarTstNe      變量比較
vbaVarTstEq      變量比較
rtcMsgBox       顯示對(duì)話框
VarBstrCmp       比較字符串
VarCyCmp        比較字符串
  
用OD載入脫殼后的程序,,在命令行輸入:bpx hmemcpy,,然后回車,會(huì)彈出程序運(yùn)行調(diào)用的所有的函數(shù),,在每個(gè)函數(shù)上設(shè)置好斷點(diǎn),!

說明:我破VB程序喜歡用這個(gè)斷點(diǎn)設(shè)置方法,通過一步步跟蹤,,基本可以把握程序保護(hù)的思路,,所以我破VB程序基本用這個(gè)斷點(diǎn),當(dāng)然你可以用其它的斷點(diǎn),,只要能找到關(guān)鍵,,任何斷點(diǎn)都是有意義的。

關(guān)于VB的程序,,注冊(cè)沒有提示的二個(gè)辦法:
第一(提示錯(cuò)誤):用GetVBRes來替換里面的提示串,,一般是以‘111111’,‘222222’之類的替換
因?yàn)椋篤B,,用的字來存放提示還有加了點(diǎn)東東,,我們用的工具一般是字節(jié)分析。換成‘22222’之類的就是字節(jié)了,,用靜態(tài)分析,,就有你該的串了,。GetVBRes(網(wǎng)上很多,自己下吧)

第二(沒有提示):用vbde這個(gè)工具(不知道,,有沒有用過DEDE,,是一樣思路),主要是找出破解的按鈕窗口的位置,,來進(jìn)行跟蹤,。

先給出修改能正確反編譯VB程序的W32DASM的地址:
======================
offsets 0x16B6C-0x16B6D

修改機(jī)器碼為: 98 F4
======================

VB程序的跟蹤斷點(diǎn): 

MultiByteToWideChar,
rtcR8ValFromBstr,
WideCharToMultiByte,
__vbaStrCmp
__vbaStrComp
__vbaStrCopy
__vbaStrMove
__vbaVarTstNe
rtcBeep
rtcGetPresentDate (時(shí)間API)
rtcMsgBox
=========

時(shí)間限制斷點(diǎn):

CompareFileTime
GetLocalTime
GetSystemTime
GetTimeZoneInformation
msvcrt.diffTime()
msvcrt.Time()
================

VB斷點(diǎn)查找方法

1.VB6.0編寫,OD載入程序調(diào)出注冊(cè)窗口,,alt+e調(diào)出可執(zhí)行模塊窗口找到X:\WINDOWS\system32\MSVBVM60.DLL雙擊,,在ctrl+n調(diào)出窗口找到,名稱XXXXXXE區(qū)段=ENGINE 導(dǎo)出__vbaVarMove雙擊來到下面地址(可以直接在命令行 bp __vbaVarMove),,回到程序注冊(cè)窗口點(diǎn)注冊(cè)被攔斷在剛才下斷的地址,斷后在ctrl+F9,,F(xiàn)8回
2.OD載入程序,,命令行下斷點(diǎn):bp rtcMsgBox
堆棧友好提示
確定注冊(cè)失敗按鈕返回。接著向上找出點(diǎn)注冊(cè)按鈕執(zhí)行的代碼第一句,,可以嗎,?當(dāng)然行,根據(jù)我們知道程序員寫一個(gè)事件執(zhí)行的代碼是如這種,,各種語言都差不多,。
3.OD載入程序,命令行下斷點(diǎn):bp rtcMsgBox
任意填入偽注冊(cè)碼 9999999999999999999,,確定后中斷
堆棧友好提示
確定注冊(cè)失敗按鈕返回,。
W32Dasm反匯編程序,Shiht+F12
4.VB中的messagebox是一個(gè)消息框,匯編中用rtcMsgBox下斷點(diǎn).用olldbg載入程序,Alt+e,在可執(zhí)行文件模塊中找到Msvbvm60.dll,雙擊它,在代碼窗口點(diǎn)右鍵-搜索-當(dāng)前模塊中的名稱中的rtcMsgBox函數(shù),雙擊它,在6A362F29 55 PUSH EBP這一句雙擊下斷點(diǎn),關(guān)掉多余的窗口,只留下cpu調(diào)試主窗口,F9運(yùn)行程序,點(diǎn)?號(hào)按鈕,隨便輸入987654321后,回車后立即中斷,然后Ctrt+f9執(zhí)行到返回地址,因?yàn)檫@是msvbvm60的領(lǐng)空,我們要回到程序領(lǐng)空.秘密記事本彈出message錯(cuò)誤提示信息,點(diǎn)確定,向上看,再按F8就回到
5.為Microsoft Visual Basic 6.0,,先用SmartCheck找到程序比較注冊(cè)碼點(diǎn)
6.用vb常用比較斷點(diǎn)
vbastrcmp
vbastrcomp
vbavartsteq
在od中設(shè)斷點(diǎn)找注冊(cè)碼
7.用Od載入程序,,運(yùn)行,填入上面的注冊(cè)碼和順序號(hào),。在Od中下斷點(diǎn),Alt+E,雙擊Msvbvm60運(yùn)行庫,,右鍵-搜索當(dāng)前模塊中的名稱,找到Vbastrcmp,,雙擊下斷點(diǎn),。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多