300分翻译一段汇编代码,汇编高手快过来帮心。
Lo 2004-07-25 12:08:43 这是一个字符串加密的汇编代码段(函数),用IDA提取出来的,我汇编太次,翻译不过来啊,高手请帮帮忙。把字符串加密的过程帮我分析出来,最好能把C语言写出来,不甚感激啊,为这我都搞好几天了。如果分数太少可以再加。
数据定义部分
aBadChecksum db 'Bad checksum',0
align 4
aBeyondValidity db 'Beyond validity period',0
align 4
aUnknownEncrypt db 'Unknown encrypt key',0
aBadFormat db 'Bad format',0
align 4
aSrcIsTooLong db 'src is too long',0
aDestSizeTooSma db 'dest size too small',0
aNoDestIsGiven db 'No dest is given',0
align 4
a90Abcde1fghijk db '90-ABCDE1FGHIJK2LMNOPQ3RSTUVW4XYZ_ab5cdefgh6ijklmn7opqrst8uvwxyz',0
align 4
a8uvwxyz90Abcde db '8uvwxyz90-ABCDE1FGHIJK2LMNOPQ3RSTUVW4XYZ_ab5cdefgh6ijklmn7opqrst',0
align 4
a7opqrst8uvwxyz db '7opqrst8uvwxyz90-ABCDE1FGHIJK2LMNOPQ3RSTUVW4XYZ_ab5cdefgh6ijklmn',0
align 4
a6ijklmn7opqrst db '6ijklmn7opqrst8uvwxyz90-ABCDE1FGHIJK2LMNOPQ3RSTUVW4XYZ_ab5cdefgh',0
align 4
a5cdefgh6ijklmn db '5cdefgh6ijklmn7opqrst8uvwxyz90-ABCDE1FGHIJK2LMNOPQ3RSTUVW4XYZ_ab',0
align 4
a4xyz_ab5cdefgh db '4XYZ_ab5cdefgh6ijklmn7opqrst8uvwxyz90-ABCDE1FGHIJK2LMNOPQ3RSTUVW',0
align 4
a3rstuvw4xyz_ab db '3RSTUVW4XYZ_ab5cdefgh6ijklmn7opqrst8uvwxyz90-ABCDE1FGHIJK2LMNOPQ',0
align 4
a2lmnopq3rstuvw db '2LMNOPQ3RSTUVW4XYZ_ab5cdefgh6ijklmn7opqrst8uvwxyz90-ABCDE1FGHIJK',0
align 4
a1fghijk2lmnopq db '1FGHIJK2LMNOPQ3RSTUVW4XYZ_ab5cdefgh6ijklmn7opqrst8uvwxyz90-ABCDE',0
align 4
a0Abcde1fghijk2 db '0-ABCDE1FGHIJK2LMNOPQ3RSTUVW4XYZ_ab5cdefgh6ijklmn7opqrst8uvwxyz9',0
align 4
dword_0_1001B5D0 dd 0
dd offset aNoDestIsGiven
dd offset aDestSizeTooSma
dd offset aSrcIsTooLong
dd offset aBadFormat
dd offset aUnknownEncrypt
dd offset aBeyondValidity
dd offset aBadChecksum
dword_0_1001B5F0 dd 1C20h
off_0_1001B5F4 dd offset a0Abcde1fghijk2
dd offset a1fghijk2lmnopq
dd offset a2lmnopq3rstuvw
dd offset a3rstuvw4xyz_ab
dd offset a4xyz_ab5cdefgh
dd offset a5cdefgh6ijklmn
dd offset a6ijklmn7opqrst
dd offset a7opqrst8uvwxyz
dd offset a8uvwxyz90Abcde
dd offset a90Abcde1fghijk
dword_0_1001B61C dd 0Ah
a0123456789_abc db '0123456789-_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV'