我負責爲產生軟件密鑰的應用程序製作在線版本(用於自動化目的)。獲得密鑰生成功能的反向功能
每個軟件都會向用戶顯示一個訪問碼(來自系統音量信息),該碼的密鑰由一個小應用程序生成。所以客戶給出例如訪問代碼:123和他得到的關鍵:321。
現在的問題是,產生該特定軟件的關鍵的小應用程序的來源丟失,但我確實有驗證功能
Public Function ValidateKey(AccessCode As Long, AccessKey As Long)
Dim lngNewKey As Double
Dim strHexKey As String
Dim btCode(1) As Byte
Dim lngCode As Long
If AccessKey = 0 Then
ValidateKey = False
Exit Function
End If
If AccessCode = 0 Then
ValidateKey = False
Exit Function
Else
lngNewKey = AccessKey
strHexKey = Hex(lngNewKey)
If Len(strHexKey) = 5 Then strHexKey = "0" & strHexKey
btCode(0) = CByte("&H" & Mid(strHexKey, 1, 2))
btCode(1) = CByte("&H" & Mid(strHexKey, 5, 2))
lngCode = CLng(btCode(0)) * 256 + CLng(btCode(1))
lngCode = lngCode * 15 + 5
ValidateKey = (lngCode = AccessCode)
End If
End Function
此功能在客戶端軟件,並檢查運行相比AccessCode用戶(快速鍵)提供的密鑰是否是正確的。
所以爲了找到問題的關鍵生產功能,我開始通過以下操作扭轉這一局面:
AccessCode = AccessCode - 5
AccessCode = AccessCode/15
但後來我stucked,因爲前面的操作似乎是一個哈希運算,似乎難以逆轉。
我有如下數據(通過使用獨立的密鑰生成的應用程序):
for accesscode 111440 the key should be 1946629
for accesscode 200000 the key should be 3453973
for accesscode 65536 the key should be 1160209
for accesscode 8192 they key should be 177186
for accesscode 4096 they key should be 111633
它的工作原理與最小accesscode是3838
我想知道是否有可能導出密鑰生成功能。
謝謝你提前
你可以嘗試訪問代碼0嗎? –
3838是與它一起工作的最小的訪問代碼,在它得到一個類型不匹配 – MIrrorMirror