拼音大師1.81 之 演算法淺探!

看雪資料發表於2003-02-24

下載地址:  http://www.skycn.com/soft/7579.html
軟體大小:  1877 KB
軟體語言:  簡體中文
軟體類別:  國產軟體 / 共享版 / 文科工具
應用平臺:  Win9x/NT/2000/XP
加入時間:  2003-01-08 14:59:46
下載次數:  6065
推薦等級:  * * *
開 發 商:  http://authorware.myrice.com/pyds/index


【軟體簡介】:《拼音大師》是一個專門用於將漢字轉換為漢語拼音的軟體。它具有以下功能:1、擁有大容量漢字型檔,包括簡體字型檔和繁體字型檔,所以既可以查簡體字拼音,又可以查繁體字拼音。 2、本軟體可以將整篇文章迅速轉換成帶有聲調的真正的拼音,而不像word中的拼音標註(如zhu2)。 3、軟體具有智慧化識別功能,能較好地識別多音字,此功能遠超過word軟體中的拼音指南。如百色、倘徉、龜茲等不常用的多音字也能很好地識別。

【軟體限制】:試用次數、功能限制

【作者宣告】:小弟初學Crack,只是感興趣,沒有其它目的。失誤之處敬請各大俠賜教!

【破解工具】:TRW2000娃娃修改版、Ollydbg1.09 Ruiwin漢化版、W32Dasm8.93黃金版

―――――――――――――――――――――――――――――
【過    程】:

呵呵,好久沒來向大家學習了,貼上一篇曾在【OCN】發的解文,敬請大俠們賜教!

從來沒有分析過VB程式的演算法,何況這個東東還有浮點運算!我怕VB,這下更暈了!

宣告:我很菜,下面分析所涉及的引數均是在我的機子上看到的,我也不知道主要引數是否是相同的,請大家自己看看!如有錯誤,歡迎大家指教!!!


機器碼:682492983
試煉碼:13572468

―――――――――――――――――――――――――――――
0046AA61   . DD1C24         FSTP QWORD PTR SS:[ESP]
                           ====>ST=682492983.00000000000
                                我的機器碼!

0046AA64   . E8 996FF9FF    CALL <JMP.&MSVBVM60.#583>
                           ====>關鍵CALL!進入!記作一
                           ====>求機器碼弧度的餘弦函式COS值!
                           結果=0.6844687377965869056


0046AA69   . DC0D B0124000  FMUL QWORD PTR DS:[4012B0]
                           ====>與1000000000.000000相乘!
                           ====>ST=0.6844687377965869056
                           ====>DS:[4012B0]=1000000000.000000
                           ====>結果=684468737.79658690560

0046AA6F   . C745 B8 050000>MOV DWORD PTR SS:[EBP-48],5
0046AA76   . DD5D C0        FSTP QWORD PTR SS:[EBP-40]
                           ====>684468737.79658690560


0046AA79   . DFE0           FSTSW AX
0046AA7B   . A8 0D          TEST AL,0D
0046AA7D   . 0F85 BE020000  JNZ 拼音大師.0046AD41

