千里之外 发表于 2007-5-24 23:07:23

菜鸟算法3

【文章标题】: 小巧名片王 V2.0算法分析
【文章作者】: 千里之外
【作者邮箱】: [email protected]
【作者主页】: www.wm5.net.cn
【作者QQ号】: 506398911
【软件名称】: 小巧名片王 V2.0
【下载地址】: http://www.skycn.com/soft/36316.html#download
【保护方式】: 机器码
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: OD PEID
【操作平台】: WINXP2
【软件介绍】: 小巧名片王主要是为了管理您长期积累下来的众多名片
【作者声明】: 谢谢 fonge大哥的热心指导 没有你 我也许离写出算法还很远 再次感谢 祝好人一生平安
--------------------------------------------------------------------------------
【详细过程】声明 发表时发现https://www.chinapyg.com/viewthread.php?tid=14949&extra=page%3D1 已经发过相同的帖子 但是本分析是有本人独立完成并没有抄袭lzq1973 作者的思路 特此声明

大家好 我是千里之外 在这里依然谢谢fonge大哥的热心指导是你给我指明了学习的方向 呵呵 我会继续努力的
   
搜索您使用的是试用版,请联系购买正版软件,联系邮箱[email protected]!可以很快的来到这里

00565C69   .8B00          MOV EAX,DWORD PTR DS:
00565C6B   .C680 04040000>MOV BYTE PTR DS:,1
00565C72   .8D4D A8       LEA ECX,DWORD PTR SS:
00565C75   .A1 CC415800   MOV EAX,DWORD PTR DS:
00565C7A   .8B00          MOV EAX,DWORD PTR DS:
00565C7C   .8B90 44040000 MOV EDX,DWORD PTR DS:
00565C82   .A1 143F5800   MOV EAX,DWORD PTR DS:
00565C87   .8B00          MOV EAX,DWORD PTR DS:
00565C89   .E8 C6DEFFFF   CALL MPW.00563B54                        ;算法CALL
00565C8E   .8B55 A8       MOV EDX,DWORD PTR SS:
00565C91   .A1 CC415800   MOV EAX,DWORD PTR DS:
00565C96   .8B00          MOV EAX,DWORD PTR DS:
00565C98   .8B80 48040000 MOV EAX,DWORD PTR DS:
00565C9E   .E8 0DF0E9FF   CALL MPW.00404CB0
00565CA3   .74 44         JE SHORT MPW.00565CE9
00565CA5   .8D4D A4       LEA ECX,DWORD PTR SS:
00565CA8   .A1 CC415800   MOV EAX,DWORD PTR DS:
00565CAD   .8B00          MOV EAX,DWORD PTR DS:
00565CAF   .8B90 44040000 MOV EDX,DWORD PTR DS:
00565CB5   .A1 143F5800   MOV EAX,DWORD PTR DS:
00565CBA   .8B00          MOV EAX,DWORD PTR DS:
00565CBC   .E8 93DEFFFF   CALL MPW.00563B54
00565CC1   .8D45 A4       LEA EAX,DWORD PTR SS:
00565CC4   .BA 2C605600   MOV EDX,MPW.0056602C                     ;-sql
00565CC9   .E8 9EEEE9FF   CALL MPW.00404B6C
00565CCE   .8B55 A4       MOV EDX,DWORD PTR SS:
00565CD1   .A1 CC415800   MOV EAX,DWORD PTR DS:
00565CD6   .8B00          MOV EAX,DWORD PTR DS:
00565CD8   .8B80 48040000 MOV EAX,DWORD PTR DS:
00565CDE   .E8 CDEFE9FF   CALL MPW.00404CB0
00565CE3   .0F85 9D000000 JNZ MPW.00565D86
00565CE9   >A1 CC415800   MOV EAX,DWORD PTR DS:
00565CEE   .8B00          MOV EAX,DWORD PTR DS:
00565CF0   .C680 40040000>MOV BYTE PTR DS:,0
00565CF7   .83FB 32       CMP EBX,32
00565CFA   .0F8C DC000000 JL MPW.00565DDC
00565D00   .A1 CC415800   MOV EAX,DWORD PTR DS:
00565D05   .8B00          MOV EAX,DWORD PTR DS:
00565D07   .80B8 04040000>CMP BYTE PTR DS:,0
00565D0E   .75 42         JNZ SHORT MPW.00565D52
00565D10   .8D45 A0       LEA EAX,DWORD PTR SS:
00565D13   .50            PUSH EAX
00565D14   .A1 CC415800   MOV EAX,DWORD PTR DS:
00565D19   .8B00          MOV EAX,DWORD PTR DS:
00565D1B   .8B80 48040000 MOV EAX,DWORD PTR DS:
00565D21   .B9 03000000   MOV ECX,3



