飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3533|回复: 9

[原创] 菜鸟算法3

[复制链接]

该用户从未签到

发表于 2007-5-24 23:07:23 | 显示全部楼层 |阅读模式
【文章标题】: 小巧名片王 V2.0算法分析
【文章作者】: 千里之外
【作者邮箱】: 506398911@qq.com
【作者主页】: 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/viewthr ... &extra=page%3D1 已经发过相同的帖子 但是本分析是有本人独立完成  并没有抄袭  lzq1973 作者的思路 特此声明
  
大家好 我是千里之外 在这里依然谢谢fonge大哥的热心指导  是你给我指明了学习的方向 呵呵 我会继续努力的
   
  搜索  您使用的是试用版,请联系购买正版软件,联系邮箱vtsoft@21cn.com!  可以很快的来到这里
  
  00565C69   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
  00565C6B   .  C680 04040000>MOV BYTE PTR DS:[EAX+404],1
  00565C72   .  8D4D A8       LEA ECX,DWORD PTR SS:[EBP-58]
  00565C75   .  A1 CC415800   MOV EAX,DWORD PTR DS:[5841CC]
  00565C7A   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
  00565C7C   .  8B90 44040000 MOV EDX,DWORD PTR DS:[EAX+444]
  00565C82   .  A1 143F5800   MOV EAX,DWORD PTR DS:[583F14]
  00565C87   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
  00565C89   .  E8 C6DEFFFF   CALL MPW.00563B54                        ;  算法CALL
  00565C8E   .  8B55 A8       MOV EDX,DWORD PTR SS:[EBP-58]
  00565C91   .  A1 CC415800   MOV EAX,DWORD PTR DS:[5841CC]
  00565C96   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
  00565C98   .  8B80 48040000 MOV EAX,DWORD PTR DS:[EAX+448]
  00565C9E   .  E8 0DF0E9FF   CALL MPW.00404CB0
  00565CA3   .  74 44         JE SHORT MPW.00565CE9
  00565CA5   .  8D4D A4       LEA ECX,DWORD PTR SS:[EBP-5C]
  00565CA8   .  A1 CC415800   MOV EAX,DWORD PTR DS:[5841CC]
  00565CAD   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
  00565CAF   .  8B90 44040000 MOV EDX,DWORD PTR DS:[EAX+444]
  00565CB5   .  A1 143F5800   MOV EAX,DWORD PTR DS:[583F14]
  00565CBA   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
  00565CBC   .  E8 93DEFFFF   CALL MPW.00563B54
  00565CC1   .  8D45 A4       LEA EAX,DWORD PTR SS:[EBP-5C]
  00565CC4   .  BA 2C605600   MOV EDX,MPW.0056602C                     ;  -sql
  00565CC9   .  E8 9EEEE9FF   CALL MPW.00404B6C
  00565CCE   .  8B55 A4       MOV EDX,DWORD PTR SS:[EBP-5C]
  00565CD1   .  A1 CC415800   MOV EAX,DWORD PTR DS:[5841CC]
  00565CD6   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
  00565CD8   .  8B80 48040000 MOV EAX,DWORD PTR DS:[EAX+448]
  00565CDE   .  E8 CDEFE9FF   CALL MPW.00404CB0
  00565CE3   .  0F85 9D000000 JNZ MPW.00565D86
  00565CE9   >  A1 CC415800   MOV EAX,DWORD PTR DS:[5841CC]
  00565CEE   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
  00565CF0   .  C680 40040000>MOV BYTE PTR DS:[EAX+440],0
  00565CF7   .  83FB 32       CMP EBX,32
  00565CFA   .  0F8C DC000000 JL MPW.00565DDC
  00565D00   .  A1 CC415800   MOV EAX,DWORD PTR DS:[5841CC]
  00565D05   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
  00565D07   .  80B8 04040000>CMP BYTE PTR DS:[EAX+404],0
  00565D0E   .  75 42         JNZ SHORT MPW.00565D52
  00565D10   .  8D45 A0       LEA EAX,DWORD PTR SS:[EBP-60]
  00565D13   .  50            PUSH EAX
  00565D14   .  A1 CC415800   MOV EAX,DWORD PTR DS:[5841CC]
  00565D19   .  8B00          MOV EAX,DWORD PTR DS:[EAX]
  00565D1B   .  8B80 48040000 MOV EAX,DWORD PTR DS:[EAX+448]
  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:[EBP-4],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:[EBP-4],EDX
  00563B70  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  我的机器码=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:[EAX]
  00563B83  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
  00563B86  |.  8BC7          MOV EAX,EDI
  00563B88  |.  E8 170DEAFF   CALL MPW.004048A4
  00563B8D  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
  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:[EBP-14]
  00563BA3  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]
  00563BA6  |.  0FB64418 FF   |MOVZX EAX,BYTE PTR DS:[EAX+EBX-1]
  00563BAB  |.  33D2          |XOR EDX,EDX
  00563BAD  |.  E8 DE60EAFF   |CALL MPW.00409C90
  00563BB2  |.  8B55 EC       |MOV EDX,DWORD PTR SS:[EBP-14]
  00563BB5  |.  8D45 F8       |LEA EAX,DWORD PTR SS:[EBP-8]
  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:[EBP-8]             ;  上面是取每位机器码的ASCII并依次连接记为s  eax=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:[EBP-8]
  00563BD7  |.  E8 880FEAFF   |CALL MPW.00404B64
  00563BDC  |.  2BC3          |SUB EAX,EBX
  00563BDE  |.  8B55 F8       |MOV EDX,DWORD PTR SS:[EBP-8]
  00563BE1  |.  8A1402        |MOV DL,BYTE PTR DS:[EDX+EAX]
  00563BE4  |.  8D45 E8       |LEA EAX,DWORD PTR SS:[EBP-18]
  00563BE7  |.  E8 A00EEAFF   |CALL MPW.00404A8C
  00563BEC  |.  8B55 E8       |MOV EDX,DWORD PTR SS:[EBP-18]
  00563BEF  |.  8D45 F4       |LEA EAX,DWORD PTR SS:[EBP-C]
  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:[EBP-8]
  00563BFE  |.  50            PUSH EAX
  00563BFF  |.  B9 04000000   MOV ECX,4
  00563C04  |.  BA 01000000   MOV EDX,1
  00563C09  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]             ;  532343345485A453
  00563C0C  |.  E8 B311EAFF   CALL MPW.00404DC4
  00563C11  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
  00563C14  |.  50            PUSH EAX
  00563C15  |.  B9 04000000   MOV ECX,4
  00563C1A  |.  BA 05000000   MOV EDX,5
  00563C1F  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
  00563C22  |.  E8 9D11EAFF   CALL MPW.00404DC4
  00563C27  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  取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:[EBP-8]
  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:[EBP-1C]
  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:[EBP-1C]
  00563C55  |.  8D45 F8       |LEA EAX,DWORD PTR SS:[EBP-8]
  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:[EBP-C]             ;  取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:[EBP-C]
  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:[EBP-20]
  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:[EBP-20]
  00563C91  |.  8D45 F4       |LEA EAX,DWORD PTR SS:[EBP-C]
  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:[EBP-10]
  00563CA2  |.  BA 2C3D5600   MOV EDX,MPW.00563D2C                     ;  ASCII "MPW456ei878"
  00563CA7  |.  E8 900CEAFF   CALL MPW.0040493C
  00563CAC  |.  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
  00563CAF  |.  50            PUSH EAX
  00563CB0  |.  B9 04000000   MOV ECX,4
  00563CB5  |.  BA 01000000   MOV EDX,1
  00563CBA  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
  00563CBD  |.  E8 0211EAFF   CALL MPW.00404DC4
  00563CC2  |.  FF75 DC       PUSH DWORD PTR SS:[EBP-24]               ;  固定字符 MPW4
  00563CC5  |.  68 403D5600   PUSH MPW.00563D40                        ;  -
  00563CCA  |.  FF75 F8       PUSH DWORD PTR SS:[EBP-8]                ;  5323
  00563CCD  |.  8D45 D8       LEA EAX,DWORD PTR SS:[EBP-28]
  00563CD0  |.  50            PUSH EAX
  00563CD1  |.  B9 05000000   MOV ECX,5
  00563CD6  |.  BA 05000000   MOV EDX,5
  00563CDB  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
  00563CDE  |.  E8 E110EAFF   CALL MPW.00404DC4
  00563CE3  |.  FF75 D8       PUSH DWORD PTR SS:[EBP-28]               ;  固定字符 56ei8
  00563CE6  |.  68 403D5600   PUSH MPW.00563D40                        ;  -
  00563CEB  |.  FF75 F4       PUSH DWORD PTR SS:[EBP-C]                ;  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:[EAX],EDX
  00563D02  |.  68 1C3D5600   PUSH MPW.00563D1C
  00563D07  |>  8D45 D8       LEA EAX,DWORD PTR SS:[EBP-28]
  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.取固定字符 MPW4  56ei8
  5.将以上信息按这样排列   MPW4-@56ei8-$ 这就是注册码
  