0046AA83   . 8D45 B8        LEA EAX,DWORD PTR SS:[EBP-48]
0046AA86   . 50             PUSH EAX
0046AA87   . 8D45 A8        LEA EAX,DWORD PTR SS:[EBP-58]
0046AA8A   . 50             PUSH EAX
0046AA8B   . E8 786FF9FF    CALL <JMP.&MSVBVM60.#613>
0046AA90   . 6A 02          PUSH 2
0046AA92   . 8D45 98        LEA EAX,DWORD PTR SS:[EBP-68]
0046AA95   . 5E             POP ESI           ;  0053A404
0046AA96   . C745 A0 090000>MOV DWORD PTR SS:[EBP-60],9
0046AA9D   . 50             PUSH EAX
0046AA9E   . 8D45 A8        LEA EAX,DWORD PTR SS:[EBP-58]
0046AAA1   . 56             PUSH ESI
0046AAA2   . 50             PUSH EAX
0046AAA3   . 8D45 88        LEA EAX,DWORD PTR SS:[EBP-78]
0046AAA6   . 8975 98        MOV DWORD PTR SS:[EBP-68],ESI
0046AAA9   . 50             PUSH EAX
0046AAAA   . E8 2F6FF9FF    CALL <JMP.&MSVBVM60.#632>
0046AAAF   . 8D8F 8C000000  LEA ECX,DWORD PTR DS:[EDI+8C]
0046AAB5   . 8D55 88        LEA EDX,DWORD PTR SS:[EBP-78]
0046AAB8   . E8 F16EF9FF    CALL <JMP.&MSVBVM60.__vbaVarMove>
0046AABD   . 8D4D CC        LEA ECX,DWORD PTR SS:[EBP-34]
0046AAC0   . E8 D76EF9FF    CALL <JMP.&MSVBVM60.__vbaFreeStr>
0046AAC5   . 8D4D C8        LEA ECX,DWORD PTR SS:[EBP-38]
0046AAC8   . E8 E76EF9FF    CALL <JMP.&MSVBVM60.__vbaFreeObj>
0046AACD   . 8D45 88        LEA EAX,DWORD PTR SS:[EBP-78]
0046AAD0   . 50             PUSH EAX
0046AAD1   . 8D45 98        LEA EAX,DWORD PTR SS:[EBP-68]
0046AAD4   . 50             PUSH EAX
0046AAD5   . 8D45 A8        LEA EAX,DWORD PTR SS:[EBP-58]
0046AAD8   . 50             PUSH EAX
0046AAD9   . 8D45 B8        LEA EAX,DWORD PTR SS:[EBP-48]
0046AADC   . 50             PUSH EAX
0046AADD   . 6A 04          PUSH 4
0046AADF   . E8 8A6FF9FF    CALL <JMP.&MSVBVM60.__vbaFreeVar>
0046AAE4   . 83C4 14        ADD ESP,14
0046AAE7   . 8D45 E0        LEA EAX,DWORD PTR SS:[EBP-20]
0046AAEA   . C745 80 2C0600>MOV DWORD PTR SS:[EBP-80],62C
0046AAF1   . 89B5 78FFFFFF  MOV DWORD PTR SS:[EBP-88],ESI
0046AAF7   . 50             PUSH EAX
0046AAF8   . 8D85 78FFFFFF  LEA EAX,DWORD PTR SS:[EBP-88]
0046AAFE   . 50             PUSH EAX
0046AAFF   . 8D85 68FFFFFF  LEA EAX,DWORD PTR SS:[EBP-98]
0046AB05   . 50             PUSH EAX
0046AB06   . 8D85 40FFFFFF  LEA EAX,DWORD PTR SS:[EBP-C0]
0046AB0C   . 50             PUSH EAX
0046AB0D   . 8D85 50FFFFFF  LEA EAX,DWORD PTR SS:[EBP-B0]
0046AB13   . 50             PUSH EAX
0046AB14   . 8D45 E0        LEA EAX,DWORD PTR SS:[EBP-20]
0046AB17   . 50             PUSH EAX
0046AB18   . C785 70FFFFFF >MOV DWORD PTR SS:[EBP-90],19
0046AB22   . 89B5 68FFFFFF  MOV DWORD PTR SS:[EBP-98],ESI
0046AB28   . E8 AB6EF9FF    CALL <JMP.&MSVBVM60.__vbaVarForI>9sm
0046AB2D   > 3BC3           CMP EAX,EBX
0046AB2F   . 8D87 8C000000  LEA EAX,DWORD PTR DS:[EDI+8C]
0046AB35   . 50             PUSH EAX
0046AB36   . 74 3B          JE SHORT 拼音大師.0046AB73
0046AB38   . 8D45 E0        LEA EAX,DWORD PTR SS:[EBP-20]
0046AB3B   . 50             PUSH EAX
0046AB3C   . 8D45 B8        LEA EAX,DWORD PTR SS:[EBP-48]
0046AB3F   . 50             PUSH EAX

