英汉互译王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
\\*********************************************************************************\\ 完了??后面没有了?
页:
[1]