首页
社区
课程
招聘
请帮助我分析一下此处的算法
发表于: 2005-1-19 14:49 3585

请帮助我分析一下此处的算法

2005-1-19 14:49
3585
我用OD分析到以下代码,但不明白其算法,请大家帮助。

004011C5   . 83C4 04        ADD ESP,4
004011C8   . 8945 A8        MOV DWORD PTR SS:[EBP-58],EAX
004011CB   . 8B45 A8        MOV EAX,DWORD PTR SS:[EBP-58]
004011CE   . 2B45 8C        SUB EAX,DWORD PTR SS:[EBP-74]
004011D1   . 99             CDQ
004011D2   . F77D 88        IDIV DWORD PTR SS:[EBP-78]
004011D5   . 8945 A8        MOV DWORD PTR SS:[EBP-58],EAX
004011D8   . 8B45 A8        MOV EAX,DWORD PTR SS:[EBP-58]
004011DB   . 99             CDQ
004011DC   . B9 40420F00    MOV ECX,0F4240
004011E1   . F7F9           IDIV ECX
004011E3   . 8BC2           MOV EAX,EDX
004011E5   . 99             CDQ
004011E6   . B9 A0860100    MOV ECX,186A0
004011EB   . F7F9           IDIV ECX
004011ED   . 8945 D0        MOV DWORD PTR SS:[EBP-30],EAX
004011F0   . 8B45 A8        MOV EAX,DWORD PTR SS:[EBP-58]
004011F3   . 99             CDQ
004011F4   . B9 80969800    MOV ECX,989680
004011F9   . F7F9           IDIV ECX
004011FB   . 8945 CC        MOV DWORD PTR SS:[EBP-34],EAX
004011FE   . 8B45 A8        MOV EAX,DWORD PTR SS:[EBP-58]
00401201   . 99             CDQ
00401202   . B9 10270000    MOV ECX,2710
00401207   . F7F9           IDIV ECX
00401209   . 8BC2           MOV EAX,EDX
0040120B   . 99             CDQ
0040120C   . B9 E8030000    MOV ECX,3E8
00401211   . F7F9           IDIV ECX
00401213   . 8945 C8        MOV DWORD PTR SS:[EBP-38],EAX
00401216   . 8B45 A8        MOV EAX,DWORD PTR SS:[EBP-58]
00401219   . 99             CDQ
0040121A   . B9 64000000    MOV ECX,64
0040121F   . F7F9           IDIV ECX
00401221   . 8BC2           MOV EAX,EDX
00401223   . 99             CDQ
00401224   . B9 0A000000    MOV ECX,0A
00401229   . F7F9           IDIV ECX
0040122B   . 8945 C4        MOV DWORD PTR SS:[EBP-3C],EAX
0040122E   . 8B45 A8        MOV EAX,DWORD PTR SS:[EBP-58]
00401231   . 99             CDQ
00401232   . B9 80969800    MOV ECX,989680
00401237   . F7F9           IDIV ECX
00401239   . 8BC2           MOV EAX,EDX
0040123B   . 99             CDQ
0040123C   . B9 40420F00    MOV ECX,0F4240
00401241   . F7F9           IDIV ECX
00401243   . 8945 C0        MOV DWORD PTR SS:[EBP-40],EAX
00401246   . 8B45 A8        MOV EAX,DWORD PTR SS:[EBP-58]
00401249   . 99             CDQ
0040124A   . B9 A0860100    MOV ECX,186A0
0040124F   . F7F9           IDIV ECX
00401251   . 8BC2           MOV EAX,EDX
00401253   . 99             CDQ
00401254   . B9 10270000    MOV ECX,2710
00401259   . F7F9           IDIV ECX
0040125B   . 8945 B4        MOV DWORD PTR SS:[EBP-4C],EAX
0040125E   . 8B45 A8        MOV EAX,DWORD PTR SS:[EBP-58]
00401261   . 99             CDQ
00401262   . B9 E8030000    MOV ECX,3E8
00401267   . F7F9           IDIV ECX
00401269   . 8BC2           MOV EAX,EDX
0040126B   . 99             CDQ
0040126C   . B9 64000000    MOV ECX,64
00401271   . F7F9           IDIV ECX
00401273   . 8945 B8        MOV DWORD PTR SS:[EBP-48],EAX
00401276   . 8B45 A8        MOV EAX,DWORD PTR SS:[EBP-58]
00401279   . 99             CDQ
0040127A   . B9 0A000000    MOV ECX,0A
0040127F   . F7F9           IDIV ECX
00401281   . 8955 BC        MOV DWORD PTR SS:[EBP-44],EDX
00401284   . 8B55 D0        MOV EDX,DWORD PTR SS:[EBP-30]
00401287   . 69D2 E8030000  IMUL EDX,EDX,3E8
0040128D   . 8B45 CC        MOV EAX,DWORD PTR SS:[EBP-34]
00401290   . 6BC0 64        IMUL EAX,EAX,64
00401293   . 0345 C4        ADD EAX,DWORD PTR SS:[EBP-3C]
00401296   . 8B4D C8        MOV ECX,DWORD PTR SS:[EBP-38]
00401299   . 6BC9 0A        IMUL ECX,ECX,0A
0040129C   . 03C2           ADD EAX,EDX
0040129E   . 03C8           ADD ECX,EAX
004012A0   . 8B55 F0        MOV EDX,DWORD PTR SS:[EBP-10]
004012A3   . 8D8411 6CF4FFF>LEA EAX,DWORD PTR DS:[ECX+EDX-B94]
004012AA   . 8945 A4        MOV DWORD PTR SS:[EBP-5C],EAX
004012AD   . 8B4D C0        MOV ECX,DWORD PTR SS:[EBP-40]
004012B0   . 69C9 E8030000  IMUL ECX,ECX,3E8
004012B6   . 8B55 BC        MOV EDX,DWORD PTR SS:[EBP-44]
004012B9   . 6BD2 64        IMUL EDX,EDX,64
004012BC   . 0355 B4        ADD EDX,DWORD PTR SS:[EBP-4C]
004012BF   . 8B45 B8        MOV EAX,DWORD PTR SS:[EBP-48]
004012C2   . 6BC0 0A        IMUL EAX,EAX,0A
004012C5   . 03D1           ADD EDX,ECX
004012C7   . 8D8C10 6CF4FFF>LEA ECX,DWORD PTR DS:[EAX+EDX-B94]
004012CE   . 894D A0        MOV DWORD PTR SS:[EBP-60],ECX
004012D1   . 8B55 A4        MOV EDX,DWORD PTR SS:[EBP-5C]
004012D4   . 3B55 A0        CMP EDX,DWORD PTR SS:[EBP-60]     ;关键比较
004012D7   . 0F85 EB020000  JNZ 2004.004015C8                 ;关键跳,不等则跳,此处可以爆破,但无法得到正确的序号

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我看了汇编,只能弄个大概:

004011C5    .  83C4 04            add esp,4
004011C8    .  8945 A8            mov dword ptr ss:[ebp-58],eax
004011CB    .  8B45 A8            mov eax,dword ptr ss:[ebp-58]
004011CE    .  2B45 8C            sub eax,dword ptr ss:[ebp-74]
004011D1    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

004011D2    .  F77D 88            idiv dword ptr ss:[ebp-78]   ;整数除法
004011D5    .  8945 A8            mov dword ptr ss:[ebp-58],eax
004011D8    .  8B45 A8            mov eax,dword ptr ss:[ebp-58]
004011DB    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

004011DC    .  B9 40420F00        mov ecx,0F4240    ;0F4240H=1000000D    百万位
004011E1    .  F7F9               idiv ecx          ;整数除法
004011E3    .  8BC2               mov eax,edx
004011E5    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

004011E6    .  B9 A0860100        mov ecx,186A0     ;186A0H=100000D    十万位
004011EB    .  F7F9               idiv ecx          ;整数除法
004011ED    .  8945 D0            mov dword ptr ss:[ebp-30],eax
004011F0    .  8B45 A8            mov eax,dword ptr ss:[ebp-58]
004011F3    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

004011F4    .  B9 80969800        mov ecx,989680    ;989680H=10000000D  千万位
004011F9    .  F7F9               idiv ecx          ;整数除法
004011FB    .  8945 CC            mov dword ptr ss:[ebp-34],eax
004011FE    .  8B45 A8            mov eax,dword ptr ss:[ebp-58]
00401201    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

00401202    .  B9 10270000        mov ecx,2710      ;2710H=10000D  万位
00401207    .  F7F9               idiv ecx          ;整数除法
00401209    .  8BC2               mov eax,edx
0040120B    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

0040120C    .  B9 E8030000        mov ecx,3E8       ;3E8H=1000D  千位
00401211    .  F7F9               idiv ecx          ;整数除法
00401213    .  8945 C8            mov dword ptr ss:[ebp-38],eax
00401216    .  8B45 A8            mov eax,dword ptr ss:[ebp-58]
00401219    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

0040121A    .  B9 64000000        mov ecx,64        ;64H=100D  百位
0040121F    .  F7F9               idiv ecx          ;整数除法
00401221    .  8BC2               mov eax,edx
00401223    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

00401224    .  B9 0A000000        mov ecx,0A        ;0AH=10H   十位
00401229    .  F7F9               idiv ecx          ;整数除法
0040122B    .  8945 C4            mov dword ptr ss:[ebp-3C],eax
0040122E    .  8B45 A8            mov eax,dword ptr ss:[ebp-58]
00401231    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

00401232    .  B9 80969800        mov ecx,989680    ;989680H=10000000D  千万位
00401237    .  F7F9               idiv ecx          ;整数除法
00401239    .  8BC2               mov eax,edx
0040123B    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

0040123C    .  B9 40420F00        mov ecx,0F4240    ;0F4240H=1000000D    百万位
00401241    .  F7F9               idiv ecx          ;整数除法
00401243    .  8945 C0            mov dword ptr ss:[ebp-40],eax
00401246    .  8B45 A8            mov eax,dword ptr ss:[ebp-58]
00401249    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

0040124A    .  B9 A0860100        mov ecx,186A0     ;186A0H=100000D    十万位
0040124F    .  F7F9               idiv ecx          ;整数除法
00401251    .  8BC2               mov eax,edx
00401253    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

00401254    .  B9 10270000        mov ecx,2710      ;2710H=10000D  万位
00401259    .  F7F9               idiv ecx          ;整数除法
0040125B    .  8945 B4            mov dword ptr ss:[ebp-4C],eax
0040125E    .  8B45 A8            mov eax,dword ptr ss:[ebp-58]
00401261    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

00401262    .  B9 E8030000        mov ecx,3E8       ;3E8H=1000D  千位
00401267    .  F7F9               idiv ecx          ;整数除法
00401269    .  8BC2               mov eax,edx
0040126B    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

0040126C    .  B9 64000000        mov ecx,64        ;64H=100D  百位
00401271    .  F7F9               idiv ecx          ;整数除法
00401273    .  8945 B8            mov dword ptr ss:[ebp-48],eax
00401276    .  8B45 A8            mov eax,dword ptr ss:[ebp-58]
00401279    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

0040127A    .  B9 0A000000        mov ecx,0A        ;0AH=10H   十位
0040127F    .  F7F9               idiv ecx          ;整数除法
00401281    .  8955 BC            mov dword ptr ss:[ebp-44],edx
00401284    .  8B55 D0            mov edx,dword ptr ss:[ebp-30]