算法CALL处

00563B54/$55            PUSH EBP
00563B55|.8BEC          MOV EBP,ESP
00563B57|.51            PUSH ECX
00563B58|.B9 04000000   MOV ECX,4
00563B5D|>6A 00         /PUSH 0
00563B5F|.6A 00         |PUSH 0
00563B61|.49            |DEC ECX
00563B62|.^ 75 F9         \JNZ SHORT MPW.00563B5D
00563B64|.51            PUSH ECX
00563B65|.874D FC       XCHG DWORD PTR SS:,ECX
00563B68|.53            PUSH EBX
00563B69|.56            PUSH ESI
00563B6A|.57            PUSH EDI
00563B6B|.8BF9          MOV EDI,ECX
00563B6D|.8955 FC       MOV DWORD PTR SS:,EDX
00563B70|.8B45 FC       MOV EAX,DWORD PTR SS:             ;我的机器码=5JXEC425
00563B73|.E8 DC11EAFF   CALL MPW.00404D54
00563B78|.33C0          XOR EAX,EAX
00563B7A|.55            PUSH EBP
00563B7B|.68 153D5600   PUSH MPW.00563D15
00563B80|.64:FF30       PUSH DWORD PTR FS:
00563B83|.64:8920       MOV DWORD PTR FS:,ESP
00563B86|.8BC7          MOV EAX,EDI
00563B88|.E8 170DEAFF   CALL MPW.004048A4
00563B8D|.8B45 FC       MOV EAX,DWORD PTR SS:
00563B90|.E8 CF0FEAFF   CALL MPW.00404B64
00563B95|.8BF0          MOV ESI,EAX
00563B97|.85F6          TEST ESI,ESI
00563B99|.7E 26         JLE SHORT MPW.00563BC1
00563B9B|.BB 01000000   MOV EBX,1
00563BA0|>8D4D EC       /LEA ECX,DWORD PTR SS:
00563BA3|.8B45 FC       |MOV EAX,DWORD PTR SS:
00563BA6|.0FB64418 FF   |MOVZX EAX,BYTE PTR DS:
00563BAB|.33D2          |XOR EDX,EDX
00563BAD|.E8 DE60EAFF   |CALL MPW.00409C90
00563BB2|.8B55 EC       |MOV EDX,DWORD PTR SS:
00563BB5|.8D45 F8       |LEA EAX,DWORD PTR SS:
00563BB8|.E8 AF0FEAFF   |CALL MPW.00404B6C
00563BBD|.43            |INC EBX
00563BBE|.4E            |DEC ESI
00563BBF|.^ 75 DF         \JNZ SHORT MPW.00563BA0
00563BC1|>8B45 F8       MOV EAX,DWORD PTR SS:             ;上面是取每位机器码的ASCII并依次连接记为seax=354A584543343235
00563BC4|.E8 9B0FEAFF   CALL MPW.00404B64
00563BC9|.8BF0          MOV ESI,EAX
00563BCB|.85F6          TEST ESI,ESI
00563BCD|.7E 2C         JLE SHORT MPW.00563BFB
00563BCF|.BB 01000000   MOV EBX,1
00563BD4|>8B45 F8       /MOV EAX,DWORD PTR SS:
00563BD7|.E8 880FEAFF   |CALL MPW.00404B64
00563BDC|.2BC3          |SUB EAX,EBX
00563BDE|.8B55 F8       |MOV EDX,DWORD PTR SS:
00563BE1|.8A1402      |MOV DL,BYTE PTR DS:
00563BE4|.8D45 E8       |LEA EAX,DWORD PTR SS:
00563BE7|.E8 A00EEAFF   |CALL MPW.00404A8C
00563BEC|.8B55 E8       |MOV EDX,DWORD PTR SS:
00563BEF|.8D45 F4       |LEA EAX,DWORD PTR SS:
00563BF2|.E8 750FEAFF   |CALL MPW.00404B6C
00563BF7|.43            |INC EBX
00563BF8|.4E            |DEC ESI
00563BF9|.^ 75 D9         \JNZ SHORT MPW.00563BD4                  ;将上面数s反向排列记为s1   532343345485A453
00563BFB|>8D45 F8       LEA EAX,DWORD PTR SS:
00563BFE|.50            PUSH EAX
00563BFF|.B9 04000000   MOV ECX,4
00563C04|.BA 01000000   MOV EDX,1
00563C09|.8B45 F4       MOV EAX,DWORD PTR SS:             ;532343345485A453
00563C0C|.E8 B311EAFF   CALL MPW.00404DC4
00563C11|.8D45 F4       LEA EAX,DWORD PTR SS:
00563C14|.50            PUSH EAX
00563C15|.B9 04000000   MOV ECX,4
00563C1A|.BA 05000000   MOV EDX,5
00563C1F|.8B45 F4       MOV EAX,DWORD PTR SS:
00563C22|.E8 9D11EAFF   CALL MPW.00404DC4
00563C27|.8B45 F8       MOV EAX,DWORD PTR SS:             ;取s1的前四位 5323
00563C2A|.E8 350FEAFF   CALL MPW.00404B64
00563C2F|.83F8 04       CMP EAX,4
00563C32|.7D 2F         JGE SHORT MPW.00563C63
00563C34|.8B45 F8       MOV EAX,DWORD PTR SS:
00563C37|.E8 280FEAFF   CALL MPW.00404B64
00563C3C|.8BD8          MOV EBX,EAX
00563C3E|.83FB 03       CMP EBX,3
00563C41|.7F 20         JG SHORT MPW.00563C63
00563C43|>8D4D E4       /LEA ECX,DWORD PTR SS:
00563C46|.8BC3          |MOV EAX,EBX
00563C48|.C1E0 02       |SHL EAX,2
00563C4B|.33D2          |XOR EDX,EDX
00563C4D|.E8 3E60EAFF   |CALL MPW.00409C90
00563C52|.8B55 E4       |MOV EDX,DWORD PTR SS:
00563C55|.8D45 F8       |LEA EAX,DWORD PTR SS:
00563C58|.E8 0F0FEAFF   |CALL MPW.00404B6C
00563C5D|.43            |INC EBX
00563C5E|.83FB 04       |CMP EBX,4
00563C61|.^ 75 E0         \JNZ SHORT MPW.00563C43
00563C63|>8B45 F4       MOV EAX,DWORD PTR SS:             ;取s1的5到8位 4334
00563C66|.E8 F90EEAFF   CALL MPW.00404B64
00563C6B|.83F8 04       CMP EAX,4
00563C6E|.7D 2F         JGE SHORT MPW.00563C9F
00563C70|.8B45 F4       MOV EAX,DWORD PTR SS:
00563C73|.E8 EC0EEAFF   CALL MPW.00404B64
00563C78|.8BD8          MOV EBX,EAX
00563C7A|.83FB 03       CMP EBX,3
00563C7D|.7F 20         JG SHORT MPW.00563C9F
00563C7F|>8D4D E0       /LEA ECX,DWORD PTR SS:
00563C82|.8BC3          |MOV EAX,EBX
00563C84|.C1E0 02       |SHL EAX,2
00563C87|.33D2          |XOR EDX,EDX
00563C89|.E8 0260EAFF   |CALL MPW.00409C90
00563C8E|.8B55 E0       |MOV EDX,DWORD PTR SS:
00563C91|.8D45 F4       |LEA EAX,DWORD PTR SS:
00563C94|.E8 D30EEAFF   |CALL MPW.00404B6C
00563C99|.43            |INC EBX
00563C9A|.83FB 04       |CMP EBX,4
00563C9D|.^ 75 E0         \JNZ SHORT MPW.00563C7F
00563C9F|>8D45 F0       LEA EAX,DWORD PTR SS:
00563CA2|.BA 2C3D5600   MOV EDX,MPW.00563D2C                     ;ASCII "MPW456ei878"
00563CA7|.E8 900CEAFF   CALL MPW.0040493C
00563CAC|.8D45 DC       LEA EAX,DWORD PTR SS:
00563CAF|.50            PUSH EAX
00563CB0|.B9 04000000   MOV ECX,4
00563CB5|.BA 01000000   MOV EDX,1
00563CBA|.8B45 F0       MOV EAX,DWORD PTR SS:
00563CBD|.E8 0211EAFF   CALL MPW.00404DC4
00563CC2|.FF75 DC       PUSH DWORD PTR SS:               ;固定字符 MPW4
00563CC5|.68 403D5600   PUSH MPW.00563D40                        ;-
00563CCA|.FF75 F8       PUSH DWORD PTR SS:                ;5323
00563CCD|.8D45 D8       LEA EAX,DWORD PTR SS:
00563CD0|.50            PUSH EAX
00563CD1|.B9 05000000   MOV ECX,5
00563CD6|.BA 05000000   MOV EDX,5
00563CDB|.8B45 F0       MOV EAX,DWORD PTR SS:
00563CDE|.E8 E110EAFF   CALL MPW.00404DC4
00563CE3|.FF75 D8       PUSH DWORD PTR SS:               ;固定字符 56ei8
00563CE6|.68 403D5600   PUSH MPW.00563D40                        ;-
00563CEB|.FF75 F4       PUSH DWORD PTR SS:                ;4334
00563CEE|.8BC7          MOV EAX,EDI
00563CF0|.BA 06000000   MOV EDX,6
00563CF5|.E8 2A0FEAFF   CALL MPW.00404C24
00563CFA|.33C0          XOR EAX,EAX
00563CFC|.5A            POP EDX
00563CFD|.59            POP ECX
00563CFE|.59            POP ECX
00563CFF|.64:8910       MOV DWORD PTR FS:,EDX
00563D02|.68 1C3D5600   PUSH MPW.00563D1C
00563D07|>8D45 D8       LEA EAX,DWORD PTR SS:
00563D0A|.BA 0A000000   MOV EDX,0A
00563D0F|.E8 B40BEAFF   CALL MPW.004048C8
00563D14\.C3            RETN
00563D15   .^ E9 AE04EAFF   JMP MPW.004041C8
00563D1A   .^ EB EB         JMP SHORT MPW.00563D07
00563D1C   .5F            POP EDI
00563D1D   .5E            POP ESI
00563D1E   .5B            POP EBX
00563D1F   .8BE5          MOV ESP,EBP
00563D21   .5D            POP EBP                                  ;将上面压入的字符依次连接 得到注册码MPW4-532356ei8-4334
00563D22   .C3            RETN


--------------------------------------------------------------------------------
【经验总结】
1.依次取机器码的ASCII 并顺次连接 记为s
2.将s反向排列记为s1
3.取s1前4位记为@ 取s1的5到8位记为$
4.取固定字符 MPW456ei8
5.将以上信息按这样排列   MPW4-@56ei8-$ 这就是注册码

--------------------------------------------------------------------------------
【版权声明】: 谢谢 fonge大哥的热心指导 没有你 我也许离写出算法还很远 再次感谢 祝好人一生平安

                                                       2007年05月24日 23:07:36

[ 本帖最后由 千里之外 于 2007-5-24 23:17 编辑 ]

binbinbin 发表于 2007-5-25 08:12:59

支持下自己动手。/:08

pw2000 发表于 2007-5-25 11:30:43

对照着学习。

775825866 发表于 2007-5-25 19:02:02

学习下,谢谢了啊·!

yosen2001 发表于 2007-5-27 21:03:21

00563BC1|>8B45 F8       MOV EAX,DWORD PTR SS:             ;上面是取每位机器码的ASCII并依次连接记为seax=354A584543343235

这句不是很明白,根据LZ的意思,

5JXEC425转换成ASCII应该是
53 74 88 69 67 52 50 53

eax=354A584543343235
你这个值是哪里来的??

deletex 发表于 2007-5-27 21:18:14

回复 #5 yosen2001 的帖子

eax=354A584543343235 --16进制
53 74 88 69 67 52 50 53 --10进制

mnop 发表于 2007-5-30 13:03:45

下一学习下,谢谢.

yingfeng 发表于 2007-6-5 16:28:09

对照学习了一下,呵呵,顶

bhcjl 发表于 2007-6-9 08:14:18

学习学习.

kangroo 发表于 2007-6-9 09:24:54

LZ可以把后面的注释说明写的更详细些,那样会有更多人看的,希望你做的更好/:09
页: [1]
查看完整版本: 菜鸟算法3