月之精灵 发表于 2008-2-28 20:56:59

再接再厉,鼓励一下,写得不错

tianxj 发表于 2008-2-28 22:54:39

0054AD9C/$55            PUSH EBP
0054AD9D|.8BEC          MOV EBP,ESP
0054AD9F|.33C9          XOR ECX,ECX
0054ADA1|.51            PUSH ECX
0054ADA2|.51            PUSH ECX
0054ADA3|.51            PUSH ECX
0054ADA4|.51            PUSH ECX
0054ADA5|.53            PUSH EBX
0054ADA6|.56            PUSH ESI
0054ADA7|.8BF2          MOV ESI,EDX
0054ADA9|.8BD8          MOV EBX,EAX
0054ADAB|.33C0          XOR EAX,EAX
0054ADAD|.55            PUSH EBP
0054ADAE|.68 6CAE5400   PUSH zhdm_exe.0054AE6C
0054ADB3|.64:FF30       PUSH DWORD PTR FS:
0054ADB6|.64:8920       MOV DWORD PTR FS:,ESP
0054ADB9|.81F3 F1250B00 XOR EBX,0B25F1                           ;//定单号16进制与0B25F1作异或运算
0054ADBF|.8BC3          MOV EAX,EBX                              ;//EAX=EBX
0054ADC1|.33D2          XOR EDX,EDX
0054ADC3|.52            PUSH EDX                                 ; /Arg2 => 00000000
0054ADC4|.50            PUSH EAX                                 ; |Arg1
0054ADC5|.8D45 FC       LEA EAX,DWORD PTR SS:             ; |
0054ADC8|.E8 13E8EBFF   CALL zhdm_exe.004095E0                   ; \//将异或结果转为10进制字符形式,设为字符串A
0054ADCD|.8B45 FC       MOV EAX,DWORD PTR SS:             ;//EAX==字符串A
0054ADD0|.0FB600      MOVZX EAX,BYTE PTR DS:            ;//EAX=字符串A第1个字符ASC值
0054ADD3|.8B55 FC       MOV EDX,DWORD PTR SS:             ;//EDX==字符串A
0054ADD6|.0FB652 01   MOVZX EDX,BYTE PTR DS:            ;//EDX=字符串A第2个字符ASC值
0054ADDA|.03C2          ADD EAX,EDX                              ;//EAX=EAX+EDX
0054ADDC|.B9 05000000   MOV ECX,5                              ;//ECX=5
0054ADE1|.99            CDQ
0054ADE2|.F7F9          IDIV ECX                                 ;//EAX/ECX,商送EAX,余送EDX
0054ADE4|.80C2 34       ADD DL,34                              ;//DL=DL+34
0054ADE7|.8855 F8       MOV BYTE PTR SS:,DL               ;//=DL,设为a1
0054ADEA|.8B45 FC       MOV EAX,DWORD PTR SS:             ;//EAX==字符串A
0054ADED|.0FB640 02   MOVZX EAX,BYTE PTR DS:            ;//EAX=字符串A第3个字符ASC值
0054ADF1|.8B55 FC       MOV EDX,DWORD PTR SS:             ;//EDX==字符串A
0054ADF4|.0FB652 03   MOVZX EDX,BYTE PTR DS:            ;//EDX=字符串A第4个字符ASC值
0054ADF8|.03C2          ADD EAX,EDX                              ;//EAX=EAX+EDX
0054ADFA|.B9 05000000   MOV ECX,5                              ;//ECX=5
0054ADFF|.99            CDQ
0054AE00|.F7F9          IDIV ECX                                 ;//EAX/ECX,商送EAX,余送EDX
0054AE02|.8BDA          MOV EBX,EDX                              ;//EBX=EDX
0054AE04|.80C3 33       ADD BL,33                              ;//BL=BL+33
0054AE07|.885D F9       MOV BYTE PTR SS:,BL               ;//=BL,设为a2
0054AE0A|.8D45 F4       LEA EAX,DWORD PTR SS:
0054AE0D|.8A55 F8       MOV DL,BYTE PTR SS:               ;//DL=a1
0054AE10|.E8 7B9DEBFF   CALL zhdm_exe.00404B90
0054AE15|.8B45 F4       MOV EAX,DWORD PTR SS:
0054AE18|.8D55 FC       LEA EDX,DWORD PTR SS:
0054AE1B|.B9 1B000000   MOV ECX,1B
0054AE20|.E8 23A1EBFF   CALL zhdm_exe.00404F48
0054AE25|.8D45 F0       LEA EAX,DWORD PTR SS:
0054AE28|.8BD3          MOV EDX,EBX
0054AE2A|.E8 619DEBFF   CALL zhdm_exe.00404B90
0054AE2F|.8B45 F0       MOV EAX,DWORD PTR SS:
0054AE32|.8D55 FC       LEA EDX,DWORD PTR SS:
0054AE35|.B9 19000000   MOV ECX,19
0054AE3A|.E8 09A1EBFF   CALL zhdm_exe.00404F48                   ;//在字符串A后依次连上运算得到的两个字符a1、a2,设为字

