[原创] 某决策分析系统简单注册算法分析

某决策分析系统简单注册算法分析

006ADD48   .  >MOV EAX,EEV.006ADED8                                         ;  75EA2-2D12A-AA55A-FBCC7
006ADD4D   .  >CALL EEV.00404ED4
006ADD52   .  >TEST EAX,EAX
006ADD54   .  >JE SHORT EEV.006ADD60
006ADD56   .  >CALL EEV.00404364
006ADD5B   .  >JMP EEV.006ADE13
006ADD60   >  >LEA EDX,DWORD PTR SS:[EBP-24]
006ADD63   .  >MOV EAX,DWORD PTR DS:[73A2F8]
006ADD68   .  >MOV EAX,DWORD PTR DS:[EAX]
006ADD6A   .  >CALL EEV.00694D6C
006ADD6F   .  >LEA EAX,DWORD PTR SS:[EBP-24]
006ADD72   .  >LEA EDX,DWORD PTR SS:[EBP-14]
006ADD75   .  >CALL EEV.006AE548
006ADD7A   .  >MOV EAX,DWORD PTR SS:[EBP-14]
006ADD7D   .  >MOV EDX,DWORD PTR DS:[739FB4]                                ;  EEV.00747A14
006ADD83   .  >MOV EDX,DWORD PTR DS:[EDX]
006ADD85   .  >CALL EEV.00404ED4                                            ;  关键call
006ADD8A   .  >TEST EAX,EAX
006ADD8C      >JLE SHORT EEV.006ADDBC                                       ;  关键跳
006ADD8E   .  >PUSH 40
006ADD90   .  >LEA EDX,DWORD PTR SS:[EBP-28]
006ADD93   .  >MOV EAX,DWORD PTR DS:[73A418]
006ADD98   .  >MOV EAX,DWORD PTR DS:[EAX]
006ADD9A   .  >CALL EEV.004A4EE8
006ADD9F   .  >MOV EAX,DWORD PTR SS:[EBP-28]
006ADDA2   .  >CALL EEV.00404D90
006ADDA7   .  >MOV ECX,EAX
006ADDA9   .  >MOV EDX,EEV.006ADEF0                                         ;  注册成功,欢迎使用!\r请关闭程序,再重新启动程序,功能限制将全部被解除!
006ADDAE   .  >MOV EAX,DWORD PTR DS:[73A418]
006ADDB3   .  >MOV EAX,DWORD PTR DS:[EAX]
006ADDB5   .  >CALL EEV.004A5574
006ADDBA   .  >JMP SHORT EEV.006ADDE8
006ADDBC   >  >PUSH 10
006ADDBE   .  >LEA EDX,DWORD PTR SS:[EBP-2C]
006ADDC1   .  >MOV EAX,DWORD PTR DS:[73A418]
006ADDC6   .  >MOV EAX,DWORD PTR DS:[EAX]
006ADDC8   .  >CALL EEV.004A4EE8
006ADDCD   .  >MOV EAX,DWORD PTR SS:[EBP-2C]
006ADDD0   .  >CALL EEV.00404D90
006ADDD5   .  >MOV ECX,EAX
006ADDD7   .  >MOV EDX,EEV.006ADF38                                         ;  注册失败,请再次注册!
006ADDDC   .  >MOV EAX,DWORD PTR DS:[73A418]
006ADDE1   .  >MOV EAX,DWORD PTR DS:[EAX]

算法CALL EEV.00404ED4
00404ED4  /$  >TEST EAX,EAX
00404ED6  |.  >JE SHORT EEV.00404F18
00404ED8  |.  >TEST EDX,EDX
00404EDA  |.  >JE SHORT EEV.00404F0D
00404EDC  |.  >PUSH EBX
00404EDD  |.  >PUSH ESI
00404EDE  |.  >PUSH EDI
00404EDF  |.  >MOV ESI,EAX                                                  ;  EAX为DE6C-C4E5
00404EE1  |.  >MOV EDI,EDX                                                  ;  EDX为假注册码
00404EE3  |.  >MOV ECX,DWORD PTR DS:[EDI-4]
00404EE6  |.  >PUSH EDI
00404EE7  |.  >MOV EDX,DWORD PTR DS:[ESI-4]
00404EEA  |.  >DEC EDX
00404EEB  |.  >JS SHORT EEV.00404F08
00404EED  |.  >MOV AL,BYTE PTR DS:[ESI]                                     ;  取得DE6C-C4E5第一位D
00404EEF  |.  >INC ESI
00404EF0  |.  >SUB ECX,EDX                                                  ;  从第7位开始比较
00404EF2  |.  >JLE SHORT EEV.00404F08
00404EF4  |>  >/REPNE SCAS BYTE PTR ES:[EDI]                                ;  从第7位开始比较字符串
00404EF6  |.  >|JNZ SHORT EEV.00404F08                                      ;  字符不能比较完.zf位为1跳出
00404EF8  |.  >|MOV EBX,ECX
00404EFA  |.  >|PUSH ESI
00404EFB  |.  >|PUSH EDI
00404EFC  |.  >|MOV ECX,EDX                                                 ;  第二次开始从第8位开始
00404EFE  |.  >|REPE CMPS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]               ;  从第八位开始比较
00404F00  |.  >|POP EDI
00404F01  |.  >|POP ESI
00404F02      >JE SHORT EEV.00404F10                                        ;  字符能比较完.zf位0跳出
00404F04  |.  >|MOV ECX,EBX
00404F06  |.^ >\JMP SHORT EEV.00404EF4
00404F08  |>  >POP EDX
00404F09      >XOR EAX,EAX
00404F0B      >JMP SHORT EEV.00404F15
00404F0D      >XOR EAX,EAX
00404F0F  |.  >RETN
00404F10  |>  >POP EDX
00404F11  |.  >MOV EAX,EDI
00404F13  |.  >SUB EAX,EDX
00404F15  |>  >POP EDI
00404F16  |.  >POP ESI
00404F17  |.  >POP EBX
00404F18  \>  >RETN

算法格式为*****-****-****-*****
第7到第15位开始必须为*****-DE6C-C4E5-*****都可以成功注册.
由于软件的试用版本功能不全.注册成功也没办法使用全部功能.让高手见笑了....

TOP

强啊.算法我还没入门呢.谢谢楼主.

TOP

这里高手很多啊

确实
很多高手
要是我有这水平就好了
羡慕这些大牛

TOP

发新话题