0046AB40   . E8 B16EF9FF    CALL <JMP.&MSVBVM60.__vbaVarAdd>
                           ====>相加運算!關鍵CALL!進入!記作二

――――――――――――――――――――――――――――――――
一、進入46AA64   CALL <JMP.&MSVBVM60.#583>

73451B0C > 55               PUSH EBP
73451B0D   8BEC             MOV EBP,ESP
73451B0F   DD45 08          FLD QWORD PTR SS:[EBP+8]
                           ====>682492983.0000000

73451B12   D9E1             FABS
                           ====>求絕對值
73451B14   DC1D E0063A73    FCOMP QWORD PTR DS:[733A06E0]

73451B1A   DFE0             FSTSW AX
73451B1C   9E               SAHF
73451B1D   72 07            JB SHORT MSVBVM60.73451B26
73451B1F   6A 05            PUSH 5
73451B21   E8 3338F4FF      CALL MSVBVM60.73395359
73451B26   DD45 08          FLD QWORD PTR SS:[EBP+8]
                           ====>682492983.00000000000

73451B29   D9FF             FCOS
                           ====>求機器碼弧度的餘弦函式COS值

73451B2B   DD5D 08          FSTP QWORD PTR SS:[EBP+8]
                           ====>ST=0.6844687377965869056
呵呵,與計數器算的有點不同:0.684468737795946347159876626831465 不知為何?

73451B2E   DD45 08          FLD QWORD PTR SS:[EBP+8]
73451B31   5D               POP EBP    ; 拼音大師.0046AA69
73451B32   C2 0800          RETN 8


――――――――――――――――――――――――――――――――
二-1、進入46AB40   CALL <JMP.&MSVBVM60.__vbaVarAdd>


7347902D > FF7424 04        PUSH DWORD PTR SS:[ESP+4]
73479031   FF7424 0C        PUSH DWORD PTR SS:[ESP+C]
73479035   FF7424 14        PUSH DWORD PTR SS:[ESP+14]
73479039   FF15 14FE4773    CALL DWORD PTR DS:[7347FE14]; OLEAUT32.VarAdd
                           ====>關鍵CALL!進入!

7347903F   85C0             TEST EAX,EAX
73479041   7D 0C            JGE SHORT MSVBVM60.7347904F

――――――――――――――――――――――――――――――――
二-2、進入73479039  CALL DWORD PTR DS:[7347FE14]; OLEAUT32.VarAdd

7FEFCB72 > 55               PUSH EBP
7FEFCB73   8BEC             MOV EBP,ESP
7FEFCB75   83EC 28          SUB ESP,28
7FEFCB78   8365 D8 00       AND DWORD PTR SS:[EBP-28],0
7FEFCB7C   53               PUSH EBX
7FEFCB7D   56               PUSH ESI
7FEFCB7E   8B75 08          MOV ESI,DWORD PTR SS:[EBP+8]
7FEFCB81   8365 E8 00       AND DWORD PTR SS:[EBP-18],0
7FEFCB85   57               PUSH EDI
7FEFCB86   8B7D 0C          MOV EDI,DWORD PTR SS:[EBP+C]
7FEFCB89   0FB70E           MOVZX ECX,WORD PTR DS:[ESI]
7FEFCB8C   0FB707           MOVZX EAX,WORD PTR DS:[EDI]
7FEFCB8F   83F8 11          CMP EAX,11
7FEFCB92   77 46            JA SHORT OLEAUT32.7FEFCBDA

…… …… 省略   …… ……