符串B
0054AE3F|.8BC6          MOV EAX,ESI
0054AE41|.8B55 FC       MOV EDX,DWORD PTR SS:             ;//EDX==字符串B
0054AE44|.E8 BB9BEBFF   CALL zhdm_exe.00404A04
0054AE49|.33C0          XOR EAX,EAX
0054AE4B|.5A            POP EDX
0054AE4C|.59            POP ECX
0054AE4D|.59            POP ECX
0054AE4E|.64:8910       MOV DWORD PTR FS:,EDX
0054AE51|.68 73AE5400   PUSH zhdm_exe.0054AE73
0054AE56|>8D45 F0       LEA EAX,DWORD PTR SS:
0054AE59|.BA 02000000   MOV EDX,2
0054AE5E|.E8 719BEBFF   CALL zhdm_exe.004049D4
0054AE63|.8D45 FC       LEA EAX,DWORD PTR SS:
0054AE66|.E8 459BEBFF   CALL zhdm_exe.004049B0
0054AE6B\.C3            RETN
0054AE6C   .^ E9 E393EBFF   JMP zhdm_exe.00404254
0054AE71   .^ EB E3         JMP SHORT zhdm_exe.0054AE56
0054AE73   .5E            POP ESI
0054AE74   .5B            POP EBX
0054AE75   .8BE5          MOV ESP,EBP
0054AE77   .5D            POP EBP
0054AE78   .C3            RETN
0054AE79      8D40 00       LEA EAX,DWORD PTR DS:
0054AE7C/$55            PUSH EBP
0054AE7D|.8BEC          MOV EBP,ESP
0054AE7F|.33C9          XOR ECX,ECX
0054AE81|.51            PUSH ECX
0054AE82|.51            PUSH ECX
0054AE83|.51            PUSH ECX
0054AE84|.51            PUSH ECX
0054AE85|.51            PUSH ECX
0054AE86|.51            PUSH ECX
0054AE87|.53            PUSH EBX
0054AE88|.56            PUSH ESI
0054AE89|.8BF2          MOV ESI,EDX
0054AE8B|.8BD8          MOV EBX,EAX                              ;//EBX=EAX字符串B转16进制
0054AE8D|.33C0          XOR EAX,EAX
0054AE8F|.55            PUSH EBP
0054AE90|.68 C8AF5400   PUSH zhdm_exe.0054AFC8
0054AE95|.64:FF30       PUSH DWORD PTR FS:
0054AE98|.64:8920       MOV DWORD PTR FS:,ESP
0054AE9B|.81F3 8776FBDD XOR EBX,DDFB7687                         ;//EBX与DDFB7687作异或运算
0054AEA1|.8BC3          MOV EAX,EBX                              ;//EAX=EBX
0054AEA3|.33D2          XOR EDX,EDX
0054AEA5|.52            PUSH EDX                                 ; /Arg2 => 00000000
0054AEA6|.50            PUSH EAX                                 ; |Arg1
0054AEA7|.8D45 FC       LEA EAX,DWORD PTR SS:             ; |
0054AEAA|.E8 31E7EBFF   CALL zhdm_exe.004095E0                   ; \//将异或运算结果转为10进制字符形式,设为字符串C
0054AEAF|.8B45 FC       MOV EAX,DWORD PTR SS:             ;//EAX==字符串C
0054AEB2|.0FB600      MOVZX EAX,BYTE PTR DS:            ;//EAX=字符串C第1个字符ASC值
0054AEB5|.8B55 FC       MOV EDX,DWORD PTR SS:             ;//EDX==字符串C
0054AEB8|.0FB652 01   MOVZX EDX,BYTE PTR DS:            ;//EDX=字符串C第2个字符ASC值
0054AEBC|.03C2          ADD EAX,EDX                              ;//EAX=EAX+EDX
0054AEBE|.B9 05000000   MOV ECX,5                              ;//ECX=5
0054AEC3|.99            CDQ
0054AEC4|.F7F9          IDIV ECX                                 ;//EAX/ECX,商送EAX,余送EDX
0054AEC6|.80C2 66       ADD DL,66                              ;//DL=DL+66
0054AEC9|.8855 F8       MOV BYTE PTR SS:,DL               ;//=DL,设为c1
0054AECC|.8B45 FC       MOV EAX,DWORD PTR SS:             ;//EAX==字符串C
0054AECF|.0FB640 02   MOVZX EAX,BYTE PTR DS:            ;//EAX=字符串C第3个字符ASC值
0054AED3|.8B55 FC       MOV EDX,DWORD PTR SS:             ;//EDX==字符串C
0054AED6|.0FB652 03   MOVZX EDX,BYTE PTR DS:            ;//EDX=字符串C第4个字符ASC值
0054AEDA|.03C2          ADD EAX,EDX                              ;//EAX=EAX+EDX
0054AEDC|.B9 05000000   MOV ECX,5                              ;//ECX=5
0054AEE1|.99            CDQ
0054AEE2|.F7F9          IDIV ECX                                 ;//EAX/ECX,商送EAX,余送EDX
0054AEE4|.80C2 75       ADD DL,75                              ;//DL=DL+75
0054AEE7|.8855 F9       MOV BYTE PTR SS:,DL               ;//=BL,设为c2
0054AEEA|.8B45 FC       MOV EAX,DWORD PTR SS:             ;//EAX==字符串C
0054AEED|.0FB640 04   MOVZX EAX,BYTE PTR DS:            ;//EAX=字符串C第5个字符ASC值
0054AEF1|.8B55 FC       MOV EDX,DWORD PTR SS:             ;//EDX==字符串C
0054AEF4|.0FB652 05   MOVZX EDX,BYTE PTR DS:            ;//EDX=字符串C第6个字符ASC值
0054AEF8|.03C2          ADD EAX,EDX                              ;//EAX=EAX+EDX
0054AEFA|.B9 05000000   MOV ECX,5                              ;//ECX=5
0054AEFF|.99            CDQ
0054AF00|.F7F9          IDIV ECX                                 ;//EAX/ECX,商送EAX,余送EDX
0054AF02|.80C2 7A       ADD DL,7A                              ;//DL=DL+7A
0054AF05|.8855 FA       MOV BYTE PTR SS:,DL               ;//=DL,设为c3
0054AF08|.8B45 FC       MOV EAX,DWORD PTR SS:             ;//EAX==字符串C
0054AF0B|.0FB640 06   MOVZX EAX,BYTE PTR DS:            ;//EAX=字符串C第7个字符ASC值
0054AF0F|.8B55 FC       MOV EDX,DWORD PTR SS:             ;//EDX==字符串C
0054AF12|.0FB652 07   MOVZX EDX,BYTE PTR DS:            ;//EDX=字符串C第8个字符ASC值
0054AF16|.03C2          ADD EAX,EDX                              ;//EAX=EAX+EDX
0054AF18|.8B55 FC       MOV EDX,DWORD PTR SS:             ;//EDX==字符串C
0054AF1B|.0FB652 08   MOVZX EDX,BYTE PTR DS:            ;//EAX=字符串C第9个字符ASC值
0054AF1F|.03C2          ADD EAX,EDX                              ;//EAX=EAX+EDX
0054AF21|.B9 05000000   MOV ECX,5                              ;//ECX=5
0054AF26|.99            CDQ
0054AF27|.F7F9          IDIV ECX                                 ;//EAX/ECX,商送EAX,余送EDX
0054AF29|.80C2 69       ADD DL,69                              ;//DL=DL+69
0054AF2C|.8855 FB       MOV BYTE PTR SS:,DL               ;//=DL,设为c4
0054AF2F|.8D45 F4       LEA EAX,DWORD PTR SS:
0054AF32|.8A55 F8       MOV DL,BYTE PTR SS:
0054AF35|.E8 569CEBFF   CALL zhdm_exe.00404B90
0054AF3A|.8B45 F4       MOV EAX,DWORD PTR SS:
0054AF3D|.8D55 FC       LEA EDX,DWORD PTR SS:
0054AF40|.B9 07000000   MOV ECX,7
0054AF45|.E8 FE9FEBFF   CALL zhdm_exe.00404F48
0054AF4A|.8D45 F0       LEA EAX,DWORD PTR SS:
0054AF4D|.8A55 FB       MOV DL,BYTE PTR SS:
0054AF50|.E8 3B9CEBFF   CALL zhdm_exe.00404B90
0054AF55|.8B45 F0       MOV EAX,DWORD PTR SS:
0054AF58|.8D55 FC       LEA EDX,DWORD PTR SS:
0054AF5B|.B9 03000000   MOV ECX,3
0054AF60|.E8 E39FEBFF   CALL zhdm_exe.00404F48
0054AF65|.8D45 EC       LEA EAX,DWORD PTR SS:
0054AF68|.8A55 F9       MOV DL,BYTE PTR SS:
0054AF6B|.E8 209CEBFF   CALL zhdm_exe.00404B90
0054AF70|.8B45 EC       MOV EAX,DWORD PTR SS:
0054AF73|.8D55 FC       LEA EDX,DWORD PTR SS:
0054AF76|.B9 05000000   MOV ECX,5
0054AF7B|.E8 C89FEBFF   CALL zhdm_exe.00404F48
0054AF80|.8D45 E8       LEA EAX,DWORD PTR SS:
0054AF83|.8A55 FA       MOV DL,BYTE PTR SS:
0054AF86|.E8 059CEBFF   CALL zhdm_exe.00404B90
0054AF8B|.8B45 E8       MOV EAX,DWORD PTR SS:
0054AF8E|.8D55 FC       LEA EDX,DWORD PTR SS:
0054AF91|.B9 09000000   MOV ECX,9
0054AF96|.E8 AD9FEBFF   CALL zhdm_exe.00404F48
0054AF9B|.8BC6          MOV EAX,ESI
0054AF9D|.8B55 FC       MOV EDX,DWORD PTR SS:
0054AFA0|.E8 5F9AEBFF   CALL zhdm_exe.00404A04
0054AFA5|.33C0          XOR EAX,EAX
0054AFA7|.5A            POP EDX
0054AFA8|.59            POP ECX
0054AFA9|.59            POP ECX
0054AFAA|.64:8910       MOV DWORD PTR FS:,EDX
0054AFAD|.68 CFAF5400   PUSH zhdm_exe.0054AFCF
0054AFB2|>8D45 E8       LEA EAX,DWORD PTR SS:
0054AFB5|.BA 04000000   MOV EDX,4
0054AFBA|.E8 159AEBFF   CALL zhdm_exe.004049D4
0054AFBF|.8D45 FC       LEA EAX,DWORD PTR SS:
0054AFC2|.E8 E999EBFF   CALL zhdm_exe.004049B0
0054AFC7\.C3            RETN
0054AFC8   .^ E9 8792EBFF   JMP zhdm_exe.00404254
0054AFCD   .^ EB E3         JMP SHORT zhdm_exe.0054AFB2
0054AFCF   .5E            POP ESI
0054AFD0   .5B            POP EBX
0054AFD1   .8BE5          MOV ESP,EBP
0054AFD3   .5D            POP EBP
0054AFD4   .C3            RETN

tianxj 发表于 2008-2-28 22:55:14

/:017 /:017

tianxj 发表于 2008-2-29 00:03:06

0054D267|.E8 30DBFFFF   CALL aaa.0054AD9C

0054D27D|.E8 FADBFFFF   CALL aaa.0054AE7C

是算法CALL/:L

yuanren 发表于 2008-2-29 07:20:37

谢谢tianxj的指教,让我这个菜鸟又学到一些
页: 1 [2]
查看完整版本: 新手写破文请大家指教