|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2006-03-20, 07:50 AM | #1 |
榮譽會員
|
xp變臉王的註冊算法
xp變臉王的註冊算法
xp變臉王的註冊算法 xp變臉王保護首先第一道屏障是殼,peid顯示Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks 雙工作偵錯保護 CopyMEM2,Stolen Code遠端跳轉,CC。其中CC之多是罕見的。 站在fly和fxyang的肩膀上,我把殼脫掉了。然後用od載入後,來到這裡:其實修復CC時可以看到這裡的。 * Possible StringData Ref from Code Obj ->"Do NOT crack me!Merci!" | :00675F56 BAE4636700 mov edx, 006763E4 :00675F5B 8B45FC mov eax, dword ptr [ebp-04] :00675F5E E8AD2DF2FF call 00598D10 這是一個共用的算法call :00675F63 8B8538FEFFFF mov eax, dword ptr [ebp+FFFFFE38] :00675F69 B905000000 mov ecx, 00000005 :00675F6E BA0E000000 mov edx, 0000000E :00675F73 E8C4EFD8FF call 00404F3C 截取註冊碼call :00675F78 8B953CFEFFFF mov edx, dword ptr [ebp+FFFFFE3C] :00675F7E 8B45F8 mov eax, dword ptr [ebp-08] :00675F81 E8A2EED8FF call 00404E28 比較call :00675F86 0F8491000000 je 0067601D :00675F8C 33D2 xor edx, edx :00675F8E 8B8360040000 mov eax, dword ptr [ebx+00000460] :00675F94 E89779E0FF call 0047D930 :00675F99 8D952CFEFFFF lea edx, dword ptr [ebp+FFFFFE2C] 上面是計算並比較第一段註冊碼的地方,其中call 00598D10 是所有5段註冊碼共用的算法call,先把序列號計算成一個字串串,然後截取成5位,再明碼比較。只是前面的字串串不同,以及截取的位置不同,第一段是Do NOT crack me!Merci!,我用我電腦上唯一的一個正版軟體金山詞霸2001 oem版,知道了Merci是法語,謝謝的意思。 大致跟一下,發現他的算法是如此的複雜,這麼複雜然後明碼比較,一個很大的問題,很可能是現成的算法源碼,在這個call裡發現,那個字串串Do NOT crack me!Merci!會變形成8個字元,在裡面的另一個關鍵call裡,發現了如下循環程式碼: :0059845A 42 inc edx :0059845B 40 inc eax :0059845C 83FA38 cmp edx, 00000038 這裡是循環次數 :0059845F 75AD jne 0059840E 不等就循環 看了一下算法的簡介找到des的簡介如下: DES算法的入口參數有三個:Key、Data、Mode。其中Key為8個字元共64位,是DES算法的工作密鑰;DES算法中只用到64位密鑰中的其中56位。 另外,精華4里有一篇變臉王的文章就是des。 我找啊找啊,找朋友,找到一個好朋友:delphi的des源碼,只要更改密鑰即可,用看見的密鑰試了試,果然,大概同益起名也是用的它吧。 簡單了,算法如下:(密鑰是變形後的8個字元) 第一組密鑰:Do NOT cS(@ 從第14位取5位 第二組密鑰:Merde! 從第17位取5位 第三組密鑰:Va-t-en!S(@ 從第18位取5位 第五組密鑰:holer@21S(@ 從第19位取5位 第四組密鑰:www.holeS(@ 從第20位取5位 臨時學習了一下delphi寫了個註冊機: procedure TForm1.Button1Click(Sender: TObject); var S1,s2,s3,s4,s5,s6,s7,s8,s9,s10: string; s11: char; begin s1:= EncryStrhex(Edit1.Text,'Do NOT cS(@'); s2:= EncryStrhex(Edit1.Text,'Merde!'); s3:= EncryStrhex(Edit1.Text,'Va-t-en!S(@'); s4:= EncryStrhex(Edit1.Text,'holer@21S(@'); s5:= EncryStrhex(Edit1.Text,'www.holeS(@'); s6:=copy(s1,14,5); s7:=copy(s2,17,5); s8:=copy(s3,18,5); s9:=copy(s5,20,5); s10:=copy(s4,19,5); edit2.Text:=s6+'-'+s7+'-'+s8+'-'+s9+'-'+s10 end; 附件是des的源碼。用我的程式碼取代源碼中的按鈕1點擊程式碼就行了。 |
__________________ |
|
送花文章: 3,
|