7FEFCC2B   E8 D49AFAFF      CALL OLEAUT32.7FEA6704
7FEFCC30   85C0             TEST EAX,EAX
7FEFCC32   8945 08          MOV DWORD PTR SS:[EBP+8],EAX
7FEFCC35  ^7C BC            JL SHORT OLEAUT32.7FEFCBF3
7FEFCC37   8D7D D8          LEA EDI,DWORD PTR SS:[EBP-28]
7FEFCC3A  ^EB 93            JMP SHORT OLEAUT32.7FEFCBCF
7FEFCC3C   C745 08 05000280 MOV DWORD PTR SS:[EBP+8],8002000>
7FEFCC43  ^EB CE            JMP SHORT OLEAUT32.7FEFCC13
7FEFCC45   6A 01            PUSH 1
7FEFCC47   5B               POP EBX       ; MSVBVM60.7347903F
7FEFCC48   8B45 10          MOV EAX,DWORD PTR SS:[EBP+10]
7FEFCC4B   66:8918          MOV WORD PTR DS:[EAX],BX
7FEFCC4E   33C0             XOR EAX,EAX
7FEFCC50  ^EB CA            JMP SHORT OLEAUT32.7FEFCC1C

…… …… 省略   …… ……

7FEFCE2C   6A 05            PUSH 5
7FEFCE2E   6A 00            PUSH 0
7FEFCE30   53               PUSH EBX
7FEFCE31   8D45 D8          LEA EAX,DWORD PTR SS:[EBP-28]
7FEFCE34   57               PUSH EDI
7FEFCE35   50               PUSH EAX
7FEFCE36   E8 D547F8FF      CALL OLEAUT32.VariantChangeTypeE>
7FEFCE3B   85C0             TEST EAX,EAX
7FEFCE3D   8945 08          MOV DWORD PTR SS:[EBP+8],EAX
7FEFCE40  ^0F8C ADFDFFFF    JL OLEAUT32.7FEFCBF3

7FEFCE46   DD45 E0          FLD QWORD PTR SS:[EBP-20]
 ====>1、SS:[EBP-20]=25.00000000000000

7FEFCE49   DC45 F0          FADD QWORD PTR SS:[EBP-10]
 ====>1、25.00000000000000+684468737.0000000=684468762.00000000000


7FEFCE4C   DD55 F8          FST QWORD PTR SS:[EBP-8]
7FEFCE4F   8B4D FC          MOV ECX,DWORD PTR SS:[EBP-4]
7FEFCE52   B8 0000F07F      MOV EAX,OLEAUT32.7FF00000
7FEFCE57   23C8             AND ECX,EAX
7FEFCE59   6A 05            PUSH 5
7FEFCE5B   3BC8             CMP ECX,EAX
7FEFCE5D   5B               POP EBX
7FEFCE5E   0F85 E0000000    JNZ OLEAUT32.7FEFCF44
7FEFCE64   DDD8             FSTP ST
7FEFCE66   DBE2             FCLEX
7FEFCE68   C745 08 0A000280 MOV DWORD PTR SS:[EBP+8],8002000A
7FEFCE6F  ^E9 9FFDFFFF      JMP OLEAUT32.7FEFCC13
7FEFCE74   DB46 08          FILD DWORD PTR DS:[ESI+8]
7FEFCE77   D847 08          FADD DWORD PTR DS:[EDI+8]
7FEFCE7A  ^E9 61FFFFFF      JMP OLEAUT32.7FEFCDE0
7FEFCE7F   D946 08          FLD DWORD PTR DS:[ESI+8]
7FEFCE82   DA47 08          FIADD DWORD PTR DS:[EDI+8]
7FEFCE85  ^E9 56FFFFFF      JMP OLEAUT32.7FEFCDE0
7FEFCE8A   0FB647 08        MOVZX EAX,BYTE PTR DS:[EDI+8]
7FEFCE8E   8945 08          MOV DWORD PTR SS:[EBP+8],EAX
7FEFCE91   DB45 08          FILD DWORD PTR SS:[EBP+8]

                    <====由下面的7FEFCEA8 跳來!
