【文章标题】: 菜鸟算法(高手飞过)
【文章作者】: 千里之外
【作者邮箱】: 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 这就是注册码