很好的英語學習軟體 突破單詞破解過程詳解
看雪資料發表於2004-05-25
【破解作者】 blue_devil_bomb
【作者郵箱】 ninesunnine@sina.com or booksunwang@21cn.com
【使用工具】 OllyDbg1.09
【破解平臺】 Win2000
【軟體名稱】 決戰單詞1.7
【下載地址】 網上到處都是
【軟體簡介】 學好英語是我們很多人的夙願!要實現這個美好的夢想,記大量的單詞是必不可少的重要環節。但長久以來我們飽受記單詞效率低下、遺忘快的折磨,而找不到有效的辦法。但現在,我們會因為有決戰單詞而成倍地提高記單詞的效率,並使記憶牢固。記單詞已經告別了傳統的死記硬背、枯燥無味,而走上從容、輕鬆、愉快之路!!
【軟體大小】 8.65MB(安裝後)
【加殼方式】 未加殼 VB程式
【破解宣告】 不為破解而破解,只為學習而破解
--------------------------------------------------------------------------------
【破解內容】
VB程式,利用smartcheck或利用olldbg等軟體設端點vbastrcmp 既可!
程式碼:
004C985E . 51 PUSH ECX //真正的註冊碼後面的8個 004C985F . 8B55 D0 MOV EDX,DWORD PTR SS:[EBP-30] 004C9862 . 52 PUSH EDX 004C9863 . 8B35 50114000 MOV ESI,DWORD PTR DS:[<&MSVBVM60.__vbaSt>; MSVBVM60.__vbaStrCmp 004C9869 . FFD6 CALL ESI ; <&MSVBVM60.__vbaStrCmp> 004C986B . 8BF8 MOV EDI,EAX 004C986D . F7DF NEG EDI 004C986F . 1BFF SBB EDI,EDI 004C9871 . F7DF NEG EDI 004C9873 . 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24] 004C9876 . 50 PUSH EAX //真正的註冊碼前面8個 004C9877 . 8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] 004C987A . 51 PUSH ECX 004C987B . FFD6 CALL ESI 16位註冊碼,中間插入"-"如 07B78115-198BF478 該軟體作記憶體序號產生器很容易,為了達到提高水平的目的,我決定找出註冊演算法,寫出演算法序號產生器!! 由於我破解該軟體有一段時間了,為方便閱讀,詳細破解過程如下! 004C97A9 > 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C] ; 堆疊值為JmgDBWords 004C97AC . 50 PUSH EAX 004C97AD . E8 5E010000 CALL DBWords.004C9910 ; 計算JmgDBWords對應值 004C97B2 . 8BD0 MOV EDX,EAX 004C97B4 . 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44] 004C97B7 . FFD6 CALL ESI 004C97B9 . 50 PUSH EAX 004C97BA . 8B1D 7C124000 MOV EBX,DWORD PTR DS:[<&MSVBVM60.__vbaI4>; MSVBVM60.__vbaI4Str 004C97C0 . FFD3 CALL EBX ; <&MSVBVM60.__vbaI4Str>轉換成16進位制0x1 004C97C2 . 8BF8 MOV EDI,EAX 004C97C4 . 8D4D D8 LEA ECX,DWORD PTR SS:[EBP-28] 004C97C7 . 51 PUSH ECX ; 序號產生器器碼的前四個位元組 004C97C8 . E8 43010000 CALL DBWords.004C9910 ; 計算出值 004C97CD . 8BD0 MOV EDX,EAX 004C97CF . 8D4D C0 LEA ECX,DWORD PTR SS:[EBP-40] 004C97D2 . FFD6 CALL ESI 004C97D4 . 50 PUSH EAX 004C97D5 . FFD3 CALL EBX ; 轉換成16進位制0x2 004C97D7 . 33F8 XOR EDI,EAX ; 0x1^0x2=0x3; 004C97D9 . 89BD 78FFFFFF MOV DWORD PTR SS:[EBP-88],EDI 004C97DF . 8D95 78FFFFFF LEA EDX,DWORD PTR SS:[EBP-88] 004C97E5 . 52 PUSH EDX 004C97E6 . E8 A5EA0500 CALL DBWords.00528290 004C97EB . 8BD0 MOV EDX,EAX 004C97ED . 8D4D DC LEA ECX,DWORD PTR SS:[EBP-24] 004C97F0 . FFD6 CALL ESI 004C97F2 . 8D45 BC LEA EAX,DWORD PTR SS:[EBP-44] 004C97F5 . 50 PUSH EAX 004C97F6 . 8D4D C0 LEA ECX,DWORD PTR SS:[EBP-40] 004C97F9 . 51 PUSH ECX 004C97FA . 6A 02 PUSH 2 004C97FC . FF15 80124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStrList 004C9802 . 83C4 0C ADD ESP,0C 004C9805 . 8B55 0C MOV EDX,DWORD PTR SS:[EBP+C] 004C9808 . 52 PUSH EDX ; 堆疊值為JmgDBWords 004C9809 . E8 02010000 CALL DBWords.004C9910 ; 計算JmgDBWords對應值 004C980E . 8BD0 MOV EDX,EAX 004C9810 . 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44] 004C9813 . FFD6 CALL ESI 004C9815 . 50 PUSH EAX 004C9816 . FFD3 CALL EBX ; 轉換成16進位制0x4 004C9818 . 8BF8 MOV EDI,EAX 004C981A . 8D45 C8 LEA EAX,DWORD PTR SS:[EBP-38] 004C981D . 50 PUSH EAX ; 序號產生器器碼的右4個位元組 004C981E . E8 ED000000 CALL DBWords.004C9910 004C9823 . 8BD0 MOV EDX,EAX 004C9825 . 8D4D C0 LEA ECX,DWORD PTR SS:[EBP-40] 004C9828 . FFD6 CALL ESI 004C982A . 50 PUSH EAX 004C982B . FFD3 CALL EBX ; 轉換成16進位制0x5; 004C982D . 33F8 XOR EDI,EAX ; 0x4^0x5=0x6; 004C982F . 89BD 78FFFFFF MOV DWORD PTR SS:[EBP-88],EDI 004C9835 . 8D8D 78FFFFFF LEA ECX,DWORD PTR SS:[EBP-88] 004C983B . 51 PUSH ECX 004C983C . E8 4FEA0500 CALL DBWords.00528290 004C9841 . 8BD0 MOV EDX,EAX 004C9843 . 8D4D C4 LEA ECX,DWORD PTR SS:[EBP-3C] 004C9846 . FFD6 CALL ESI 004C9848 . 8D55 BC LEA EDX,DWORD PTR SS:[EBP-44] 004C984B . 52 PUSH EDX 004C984C . 8D45 C0 LEA EAX,DWORD PTR SS:[EBP-40] 004C984F . 50 PUSH EAX 004C9850 . 6A 02 PUSH 2 004C9852 . FF15 80124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStrList 004C9858 . 83C4 0C ADD ESP,0C 004C985B . 8B4D C4 MOV ECX,DWORD PTR SS:[EBP-3C] 004C985E . 51 PUSH ECX ;真正的註冊碼後面的8個 004C985F . 8B55 D0 MOV EDX,DWORD PTR SS:[EBP-30] 004C9862 . 52 PUSH EDX 004C9863 . 8B35 50114000 MOV ESI,DWORD PTR DS:[<&MSVBVM60.__vbaSt>; MSVBVM60.__vbaStrCmp 004C9869 . FFD6 CALL ESI ;比較輸入資訊與真正註冊碼後8 0x6 004C986B . 8BF8 MOV EDI,EAX 004C986D . F7DF NEG EDI 004C986F . 1BFF SBB EDI,EDI 004C9871 . F7DF NEG EDI 004C9873 . 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24] 004C9876 . 50 PUSH EAX ;真正的註冊碼前面8個 0x3 004C9877 . 8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] 004C987A . 51 PUSH ECX 004C987B . FFD6 CALL ESI ;比較輸入資訊與真正註冊碼前8 004C987D . F7D8 NEG EAX 004C987F . 1BC0 SBB EAX,EAX 004C9881 . F7D8 NEG EAX 004C9883 . 23F8 AND EDI,EAX 004C9885 . F7DF NEG EDI 004C9887 . 1BFF SBB EDI,EDI 004C9889 . F7DF NEG EDI 004C988B . 4F DEC EDI 004C988C . 897D D4 MOV DWORD PTR SS:[EBP-2C],EDI 004C988F . FF15 C4104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaExitP>; MSVBVM60.__vbaExitProc 004C9895 . 68 F2984C00 PUSH DBWords.004C98F2 CALL DBWords.004C9910函式: 004C9910 $ 55 PUSH EBP 004C9911 . 8BEC MOV EBP,ESP 004C9913 . 83EC 0C SUB ESP,0C 004C9916 . 68 56754000 PUSH <JMP.&MSVBVM60.__vbaExceptHandler> ; SE handler installation 004C991B . 64:A1 00000000 MOV EAX,DWORD PTR FS:[0] 004C9921 . 50 PUSH EAX 004C9922 . 64:8925 000000>MOV DWORD PTR FS:[0],ESP 004C9929 . 81EC E0000000 SUB ESP,0E0 004C992F . 53 PUSH EBX 004C9930 . 56 PUSH ESI 004C9931 . 57 PUSH EDI 004C9932 . 8965 F4 MOV DWORD PTR SS:[EBP-C],ESP 004C9935 . C745 F8 F81F40>MOV DWORD PTR SS:[EBP-8],DBWords.00401FF> 004C993C . 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] 004C993F . 8B08 MOV ECX,DWORD PTR DS:[EAX] 004C9941 . 33F6 XOR ESI,ESI 004C9943 . 51 PUSH ECX 004C9944 . 8975 E0 MOV DWORD PTR SS:[EBP-20],ESI 004C9947 . 8975 DC MOV DWORD PTR SS:[EBP-24],ESI 004C994A . 8975 D4 MOV DWORD PTR SS:[EBP-2C],ESI 004C994D . 8975 D0 MOV DWORD PTR SS:[EBP-30],ESI 004C9950 . 8975 BC MOV DWORD PTR SS:[EBP-44],ESI 004C9953 . 8975 AC MOV DWORD PTR SS:[EBP-54],ESI 004C9956 . 8975 9C MOV DWORD PTR SS:[EBP-64],ESI 004C9959 . 8975 8C MOV DWORD PTR SS:[EBP-74],ESI 004C995C . 89B5 7CFFFFFF MOV DWORD PTR SS:[EBP-84],ESI 004C9962 . 89B5 6CFFFFFF MOV DWORD PTR SS:[EBP-94],ESI 004C9968 . 89B5 5CFFFFFF MOV DWORD PTR SS:[EBP-A4],ESI 004C996E . 89B5 4CFFFFFF MOV DWORD PTR SS:[EBP-B4],ESI 004C9974 . 89B5 3CFFFFFF MOV DWORD PTR SS:[EBP-C4],ESI 004C997A . 89B5 2CFFFFFF MOV DWORD PTR SS:[EBP-D4],ESI 004C9980 . FF15 30104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaLenBs>; MSVBVM60.__vbaLenBstr 要計算字串長度 004C9986 . 8BC8 MOV ECX,EAX 004C9988 . FF15 70114000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaI2I4>>; MSVBVM60.__vbaI2I4 004C998E . 8B1D 44104000 MOV EBX,DWORD PTR DS:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeVarList 004C9994 . BF 01000000 MOV EDI,1 迴圈起點 004C9999 . 8945 CC MOV DWORD PTR SS:[EBP-34],EAX eax迴圈長度 004C999C > 66:3B7D CC CMP DI,WORD PTR SS:[EBP-34] 判斷迴圈是否結束 004C99A0 . 0F8F B1010000 JG DBWords.004C9B57 004C99A6 . 8B55 08 MOV EDX,DWORD PTR SS:[EBP+8] 004C99A9 . 8D45 BC LEA EAX,DWORD PTR SS:[EBP-44] 004C99AC . 50 PUSH EAX 004C99AD . 0FBFCF MOVSX ECX,DI 004C99B0 . 8995 54FFFFFF MOV DWORD PTR SS:[EBP-AC],EDX 004C99B6 . 51 PUSH ECX 004C99B7 . 8D95 4CFFFFFF LEA EDX,DWORD PTR SS:[EBP-B4] 004C99BD . 52 PUSH EDX 004C99BE . 8D45 AC LEA EAX,DWORD PTR SS:[EBP-54] 004C99C1 . 50 PUSH EAX 004C99C2 . C745 C4 010000>MOV DWORD PTR SS:[EBP-3C],1 004C99C9 . C745 BC 020000>MOV DWORD PTR SS:[EBP-44],2 004C99D0 . C785 4CFFFFFF >MOV DWORD PTR SS:[EBP-B4],4008 004C99DA . FF15 2C114000 CALL DWORD PTR DS:[<&MSVBVM60.#632>] ; MSVBVM60.rtcMidCharVar 取字串第i個字元 004C99E0 . 8D4D AC LEA ECX,DWORD PTR SS:[EBP-54] 004C99E3 . 51 PUSH ECX 004C99E4 . FF15 34104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrVa>; MSVBVM60.__vbaStrVarMove 004C99EA . 8BD0 MOV EDX,EAX 004C99EC . 8D4D E0 LEA ECX,DWORD PTR SS:[EBP-20] 004C99EF . FF15 F8124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrMo>; MSVBVM60.__vbaStrMove 004C99F5 . 8D55 AC LEA EDX,DWORD PTR SS:[EBP-54] 004C99F8 . 52 PUSH EDX 004C99F9 . 8D45 BC LEA EAX,DWORD PTR SS:[EBP-44] 004C99FC . 50 PUSH EAX 004C99FD . 6A 02 PUSH 2 004C99FF . FFD3 CALL EBX 004C9A01 . 8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] 004C9A04 . 83C4 0C ADD ESP,0C 004C9A07 . 51 PUSH ECX 004C9A08 . FF15 58104000 CALL DWORD PTR DS:[<&MSVBVM60.#516>] ; MSVBVM60.rtcAnsiValueBstr 004C9A0E . 66:3D FF00 CMP AX,0FF 004C9A12 . 0F8F C7000000 JG DBWords.004C9ADF 004C9A18 . 66:3BC6 CMP AX,SI 004C9A1B . 0F8C BE000000 JL DBWords.004C9ADF 004C9A21 . 8B55 E0 MOV EDX,DWORD PTR SS:[EBP-20] 004C9A24 . 52 PUSH EDX 004C9A25 . FF15 58104000 CALL DWORD PTR DS:[<&MSVBVM60.#516>] ; MSVBVM60.rtcAnsiValueBstr 第i個字元的ASCII值放到EAX 004C9A2B . 8BC8 MOV ECX,EAX 004C9A2D . FF15 B4114000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaUI1I2>; MSVBVM60.__vbaUI1I2 004C9A33 . 8B4D D0 MOV ECX,DWORD PTR SS:[EBP-30] 004C9A36 . 66:0FB6F0 MOVZX SI,AL 004C9A3A . 66:8BC6 MOV AX,SI 004C9A3D . 66:99 CWD 004C9A3F . 898D 44FFFFFF MOV DWORD PTR SS:[EBP-BC],ECX 004C9A45 . 66:B9 0A00 MOV CX,0A 004C9A49 . 66:F7F9 IDIV CX 004C9A4C . 8D45 AC LEA EAX,DWORD PTR SS:[EBP-54] 004C9A4F . C785 3CFFFFFF >MOV DWORD PTR SS:[EBP-C4],8 004C9A59 . C745 BC 020000>MOV DWORD PTR SS:[EBP-44],2 004C9A60 . 66:8955 C4 MOV WORD PTR SS:[EBP-3C],DX ;餘數存放 004C9A64 . 8D55 BC LEA EDX,DWORD PTR SS:[EBP-44] 004C9A67 . 52 PUSH EDX 004C9A68 . 50 PUSH EAX 004C9A69 . FF15 D0124000 CALL DWORD PTR DS:[<&MSVBVM60.#613>] ; MSVBVM60.rtcVarStrFromVar 004C9A6F . 8D4D AC LEA ECX,DWORD PTR SS:[EBP-54] 004C9A72 . 51 PUSH ECX 004C9A73 . 8D55 9C LEA EDX,DWORD PTR SS:[EBP-64] 004C9A76 . 52 PUSH EDX 004C9A77 . FF15 04114000 CALL DWORD PTR DS:[<&MSVBVM60.#520>] ; MSVBVM60.rtcTrimVar 004C9A7D . 8D85 3CFFFFFF LEA EAX,DWORD PTR SS:[EBP-C4] 004C9A83 . 50 PUSH EAX 004C9A84 . 8D4D 9C LEA ECX,DWORD PTR SS:[EBP-64] 004C9A87 . 51 PUSH ECX 004C9A88 . 8D55 8C LEA EDX,DWORD PTR SS:[EBP-74] 004C9A8B . 52 PUSH EDX ;堆疊存放i位前字元ASCII值/10餘數 004C9A8C . FF15 2C124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarCa>; MSVBVM60.__vbaVarCat 將餘數連線 004C9A92 . 50 PUSH EAX 004C9A93 . FF15 34104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrVa>; MSVBVM60.__vbaStrVarMove 004C9A99 . 8BD0 MOV EDX,EAX 004C9A9B . 8D4D D0 LEA ECX,DWORD PTR SS:[EBP-30] 004C9A9E . FF15 F8124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrMo>; MSVBVM60.__vbaStrMove 004C9AA4 . 8D45 8C LEA EAX,DWORD PTR SS:[EBP-74] 004C9AA7 . 50 PUSH EAX 004C9AA8 . 8D4D 9C LEA ECX,DWORD PTR SS:[EBP-64] 004C9AAB . 51 PUSH ECX 004C9AAC . 8D55 AC LEA EDX,DWORD PTR SS:[EBP-54] 004C9AAF . 52 PUSH EDX 004C9AB0 . 8D45 BC LEA EAX,DWORD PTR SS:[EBP-44] 004C9AB3 . 50 PUSH EAX 004C9AB4 . 6A 04 PUSH 4 004C9AB6 . FFD3 CALL EBX 004C9AB8 . 83C4 14 ADD ESP,14 004C9ABB . 66:0375 D4 ADD SI,WORD PTR SS:[EBP-2C] 004C9ABF . B8 01000000 MOV EAX,1 004C9AC4 . 0F80 1E030000 JO DBWords.004C9DE8 004C9ACA . 66:03C7 ADD AX,DI 004C9ACD . 0F80 15030000 JO DBWords.004C9DE8 004C9AD3 . 8975 D4 MOV DWORD PTR SS:[EBP-2C],ESI //存貯字串ASCII值累加和 004C9AD6 . 33F6 XOR ESI,ESI 004C9AD8 . 8BF8 MOV EDI,EAX 004C9ADA .^E9 BDFEFFFF JMP DBWords.004C999C 004C9ADF > B9 0A000000 MOV ECX,0A 004C9AE4 . B8 04000280 MOV EAX,80020004 004C9AE9 . 894D 8C MOV DWORD PTR SS:[EBP-74],ECX 004C9AEC . 894D 9C MOV DWORD PTR SS:[EBP-64],ECX 004C9AEF . 894D AC MOV DWORD PTR SS:[EBP-54],ECX 004C9AF2 . 8D95 4CFFFFFF LEA EDX,DWORD PTR SS:[EBP-B4] 004C9AF8 . 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44] 004C9AFB . 8945 94 MOV DWORD PTR SS:[EBP-6C],EAX 004C9AFE . 8945 A4 MOV DWORD PTR SS:[EBP-5C],EAX 004C9B01 . 8945 B4 MOV DWORD PTR SS:[EBP-4C],EAX 004C9B04 . C785 54FFFFFF >MOV DWORD PTR SS:[EBP-AC],DBWords.004611> 004C9B0E . C785 4CFFFFFF >MOV DWORD PTR SS:[EBP-B4],8 004C9B18 . FF15 BC124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarDu>; MSVBVM60.__vbaVarDup 004C9B1E . 8D4D 8C LEA ECX,DWORD PTR SS:[EBP-74] 004C9B21 . 51 PUSH ECX 004C9B22 . 8D55 9C LEA EDX,DWORD PTR SS:[EBP-64] 004C9B25 . 52 PUSH EDX 004C9B26 . 8D45 AC LEA EAX,DWORD PTR SS:[EBP-54] 004C9B29 . 50 PUSH EAX 004C9B2A . 56 PUSH ESI 004C9B2B . 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44] 004C9B2E . 51 PUSH ECX 004C9B2F . FF15 E0104000 CALL DWORD PTR DS:[<&MSVBVM60.#595>] ; MSVBVM60.rtcMsgBox 004C9B35 . 8D55 8C LEA EDX,DWORD PTR SS:[EBP-74] 004C9B38 . 52 PUSH EDX 004C9B39 . 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64] 004C9B3C . 50 PUSH EAX 004C9B3D . 8D4D AC LEA ECX,DWORD PTR SS:[EBP-54] 004C9B40 . 51 PUSH ECX 004C9B41 . 8D55 BC LEA EDX,DWORD PTR SS:[EBP-44] 004C9B44 . 52 PUSH EDX 004C9B45 . 6A 04 PUSH 4 004C9B47 . FFD3 CALL EBX 004C9B49 . 9B WAIT 004C9B4A . 83C4 14 ADD ESP,14 004C9B4D . 68 D29D4C00 PUSH DBWords.004C9DD2 004C9B52 . E9 6A020000 JMP DBWords.004C9DC1 004C9B57 > 8B45 D0 MOV EAX,DWORD PTR SS:[EBP-30] //字元ASCII值/10餘數串成新串 004C9B5A . 50 PUSH EAX 004C9B5B . FF15 30104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaLenBs>; MSVBVM60.__vbaLenBstr 004C9B61 . 83F8 04 CMP EAX,4 004C9B64 . 7C 62 JL SHORT DBWords.004C9BC8 004C9B66 . 8D55 BC LEA EDX,DWORD PTR SS:[EBP-44] 004C9B69 . 52 PUSH EDX 004C9B6A . 8D4D D0 LEA ECX,DWORD PTR SS:[EBP-30] 004C9B6D . 6A 02 PUSH 2 004C9B6F . 8D85 4CFFFFFF LEA EAX,DWORD PTR SS:[EBP-B4] 004C9B75 . 898D 54FFFFFF MOV DWORD PTR SS:[EBP-AC],ECX 004C9B7B . 50 PUSH EAX 004C9B7C . 8D4D AC LEA ECX,DWORD PTR SS:[EBP-54] 004C9B7F . 51 PUSH ECX 004C9B80 . C745 C4 030000>MOV DWORD PTR SS:[EBP-3C],3 ;取3位 004C9B87 . C745 BC 020000>MOV DWORD PTR SS:[EBP-44],2 ;起點2 004C9B8E . C785 4CFFFFFF >MOV DWORD PTR SS:[EBP-B4],4008 004C9B98 . FF15 2C114000 CALL DWORD PTR DS:[<&MSVBVM60.#632>] ; MSVBVM60.rtcMidCharVar 004C9B9E . 8B3D 34104000 MOV EDI,DWORD PTR DS:[<&MSVBVM60.__vbaSt>; MSVBVM60.__vbaStrVarMove 004C9BA4 . 8D55 AC LEA EDX,DWORD PTR SS:[EBP-54] 004C9BA7 . 52 PUSH EDX 004C9BA8 . FFD7 CALL EDI ; 取字串的2,3,4位和成一數=a 004C9BAA . 8B35 F8124000 MOV ESI,DWORD PTR DS:[<&MSVBVM60.__vbaSt>; MSVBVM60.__vbaStrMove 004C9BB0 . 8BD0 MOV EDX,EAX 004C9BB2 . 8D4D D0 LEA ECX,DWORD PTR SS:[EBP-30] 004C9BB5 . FFD6 CALL ESI ; <&MSVBVM60.__vbaStrMove> 004C9BB7 . 8D45 AC LEA EAX,DWORD PTR SS:[EBP-54] 004C9BBA . 50 PUSH EAX 004C9BBB . 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44] 004C9BBE . 51 PUSH ECX 004C9BBF . 6A 02 PUSH 2 004C9BC1 . FFD3 CALL EBX 004C9BC3 . 83C4 0C ADD ESP,0C 004C9BC6 . EB 0C JMP SHORT DBWords.004C9BD4 004C9BC8 > 8B35 F8124000 MOV ESI,DWORD PTR DS:[<&MSVBVM60.__vbaSt>; MSVBVM60.__vbaStrMove 004C9BCE . 8B3D 34104000 MOV EDI,DWORD PTR DS:[<&MSVBVM60.__vbaSt>; MSVBVM60.__vbaStrVarMove 004C9BD4 > 8B55 D0 MOV EDX,DWORD PTR SS:[EBP-30] 004C9BD7 . 52 PUSH EDX 004C9BD8 . FF15 40134000 CALL DWORD PTR DS:[<&MSVBVM60.#581>] ; MSVBVM60.rtcR8ValFromBstr 004C9BDE . FF15 E0124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFpI4>>; MSVBVM60.__vbaFpI4 004C9BE4 . 35 E8030000 XOR EAX,3E8 ; a^=0x3e8; 004C9BE9 . 8945 C4 MOV DWORD PTR SS:[EBP-3C],EAX 004C9BEC . 8D45 BC LEA EAX,DWORD PTR SS:[EBP-44] 004C9BEF . 50 PUSH EAX 004C9BF0 . 8D4D AC LEA ECX,DWORD PTR SS:[EBP-54] 004C9BF3 . 51 PUSH ECX 004C9BF4 . C745 BC 030000>MOV DWORD PTR SS:[EBP-44],3 004C9BFB . FF15 D0124000 CALL DWORD PTR DS:[<&MSVBVM60.#613>] ; MSVBVM60.rtcVarStrFromVar 004C9C01 . 8D55 AC LEA EDX,DWORD PTR SS:[EBP-54] 004C9C04 . 52 PUSH EDX 004C9C05 . 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64] 004C9C08 . 50 PUSH EAX 004C9C09 . FF15 04114000 CALL DWORD PTR DS:[<&MSVBVM60.#520>] ; MSVBVM60.rtcTrimVar 004C9C0F . 8D4D 9C LEA ECX,DWORD PTR SS:[EBP-64] 004C9C12 . 51 PUSH ECX 004C9C13 . FFD7 CALL EDI 004C9C15 . 8BD0 MOV EDX,EAX 004C9C17 . 8D4D D0 LEA ECX,DWORD PTR SS:[EBP-30] 004C9C1A . FFD6 CALL ESI 004C9C1C . 8D55 9C LEA EDX,DWORD PTR SS:[EBP-64] 004C9C1F . 52 PUSH EDX 004C9C20 . 8D45 AC LEA EAX,DWORD PTR SS:[EBP-54] 004C9C23 . 50 PUSH EAX 004C9C24 . 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44] 004C9C27 . 51 PUSH ECX 004C9C28 . 6A 03 PUSH 3 004C9C2A . FFD3 CALL EBX 004C9C2C . 66:8B45 D4 MOV AX,WORD PTR SS:[EBP-2C] ;原始字串字元ASCII值和=b 004C9C30 . 66:99 CWD 004C9C32 . 66:B9 E803 MOV CX,3E8 004C9C36 . 66:F7F9 IDIV CX 004C9C39 . 83C4 10 ADD ESP,10 004C9C3C . 8955 D4 MOV DWORD PTR SS:[EBP-2C],EDX 004C9C3F . 8B55 D0 MOV EDX,DWORD PTR SS:[EBP-30] 004C9C42 . 52 PUSH EDX 004C9C43 . FF15 40134000 CALL DWORD PTR DS:[<&MSVBVM60.#581>] ; MSVBVM60.rtcR8ValFromBstr 004C9C49 . FF15 E0124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFpI4>>; MSVBVM60.__vbaFpI4 004C9C4F . 0FBF4D D4 MOVSX ECX,WORD PTR SS:[EBP-2C] 004C9C53 . 33C1 XOR EAX,ECX ; b^=a; 004C9C55 . 8D55 BC LEA EDX,DWORD PTR SS:[EBP-44] 004C9C58 . 8945 C4 MOV DWORD PTR SS:[EBP-3C],EAX 004C9C5B . 52 PUSH EDX 004C9C5C . 8D45 AC LEA EAX,DWORD PTR SS:[EBP-54] 004C9C5F . 50 PUSH EAX 004C9C60 . C745 BC 030000>MOV DWORD PTR SS:[EBP-44],3 004C9C67 . FF15 D0124000 CALL DWORD PTR DS:[<&MSVBVM60.#613>] ; MSVBVM60.rtcVarStrFromVar 004C9C6D . 8D4D AC LEA ECX,DWORD PTR SS:[EBP-54] 004C9C70 . 51 PUSH ECX 004C9C71 . 8D55 9C LEA EDX,DWORD PTR SS:[EBP-64] 004C9C74 . 52 PUSH EDX 004C9C75 . FF15 04114000 CALL DWORD PTR DS:[<&MSVBVM60.#520>] ; MSVBVM60.rtcTrimVar 004C9C7B . 8D8D 3CFFFFFF LEA ECX,DWORD PTR SS:[EBP-C4] 004C9C81 . 51 PUSH ECX 004C9C82 . 8D55 8C LEA EDX,DWORD PTR SS:[EBP-74] 004C9C85 . 8D45 D4 LEA EAX,DWORD PTR SS:[EBP-2C] 004C9C88 . 52 PUSH EDX 004C9C89 . 8985 44FFFFFF MOV DWORD PTR SS:[EBP-BC],EAX 004C9C8F . C785 3CFFFFFF >MOV DWORD PTR SS:[EBP-C4],4002 004C9C99 . FF15 D0124000 CALL DWORD PTR DS:[<&MSVBVM60.#613>] ; MSVBVM60.rtcVarStrFromVar 004C9C9F . 8D45 8C LEA EAX,DWORD PTR SS:[EBP-74] 004C9CA2 . 50 PUSH EAX 004C9CA3 . 8D8D 7CFFFFFF LEA ECX,DWORD PTR SS:[EBP-84] 004C9CA9 . 51 PUSH ECX 004C9CAA . FF15 04114000 CALL DWORD PTR DS:[<&MSVBVM60.#520>] ; MSVBVM60.rtcTrimVar 004C9CB0 . 8B55 D0 MOV EDX,DWORD PTR SS:[EBP-30] 004C9CB3 . 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64] 004C9CB6 . 50 PUSH EAX 004C9CB7 . 8D8D 7CFFFFFF LEA ECX,DWORD PTR SS:[EBP-84] 004C9CBD . 8995 34FFFFFF MOV DWORD PTR SS:[EBP-CC],EDX 004C9CC3 . 51 PUSH ECX 004C9CC4 . 8D95 6CFFFFFF LEA EDX,DWORD PTR SS:[EBP-94] 004C9CCA . 52 PUSH EDX 004C9CCB . C785 2CFFFFFF >MOV DWORD PTR SS:[EBP-D4],8 004C9CD5 . FF15 2C124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarCa>; ; 字串連線 004C9CDB . 50 PUSH EAX 004C9CDC . 8D85 2CFFFFFF LEA EAX,DWORD PTR SS:[EBP-D4] 004C9CE2 . 50 PUSH EAX 004C9CE3 . 8D8D 5CFFFFFF LEA ECX,DWORD PTR SS:[EBP-A4] 004C9CE9 . 51 PUSH ECX 004C9CEA . FF15 2C124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarCa>; ; 字串連線 004C9CF0 . 50 PUSH EAX 004C9CF1 . FFD7 CALL EDI 004C9CF3 . 8BD0 MOV EDX,EAX ; eax存放計算結果 004C9CF5 . 8D4D DC LEA ECX,DWORD PTR SS:[EBP-24] 004C9CF8 . FFD6 CALL ESI 004C9CFA . 8D95 5CFFFFFF LEA EDX,DWORD PTR SS:[EBP-A4] 004C9D00 . 52 PUSH EDX 004C9D01 . 8D85 6CFFFFFF LEA EAX,DWORD PTR SS:[EBP-94] 004C9D07 . 50 PUSH EAX 004C9D08 . 8D8D 7CFFFFFF LEA ECX,DWORD PTR SS:[EBP-84] 004C9D0E . 51 PUSH ECX 004C9D0F . 8D55 9C LEA EDX,DWORD PTR SS:[EBP-64] 004C9D12 . 52 PUSH EDX 004C9D13 . 8D45 8C LEA EAX,DWORD PTR SS:[EBP-74] 004C9D16 . 50 PUSH EAX 004C9D17 . 8D4D AC LEA ECX,DWORD PTR SS:[EBP-54] 004C9D1A . 51 PUSH ECX 004C9D1B . 8D55 BC LEA EDX,DWORD PTR SS:[EBP-44] 004C9D1E . 52 PUSH EDX 004C9D1F . 6A 07 PUSH 7 004C9D21 . FFD3 CALL EBX 004C9D23 . 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24] 004C9D26 . 83C4 20 ADD ESP,20 004C9D29 . 50 PUSH EAX 004C9D2A . FF15 5C124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaR8Str>; MSVBVM60.__vbaR8Str 004C9D30 . DC1D F01F4000 FCOMP QWORD PTR DS:[401FF0] 004C9D36 . DFE0 FSTSW AX 004C9D38 . F6C4 41 TEST AH,41 004C9D3B . 75 3C JNZ SHORT DBWords.004C9D79 004C9D3D . 6A 09 PUSH 9 004C9D3F . 8D95 4CFFFFFF LEA EDX,DWORD PTR SS:[EBP-B4] 004C9D45 . 52 PUSH EDX 004C9D46 . 8D45 BC LEA EAX,DWORD PTR SS:[EBP-44] 004C9D49 . 8D4D DC LEA ECX,DWORD PTR SS:[EBP-24] 004C9D4C . 50 PUSH EAX 004C9D4D . 898D 54FFFFFF MOV DWORD PTR SS:[EBP-AC],ECX 004C9D53 . C785 4CFFFFFF >MOV DWORD PTR SS:[EBP-B4],4008 004C9D5D . FF15 04134000 CALL DWORD PTR DS:[<&MSVBVM60.#619>] ; MSVBVM60.rtcRightCharVar 004C9D63 . 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44] 004C9D66 . 51 PUSH ECX 004C9D67 . FFD7 CALL EDI 004C9D69 . 8BD0 MOV EDX,EAX 004C9D6B . 8D4D DC LEA ECX,DWORD PTR SS:[EBP-24] 004C9D6E . FFD6 CALL ESI 004C9D70 . 8D4D BC LEA ECX,DWORD PTR SS:[EBP-44] 004C9D73 . FF15 20104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>; MSVBVM60.__vbaFreeVar 004C9D79 > 9B WAIT 004C9D7A . 68 D29D4C00 PUSH DBWords.004C9DD2 004C9D7F . EB 40 JMP SHORT DBWords.004C9DC1 004C9D81 . F645 FC 04 TEST BYTE PTR SS:[EBP-4],4 004C9D85 . 74 09 JE SHORT DBWords.004C9D90 004C9D87 . 8D4D DC LEA ECX,DWORD PTR SS:[EBP-24] 004C9D8A . FF15 38134000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>; MSVBVM60.__vbaFreeStr 004C9D90 > 8D95 5CFFFFFF LEA EDX,DWORD PTR SS:[EBP-A4] 004C9D96 . 52 PUSH EDX 004C9D97 . 8D85 6CFFFFFF LEA EAX,DWORD PTR SS:[EBP-94] 004C9D9D . 50 PUSH EAX 004C9D9E . 8D8D 7CFFFFFF LEA ECX,DWORD PTR SS:[EBP-84] 004C9DA4 . 51 PUSH ECX 004C9DA5 . 8D55 8C LEA EDX,DWORD PTR SS:[EBP-74] 004C9DA8 . 52 PUSH EDX 004C9DA9 . 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64] 004C9DAC . 50 PUSH EAX 004C9DAD . 8D4D AC LEA ECX,DWORD PTR SS:[EBP-54] 004C9DB0 . 51 PUSH ECX 004C9DB1 . 8D55 BC LEA EDX,DWORD PTR SS:[EBP-44] 004C9DB4 . 52 PUSH EDX 004C9DB5 . 6A 07 PUSH 7 004C9DB7 . FF15 44104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>; MSVBVM60.__vbaFreeVarList 004C9DBD . 83C4 20 ADD ESP,20 004C9DC0 . C3 RETN 004C9DC1 > 8B35 38134000 MOV ESI,DWORD PTR DS:[<&MSVBVM60.__vbaFr>; MSVBVM60.__vbaFreeStr 004C9DC7 . 8D4D E0 LEA ECX,DWORD PTR SS:[EBP-20] 004C9DCA . FFD6 CALL ESI ; <&MSVBVM60.__vbaFreeStr> 004C9DCC . 8D4D D0 LEA ECX,DWORD PTR SS:[EBP-30] 004C9DCF . FFD6 CALL ESI 004C9DD1 . C3 RETN 004C9DD2 . 8B4D EC MOV ECX,DWORD PTR SS:[EBP-14] 004C9DD5 . 8B45 DC MOV EAX,DWORD PTR SS:[EBP-24] 004C9DD8 . 5F POP EDI 004C9DD9 . 5E POP ESI 004C9DDA . 64:890D 000000>MOV DWORD PTR FS:[0],ECX 004C9DE1 . 5B POP EBX 004C9DE2 . 8BE5 MOV ESP,EBP 004C9DE4 . 5D POP EBP 004C9DE5 . C2 0400 RETN 4 至此演算法清楚,我們寫出其演算法序號產生器: 演算法: 1、利用一個固定的串Str1="JmgDBWords" 2、機器碼Str=XXXXXXXX-XXXXXXXX 左八位StrL,右八位StrR 3、函式JS(CString)返回16進位制32位值 則註冊碼為[JS(Str1)^JS(StrL)]-[JS(Str1)^JS(StrR)] 函式JS()如下: unsigned long CJzdc107zcjDlg::JS(CString str) { unsigned long a=0; int i; unsigned long temp=0; for(i=0;i<str.GetLength();i++) a+=str.GetAt(i); for(i=1;i<4;i++) temp=temp*10+str.GetAt(i)%10; CString tt,sum=""; temp=temp^0x3e8; tt.Format("%d",temp); sum+=tt; a%=1000; tt.Format("%d",a); sum.Insert(0,tt); temp=a^temp; tt.Format("%d",temp); sum.Insert(0,tt); unsigned long b=0; for(i=0;i<sum.GetLength();i++) b=b*10+(sum.GetAt(i)-'0'); return b; } --------------------------------------------------------------------------------
【破解總結】
軟體註冊成功後將註冊資訊寫到了登錄檔的HKEY_LOCAL_MACHINE\SoftWare\JmgSoft\DBWords\Register\RegCode和
HKEY_LOCAL_MACHINE\SoftWare\JmgSoft\DBWords\Register\UserName處
每次啟動讀取此處的資訊進行註冊驗證成功則為註冊,否則為未註冊。
--------------------------------------------------------------------------------
不到萬不得已我們不爆破,不為別得,只為提高自己的程式設計水平,哈哈!!
我想別人可能已經破解了該軟體,或者別人不屑一破,沒有任何參考獨立完成,對於我來說真是一次很好的鍛鍊~!!
--------------------------------------------------------------------------------
【版權宣告】 本文純屬技術交流, 轉載請註明作者並保持文章的完整, 謝謝!
相關文章
- 英語學習詳細筆記(十一)動名詞2020-11-24筆記
- HTMLCSS常用英語單詞2014-09-02HTMLCSS
- Eudic歐路詞典讓您學習英語更簡單!2023-04-27
- 英語單詞_英語二_20112024-09-11
- 移動筆記:五款英語背單詞軟體體驗評測2016-11-13筆記
- 歐路詞典——Mac上的英語學習神器2023-12-15Mac
- Python 英語單詞本2021-12-28Python
- 英語背單詞祕籍2020-10-19
- 基於WEB小學生英語學習輔導軟體2019-02-14Web
- 貫通詞典破解過程2004-12-20
- 英語全文朗讀軟體---破解 (1千字)2000-10-04
- 基本英語的學習與掌握 - 英語學習者的福音2017-07-18
- 程式設計師眼中的英語單詞2015-09-29程式設計師
- 如何記憶英語單詞ward的意思2024-08-14
- 英語學習2007-11-16
- 金融英語學習2011-07-17
- 學習英語的看過來,川普的演講簡單得可以當初學教材!2017-04-19
- 學習筆記 過程、同義詞、序列2007-05-25筆記
- 20201219英語單詞學習(僅供自己記錄)2020-12-19
- 各種數學名詞的英語翻譯2007-12-01
- 英語背單詞專案(資料庫中是4級單詞)2020-12-06資料庫
- 英語不應該那麼學(正確的英語學習方法)2016-05-20
- 20201223英語單詞學習(僅供自己記錄)2020-12-22
- 20201206英語單詞學習(僅供自己記錄)2020-12-06
- 英語語法(1) 名詞2007-12-04
- 英語語法(2) 冠詞2007-12-04
- 英語語法(3) 數詞2007-12-04
- 英語學習筆記2018-06-08筆記
- 英語學習匯萃2015-01-10
- 英語學習網站2009-05-08學習網站
- Java 英語單詞本 (基於有道翻譯)2020-10-19Java
- 我的英語學習經驗2012-06-08
- 學習英語中的口訣2007-09-05
- SQL語句執行過程詳解2017-04-25SQL
- 學習英語,首先還是要有學習的習慣2009-11-05
- 軟體工程博士講師:軟體工程是一個學習過程,程式碼只是學習的副產品2021-01-19軟體工程
- 英語學習網站大全2009-05-11學習網站
- 英語達人們的學習方法2016-09-20