【文章标题】: 菜鸟算法(高手飞过)
【文章作者】: 千里之外
【作者邮箱】: 506398911@163.com
【作者QQ号】: 506398911
【软件名称】: 速用流水帐Ⅱ(企业版)
【下载地址】: http://www4.skycn.com/soft/28080.html#download
【加壳方式】: 无
【保护方式】: 机器码
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: OD PEID
【操作平台】: winxp2
【软件介绍】: 速用流水帐软件是一种新型的财务管理软件
【作者声明】: 谢谢 PYG论坛的fonge版主的热心指导 没有你 我也许离写出算法还很远 再次感谢 祝好人一生平安
--------------------------------------------------------------------------------
【详细过程】
  
  大家好 我是千里之外 在这里依然谢谢fonge版主的热心指导  是你给我指明了学习的方向 呵呵 我会继续努力的 
  
  不知道为什么 你要离开 我看到你得帖子了 很伤心 真得 很伤心  希望你能开心快乐每一天
  
  
  
  0054F7E3  |.  48            DEC EAX
  0054F7E4  |.  75 70         JNZ SHORT SuperMon.0054F856
  0054F7E6  |.  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
  0054F7E9  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  0054F7EC  |.  E8 DFF2FEFF   CALL SuperMon.0053EAD0                   ;  算法CALL
  0054F7F1  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]
  0054F7F4  |.  A1 2C4F5500   MOV EAX,DWORD PTR DS:[554F2C]
  0054F7F9  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
  0054F7FB  |.  8B80 18030000 MOV EAX,DWORD PTR DS:[EAX+318]
  0054F801  |.  E8 E64EEBFF   CALL SuperMon.004046EC
  0054F806  |.  75 44         JNZ SHORT SuperMon.0054F84C
  0054F808  |.  A1 A04E5500   MOV EAX,DWORD PTR DS:[554EA0]
  0054F80D  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
  0054F80F  |.  50            PUSH EAX
  0054F810  |.  B9 B0F85400   MOV ECX,SuperMon.0054F8B0                ;  regver
  0054F815  |.  BA 90F85400   MOV EDX,SuperMon.0054F890                ;  sv
  0054F81A  |.  B8 9CF85400   MOV EAX,SuperMon.0054F89C                ;  supermoney
  0054F81F  |.  E8 F4EFFEFF   CALL SuperMon.0053E818
  0054F824  |.  A1 A04E5500   MOV EAX,DWORD PTR DS:[554EA0]
  0054F829  |.  8B00          MOV EAX,DWORD PTR DS:[EAX]
  0054F82B  |.  50            PUSH EAX
  0054F82C  |.  B9 2CF95400   MOV ECX,SuperMon.0054F92C                ;  alive
  0054F831  |.  BA 3CF95400   MOV EDX,SuperMon.0054F93C                ;  systemstate
  0054F836  |.  B8 9CF85400   MOV EAX,SuperMon.0054F89C                ;  supermoney
  0054F83B  |.  E8 D8EFFEFF   CALL SuperMon.0053E818
  0054F840  |.  B8 50F95400   MOV EAX,SuperMon.0054F950                ;  软件注册成功,谢谢您的支持!
  0054F845  |.  E8 6E96EEFF   CALL SuperMon.00438EB8
  0054F84A  |.  EB 0A         JMP SHORT SuperMon.0054F856
  0054F84C  |>  B8 78F95400   MOV EAX,SuperMon.0054F978                ;  注册码错误,请重新操作
  0054F851  |.  E8 6296EEFF   CALL SuperMon.00438EB8
  
  算法CALL处
  
  0053EAD0  /$  55            PUSH EBP
  0053EAD1  |.  8BEC          MOV EBP,ESP
  0053EAD3  |.  33C9          XOR ECX,ECX
  0053EAD5  |.  51            PUSH ECX
  0053EAD6  |.  51            PUSH ECX
  0053EAD7  |.  51            PUSH ECX
  0053EAD8  |.  51            PUSH ECX
  0053EAD9  |.  51            PUSH ECX
  0053EADA  |.  51            PUSH ECX
  0053EADB  |.  51            PUSH ECX
  0053EADC  |.  53            PUSH EBX
  0053EADD  |.  56            PUSH ESI
  0053EADE  |.  57            PUSH EDI
  0053EADF  |.  8955 F8       MOV DWORD PTR SS:[EBP-8],EDX
  0053EAE2  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
  0053EAE5  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  0053EAE8  |.  E8 A35CECFF   CALL SuperMon.00404790
  0053EAED  |.  33C0          XOR EAX,EAX
  0053EAEF  |.  55            PUSH EBP
  0053EAF0  |.  68 E8EB5300   PUSH SuperMon.0053EBE8
  0053EAF5  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
  0053EAF8  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
  0053EAFB  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  0053EAFE  |.  E8 9D5AECFF   CALL SuperMon.004045A0
  0053EB03  |.  8BF8          MOV EDI,EAX
  0053EB05  |.  85FF          TEST EDI,EDI
  0053EB07  |.  7E 2F         JLE SHORT SuperMon.0053EB38
  0053EB09  |.  BE 01000000   MOV ESI,1
  0053EB0E  |>  8B45 FC       /MOV EAX,DWORD PTR SS:[EBP-4]
  0053EB11  |.  8A5C30 FF     |MOV BL,BYTE PTR DS:[EAX+ESI-1]
  0053EB15  |.  80FB 31       |CMP BL,31
  0053EB18  |.  72 1A         |JB SHORT SuperMon.0053EB34
  0053EB1A  |.  80FB 39       |CMP BL,39
  0053EB1D  |.  77 15         |JA SHORT SuperMon.0053EB34
  0053EB1F  |.  8D45 F0       |LEA EAX,DWORD PTR SS:[EBP-10]
  0053EB22  |.  8BD3          |MOV EDX,EBX
  0053EB24  |.  E8 9F59ECFF   |CALL SuperMon.004044C8
  0053EB29  |.  8B55 F0       |MOV EDX,DWORD PTR SS:[EBP-10]
  0053EB2C  |.  8D45 F4       |LEA EAX,DWORD PTR SS:[EBP-C]
  0053EB2F  |.  E8 745AECFF   |CALL SuperMon.004045A8
  0053EB34  |>  46            |INC ESI
  0053EB35  |.  4F            |DEC EDI
  0053EB36  |.^ 75 D6         \JNZ SHORT SuperMon.0053EB0E
  0053EB38  |>  837D F4 00    CMP DWORD PTR SS:[EBP-C],0               ;  取机器码中1-9之间的数字 我的机器码是52
  0053EB3C  |.  75 0D         JNZ SHORT SuperMon.0053EB4B
  0053EB3E  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
  0053EB41  |.  BA 00EC5300   MOV EDX,SuperMon.0053EC00
  0053EB46  |.  E8 2D58ECFF   CALL SuperMon.00404378
  0053EB4B  |>  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
  0053EB4E  |.  E8 15A7ECFF   CALL SuperMon.00409268                   ;  将10进制52转为16进制34 结果送如EAX
  0053EB53  |.  05 BD070000   ADD EAX,7BD                              ;         EAX=34+7bd=7f1
  0053EB58  |.  83D2 00       ADC EDX,0                                ;              EDX清零
  0053EB5B  |.  52            PUSH EDX                                 ; /Arg2
  0053EB5C  |.  50            PUSH EAX                                 ; |Arg1
  0053EB5D  |.  8D45 EC       LEA EAX,DWORD PTR SS:[EBP-14]            ; |
  0053EB60  |.  E8 3FA6ECFF   CALL SuperMon.004091A4                   ; \将16进制的7f1转为10进制2033 送入EDX
  0053EB65  |.  8B55 EC       MOV EDX,DWORD PTR SS:[EBP-14]            ;  2033
  0053EB68  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
  0053EB6B  |.  E8 0858ECFF   CALL SuperMon.00404378
  0053EB70  |.  8D45 E8       LEA EAX,DWORD PTR SS:[EBP-18]
  0053EB73  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]             ;  2033
  0053EB76  |.  8A12          MOV DL,BYTE PTR DS:[EDX]                 ;   2033的第一位2送入DL
  0053EB78  |.  E8 4B59ECFF   CALL SuperMon.004044C8
  0053EB7D  |.  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
  0053EB80  |.  E8 6FA6ECFF   CALL SuperMon.004091F4                   ;  将2送入EAX
  0053EB85  |.  8BD8          MOV EBX,EAX                              ;  2
  0053EB87  |.  80C3 41       ADD BL,41                                ;              BL=2+41=43
  0053EB8A  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
  0053EB8D  |.  E8 665CECFF   CALL SuperMon.004047F8                   ;  取43的字符’ C‘
  0053EB92  |.  8818          MOV BYTE PTR DS:[EAX],BL                 ;    用‘C’替换2033的第一位 2
  0053EB94  |.  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]            ;   EAX=C033
  0053EB97  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]
  0053EB9A  |.  8A52 01       MOV DL,BYTE PTR DS:[EDX+1]               ;   DL=0  2033的第2位
  0053EB9D  |.  E8 2659ECFF   CALL SuperMon.004044C8
  0053EBA2  |.  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
  0053EBA5  |.  E8 4AA6ECFF   CALL SuperMon.004091F4                   ;  eax清0
  0053EBAA  |.  8BD8          MOV EBX,EAX                              ;           EBX清0
  0053EBAC  |.  80C3 41       ADD BL,41                                ; ebx=0+41(0为2033的第2位)
  0053EBAF  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
  0053EBB2  |.  E8 415CECFF   CALL SuperMon.004047F8                   ;  取41的字符‘A’
  0053EBB7  |.  8858 01       MOV BYTE PTR DS:[EAX+1],BL               ;  ‘A’替换C033的第2位0
  0053EBBA  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  EAX=CA33
  0053EBBD  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]
  0053EBC0  |.  E8 6F57ECFF   CALL SuperMon.00404334
  0053EBC5  |.  33C0          XOR EAX,EAX
  0053EBC7  |.  5A            POP EDX
  0053EBC8  |.  59            POP ECX
  0053EBC9  |.  59            POP ECX
  0053EBCA  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
  0053EBCD  |.  68 EFEB5300   PUSH SuperMon.0053EBEF
  0053EBD2  |>  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
  0053EBD5  |.  BA 05000000   MOV EDX,5
  0053EBDA  |.  E8 2557ECFF   CALL SuperMon.00404304
  0053EBDF  |.  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
  0053EBE2  |.  E8 F956ECFF   CALL SuperMon.004042E0
  0053EBE7  \.  C3            RETN
  0053EBE8   .^ E9 1750ECFF   JMP SuperMon.00403C04
  0053EBED   .^ EB E3         JMP SHORT SuperMon.0053EBD2
  0053EBEF   .  5F            POP EDI
  0053EBF0   .  5E            POP ESI
  0053EBF1   .  5B            POP EBX
  0053EBF2   .  8BE5          MOV ESP,EBP
  0053EBF4   .  5D            POP EBP
  0053EBF5   .  C3            RETN
  0053EBF6      00            DB 00
  
  
--------------------------------------------------------------------------------
【经验总结】
  1.取机器码中1到9之间的数字  我的机器码是5PS2VLK0 所以取52
  2.将10进制52转为16进制34 然后加上7bd 结果转为10进制2033 记为S
  3.取S 的第1位2   加上41 得43(16进制) 取其字符‘C’替换S 的第1位得C033  记为S1
  4.取S1的第2位0   加上41 得41           取其字符‘A’代替S1的第2位得CA33  这就是注册码