在軟件破解中,常用軟件破解方法就是下斷點快速找事件,在命令行BP下斷點,shift+f9找事件然後再alt+f9返回。
快捷方法,ctrl+A分析代碼。ctrl+N 找要下斷的API函數。右鍵>查看調用結構。
然後分別F2下斷,shift+F9運行。直接就可以看到不用alt+f9返回。即用BPX。
破解或者脫殼都ctrl+A分析一下這樣比較好分析。
A表示ANSI(短),W表示widechars即Unicode(寬)。
短字節使用比較頻繁,所以大部分都是用A,如果A不能斷下就試試用W。
“*****”表示常用API
攔截字符串相關:
bp GetDlgItemTextA(W) ->獲取指定輸入框輸入字符串*****
bp GetDlgItemInt ->獲取對話框整數值
bp GetWindowTextA(W) ->取得一個窗體的標題(caption)文字,或者一個控件的內容*****
bp GetDIgItem ->獲取按鈕事件代碼(斷輸入框)*****
bp GetwindowTextLengthA ->調查窗口標題文字或控件內容的長短******
bp GetWindowWord ->獲得指定窗口結構的信息
攔截對話框相關:
bp MessageBeep ->播放一個系統聲音。系統聲音的分配方案是在控制面板裏決定的
bp MessageBoxA(W) ->創建消息框*****
bp MessageBoxExA(W) ->創建消息框
bp MessageBoxIndirect(A) ->創建定製消息框
bp DialogBox ->從資源模板建立一模態對話窗
bp DialogBoxParamA(W) ->從資源模板建立一模態對話窗
bp DialogBoxIndirect ->從內存模板建立一模態對話窗
bp DialogBoxIndirectParam ->從內存模板建立一模態對話窗
bp CreateDialog ->從資源模板建立一非模態對話窗
bp CreateDialogParam(A) ->從資源模板建立一非模態對話窗
bp CreateDialogIndirect ->從內存模板建立一非模態對話窗
bp CreateDialogIndirectParam(A) ->從內存模板建立一非模態對話窗
bp EndDialog ->結束一模態對話窗
bp GreateWindowExA(W) ->獲取指定設備場景的窗口範圍
bp ShowWindow ->控制窗口的可見性
bp UpdateWindow ->強制立即更新窗口
對於VB的程序用bp MessageBoxA是無法斷下來的,用bp rtcMsgBox
攔截窗口相關:
bp CreateWindow ->創建窗口
bp CreateWindowEx(A) ->創建窗口
bp ShowWindow ->顯示窗口
bp UpdateWindow ->更新窗口
bp GetWindowTExt(A) ->獲取窗口文本
攔截警告聲相關:
bp MessageBeep ->播放一個系統聲音。系統聲音的分配方案是在控制面板裏決定的
攔截剪貼板相關:
bp GetClipboardData ->獲取剪貼板數據
功能限制攔截相關:
bp EnableMenuItem ->允許、禁止或變灰指定的菜單條目
bp EnableWindow ->允許或禁止鼠標和鍵盤控制指定窗口和條目(禁止時菜單變灰)
攔截廣告相關:
bp ShellExecuteExA ->查找與指定文件關聯在一起的程序的文件名。程序自己打開網頁,可以直接搜索打開網頁的地址。然後向上查找關鍵跳就OK了。
時間處理函數相關:
bp CompareFileTime ->比較兩文件時間
bp GetFileTime ->獲取文件建立,最後訪問,修改時間
bp GetLocalTime ->獲取當前本地時間*****
bp GetSystemTime ->獲取當前系統時間
bp GetCurrentTime ->獲取當前時間(16位)
bp GetTickCount ->獲取windows啓動至現時毫秒
bp SetFileTime ->設置文件時間
bp SetLocalTime ->設置本地時間 dExecutableA 查找與一個指定文件關聯在一起的程序的文件名
bp SetTimer ->創建定時器
bp TimerProc ->定時器超時回調函數
軟件狗相關:
bpio -h 278R
bpio -h 378R
bp CreateFileA ->開和創建文件、管道、郵槽、通信服務、設備以及控制檯
bp DeviceIOControl ->對設備執行指定的親作
bp FreeEnvironmentStringsA ->翻譯指定的環境字串塊(對付HASP非常有效)
註冊表相關:
bp RegOpenKeyA ->打開一個現有的註冊表項 *****
bp RegOpenKeyExA ->打開一個現有的註冊表項
bp RegCreateKeyA ->在指定的項下創建或打開一個項
bp RegCreateKeyExA ->在指定項下創建新項的更復雜的方式
bp RegDeleteKeyA ->刪除現有項下方一個指定的子項
bp RegDeleteValueA ->刪除指定項下方的一個值
bp RegQueryValueA ->獲取一個項的設置值
bp RegQueryValueExA ->獲取一個項的設置值
bp RegSetValueA ->設置指定項或子項的值
bp RegSetValueExA ->設置指定項的值
bp RegCloseKey ->關閉系統註冊表中的一個項(或鍵)
INI初始化文件相關:
bp GetPrivateProfileStringA ->爲初始化文件中指定的條目取得字串*****(凡是重啓驗證多數都有效)
bp GetPrivateProfileInt ->爲初始化文件(.ini文件)中指定的條目獲取一個整數值
bp WritePrivateProfileStringA ->在初始化文件指定小節內設置一個字串
bp WritePrivateProfileInt ->初始化文件中一個指定的小節設置所有項名和值
key文件相關:
bp Getprivateprofileint ->爲初始化文件中指定的條目獲取一個整數值 *****
bp ReadFile ->從文件中讀出數據
bp CreateFileA ->開和創建文件、管道、郵槽、通信服務、設備以及控制檯
win進程操作: 獲取(返回)
bp FindExecutableA ->查找與一個指定文件關聯在一起的程序的文件名
bp FreeLibray ->釋放指定的動態鏈庫
bp GetCurrentProcess ->獲取當前進程的一個僞(虛擬)句柄*****(脫殼常用斷點)
bp GetCurrentProcessId ->獲取當前進程一個唯一的標識符
bp OpenMutexA ->使程序把父進程當成子進程運行(雙進程脫殼)
bp GetCurrentThreadId ->返回當前進程 ID *** 殼常用來返回OEP
bp GetCurrentThread ->獲取當前線程的一個僞句柄
bp GetExitCodeProces ->獲取一個已結束進程的退出代碼
bp GetExitCodeThread ->獲取一個已結束線程的退出代碼
bp GetModuleHandleA ->獲取一個應用程序或動態鏈接庫的模塊句柄*****(處理Magic JMP經常用這個)
bp GetPriorityClassA ->獲取特定進程的優先級別
bp LoadLibraryA ->載入指定的動態鏈接庫,並將它映射到當前進程使用的地址空間
bp LoadLibraryExA ->裝載指定的動態鏈接庫,併爲當前進程把它映射到地址空間
bp LoadModule ->載入一個windows應用程序,並在指定的環境中運行
bp CreateProcessA ->創建一個新進程
bp TerminateProcess ->結束一個進程
bp ExitProcess ->以乾淨的方式關閉一個進程
bp ResumeThread ->恢復線程的執行(脫捆綁殼)
bp SuspendTread ->暫停線程(脫捆綁殼)
bp VirtualAlloc ->申請空間存放資源(脫捆綁殼)
bp VirtualFree ->釋放指定地址資源(脫捆綁殼)
bp VirtualProtect ->保護指定地址資源(脫捆綁殼)
CD-ROM或磁盤相關:
bp GetDiskFreeSpaceA ->獲取與一個磁盤的組織有關的信息,以及瞭解剩餘空間的容量
bp GetDiskFreeSpaceExA ->獲取與一個磁盤的組織以及剩餘空間容量有關的信息
bp GetFullPathNameA ->獲取指定文件的詳細路徑
bp GetDriveTypeA ->判斷一個磁盤驅動器的類型
bp GetLogicalDrives ->判斷系統中存在哪些邏輯驅動器字母
bp GetVolumeInformat ->ionA 獲取與一個磁盤卷有關的信息
bp GetWindowsDirectoryA ->獲取Windows目錄的完整路徑名
bp GetSystemDirectoryA ->取得Windows系統目錄(即System目錄)的完整路徑名
bp GetFileAttributesA(W) ->判斷指定文件的屬性
bp GetFileSize ->判斷文件長度
bp GetDriveType ->判斷一個磁盤驅動器的類型
bp GetLastError ->返回擴充出錯代碼
bp ReadFile ->從文件中讀出數據
光盤破解相關:
win16:
bp getvolumeinformation ->獲取與一個磁盤卷有關的信息
bp getdrivetype ->判斷一個磁盤驅動器的類型
win32:
bp GetDriveTypeA ->獲取磁盤驅動器類型
bp GetLogicalDrives ->獲取邏輯驅動器符號
bp GetFullPathNameA ->獲取指定文件的詳細路徑
bp GetWindowsDirectoryA ->獲取Windows目錄的完整路徑名
bp GetLogicalDriveStringsA ->獲取當前所有邏輯驅動器的根驅動器路徑
文件訪問相關:
bp lcreat ->創建一個文件
bp CreateDirectoryA ->創建一個新目錄
bp CreateDirectoryExA ->創建一個新目錄
bp CreateFileMappingA ->創建一個新的文件映射對象
bp CreateFileA ->創建或打開文件、管道、郵槽、通信服務、設備以及控制檯 *****
bp RemoveDirectoryA ->刪除指定目錄
bp DeleteFileA ->刪除指定文件
bp lopen ->以二進制模式打開指定的文件
bp OpenFile ->打開文件,能執行大量不同的文件操作 (32位)
bp OpenFileMappingA ->打開一個現成的文件映射對象
bp SetEndOfFile ->針對一個打開的文件,將當前文件位置設爲文件末尾
bp CloseHandle ->關閉一個內核對象。其中包括文件、文件映射、進程、線程、安全和同步對象等
bp lclose ->關閉指定的文件
bp ReadFile ->從文件中讀出數據(32位) *******
bp ReadFileEx ->與ReadFile相似,只是它只能用於異步讀操作,幷包含了一個完整的回調
bp lread ->將文件中的數據讀入內存緩衝區
bp hread ->將文件中的數據讀入內存緩衝區 *******
bp lwrite ->將數據從內存緩衝區寫入一個文件
bp hwrite ->將數據從內存緩衝區寫入一個文件
bp WriteFile ->將數據寫入一個文件
bp WriteFileEx ->與WriteFile類似
bp MapViewOfFile ->將一個文件映射對象映射到當前應用程序的地址空間
bp MapViewOfFileEx ->將一個文件映射對象映射到當前應用程序的地址空間
bp FindFirstFileA ->根據文件名查找文件
bp SearchPathA ->查找指定文件
bp MoveFileA ->移動文件
bp CopyFileA ->複製文件
bp SetCurrentDirectoryA ->設置當前目錄
bp SetFileAttributesA ->設置文件屬性
bp llseek ->設置文件中進行讀寫的當前位置
bp SetFilePointer ->在一個文件中設置當前的讀寫位置
bp SetFileTime ->設置文件的創建、訪問及上次修改時間
bp GetFileTime ->取得指定文件的時間信息
bp CompareFileTime ->對比兩個文件的時間
bp GetBinaryTypeA ->判斷文件是否可以執行
bp GetFileAttributesA ->判斷指定文件的屬性
bp GetFileSize ->判斷文件長度
bp FindNextFileA ->根據調用FindFirstFile函數時指定的一個文件名查找下一個文件
bp FindClose ->關閉由FindFirstFile函數創建的一個搜索句柄
bp GetFileType ->在給出文件句柄的前提下,判斷文件類型
bp GetSystemDirectory ->取得Windows系統目錄(即System目錄)的完整路徑名
VB函數:
………………………………………………………………
VB 破解快速找事件 ctrl+B搜索816C24 然後分別在他上面的JMP設置F2斷點,運行註冊模塊進行註冊。
在那個JMP中斷就是從這個JMP開始調用註冊模塊。
在函數中的縮寫:
bool ->布爾型數據(TRUE 或 FALSE)
str ->字符串型數據 STRING
i2 ->字節型數據或雙字節整型數據 BYTE or Integer
ui2 ->無符號雙字節整型數據
i4 ->長整型數據(4字節) Long
r4 ->單精度浮點型數據(4字節) Single
r8 ->雙精度浮點型數據(8字節) Double
cy ->(8 個字節)整型的數值形式 Currency
var ->變量 Variant
fp ->浮點數據類型 Float Point
cmp ->比較 compare
comp ->比較 compare
Eq ->相等 equal
Ne ->不等於
Le ->小於或等於
Lt ->小於
Ge ->大於或等於
Gt ->大於
對話框:
bpx rtcMsgBox ->顯示一信息對話框 ******
窗體常用:
bpx DestroyWindow ->破壞(即清除)指定的窗口以及它的所有子窗口******
bpx mouseevent ->模擬一次鼠標事件(鼠標中斷)
bpx postquitmessage ->將一條消息投遞給應用程序。這條消息由應用程序的內部GetMessage循環獲得,但不會傳給一個特定的窗口
bpx vbaVarTstEq ->檢驗指定變量是否相等 判斷是否註冊的函數******
下BPX vbaVarTstEq 下斷點後,shift+F9運行N次到出現錯誤提示窗口,然後N-1次shift+F9運行。alt+F9返回,就可以到關鍵地方。
攔截警告聲:
bpx rtcBeep ->揚聲器提示
數據移動:
bpx vbaVarCopy ->數據移動將一個變量值串拷貝到內存
bpx vbaVarMove ->數據移動變量在內存中移動,或將一個變量值串拷貝到內存
bpx vbaStrMove ->移動字符串
bpx vbaStrCopy ->移動字符串 將一個字符串拷貝到內存,類似於 Windows API HMEMCPY
數據類型轉換:
bpx vbaI2Str ->將一個字符串轉爲8 位(1個字節)的數值形式(範圍在 0 至 255 之間) 或2 個字節的數值形式(範圍在 -32,768 到 32,767 之間)。
bpx vbaI4Str ->將一個字符串轉爲長整型(4個字節)的數值形式(範圍從-2,147,483,6482,147,483,647)
bpx vbar4Str ->將一個字符串轉爲單精度單精度浮點型(4個字節)的數值形式
bpx vbar8Str ->將一個字符串轉爲雙精度單精度浮點型(8個字節)的數值形式
bpx VarCyFromStr ->(僅VB6庫. 要調試,則在WINICE.DAT裏必須有 OLEAUT32.DLL)字符串到變比型數據類型
bpx VarBstrFromI2 ->(僅VB6庫. 要調試,則在WINICE.DAT裏必須有 OLEAUT32.DLL)整型數據到字符串:
數值運算:
bpx vbaVarAdd ->兩個變量值相加
bpx vbaVarIdiv ->除整,第一個變量除以第二個變量,得到一個整數商
bpx vbaVarSub ->第一個變量減去第二個變量
bpx vbaVarMul ->兩個變量值相乘
bpx vbaVarDiv ->除
bpx vbaVarMod ->求餘
bpx vbaVarNeg ->取負
bpx vbaVarPow ->指數
bpx vbavarxor ->兩個變量值做異或運算
針對變量:
bpx vbaVarCompEq ->比較局部變量是否相等
bpx vbaVarCompNe ->比較局部變量是否不等於
bpx vbaVarCompLe ->比較局部變量小於或等於
bpx vbaVarCompLt ->比較局部變量小於
bpx vbaVarCompGe ->比較局部變量大於或等於
bpx vbaVarCompGt ->比較局部變量大於
VB的指針:
THROW
程序結構:
bpx vbaVarForInit ->重複執行初始化
bpx vbaVarForNext ->重複執行循環結構, For… Next… (Loop)
比較函數:
bpx vbaStrCmp ->比較字符串是否相等 ******
bpx vbaStrComp ->比較字符串是否相等 ******
bpx vbaVarTstEq ->檢驗指定變量是否相等
bpx vbaVarTstNe ->檢驗指定變量是否不相等
bpx vbaVarTstGt ->檢驗指定變量大於
bpx vbaVarTstGe ->檢驗指定變量大於或等於
bpx vbaVarTstLt ->檢驗指定變量小於
bpx vbaVarTstLe ->檢驗指定變量小於或等於 |
|