1.序列號保護
定位判斷序列號的**段
1)獲取字串(序列號)
getwindowtexta、getwindowword、getdlgitemtexta、getdlgitemint等。
2)對話方塊
messageboxa、messageboxexa、dialogboxparama、dialogboxindirectparama、createdialogindirectparama、createdialogparama、createwindowex、getprofilestringa、showwindow、updatewindow、messagebeep等。
3)比較序列號
test、cmp–>跳轉je/jne(是否相等)、jz/jnz(是否等於0)等。
破解:定位後,修改跳轉條件,即不論輸入什麼都返回序列號正確。
2.警告視窗(提醒使用者購買正版)
去除警告視窗的彈出
1)顯示視窗
messageboxa、messageboxexa、dialogboxparama、showwindow、createwindowexa等
(dialogboxparama一般和enddialog配對使用)
破解:找到建立視窗的**和關閉視窗的**後,跳過(jmp+位址)。
3.時間限制
1)計時器
settimer(killtimer取消)、timesetevent(精度高)、gettickcount(兩次獲得系統執行時間後相減來計時)等。
2)取得系統時間
getsystemtime、getlocaltime、getfiletime等。
破解:跳過settimer函式(jmp),或者讓wm_timer訊息不發揮作用(用空指令替代)
4.選單功能限制
一些功能在試用版不能使用,購買正式版才能使用,需要恢復被限制的功能
1)將選單或視窗變為不可用
enablemenuitem、enablewindow等。
破解:修改相應函式的引數
5.keyfile保護
keyfile是註冊檔案,包含註冊使用者的使用者名稱、註冊碼等資訊,放在購買的軟體的指定目錄以供驗證。
1)有關檔案的操作
findfirstfilea、createfilea、getfilesize、getfileattributesa、setfilepointer、readfile、writefile、getsystemdirectory等
破解:用filemon等工具找出keyfile檔名–>偽造乙個同名的檔案,放入有規律的數字(如12345…),分析處理keyfile檔案中資料的演算法。這樣根據使用者名稱,就可以推出對應的keyfile檔案內容。
6.網路驗證
攔截伺服器返回的資料報,分析處理資料報的演算法(傳送的、接收的)。
1)傳送資料
send、recv(tcp的兩端)
破解:方法一,寫個伺服器,模擬伺服器接收和傳送資料
方法二,去除send和recv功能
7.cd-check光碟檢測
在程式啟動時,檢查光碟中是否有特定的檔案,來判斷是否正版
1)光碟相關的函式
getdrivetype(磁碟驅動型別,檢查檔案是否在光碟機)、getlogicaldrives(邏輯驅動符號)、getlogicaldrivestrings(根驅動路徑)、getfileattributesa(判斷檔案屬性)、createfilea(開啟光碟檔案)等。
破解:修改檢查結果,通過修改跳轉語句
charles的設定斷點
一 新增charles斷點 1 用charles抓包發起一次介面請求 2 對要打斷點的介面右鍵,選擇 breakpoints 二 charles斷點設定 1 點選charles選單 proxy breakpoint.此時會彈出 breakpoints settings 對話方塊 2 雙擊 locat...
斷點的設定以及清除
經檢驗,可以用 斷點指的是在程式 的某一行上設乙個標記,程式執行到這裡時將暫停,由偵錯程式控制程式的執行。程式中可以設定多個斷點,並能給斷點設定條件。在 編輯器中根據不同的顏色檢視當前執行的情況。例如,斷點通常用紅底白字表示,當前執行的 行用藍底白字表示。這種功能可以使使用者對除錯狀態一目了然。斷點...
用來設定ubuntu啟動選項的工具
rcconf sudo apt get rcconf sudo apt get install rcconf root 下執行 rcconf 功能更全的 sysv rc conf sudo apt get update sudo apt get install sysv rc conf 執行 sud...