--------------------------------------------------------------------------------
【版权声明】: 谢谢 fonge大哥的热心指导 没有你 我也许离写出算法还很远 再次感谢 祝好人一生平安

                                                       2007年05月24日 23:07:36

[ 本帖最后由 千里之外 于 2007-5-24 23:17 编辑 ]
PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2017-6-11 12:16
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2007-5-25 08:12:59 | 显示全部楼层
    支持下自己动手。/:08
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-5-25 11:30:43 | 显示全部楼层
    对照着学习。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-5-25 19:02:02 | 显示全部楼层
    学习下,谢谢了啊·!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-2-27 15:18
  • 签到天数: 205 天

    [LV.7]常住居民III

    发表于 2007-5-27 21:03:21 | 显示全部楼层
    00563BC1  |>  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  上面是取每位机器码的ASCII并依次连接记为s  eax=354A584543343235

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

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

    eax=354A584543343235
    你这个值是哪里来的??
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-5-27 21:18:14 | 显示全部楼层

    回复 #5 yosen2001 的帖子

    eax=354A584543343235 --16进制
    53 74 88 69 67 52 50 53 --10进制
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-5-30 13:03:45 | 显示全部楼层
    下一学习下,谢谢.
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-2-17 18:27
  • 签到天数: 33 天

    [LV.5]常住居民I

    发表于 2007-6-5 16:28:09 | 显示全部楼层
    对照学习了一下,呵呵,顶
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-5-4 22:08
  • 签到天数: 114 天

    [LV.6]常住居民II

    发表于 2007-6-9 08:14:18 | 显示全部楼层
    学习学习.
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-6-9 09:24:54 | 显示全部楼层
    LZ可以把后面的注释说明写的更详细些,那样会有更多人看的,希望你做的更好/:09
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表