sdrf5678lk 发表于 2011-2-28 07:56:24

英汉互译王V2007 算法分析

英汉互译王V2007算法分析!!!!!!!
1.一款快速高效的英汉翻译软件,不仅可以实现英汉互译,还可实现繁简互译。并伴有语音朗读功能。您在平时学习英语的过程中、上网浏览英文站点时、看英文原版书籍时、或是在做翻译工作时。你需要一个工具帮助您,从而使语言不再成为你前进的障碍,体验异彩纷呈的精神文明和文化世界,我们推荐您使用《英汉互译王》。她将是您工作、学习、网上生活的理想小伴侣。娃娃软件,科技开创美丽生活,祝您使用愉快。
2.用到的软件是PEID OD。
3。我从看雪论坛精华9看到《英汉互译王V2007 算法分析之“联想分析法”》文章.大家可以看看它是怎么做的。我觉的可以,但我觉得要想了解软件算法,就要认认真真的去分析软件的算法CALL,才能比较完整的了解软件的算法。不是仅凭一些联想就可以找软件的算精要的。
4。因此有这个算法分析。希望可以给大家一点启示。
004A974C/$55            PUSH EBP
004A974D|.8BEC          MOV EBP,ESP
004A974F|.51            PUSH ECX
004A9750|.B9 07000000   MOV ECX,7
004A9755|>6A 00         /PUSH 0
004A9757|.6A 00         |PUSH 0
004A9759|.49            |DEC ECX
004A975A|.^ 75 F9         \JNZ SHORT Ectk.004A9755
004A975C|.874D FC       XCHG DWORD PTR SS:,ECX
004A975F|.53            PUSH EBX
004A9760|.56            PUSH ESI
004A9761|.57            PUSH EDI
004A9762|.894D F8       MOV DWORD PTR SS:,ECX
004A9765|.8955 FC       MOV DWORD PTR SS:,EDX             ;放入固定字符
004A9768|.8BD8          MOV EBX,EAX                              ;机器码
004A976A|.8B45 FC       MOV EAX,DWORD PTR SS:
004A976D|.E8 C6ADF5FF   CALL Ectk.00404538
004A9772|.33C0          XOR EAX,EAX
004A9774|.55            PUSH EBP
004A9775|.68 4E994A00   PUSH Ectk.004A994E
004A977A|.64:FF30       PUSH DWORD PTR FS:
004A977D|.64:8920       MOV DWORD PTR FS:,ESP
004A9780|.8D55 F4       LEA EDX,DWORD PTR SS:
004A9783|.8BC3          MOV EAX,EBX
004A9785|.E8 26FFFFFF   CALL Ectk.004A96B0                     ;把机器码转化为16进制数
004A978A|.8D55 F0       LEA EDX,DWORD PTR SS:
004A978D|.8B45 FC       MOV EAX,DWORD PTR SS:
004A9790|.E8 1BFFFFFF   CALL Ectk.004A96B0                     ;把固定字符4k6d8r转化为16进制数
004A9795|.8D45 EC       LEA EAX,DWORD PTR SS:
004A9798|.8B55 F4       MOV EDX,DWORD PTR SS:
004A979B|.E8 80A9F5FF   CALL Ectk.00404120
004A97A0|.8B45 F0       MOV EAX,DWORD PTR SS:            ;把固定字符4k6d8r转化为16进制数给EAX
004A97A3|.E8 A0ABF5FF   CALL Ectk.00404348                     ;算出把固定字符4k6d8r转化为16进制数的位数
004A97A8|.D1F8          SAR EAX,1                              ;   算出EAX=12算术右移1位EAX=6
004A97AA|.79 03         JNS SHORT Ectk.004A97AF
004A97AC|.83D0 00       ADC EAX,0
004A97AF|>85C0          TEST EAX,EAX
004A97B1|.0F8E 54010000 JLE Ectk.004A990B
004A97B7|.8945 E0       MOV DWORD PTR SS:,EAX            ;把EAX=6给SS:。
004A97BA|.BE 01000000   MOV ESI,1
004A97BF|>83FE 01       /CMP ESI,1
004A97C2|.74 0B         |JE SHORT Ectk.004A97CF
004A97C4|.8D45 EC       |LEA EAX,DWORD PTR SS:
004A97C7|.8B55 E8       |MOV EDX,DWORD PTR SS:
004A97CA|.E8 51A9F5FF   |CALL Ectk.00404120
004A97CF|>8D45 E8       |LEA EAX,DWORD PTR SS:
004A97D2|.E8 B1A8F5FF   |CALL Ectk.00404088
004A97D7|.8B45 EC       |MOV EAX,DWORD PTR SS:
004A97DA|.E8 69ABF5FF   |CALL Ectk.00404348                      ;算出字符位数是40位的
004A97DF|.8BF8          |MOV EDI,EAX                           ;给EDI
004A97E1|.D1FF          |SAR EDI,1                               ;   算出EAX=40算术右移1位EAX=20
004A97E3|.79 03         |JNS SHORT Ectk.004A97E8
004A97E5|.83D7 00       |ADC EDI,0
004A97E8|>85FF          |TEST EDI,EDI
004A97EA|.0F8E 11010000 |JLE Ectk.004A9901
004A97F0|.BB 01000000   |MOV EBX,1                               ;EBX置1
004A97F5|>BA 5C994A00   |/MOV EDX,Ectk.004A995C
004A97FA|.8D45 D8       ||LEA EAX,DWORD PTR SS:          ;EAX
004A97FD|.E8 2E94F5FF   ||CALL Ectk.00402C30                     ;EAX置2 ECX清0 SS:存入0124
004A9802|.8D45 D4       ||LEA EAX,DWORD PTR SS:          ;堆栈地址=0012ECC4
004A9805|.8BD3          ||MOV EDX,EBX
004A9807|.03D2          ||ADD EDX,EDX                            ;EDX+EDX
004A9809|.8B4D EC       ||MOV ECX,DWORD PTR SS:          ;SS:中存入的是一个40位数的字符串
004A980C|.8A5411 FE   ||MOV DL,BYTE PTR DS:         ;循环取字任符的奇数位给DL,字符取出是EDI控制的
004A9810|.8850 01       ||MOV BYTE PTR DS:,DL             ;DL给DS:
004A9813|.C600 01       ||MOV BYTE PTR DS:,1                ;DS:置1
004A9816|.8D55 D4       ||LEA EDX,DWORD PTR SS:
004A9819|.8D45 D8       ||LEA EAX,DWORD PTR SS:
004A981C|.B1 02         ||MOV CL,2
004A981E|.E8 DD93F5FF   ||CALL Ectk.00402C00
004A9823|.8D55 D8       ||LEA EDX,DWORD PTR SS:
004A9826|.8D45 D0       ||LEA EAX,DWORD PTR SS:
004A9829|.E8 0294F5FF   ||CALL Ectk.00402C30
004A982E|.8D45 D4       ||LEA EAX,DWORD PTR SS:
004A9831|.8BD3          ||MOV EDX,EBX
004A9833|.03D2          ||ADD EDX,EDX
004A9835|.8B4D EC       ||MOV ECX,DWORD PTR SS:          ;SS:中存入的是一个40位数的字符串
004A9838|.8A5411 FF   ||MOV DL,BYTE PTR DS:         ;循环取字任符的偶数位给DL,字符取出是EDI控制的
004A983C|.8850 01       ||MOV BYTE PTR DS:,DL
004A983F|.C600 01       ||MOV BYTE PTR DS:,1
004A9842|.8D55 D4       ||LEA EDX,DWORD PTR SS:
004A9845|.8D45 D0       ||LEA EAX,DWORD PTR SS:
004A9848|.B1 03         ||MOV CL,3
004A984A|.E8 B193F5FF   ||CALL Ectk.00402C00
004A984F|.8D55 D0       ||LEA EDX,DWORD PTR SS:
004A9852|.8D45 DC       ||LEA EAX,DWORD PTR SS:
004A9855|.E8 92AAF5FF   ||CALL Ectk.004042EC
004A985A|.8B45 DC       ||MOV EAX,DWORD PTR SS:
004A985D|.E8 BEEFF5FF   ||CALL Ectk.00408820
004A9862|.8845 E7       ||MOV BYTE PTR SS:,AL            ;把取的字符存到SS;中
004A9865|.BA 5C994A00   ||MOV EDX,Ectk.004A995C
004A986A|.8D45 D8       ||LEA EAX,DWORD PTR SS:
004A986D|.E8 BE93F5FF   ||CALL Ectk.00402C30
004A9872|.8D45 D4       ||LEA EAX,DWORD PTR SS:
004A9875|.8BD6          ||MOV EDX,ESI                            ;只有完成一个大的循环才会加ESI加1
004A9877|.03D2          ||ADD EDX,EDX
004A9879|.8B4D F0       ||MOV ECX,DWORD PTR SS:          ;SS:存放的是固定字符转化的16进制数
004A987C|.8A5411 FE   ||MOV DL,BYTE PTR DS:         ;循环取字任符的奇数位给DL,字符取出是esi控制的
004A9880|.8850 01       ||MOV BYTE PTR DS:,DL
004A9883|.C600 01       ||MOV BYTE PTR DS:,1
004A9886|.8D55 D4       ||LEA EDX,DWORD PTR SS:
004A9889|.8D45 D8       ||LEA EAX,DWORD PTR SS:
004A988C|.B1 02         ||MOV CL,2
004A988E|.E8 6D93F5FF   ||CALL Ectk.00402C00
004A9893|.8D55 D8       ||LEA EDX,DWORD PTR SS:
004A9896|.8D45 D0       ||LEA EAX,DWORD PTR SS:
004A9899|.E8 9293F5FF   ||CALL Ectk.00402C30
004A989E|.8D45 D4       ||LEA EAX,DWORD PTR SS:
004A98A1|.8BD6          ||MOV EDX,ESI                            ;只有完成一个大的循环才会加ESI加1
004A98A3|.03D2          ||ADD EDX,EDX
004A98A5|.8B4D F0       ||MOV ECX,DWORD PTR SS:          ;SS:存放的是固定字符转化的16进制数12位固定数
004A98A8|.8A5411 FF   ||MOV DL,BYTE PTR DS:         ;循环取字任符的奇数位给DL,字符取出是esi控制的
004A98AC|.8850 01       ||MOV BYTE PTR DS:,DL
004A98AF|.C600 01       ||MOV BYTE PTR DS:,1
004A98B2|.8D55 D4       ||LEA EDX,DWORD PTR SS:
004A98B5|.8D45 D0       ||LEA EAX,DWORD PTR SS:
004A98B8|.B1 03         ||MOV CL,3
004A98BA|.E8 4193F5FF   ||CALL Ectk.00402C00
004A98BF|.8D55 D0       ||LEA EDX,DWORD PTR SS:
004A98C2|.8D45 CC       ||LEA EAX,DWORD PTR SS:
004A98C5|.E8 22AAF5FF   ||CALL Ectk.004042EC
004A98CA|.8B45 CC       ||MOV EAX,DWORD PTR SS:
004A98CD|.E8 4EEFF5FF   ||CALL Ectk.00408820
004A98D2|.3245 E7       ||XOR AL,BYTE PTR SS:            ;把40位数足的2位数和12位固定数的2位进行逻辑或运算
004A98D5|.8845 E6       ||MOV BYTE PTR SS:,AL            ;把结果存到SS:中
004A98D8|.8D45 C4       ||LEA EAX,DWORD PTR SS:
004A98DB|.8A55 E6       ||MOV DL,BYTE PTR SS:
004A98DE|.E8 8DA9F5FF   ||CALL Ectk.00404270
004A98E3|.8B45 C4       ||MOV EAX,DWORD PTR SS:
004A98E6|.8D55 C8       ||LEA EDX,DWORD PTR SS:
004A98E9|.E8 C2FDFFFF   ||CALL Ectk.004A96B0
004A98EE|.8B55 C8       ||MOV EDX,DWORD PTR SS:
004A98F1|.8D45 E8       ||LEA EAX,DWORD PTR SS:
004A98F4|.E8 57AAF5FF   ||CALL Ectk.00404350
004A98F9|.43            ||INC EBX
004A98FA|.4F            ||DEC EDI
004A98FB|.^ 0F85 F4FEFFFF |\JNZ Ectk.004A97F5
004A9901|>46            |INC ESI
004A9902|.FF4D E0       |DEC DWORD PTR SS:
004A9905|.^ 0F85 B4FEFFFF \JNZ Ectk.004A97BF
004A990B|>8B45 F8       MOV EAX,DWORD PTR SS:
004A990E|.8B55 E8       MOV EDX,DWORD PTR SS:
004A9911|.E8 C6A7F5FF   CALL Ectk.004040DC
004A9916|.33C0          XOR EAX,EAX
004A9918|.5A            POP EDX
004A9919|.59            POP ECX
004A991A|.59            POP ECX
004A991B|.64:8910       MOV DWORD PTR FS:,EDX
004A991E|.68 55994A00   PUSH Ectk.004A9955
004A9923|>8D45 C4       LEA EAX,DWORD PTR SS:
004A9926|.BA 03000000   MOV EDX,3
004A992B|.E8 7CA7F5FF   CALL Ectk.004040AC
004A9930|.8D45 DC       LEA EAX,DWORD PTR SS:
004A9933|.E8 50A7F5FF   CALL Ectk.00404088
004A9938|.8D45 E8       LEA EAX,DWORD PTR SS:
004A993B|.BA 04000000   MOV EDX,4
004A9940|.E8 67A7F5FF   CALL Ectk.004040AC
004A9945|.8D45 FC       LEA EAX,DWORD PTR SS:
004A9948|.E8 3BA7F5FF   CALL Ectk.00404088
004A994D\.C3            RETN
004A994E   .^ E9 39A1F5FF   JMP Ectk.00403A8C
004A9953   .^ EB CE         JMP SHORT Ectk.004A9923
004A9955   .5F            POP EDI
004A9956   .5E            POP ESI
004A9957   .5B            POP EBX
004A9958   .8BE5          MOV ESP,EBP
004A995A   .5D            POP EBP
004A995B   .C3            RETN
\\*********************************************************************************\\

月之精灵 发表于 2011-2-28 13:35:51

完了??后面没有了?
页: [1]
查看完整版本: 英汉互译王V2007 算法分析