乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       葫蘆寶寶 2011-03-18

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

      軟件漢化 2010-07-08 16:25:23 閱讀76 評論0   字號: 訂閱

      bpx hmemcpy    破解萬能斷點,攔截內(nèi)存拷貝動作
      bpx Lockmytask 當你用其它斷點都無效時可以試一下,這個斷點攔截按鍵的動作
      bmsg handle wm_gettext 攔截注冊碼(handle為對應(yīng)窗口的句柄)
      bmsg handle wm_command 攔截OK按鈕(handle為對應(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ū)動系統(tǒng)喇叭發(fā)聲)


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


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


      攔截注冊表:
      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個字符,如子鍵為“Regcode”,則“****”= “Regc”


      功能限制攔截斷點:

      bpx EnableMenuItem 禁止或允許菜單項
      bpx EnableWindow 禁止或允許窗口
      bmsg hMenu wm_command 攔截菜單按鍵事件,其中hMenu為菜單句柄
      bpx K32Thk1632Prolog 配合bmsg hMenu wm_command使用,可以通過這個斷點進入菜單處理程序


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


      攔截時間:
      bpx GetLocalTime  獲取本地時間
      bpx GetSystemTime 獲取系統(tǒng)時間
      bpx GetFileTime   獲取文件時間
      bpx GetTickCount  獲得自系統(tǒng)成功啟動以來所經(jīng)歷的毫秒數(shù)
      bpx GetCurrentTime 獲取當前時間(16位)
      bpx SetTimer      創(chuàng)建定時器
      bpx TimerProc     定時器超時回調(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ū)動器:
      bpx GetDrivetype(A) 獲取磁盤驅(qū)動器類型
      bpx GetLogicalDrives 獲取邏輯驅(qū)動器符號
      bpx GetLogicalDriveStringsA 獲取當前所有邏輯驅(qū)動器的根驅(qū)動器路徑


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


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

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

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

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

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

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

      修改機器碼為: 98 F4
      ======================

      VB程序的跟蹤斷點: 

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

      時間限制斷點:

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

      VB斷點查找方法

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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多