回溯設斷法破解中華燈謎V2004 build 02.01
【破解作者】 blue_devil_bomb[DFCG][BCG]
【作者郵箱】 ninesunnine@sina.com
【作者主頁】 www.chinadfcg.com
【使用工具】 peid OllyDbg1.10
【破解平臺】 Win2000
【軟體名稱】 中華燈謎V2004 build 02.01
【下載地址】 http://laofuzi.3322.net
【軟體簡介】 〖中華燈謎〗軟體是目前國產最好的燈謎軟體,軟體受到數十家刊物的特別撰文推薦。
軟體中整合的燈謎類別齊全,燈謎條數可能是一個足以令你目瞪口呆的數字。
軟體支援燈謎的模糊搜尋、各方式排序、隨時新增、修改、刪除等,使用簡單,功能強大。
【軟體大小】 1.43MB
【加殼方式】 未加殼
【破解宣告】 我是一隻小菜鳥,偶得一點心得,願與大家分享:)
--------------------------------------------------------------------------------
【破解內容】
用PEID檢視為Borland Dephi 6.0 or 7.0本想用DEDE來破之,可由於本人不太會用,且由於沒有在DEDE中
找到很有用的資訊
於是就使出我的最愛OLLYDBG 1.10。
我們知道Borland Dephi對於我們常用的斷點是無效的,這裡我採用的是回溯設斷法找註冊演算法。
何謂回溯設斷法就是我們依據一定的資訊找到一個有用的斷點後,依據呼叫的CALL來逐步找到呼叫的源,
在源上
下斷就會找到我們輸入資訊的運算函式。
利用回溯設斷法我們設到如下斷點,在訂單號中輸入1234,註冊碼中輸入1234567890點選確認輸入中斷於
如下:
0052D068 /. 55 PUSH EBP
0052D069 |. 8BEC MOV EBP,ESP
0052D06B |. B9 17000000 MOV ECX,17
0052D070 |> 6A 00 /PUSH 0
0052D072 |. 6A 00 |PUSH 0
0052D074 |. 49 |DEC ECX
0052D075 |.^75 F9 \JNZ SHORT zhdm.0052D070
0052D077 |. 53 PUSH EBX
0052D078 |. 56 PUSH ESI
0052D079 |. 8BD8 MOV EBX,EAX
0052D07B |. 33C0 XOR EAX,EAX
0052D07D |. 55 PUSH EBP
0052D07E |. 68 DED25200 PUSH zhdm.0052D2DE
0052D083 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
0052D086 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
0052D089 |. 68 80000000 PUSH 80 ; /BufSize = 80 (128.)
0052D08E |. 8D85 7BFFFFFF LEA EAX,DWORD PTR SS:[EBP-85] ; |
0052D094 |. 50 PUSH EAX ; |Buffer
0052D095 |. E8 6AA1EDFF CALL <JMP.&kernel32.GetSystemDirectoryA> ; \GetSystemDirectoryA
0052D09A |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
0052D09D |. 8D95 7BFFFFFF LEA EDX,DWORD PTR SS:[EBP-85]
0052D0A3 |. B9 81000000 MOV ECX,81
0052D0A8 |. E8 2F79EDFF CALL zhdm.004049DC
0052D0AD |. 8D95 74FFFFFF LEA EDX,DWORD PTR SS:[EBP-8C]
0052D0B3 |. 8B83 84030000 MOV EAX,DWORD PTR DS:[EBX+384]
0052D0B9 |. E8 0E6EF1FF CALL zhdm.00443ECC ;返回輸入註冊碼長度
0052D0BE |. 83BD 74FFFFFF >CMP DWORD PTR SS:[EBP-8C],0 ; 輸入的註冊碼是否為空
0052D0C5 |. 74 1A JE SHORT zhdm.0052D0E1 ;為空報警
0052D0C7 |. 8D95 70FFFFFF LEA EDX,DWORD PTR SS:[EBP-90]
0052D0CD |. 8B83 7C030000 MOV EAX,DWORD PTR DS:[EBX+37C]
0052D0D3 |. E8 F46DF1FF CALL zhdm.00443ECC ;返回輸入的訂單號
0052D0D8 |. 83BD 70FFFFFF >CMP DWORD PTR SS:[EBP-90],0 ;輸入的訂單號是否為空
0052D0DF |. 75 15 JNZ SHORT zhdm.0052D0F6 ;為空報警
0052D0E1 |> BA F0D25200 MOV EDX,zhdm.0052D2F0
0052D0E6 |. 8B83 BC030000 MOV EAX,DWORD PTR DS:[EBX+3BC]
0052D0EC |. E8 577FFDFF CALL zhdm.00505048
0052D0F1 |. E9 6B010000 JMP zhdm.0052D261
0052D0F6 |> 8D95 6CFFFFFF LEA EDX,DWORD PTR SS:[EBP-94]
0052D0FC |. 8B83 84030000 MOV EAX,DWORD PTR DS:[EBX+384]
0052D102 |. E8 C56DF1FF CALL zhdm.00443ECC
0052D107 |. 8B85 6CFFFFFF MOV EAX,DWORD PTR SS:[EBP-94] ;將輸入的註冊碼放入EAX
0052D10D |. 50 PUSH EAX
0052D10E |. 8D95 60FFFFFF LEA EDX,DWORD PTR SS:[EBP-A0]
0052D114 |. 8B83 7C030000 MOV EAX,DWORD PTR DS:[EBX+37C]
0052D11A |. E8 AD6DF1FF CALL zhdm.00443ECC
0052D11F |. 8B85 60FFFFFF MOV EAX,DWORD PTR SS:[EBP-A0] ;將輸入的訂單號放入EAX
0052D125 |. E8 5AC4EDFF CALL zhdm.00409584 ; 訂單號的值由DEC到HEX形式放
入EAX
0052D12A |. B9 15030000 MOV ECX,315
0052D12F |. 99 CDQ
0052D130 |. F7F9 IDIV ECX ;EDX=EAX%ECX;EAX=EAX/ECX;
0052D132 |. 8BC2 MOV EAX,EDX ;EAX=EDX;
0052D134 |. 8D95 64FFFFFF LEA EDX,DWORD PTR SS:[EBP-9C]
0052D13A |. E8 E1C3EDFF CALL zhdm.00409520 ; HexToDec
0052D13F |. FFB5 64FFFFFF PUSH DWORD PTR SS:[EBP-9C] ; ECX中的HexToDec值,也就是
餘數的十進位制值(後面用)=Rushu
0052D145 |. 8D95 54FFFFFF LEA EDX,DWORD PTR SS:[EBP-AC]
0052D14B |. 8B83 7C030000 MOV EAX,DWORD PTR DS:[EBX+37C]
0052D151 |. E8 766DF1FF CALL zhdm.00443ECC ; 訂單號長度存入EAX
0052D156 |. 8B85 54FFFFFF MOV EAX,DWORD PTR SS:[EBP-AC] ; 訂單號放入EAX
0052D15C |. E8 23C4EDFF CALL zhdm.00409584 ; DecToHex十進位制變十六進位制放
入EAX
0052D161 |. 8D95 58FFFFFF LEA EDX,DWORD PTR SS:[EBP-A8]
0052D167 |. E8 C4E0FFFF CALL zhdm.0052B230 ; 處理上面的值過程如下:
{*********************CALL zhdm.0052b230
0052B230 /$ 55 PUSH EBP
0052B231 |. 8BEC MOV EBP,ESP
0052B233 |. 33C9 XOR ECX,ECX
0052B235 |. 51 PUSH ECX
0052B236 |. 51 PUSH ECX
0052B237 |. 51 PUSH ECX
0052B238 |. 51 PUSH ECX
0052B239 |. 53 PUSH EBX
0052B23A |. 56 PUSH ESI
0052B23B |. 8BF2 MOV ESI,EDX
0052B23D |. 8BD8 MOV EBX,EAX
0052B23F |. 33C0 XOR EAX,EAX
0052B241 |. 55 PUSH EBP
0052B242 |. 68 00B35200 PUSH zhdm.0052B300
0052B247 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
0052B24A |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
0052B24D |. 81F3 F1250B00 XOR EBX,0B25F1 ; 訂單號值
^0xB25F1=Blue
0052B253 |. 8BC3 MOV EAX,EBX
0052B255 |. 33D2 XOR EDX,EDX
0052B257 |. 52 PUSH EDX ; /Arg2 => 00000000
0052B258 |. 50 PUSH EAX ; |Arg1
0052B259 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4] ; |
0052B25C |. E8 EFE2EDFF CALL zhdm.00409550 ; \zhdm.00409550
0052B261 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ; Blue值 HexToDEC
=Blue
0052B264 |. 0FB600 MOVZX EAX,BYTE PTR DS:[EAX] ; Blue[0]
0052B267 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] ;
0052B26A |. 0FB652 01 MOVZX EDX,BYTE PTR DS:[EDX+1] ; Blue[1]
0052B26E |. 03C2 ADD EAX,EDX ; S1=Blue1[0]+Blue[1];
0052B270 |. B9 05000000 MOV ECX,5
0052B275 |. 99 CDQ
0052B276 |. F7F9 IDIV ECX
0052B278 |. 80C2 34 ADD DL,34 ; DL=S1%5;
0052B27B |. 8855 F8 MOV BYTE PTR SS:[EBP-8],DL ; Save S1-->[ebp-8]
0052B27E |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0052B281 |. 0FB640 02 MOVZX EAX,BYTE PTR DS:[EAX+2] ; Blue[2]
0052B285 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0052B288 |. 0FB652 03 MOVZX EDX,BYTE PTR DS:[EDX+3] ; Blue[3]
0052B28C |. 03C2 ADD EAX,EDX ; S2=Blue[2]+Blue[3];
0052B28E |. B9 05000000 MOV ECX,5
0052B293 |. 99 CDQ
0052B294 |. F7F9 IDIV ECX
0052B296 |. 8BDA MOV EBX,EDX
0052B298 |. 80C3 33 ADD BL,33 ; BL=S2%5;
0052B29B |. 885D F9 MOV BYTE PTR SS:[EBP-7],BL ; Save BL->[EBP-7]
0052B29E |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
0052B2A1 |. 8A55 F8 MOV DL,BYTE PTR SS:[EBP-8] ;
0052B2A4 |. E8 AB96EDFF CALL zhdm.00404954
0052B2A9 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
0052B2AC |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
0052B2AF |. B9 1B000000 MOV ECX,1B
0052B2B4 |. E8 539AEDFF CALL zhdm.00404D0C ;S1值聯接至Blue串後=Blue1
0052B2B9 |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
0052B2BC |. 8BD3 MOV EDX,EBX
0052B2BE |. E8 9196EDFF CALL zhdm.00404954
0052B2C3 |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
0052B2C6 |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
0052B2C9 |. B9 19000000 MOV ECX,19
0052B2CE |. E8 399AEDFF CALL zhdm.00404D0C ;S2值聯接至Blue1串後
=Blue1
0052B2D3 |. 8BC6 MOV EAX,ESI
0052B2D5 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] ;EDX指向Blue1地址指標
0052B2D8 |. E8 EB94EDFF CALL zhdm.004047C8
0052B2DD |. 33C0 XOR EAX,EAX
0052B2DF |. 5A POP EDX
0052B2E0 |. 59 POP ECX
0052B2E1 |. 59 POP ECX
0052B2E2 |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
0052B2E5 |. 68 07B35200 PUSH zhdm.0052B307
0052B2EA |> 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
0052B2ED |. BA 02000000 MOV EDX,2
0052B2F2 |. E8 A194EDFF CALL zhdm.00404798
0052B2F7 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
0052B2FA |. E8 7594EDFF CALL zhdm.00404774
0052B2FF \. C3 RETN
0052B300 .^E9 B78DEDFF JMP zhdm.004040BC
0052B305 .^EB E3 JMP SHORT zhdm.0052B2EA
0052B307 . 5E POP ESI
0052B308 . 5B POP EBX
0052B309 . 8BE5 MOV ESP,EBP
0052B30B . 5D POP EBP
0052B30C . C3 RETN
}*********************CALL zhdm.0052b230
0052D16C |. 8B85 58FFFFFF MOV EAX,DWORD PTR SS:[EBP-A8] ;指向Blue1的地址指標
0052D172 |. E8 0DC4EDFF CALL zhdm.00409584 ;將Blue1轉換成16進位制數放入
EAX
0052D177 |. 8D95 5CFFFFFF LEA EDX,DWORD PTR SS:[EBP-A4] ;堆疊值中包括訂單號和訂單號
運算儲存的餘數Rushu
0052D17D |. E8 8EE1FFFF CALL zhdm.0052B310 ;Blue1與Rushu運算
{*********************CALL zhdm.0052B310
0052B310 /$ 55 PUSH EBP
0052B311 |. 8BEC MOV EBP,ESP
0052B313 |. 33C9 XOR ECX,ECX
0052B315 |. 51 PUSH ECX
0052B316 |. 51 PUSH ECX
0052B317 |. 51 PUSH ECX
0052B318 |. 51 PUSH ECX
0052B319 |. 51 PUSH ECX
0052B31A |. 51 PUSH ECX
0052B31B |. 53 PUSH EBX
0052B31C |. 56 PUSH ESI
0052B31D |. 8BF2 MOV ESI,EDX
0052B31F |. 8BD8 MOV EBX,EAX
0052B321 |. 33C0 XOR EAX,EAX
0052B323 |. 55 PUSH EBP
0052B324 |. 68 5CB45200 PUSH zhdm.0052B45C
0052B329 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
0052B32C |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
0052B32F |. 81F3 8776FBDD XOR EBX,DDFB7687
;Blue1^0xDDFB7687=Blue2
0052B335 |. 8BC3 MOV EAX,EBX
0052B337 |. 33D2 XOR EDX,EDX
0052B339 |. 52 PUSH EDX ; /Arg2 => 00000000
0052B33A |. 50 PUSH EAX ; |Arg1
0052B33B |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4] ; |
0052B33E |. E8 0DE2EDFF CALL zhdm.00409550 ; \zhdm.00409550
0052B343 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4] ;Blue2 的DEC形式
0052B346 |. 0FB600 MOVZX EAX,BYTE PTR DS:[EAX] ;Blue2[0]
0052B349 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0052B34C |. 0FB652 01 MOVZX EDX,BYTE PTR DS:[EDX+1] ;Blue2[1]
0052B350 |. 03C2 ADD EAX,EDX ;S1=Blue2[0]+Blue2[1];
0052B352 |. B9 05000000 MOV ECX,5
0052B357 |. 99 CDQ
0052B358 |. F7F9 IDIV ECX
0052B35A |. 80C2 66 ADD DL,66 ;DL=S1%5;S1=DL+0x66;
0052B35D |. 8855 F8 MOV BYTE PTR SS:[EBP-8],DL
0052B360 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0052B363 |. 0FB640 02 MOVZX EAX,BYTE PTR DS:[EAX+2] ;Blue2[2];
0052B367 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0052B36A |. 0FB652 03 MOVZX EDX,BYTE PTR DS:[EDX+3] ;Blue2[3];
0052B36E |. 03C2 ADD EAX,EDX ;S2=Blue2[2]+Blue2[3];
0052B370 |. B9 05000000 MOV ECX,5
0052B375 |. 99 CDQ
0052B376 |. F7F9 IDIV ECX
0052B378 |. 80C2 75 ADD DL,75 ;DL=S2%5;S2=DL+0x75;
0052B37B |. 8855 F9 MOV BYTE PTR SS:[EBP-7],DL
0052B37E |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0052B381 |. 0FB640 04 MOVZX EAX,BYTE PTR DS:[EAX+4] ;Blue2[4]
0052B385 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0052B388 |. 0FB652 05 MOVZX EDX,BYTE PTR DS:[EDX+5] ;Blue2[5]
0052B38C |. 03C2 ADD EAX,EDX ;S3=Blue2[4]+Blue2[5];
0052B38E |. B9 05000000 MOV ECX,5
0052B393 |. 99 CDQ
0052B394 |. F7F9 IDIV ECX
0052B396 |. 80C2 7A ADD DL,7A ;DL=S3%5;S3=DL+0x7A
0052B399 |. 8855 FA MOV BYTE PTR SS:[EBP-6],DL
0052B39C |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0052B39F |. 0FB640 06 MOVZX EAX,BYTE PTR DS:[EAX+6] ;Blue2[6];
0052B3A3 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0052B3A6 |. 0FB652 07 MOVZX EDX,BYTE PTR DS:[EDX+7] ;Blue2[7]
0052B3AA |. 03C2 ADD EAX,EDX ;S4=Blue2[6]+BLue2[7];
0052B3AC |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0052B3AF |. 0FB652 08 MOVZX EDX,BYTE PTR DS:[EDX+8] ;Blue2[8];
0052B3B3 |. 03C2 ADD EAX,EDX
S4=Blue2[6]+BLue2[7]+Blue2[8];
0052B3B5 |. B9 05000000 MOV ECX,5
0052B3BA |. 99 CDQ
0052B3BB |. F7F9 IDIV ECX
0052B3BD |. 80C2 69 ADD DL,69 ;DL=S4%5;S4=DL+x69;
0052B3C0 |. 8855 FB MOV BYTE PTR SS:[EBP-5],DL
0052B3C3 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
0052B3C6 |. 8A55 F8 MOV DL,BYTE PTR SS:[EBP-8] ;DL=S1;
0052B3C9 |. E8 8695EDFF CALL zhdm.00404954 ;
0052B3CE |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
0052B3D1 |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
0052B3D4 |. B9 07000000 MOV ECX,7
0052B3D9 |. E8 2E99EDFF CALL zhdm.00404D0C ;DL值加入Blue2串的第7個
位置(從1開始)形成新串值Blue2
0052B3DE |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
0052B3E1 |. 8A55 FB MOV DL,BYTE PTR SS:[EBP-5] ;DL=S4;
0052B3E4 |. E8 6B95EDFF CALL zhdm.00404954
0052B3E9 |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
0052B3EC |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
0052B3EF |. B9 03000000 MOV ECX,3
0052B3F4 |. E8 1399EDFF CALL zhdm.00404D0C ;DL值加入Blue2串的第3個
位置(從1開始)形成新串值Blue2
0052B3F9 |. 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
0052B3FC |. 8A55 F9 MOV DL,BYTE PTR SS:[EBP-7] ;DL=S2;
0052B3FF |. E8 5095EDFF CALL zhdm.00404954
0052B404 |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14]
0052B407 |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
0052B40A |. B9 05000000 MOV ECX,5
0052B40F |. E8 F898EDFF CALL zhdm.00404D0C ;DL值加入Blue2串的第5個
位置(從1開始)形成新串值Blue2
0052B414 |. 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
0052B417 |. 8A55 FA MOV DL,BYTE PTR SS:[EBP-6] ;DL=S3
0052B41A |. E8 3595EDFF CALL zhdm.00404954
0052B41F |. 8B45 E8 MOV EAX,DWORD PTR SS:[EBP-18]
0052B422 |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
0052B425 |. B9 09000000 MOV ECX,9
0052B42A |. E8 DD98EDFF CALL zhdm.00404D0C ;DL值加入Blue2串的第9個
位置(從1開始)形成新串值Blue2
0052B42F |. 8BC6 MOV EAX,ESI
0052B431 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4] ;最後生成的Blue2串放入
EDX
0052B434 |. E8 8F93EDFF CALL zhdm.004047C8
0052B439 |. 33C0 XOR EAX,EAX
0052B43B |. 5A POP EDX
0052B43C |. 59 POP ECX
0052B43D |. 59 POP ECX
0052B43E |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
0052B441 |. 68 63B45200 PUSH zhdm.0052B463
0052B446 |> 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18]
0052B449 |. BA 04000000 MOV EDX,4
0052B44E |. E8 4593EDFF CALL zhdm.00404798
0052B453 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
0052B456 |. E8 1993EDFF CALL zhdm.00404774
0052B45B \. C3 RETN
0052B45C .^E9 5B8CEDFF JMP zhdm.004040BC
0052B461 .^EB E3 JMP SHORT zhdm.0052B446
0052B463 . 5E POP ESI
0052B464 . 5B POP EBX
0052B465 . 8BE5 MOV ESP,EBP
0052B467 . 5D POP EBP
0052B468 . C3 RETN
}*********************CALL zhdm.0052B310
0052D182 |. FFB5 5CFFFFFF PUSH DWORD PTR SS:[EBP-A4]
0052D188 |. 68 10D35200 PUSH zhdm.0052D310
0052D18D |. 8D85 68FFFFFF LEA EAX,DWORD PTR SS:[EBP-98]
0052D193 |. BA 03000000 MOV EDX,3
0052D198 |. E8 4F79EDFF CALL zhdm.00404AEC ;生成正解的註冊碼
{*********************CALL zhdm.00404AEC
00404AEC $ 53 PUSH EBX
00404AED . 56 PUSH ESI
00404AEE . 57 PUSH EDI
00404AEF . 52 PUSH EDX
00404AF0 . 50 PUSH EAX
00404AF1 . 89D3 MOV EBX,EDX
00404AF3 . 31FF XOR EDI,EDI
00404AF5 . 8B4C94 14 MOV ECX,DWORD PTR SS:[ESP+EDX*4+14] ;Yushu
00404AF9 . 85C9 TEST ECX,ECX
00404AFB . 74 06 JE SHORT zhdm.00404B03
00404AFD . 3908 CMP DWORD PTR DS:[EAX],ECX
00404AFF . 75 02 JNZ SHORT zhdm.00404B03
00404B01 . 89C7 MOV EDI,EAX
00404B03 > 31C0 XOR EAX,EAX
00404B05 > 8B4C94 14 MOV ECX,DWORD PTR SS:[ESP+EDX*4+14] ;Blue2
00404B09 . 85C9 TEST ECX,ECX
00404B0B . 74 09 JE SHORT zhdm.00404B16
00404B0D . 0341 FC ADD EAX,DWORD PTR DS:[ECX-4] ;EAX存放Yushu十進位制串長度
,[ECX-4]存放Blue2串長度
00404B10 . 39CF CMP EDI,ECX
00404B12 . 75 02 JNZ SHORT zhdm.00404B16
00404B14 . 31FF XOR EDI,EDI
00404B16 > 4A DEC EDX
00404B17 .^75 EC JNZ SHORT zhdm.00404B05
00404B19 . 85FF TEST EDI,EDI
00404B1B . 74 14 JE SHORT zhdm.00404B31
00404B1D . 89C2 MOV EDX,EAX
00404B1F . 89F8 MOV EAX,EDI
00404B21 . 8B37 MOV ESI,DWORD PTR DS:[EDI]
00404B23 . 8B76 FC MOV ESI,DWORD PTR DS:[ESI-4]
00404B26 . E8 85020000 CALL zhdm.00404DB0
00404B2B . 57 PUSH EDI
00404B2C . 0337 ADD ESI,DWORD PTR DS:[EDI]
00404B2E . 4B DEC EBX
00404B2F . EB 08 JMP SHORT zhdm.00404B39
00404B31 > E8 02FDFFFF CALL zhdm.00404838
00404B36 . 50 PUSH EAX
00404B37 . 89C6 MOV ESI,EAX
00404B39 > 8B449C 18 MOV EAX,DWORD PTR SS:[ESP+EBX*4+18] ;依次取Yush和Blue2十進位制串
00404B3D . 89F2 MOV EDX,ESI
00404B3F . 85C0 TEST EAX,EAX
00404B41 . 74 0A JE SHORT zhdm.00404B4D
00404B43 . 8B48 FC MOV ECX,DWORD PTR DS:[EAX-4] ;Yush和Blue2串長度
00404B46 . 01CE ADD ESI,ECX
00404B48 . E8 C7DEFFFF CALL zhdm.00402A14 ;串聯接後尾部插入字'^'
00404B4D > 4B DEC EBX
00404B4E .^75 E9 JNZ SHORT zhdm.00404B39
00404B50 . 5A POP EDX
00404B51 . 58 POP EAX
00404B52 . 85FF TEST EDI,EDI
00404B54 . 75 0C JNZ SHORT zhdm.00404B62
00404B56 . 85D2 TEST EDX,EDX
00404B58 . 74 03 JE SHORT zhdm.00404B5D
00404B5A . FF4A F8 DEC DWORD PTR DS:[EDX-8]
00404B5D > E8 66FCFFFF CALL zhdm.004047C8
00404B62 > 5A POP EDX
00404B63 . 5F POP EDI
00404B64 . 5E POP ESI
00404B65 . 5B POP EBX
00404B66 . 58 POP EAX
00404B67 . 8D2494 LEA ESP,DWORD PTR SS:[ESP+EDX*4]
00404B6A . FFE0 JMP EAX
00404B6C . C3 RETN
}*********************CALL zhdm.00404AEC
0052D19D |. 8B95 68FFFFFF MOV EDX,DWORD PTR SS:[EBP-98] ;正確的註冊碼,這裡可以作記憶體
序號產生器
0052D1A3 |. 58 POP EAX ;輸入的試煉碼
0052D1A4 |. E8 C779EDFF CALL zhdm.00404B70 ;正確的註冊碼與試煉碼的比較
0052D1A9 |. 0F85 95000000 JNZ zhdm.0052D244 ;不相等跳到出錯資訊,這裡可以
爆破
演算法描述
1.設ddh為輸入的訂單號
2.yushu=ddh%0x315;
3.blue=ddh^0xB25F1;轉換成串
4.blue=blue+[(blue[0]+blue[1])%5+0x34]+[(blue[2]+blue[3])%5+0x33];轉換成整數
5.blue1=blue^DDFB7687;
6.s1=(blue1[0]+blue1[1])%5+0x66;
s2=(blue1[2]+blue1[3])%5+0x75;
s3=(blue1[4]+blue1[5])%5+0x7a;
s4=(blue1[6]+blue1[7]+blue1[8])%5+0x69;
7.blue1轉換成串;
串blue1的第7個位置插入S1(從1開始)生成新串blue1;
串blue1的第3個位置插入S4(從1開始)生成新串blue1;
串blue1的第5個位置插入S2(從1開始)生成新串blue1;
串blue1的第9個位置插入S3(從1開始)生成新串blue1;
8.yushu轉換成串
設註冊碼為zcm
zcm=yush+blue1+'^'
由於版權問題我就不附序號產生器了,序號產生器源程式也就不附了,有興趣的可以編寫一下.
不過我還是給出一個註冊號:
訂單號:12345678
註冊碼:19525l9u087{i883
不過該軟體註冊成功後,如果訂單號短的話,就會重啟後顯示沒有註冊,最好是8位的訂單號
註冊完成的資訊可能存放在了c:\\winnt\\system32\\coin_o_38.dll檔案裡。
注:該註冊的訂單號必須大於1700000,否則註冊不成功顯然當時顯示註冊成功了!具體見下:
在程式關閉時呼叫:
0052CFC3 |. 3D A0F01900 CMP EAX,19F0A0 ;eax 為訂單號值與0x19F0A0=1700000比較
0052CFC8 |. 7F 1E JG SHORT zhdm.0052CFE8
0052CFCA |> 8D85 64FFFFFF LEA EAX,DWORD PTR SS:[EBP-9C]
0052CFD0 |. B9 24D05200 MOV ECX,zhdm.0052D024 ; ASCII "\CoIn_o_38.dll"
0052CFD5 |. 8B55 FC MOV EDX,DWORD PTR SS:[EBP-4]
0052CFD8 |. E8 9B7AEDFF CALL zhdm.00404A78
0052CFDD |. 8B85 64FFFFFF MOV EAX,DWORD PTR SS:[EBP-9C]
0052CFE3 |. E8 0CC8EDFF CALL zhdm.004097F4 ; 呼叫刪除\CoIn_o_38.dll
0052CFE8 |> 33C0 XOR EAX,EAX
0052CFEA |. 5A POP EDX
0052CFEB |. 59 POP ECX
0052CFEC |. 59 POP ECX
0052CFED |. 64:8910 MOV DWORD PTR FS:[EAX],EDX
0052CFF0 |. 68 15D05200 PUSH zhdm.0052D015
0052CFF5 |> 8D85 64FFFFFF LEA EAX,DWORD PTR SS:[EBP-9C]
0052CFFB |. BA 05000000 MOV EDX,5
0052D000 |. E8 9377EDFF CALL zhdm.00404798
0052D005 |. 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]
0052D008 |. E8 6777EDFF CALL zhdm.00404774
0052D00D \. C3 RETN
004097F4 /$ 53 PUSH EBX
004097F5 |. 8BD8 MOV EBX,EAX
004097F7 |. 8BC3 MOV EAX,EBX
004097F9 |. E8 26B4FFFF CALL zhdm.00404C24
004097FE |. 50 PUSH EAX ; /FileName
004097FF |. E8 28D9FFFF CALL <JMP.&kernel32.DeleteFileA> ; \DeleteFileA
00409804 |. 83F8 01 CMP EAX,1
00409807 |. 1BC0 SBB EAX,EAX
00409809 |. 40 INC EAX
0040980A |. 5B POP EBX
0040980B \. C3 RETN
--------------------------------------------------------------------------------
【破解總結】
該程式不好下斷點,且由於DEDE我不太會用,沒有在DEDE的編譯資訊中找到有用的資訊,因此用OLLYDBG來跟
蹤,Dephi的程式的確是有點麻煩,可能是我對Dephi程式設計不懂的原因吧!看來以後還得玩玩Dephi程式設計.
--------------------------------------------------------------------------------
【版權宣告】 本文純屬技術交流, 轉載請註明作者並保持文章的完整, 謝謝!
相關文章
- 中華燈謎 XP 2005 Build 01.20 --簡單演算法分析2015-11-15UI演算法
- 華瑞IT學校:迎中秋,猜燈謎2021-09-18
- 系統優化大師V2004
build 12.10 破解教程2004-12-19優化UI
- 回溯法2024-10-09
- 元宵節專為程式設計師設計的燈謎2015-03-05程式設計師
- 破解ERP的使用成本之謎2010-04-20
- 程式設計師專屬“燈謎”大挑戰,答對六題算你贏!2021-03-01程式設計師
- 解謎遊戲謎題設計研究(三):推理類謎題設計2020-01-09遊戲
- 解謎遊戲謎題設計研究(一):物品類謎題設計2020-01-02遊戲
- 解謎遊戲謎題設計研究(二):機關類謎題設計2020-01-07遊戲
- 常用演算法之回溯法2018-12-27演算法
- 八皇后之回溯法解決2014-11-23
- 回溯法求迷宮問題2024-10-12
- 破解神秘程式碼“3582-490”之謎2021-04-09
- 《自然》:破解癌細胞愛“啃”椎骨之謎!2023-11-30
- 《科學》:破解AD神經元死亡之謎!2024-02-20
- 中華人民共和國網路安全法2024-10-09
- 回溯法解決迷宮問題2018-02-08
- (回溯法)ip地址的合理性2017-02-03
- 經典演算法之回溯法2017-08-12演算法
- 回溯法解決喝酒問題 (轉)2007-12-12
- gcc-avr中中斷的寫法2008-12-16GCVR
- 中華壓縮V7.0破解手記 (4千字)2001-11-20
- 微軟已移除Win10 V2004 Build 19033自動登入選項2019-11-29微軟Win10UI
- 【 標題:SmartWhoIs 3.0 (build 21) 破解手記
】2000-11-30UI
- 《中華人民共和國著作權法》筆記(I)2007-06-25筆記
- 回溯法應該知道的知識點2020-12-19
- 【力扣】排列問題(回溯法)(去重)2024-03-09力扣
- leetcode題解(遞迴和回溯法)2021-09-09LeetCode遞迴
- 回溯法解決全排列問題總結2021-06-24
- 寒假補充專案-回溯法走迷宮2015-01-31
- 3. 工作分配問題(回溯法)設有n件工作分配給n個人。。。2020-12-19
- 元宵快樂,這些技術類燈謎,你能猜對多少個?2022-02-15
- The Cleaner 3.2 BUILD 3205的破解(10千字)2001-01-27UI
- Golden 5.7 Build 391破解手記--演算法分析2015-11-15GoUI演算法
- 新華網:95後的謎之就業觀,你看懂了嗎?2017-05-24就業
- 智慧應用不斷湧現,新華三賦能ICT融合建設2020-08-26
- DDK中"checked build"和"free build" 之區別2020-04-04UI