00401287    .  69D2 E8030000      imul edx,edx,3E8  ;整数乘法  3E8H=1000D  千位
0040128D    .  8B45 CC            mov eax,dword ptr ss:[ebp-34]
00401290    .  6BC0 64            imul eax,eax,64   ;整数乘法  64H=100D  百位            
00401293    .  0345 C4            add eax,dword ptr ss:[ebp-3C]
00401296    .  8B4D C8            mov ecx,dword ptr ss:[ebp-38]
00401299    .  6BC9 0A            imul ecx,ecx,0A   ;整数乘法  0AH=10H   十位
0040129C    .  03C2               add eax,edx
0040129E    .  03C8               add ecx,eax
004012A0    .  8B55 F0            mov edx,dword ptr ss:[ebp-10]
004012A3    .  8D8411 6CF4FFFF    lea eax,dword ptr ds:[ecx+edx-B94]
004012AA    .  8945 A4            mov dword ptr ss:[ebp-5C],eax
004012AD    .  8B4D C0            mov ecx,dword ptr ss:[ebp-40]
004012B0    .  69C9 E8030000      imul ecx,ecx,3E8    ;整数乘法  3E8H=1000D  千位
004012B6    .  8B55 BC            mov edx,dword ptr ss:[ebp-44]
004012B9    .  6BD2 64            imul edx,edx,64     ;整数乘法  64H=100D  百位
004012BC    .  0355 B4            add edx,dword ptr ss:[ebp-4C]
004012BF    .  8B45 B8            mov eax,dword ptr ss:[ebp-48]
004012C2    .  6BC0 0A            imul eax,eax,0A     ;整数乘法  0AH=10H   十位
004012C5    .  03D1               add edx,ecx
004012C7    .  8D8C10 6CF4FFFF    lea ecx,dword ptr ds:[eax+edx-B94]
004012CE    .  894D A0            mov dword ptr ss:[ebp-60],ecx
004012D1    .  8B55 A4            mov edx,dword ptr ss:[ebp-5C]

004012D4    .  3B55 A0            cmp edx,dword ptr ss:[ebp-60]
004012D7    .  0F85 EB020000      jnz 2004.004015C8  =========================>>>>
004012DD    .  8B45 A0            mov eax,dword ptr ss:[ebp-60]
004012E0    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

004012E1    .  B9 E8030000        mov ecx,3E8       ;3E8H=1000D  千位
004012E6    .  F7F9               idiv ecx          ;整数除法
004012E8    .  8945 E0            mov dword ptr ss:[ebp-20],eax
004012EB    .  8B45 A0            mov eax,dword ptr ss:[ebp-60]
004012EE    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

004012EF    .  B9 E8030000        mov ecx,3E8       ;3E8H=1000D  千位
004012F4    .  F7F9               idiv ecx          ;整数除法
004012F6    .  8BC2               mov eax,edx
004012F8    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)
004012F9    .  B9 64000000        mov ecx,64
004012FE    .  F7F9               idiv ecx
00401300    .  8945 DC            mov dword ptr ss:[ebp-24],eax
00401303    .  8B45 A0            mov eax,dword ptr ss:[ebp-60]
00401306    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)
00401307    .  B9 64000000        mov ecx,64        ; 64H=100D  百位
0040130C    .  F7F9               idiv ecx          ;整数除法
0040130E    .  8BC2               mov eax,edx
00401310    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)
00401311    .  B9 0A000000        mov ecx,0A        ;0AH=10D   十位
00401316    .  F7F9               idiv ecx          ;整数除法
00401318    .  8945 D8            mov dword ptr ss:[ebp-28],eax
0040131B    .  8B45 A0            mov eax,dword ptr ss:[ebp-60]
0040131E    .  99                 cdq               ;双字扩展(把EAX中的字的符号扩展到EDX中去)

0040131F    .  B9 0A000000        mov ecx,0A        ;0AH=10D   十位
00401324    .  F7F9               idiv ecx          ;整数除法
2005-1-19 14:51
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
跪求高手帮助归纳总结一下其算法,这段代码究竟做了什么?
2005-1-19 14:52
0
雪    币: 397
活跃值: (799)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wsy
4
是不是将一个数的10进制表示求出来
2005-1-19 16:49
0
游客
登录 | 注册 方可回帖
返回
//