(筆記內出現的API都是沒有加上參數的,細節需要去MSDN查看)
1:
KeyFile保護,這個就是一個密鑰保護,類似於WinRAR的一個密鑰機制,就是通過一個Key(後綴,名稱都可以由軟件開發者定義)來儲存某些授權信息來達到收費的目的。
這個Key一般情況都有1K,當然越大越好(太大的話可能會要很長時間來驗證,也不太好),因爲這樣就可以有很多的一些垃圾信息來混淆破解者,並且可以把密鑰分段,每一段對應某一些功能,並且對於註冊的內容我們可以採取非常複雜的運算,並不侷限於單純的異或等,當然,這個文件最好和軟件中的關鍵代碼或數據發生關係,使其不能像上一篇筆記一樣的通過修改返回值,跳轉等來達到暴力破解。
1:
相關API這裏對上面筆記的做一些補充:
FindFirstFile()//確定文件存在性的
CreateFile() _lopen()//確定文件存在性並獲得句柄對其操作
GetFileSize() //確定文件的大小
GetFileAttributes()//獲得文件的註冊屬性
ReadFile() //讀取文件內容
2:
破解思路:
1:通過檢測軟件對文件的操作知道待破解軟件的目標Key文件的名字等信息(一般爲FileMon等軟件)
2:僞造一個Key文件並向內填充一些方便計算的數據(1234等方便觀察和辨認的),填充過程最好不要用Windows自帶的普通的文本編輯器。
3:在調試器裏對CreateFile,ReadFile來檢測,看兩者的文件句柄的相關性(相同則表明打開的是Key否則就不是)
4:我們要注意一些特殊的軟件首先對文件的大小等特徵的檢查,以便創建一個“完全符合要求”的一個僞造的Key
2:
網絡驗證,這個就是一個類似於登陸QQ等的操作。
1:
相關的API:(Socket的)
send()//發送
recv()//接收
2:
破解思路:
這個我們一般就是對數據包進行分析(對send設斷(發送數據包端)對recv設斷(接受數據端))
具體的過程得自己親自找相關的練習題來做了。