7FEFCE94   DC46 08          FADD QWORD PTR DS:[ESI+8]
                           ====>依次與25*n累加!

 ====>2、50.00000000000000+684468762.00000000000=684468812.00000000000
 ====>3、75.00000000000000+684468812.00000000000=684468887.00000000000
 ====>4、100.00000000000000+684468887.00000000000=684468987.00000000000
 ====>5、125.00000000000000000+684468987.0000000=684469112.00000000000
 ====>6、150.00000000000000000+684469112.00000000000=684469262.00000000000
 ====>7、175.00000000000000000+684469262.00000000000=684469437.00000000000
 ====>8、200.00000000000000000+684469437.00000000000=684469637.00000000000
 ====>9、225.00000000000000000+684469637.00000000000=684469862.00000000000
 ====>10、250.00000000000000000+684469862.00000000000=684470112.00000000000
 ====>11、275.00000000000000000+684470112.00000000000=684470387.00000000000
 ====>12、300.00000000000000000+684470387.00000000000=684470687.00000000000
 ====>13、325.00000000000000000+684470687.00000000000=684471012.00000000000

…… …… 繼續累加  共63次  …… ……

 ====>63、1575.00000000000000000+684517562.00000000000=684519137.00000000000

7FEFCE97  ^EB B3            JMP SHORT OLEAUT32.7FEFCE4C
7FEFCE99   0FBF47 08        MOVSX EAX,WORD PTR DS:[EDI+8]
7FEFCE9D   8945 08          MOV DWORD PTR SS:[EBP+8],EAX

7FEFCEA0   DB45 08          FILD DWORD PTR SS:[EBP+8]

 ====>2、  00000032   (即:十進位制=50)
 ====>3、  0000004B
 ====>4、  00000064
 ====>5、  0000007D
 ====>6、  00000096
 ====>7、  000000AF
 ====>8、  000000C8
 ====>9、  000000E1
 ====>10、 000000FA
 ====>11、 00000113
 ====>12、 0000012C
 ====>13、 00000145

…… ……  繼續取19(H)*n,直至n=63    …… ……
 ====>63、 00000627


7FEFCEA3  ^EB EF            JMP SHORT OLEAUT32.7FEFCE94
7FEFCEA5   DB47 08          FILD DWORD PTR DS:[EDI+8]
7FEFCEA8  ^EB EA            JMP SHORT OLEAUT32.7FEFCE94
                           ====>向上跳至7FEFCE94進行加法運算!


―――――――――――――――――――――――――――――
【總        結】:


1、求機器碼682492983弧度的餘弦函式COS值=0.6844687377965869056

2、0.6844687377965869056 * 1000000000.000000=684468737.79658690560

3、取整684468737+25+25*2+25*3+25*4……25*63=684468737+50400=684519137

4、684519137就是與我們輸入的試煉碼-1010後比較的值,如相等則OK!

5、所以真碼:684519137 + 1010=684520147
     

呵呵,為了這點東西我這菜鳥可是忙活了好幾個晚上呀!累!
―――――――――――――――――――――――――――――
【註冊資訊儲存】:

REGEDIT4

[HKEY_CURRENT_USER\Software\VB and VBA Program Settings\pyds\zc]
"pyds"="true"

―――――――――――――――――――――――――――――
【整        理】:

機器碼:682492983
試煉碼:684519137+1010=684520147

―――――――――――――――――――――――――――――

   序號產生器原始碼!

一、C++序號產生器


    ――作者:winroot


#include<iostream.h>
#include<math.h>
#include<iomanip.h>
void main()
{
long double code,a,b,d,e,serials;
int i;
cout <<"please input your code:"<<endl;
cin >>code;
a=cos(code);
b=abs(a*1000000000);
d=0;
for (i=1;i<64;i++)
d=d+25*i;
e=b+d;
serials=e+1010;
cout <<"your serials is :"<<setprecision(9)<<serials<<endl;
}

16:28 03-2-18

__________________________________________________________

二、VB序號產生器

       ――作者:ruiwin

原始碼:
Private Sub xpcmdbutton1_Click()
Dim a, b, c, d
If Text1 = "" Then Exit Sub
a = Text1.Text
a = Abs(Cos(a) * 1000000000#)
For I = 1 To 63
b = 25 * I
c = c + b
Next I
d = Int(a + c + 1010)
Text2.Text = d
End Sub


13:24 03-2-20


                   Cracked By 巢水工作坊――fly【OCN】

                          2003-2-17   17:00

TR>

<TR>TR>



一蓑煙雨……任平生!


TR>

相關文章