阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
查看: 1944|回复: 3

[转帖] 里诺会员管理软件(单机版)PJ分析及算法zcj

[复制链接]
  • TA的每日心情
    擦汗
    2017-5-27 09:36
  • 签到天数: 35 天

    [LV.5]常住居民I

    发表于 2009-2-12 10:09:05 | 显示全部楼层 |阅读模式
    转贴过来的。(感觉不错大家一起学习下)
    【文章标题】里诺会员管理软件(单机版)PJ分析及算法zcj
    【软件名称】里诺会员管理软件(单机版)
    【PJ作者】萧萧黄叶(不是本论坛的)
    【下载地址】http://www.onlinedown.net/soft/26837.htm
    【加壳方式】Borland Delphi 6.0 - 7.0
    【使用工具】OllyICE,PEiD
    【软件大小】6041KB
    【软件类别】国产软件/办公软件
    【软件授权】共享版
    【软件语言】简体中文
    【运行环境】Win9x/Me/NT/2000/XP/2003
    【更新时间】2009-2-11 11:02:39
    【软件详细信息】
      

        里诺会员管理软件是一套功能强大的会员管理软件,软件将会员消费,会员基本信息,以及各种查询统计等紧密结合起来,操作简单方便,界面美观大方,能满足如销售,餐饮,美容,服务等行业进行会员制管理,会员卡管理,会员积分管理,会员消费管理的需求,科学的管理方法会给您带来无限的效益,里诺会员管理软件(会员卡管理软件)是您明智的选择。
    软件具有以下功能特点:
    1、强大的会员管理功能,支持折扣卡、储值卡和计次卡;
    2、储值卡和计次卡可设卡密码;
    3、支持连接磁卡读/写器等硬件;
    4、会员积分管理,并且支持会员积分兑换成礼品(积分自动减少);
    5、用户权限支持多用户使用,各个用户根据权限使用相应的功能模块;
    6、支持从外部的Excel文件导入会员和商品资料,减少期初的录入工作量;
    7、各种数据和报表可以方便转换为Excel数据格式导出;
    8、各种报表支持自定义;
    9、数据备份/恢复功能帮您以备不测。
    里诺会员管理软件适合美容美发、健身等场所管理会员使用。网络版可以多台电脑联网使用,数据共享,同时操作等各项功能。


    【详细过程】
    运行程序发现提示要注册。
    第一步,探壳。
    PEiD:Borland Delphi 6.0 - 7.0
    第二步,用OD分析。
    载入程序后停在下面:
    007480B0 > $  55            PUSH EBP
    007480B1   .  8BEC          MOV EBP,ESP

    F9运行,注册,我用123456789来注册,在确定之前下万能断点,确定后程序被断在下面:
    77D33566    F3:A5           REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
    77D33568    8BC8            MOV ECX,EAX

    清除断点,不断的CTRL+F9,一直返回到这里:
    0065E34E  |.  85C0          TEST EAX,EAX
    0065E350  |.  75 29         JNZ SHORT member.0065E37B

    向上在0065E320  /.  55            PUSH EBP

    下断点,F9后再次确定,程序断在此处:
    0065E320  /.  55            PUSH EBP                                 ;  再次断在这里,向下F8单步
    0065E321  |.  8BEC          MOV EBP,ESP
    0065E323  |.  6A 00         PUSH 0
    0065E325  |.  6A 00         PUSH 0
    0065E327  |.  53            PUSH EBX
    0065E328  |.  8BD8          MOV EBX,EAX
    0065E32A  |.  33C0          XOR EAX,EAX
    0065E32C  |.  55            PUSH EBP
    0065E32D  |.  68 E0E36500   PUSH member.0065E3E0
    0065E332  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    0065E335  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    0065E338  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
    0065E33B  |.  8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
    0065E341  |.  E8 9EE8E2FF   CALL member.0048CBE4                     ;  计算用户名的位数,我的用户名位数为8
    0065E346  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  用户名,我这里为 "E1LAJYYE"
    0065E349  |.  E8 4E6CDAFF   CALL member.00404F9C
    0065E34E  |.  85C0          TEST EAX,EAX                             ;  比较看看用户名是否为空。
    0065E350  |.  75 29         JNZ SHORT member.0065E37B                ;  有用户名就跳走
    0065E352  |.  6A 40         PUSH 40
    0065E354  |.  68 ECE36500   PUSH member.0065E3EC
    0065E359  |.  68 F4E36500   PUSH member.0065E3F4
    0065E35E  |.  8BC3          MOV EAX,EBX
    0065E360  |.  E8 2B53E3FF   CALL member.00493690
    0065E365  |.  50            PUSH EAX                                 ; |hOwner
    0065E366  |.  E8 15A1DAFF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
    0065E36B  |.  8B83 00030000 MOV EAX,DWORD PTR DS:[EBX+300]
    0065E371  |.  8B10          MOV EDX,DWORD PTR DS:[EAX]
    0065E373  |.  FF92 C4000000 CALL DWORD PTR DS:[EDX+C4]
    0065E379  |.  EB 4A         JMP SHORT member.0065E3C5
    0065E37B  |>  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]
    0065E37E  |.  8B83 04030000 MOV EAX,DWORD PTR DS:[EBX+304]
    0065E384  |.  E8 5BE8E2FF   CALL member.0048CBE4                     ;  取得注册码的位数,我的注册码位数为9
    0065E389  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]             ;  注册码,我这里当然为123456789
    0065E38C  |.  E8 0B6CDAFF   CALL member.00404F9C
    0065E391  |.  85C0          TEST EAX,EAX                             ;  比较看看注册码是否为空。
    0065E393  |.  75 29         JNZ SHORT member.0065E3BE
    0065E395  |.  6A 40         PUSH 40
    0065E397  |.  68 ECE36500   PUSH member.0065E3EC
    0065E39C  |.  68 04E46500   PUSH member.0065E404
    0065E3A1  |.  8BC3          MOV EAX,EBX
    0065E3A3  |.  E8 E852E3FF   CALL member.00493690
    0065E3A8  |.  50            PUSH EAX                                 ; |hOwner
    0065E3A9  |.  E8 D2A0DAFF   CALL <JMP.&user32.MessageBoxA>           ; \MessageBoxA
    0065E3AE  |.  8B83 04030000 MOV EAX,DWORD PTR DS:[EBX+304]
    0065E3B4  |.  8B10          MOV EDX,DWORD PTR DS:[EAX]
    0065E3B6  |.  FF92 C4000000 CALL DWORD PTR DS:[EDX+C4]
    0065E3BC  |.  EB 07         JMP SHORT member.0065E3C5
    0065E3BE  |>  8BC3          MOV EAX,EBX
    0065E3C0  |.  E8 5BFBFFFF   CALL member.0065DF20                     ;  这里要跟进了。
    0065E3C5  |>  33C0          XOR EAX,EAX

    跟进0065E3C0 CALL:
    0065DF20   $  55            PUSH EBP
    0065DF21   .  8BEC          MOV EBP,ESP
    0065DF23   .  33C9          XOR ECX,ECX
    0065DF25   .  51            PUSH ECX
    0065DF26   .  51            PUSH ECX
    0065DF27   .  51            PUSH ECX
    0065DF28   .  51            PUSH ECX
    0065DF29   .  51            PUSH ECX
    0065DF2A   .  53            PUSH EBX
    0065DF2B   .  56            PUSH ESI
    0065DF2C   .  57            PUSH EDI
    0065DF2D   .  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
    0065DF30   .  33C0          XOR EAX,EAX
    0065DF32   .  55            PUSH EBP
    0065DF33   .  68 71E06500   PUSH member.0065E071
    0065DF38   .  64:FF30       PUSH DWORD PTR FS:[EAX]
    0065DF3B   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
    0065DF3E   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
    0065DF41   .  E8 AE020000   CALL member.0065E1F4                     ;  关键CALL,一定要跟进。
    0065DF46   .  84C0          TEST AL,AL
    0065DF48   .  0F84 DB000000 JE member.0065E029                       ;  关键跳,一跳就死。
    0065DF4E   .  33C0          XOR EAX,EAX

    0065DF41  CALL member.0065E1F4继续跟进:
    0065E1F4  /$  55            PUSH EBP
    0065E1F5  |.  8BEC          MOV EBP,ESP
    0065E1F7  |.  33C9          XOR ECX,ECX
    0065E1F9  |.  51            PUSH ECX
    0065E1FA  |.  51            PUSH ECX
    0065E1FB  |.  51            PUSH ECX
    0065E1FC  |.  51            PUSH ECX
    0065E1FD  |.  51            PUSH ECX
    0065E1FE  |.  53            PUSH EBX
    0065E1FF  |.  56            PUSH ESI
    0065E200  |.  8BF0          MOV ESI,EAX
    0065E202  |.  33C0          XOR EAX,EAX
    0065E204  |.  55            PUSH EBP
    0065E205  |.  68 AFE26500   PUSH member.0065E2AF
    0065E20A  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
    0065E20D  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
    0065E210  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
    0065E213  |.  8B86 04030000 MOV EAX,DWORD PTR DS:[ESI+304]
    0065E219  |.  E8 C6E9E2FF   CALL member.0048CBE4
    0065E21E  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]             ;  将注册码移到EAX
    0065E221  |.  50            PUSH EAX
    0065E222  |.  8D55 F4       LEA EDX,DWORD PTR SS:[EBP-C]
    0065E225  |.  8B86 00030000 MOV EAX,DWORD PTR DS:[ESI+300]
    0065E22B  |.  E8 B4E9E2FF   CALL member.0048CBE4
    0065E230  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]             ;  将用户名移到EDX
    0065E233  |.  8D4D F8       LEA ECX,DWORD PTR SS:[EBP-8]
    0065E236  |.  8BC6          MOV EAX,ESI
    0065E238  |.  E8 F3FAFFFF   CALL member.0065DD30                     ;  这里是计算过程,跟进了。
    0065E23D  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8]

    0065E238 CALL member.0065DD30跟进:
    0065DD30  /$  55            PUSH EBP
    0065DD31  |.  8BEC          MOV EBP,ESP

    省略一部分,F8单步:
    0065DD77  |.  BB 01000000   MOV EBX,1
    0065DD7C  |>  8D4D EC       /LEA ECX,DWORD PTR SS:[EBP-14]
    0065DD7F  |.  8B45 FC       |MOV EAX,DWORD PTR SS:[EBP-4]
    0065DD82  |.  0FB64418 FF   |MOVZX EAX,BYTE PTR DS:[EAX+EBX-1]       ;  按序取取用户名的每一位字符的ASCII码。
    0065DD87  |.  33D2          |XOR EDX,EDX
    0065DD89  |.  E8 E6C8DAFF   |CALL member.0040A674
    0065DD8E  |.  8B55 EC       |MOV EDX,DWORD PTR SS:[EBP-14]
    0065DD91  |.  8D45 F8       |LEA EAX,DWORD PTR SS:[EBP-8]
    0065DD94  |.  E8 0B72DAFF   |CALL member.00404FA4
    0065DD99  |.  43            |INC EBX
    0065DD9A  |.  4E            |DEC ESI
    0065DD9B  |.^ 75 DF         \JNZ SHORT member.0065DD7C               ;  最终将用户名字符的每一位的ASCII码连起来。我这里为"45314C414A595945"
    0065DD9D  |>  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0065DDA0  |.  E8 F771DAFF   CALL member.00404F9C
    0065DDA5  |.  8BF0          MOV ESI,EAX
    0065DDA7  |.  85F6          TEST ESI,ESI
    0065DDA9  |.  7E 2C         JLE SHORT member.0065DDD7
    0065DDAB  |.  BB 01000000   MOV EBX,1
    0065DDB0  |>  8B45 F8       /MOV EAX,DWORD PTR SS:[EBP-8]
    0065DDB3  |.  E8 E471DAFF   |CALL member.00404F9C
    0065DDB8  |.  2BC3          |SUB EAX,EBX
    0065DDBA  |.  8B55 F8       |MOV EDX,DWORD PTR SS:[EBP-8]
    0065DDBD  |.  8A1402        |MOV DL,BYTE PTR DS:[EDX+EAX]
    0065DDC0  |.  8D45 E8       |LEA EAX,DWORD PTR SS:[EBP-18]
    0065DDC3  |.  E8 EC70DAFF   |CALL member.00404EB4
    0065DDC8  |.  8B55 E8       |MOV EDX,DWORD PTR SS:[EBP-18]
    0065DDCB  |.  8D45 F4       |LEA EAX,DWORD PTR SS:[EBP-C]
    0065DDCE  |.  E8 D171DAFF   |CALL member.00404FA4
    0065DDD3  |.  43            |INC EBX
    0065DDD4  |.  4E            |DEC ESI
    0065DDD5  |.^ 75 D9         \JNZ SHORT member.0065DDB0               ;  将刚才的ASCII码串倒序。我的为: "549595A414C41354"
    0065DDD7  |>  8D45 F8       LEA EAX,DWORD PTR SS:[EBP-8]
    0065DDDA  |.  50            PUSH EAX
    0065DDDB  |.  B9 04000000   MOV ECX,4
    0065DDE0  |.  BA 01000000   MOV EDX,1
    0065DDE5  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    0065DDE8  |.  E8 0F74DAFF   CALL member.004051FC
    0065DDED  |.  8D45 F4       LEA EAX,DWORD PTR SS:[EBP-C]
    0065DDF0  |.  50            PUSH EAX
    0065DDF1  |.  B9 04000000   MOV ECX,4
    0065DDF6  |.  BA 05000000   MOV EDX,5
    0065DDFB  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    0065DDFE  |.  E8 F973DAFF   CALL member.004051FC                     ;  取倒序后的字串的前四位及第二个四位
    0065DE03  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0065DE06  |.  E8 9171DAFF   CALL member.00404F9C
    0065DE0B  |.  83F8 04       CMP EAX,4
    0065DE0E  |.  7D 2F         JGE SHORT member.0065DE3F
    0065DE10  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
    0065DE13  |.  E8 8471DAFF   CALL member.00404F9C
    0065DE18  |.  8BD8          MOV EBX,EAX
    0065DE1A  |.  83FB 03       CMP EBX,3
    0065DE1D  |.  7F 20         JG SHORT member.0065DE3F
    0065DE1F  |>  8D4D E4       /LEA ECX,DWORD PTR SS:[EBP-1C]
    0065DE22  |.  8BC3          |MOV EAX,EBX
    0065DE24  |.  C1E0 02       |SHL EAX,2
    0065DE27  |.  33D2          |XOR EDX,EDX
    0065DE29  |.  E8 46C8DAFF   |CALL member.0040A674
    0065DE2E  |.  8B55 E4       |MOV EDX,DWORD PTR SS:[EBP-1C]
    0065DE31  |.  8D45 F8       |LEA EAX,DWORD PTR SS:[EBP-8]
    0065DE34  |.  E8 6B71DAFF   |CALL member.00404FA4
    0065DE39  |.  43            |INC EBX
    0065DE3A  |.  83FB 04       |CMP EBX,4
    0065DE3D  |.^ 75 E0         \JNZ SHORT member.0065DE1F
    0065DE3F  |>  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    0065DE42  |.  E8 5571DAFF   CALL member.00404F9C
    0065DE47  |.  83F8 04       CMP EAX,4
    0065DE4A  |.  7D 2F         JGE SHORT member.0065DE7B
    0065DE4C  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]
    0065DE4F  |.  E8 4871DAFF   CALL member.00404F9C
    0065DE54  |.  8BD8          MOV EBX,EAX
    0065DE56  |.  83FB 03       CMP EBX,3
    0065DE59  |.  7F 20         JG SHORT member.0065DE7B
    0065DE5B  |>  8D4D E0       /LEA ECX,DWORD PTR SS:[EBP-20]
    0065DE5E  |.  8BC3          |MOV EAX,EBX
    0065DE60  |.  C1E0 02       |SHL EAX,2
    0065DE63  |.  33D2          |XOR EDX,EDX
    0065DE65  |.  E8 0AC8DAFF   |CALL member.0040A674
    0065DE6A  |.  8B55 E0       |MOV EDX,DWORD PTR SS:[EBP-20]
    0065DE6D  |.  8D45 F4       |LEA EAX,DWORD PTR SS:[EBP-C]
    0065DE70  |.  E8 2F71DAFF   |CALL member.00404FA4
    0065DE75  |.  43            |INC EBX
    0065DE76  |.  83FB 04       |CMP EBX,4
    0065DE79  |.^ 75 E0         \JNZ SHORT member.0065DE5B
    0065DE7B  |>  8D45 F0       LEA EAX,DWORD PTR SS:[EBP-10]
    0065DE7E  |.  BA 08DF6500   MOV EDX,member.0065DF08                  ;  ASCII "mem45erpe"
    0065DE83  |.  E8 DC6EDAFF   CALL member.00404D64                     ;  取固定码 "mem45erpe"
    0065DE88  |.  8D45 DC       LEA EAX,DWORD PTR SS:[EBP-24]
    0065DE8B  |.  50            PUSH EAX
    0065DE8C  |.  B9 04000000   MOV ECX,4
    0065DE91  |.  BA 01000000   MOV EDX,1
    0065DE96  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
    0065DE99  |.  E8 5E73DAFF   CALL member.004051FC                     ;  取固定码 前四位"mem4"
    0065DE9E  |.  FF75 DC       PUSH DWORD PTR SS:[EBP-24]
    0065DEA1  |.  68 1CDF6500   PUSH member.0065DF1C
    0065DEA6  |.  FF75 F8       PUSH DWORD PTR SS:[EBP-8]
    0065DEA9  |.  8D45 D8       LEA EAX,DWORD PTR SS:[EBP-28]
    0065DEAC  |.  50            PUSH EAX
    0065DEAD  |.  B9 05000000   MOV ECX,5
    0065DEB2  |.  BA 05000000   MOV EDX,5
    0065DEB7  |.  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
    0065DEBA  |.  E8 3D73DAFF   CALL member.004051FC                     ;  取固定码的剩余部分
    0065DEBF  |.  FF75 D8       PUSH DWORD PTR SS:[EBP-28]
    0065DEC2  |.  68 1CDF6500   PUSH member.0065DF1C
    0065DEC7  |.  FF75 F4       PUSH DWORD PTR SS:[EBP-C]
    0065DECA  |.  8BC7          MOV EAX,EDI
    0065DECC  |.  BA 06000000   MOV EDX,6
    0065DED1  |.  E8 8671DAFF   CALL member.0040505C                     ;  将四部分的KEY连起来就是正确的注册码。
    0065DED6  |.  33C0          XOR EAX,EAX


    【算法过程】取固定码 "mem45erpe"前四位作为注册码的第一部分,并用“-”连接下一部分,剩余部分作为第三部分,仍用“-”连接下一部分。
    计算用户名各字符的ASCII码,并倒序,前四位作为第二部分注册码,第二个四位作为第四部分注册码。
    四个相连就是正确的注册码了。

    【总结】一、软件未加壳,容易分析;二、明码对比,容易暴破和做成内存zcj;三、算法简单,并使用固定码。

    【PJ声明】本文只是出于教学目的,请勿用于商业用途,否则后果自负。软件版权归作者所有。

    附:虽然软件更新了,但算法一样。

    [ 本帖最后由 戥锌№辰 于 2009-2-12 10:11 编辑 ]
    A.jpg

    里诺会员管理软件(单机版) V2[1].50注册机.rar

    661 Bytes, 阅读权限: 30, 下载次数: 10

    评分

    参与人数 1阳光币 +2 收起 理由
    chendaihua + 2 转帖有功奖励

    查看全部评分

    楼主热帖
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    无聊
    2015-5-13 09:04
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    发表于 2009-2-13 08:38:00 | 显示全部楼层
    呵呵。光有zcj又有什么用,暗桩一大堆。
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2017-3-25 12:10
  • 签到天数: 137 天

    [LV.7]常住居民III

    发表于 2011-11-12 18:46:30 | 显示全部楼层
    对这个不太懂行哟,看看啥情况
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2014-10-1 17:28
  • 签到天数: 710 天

    [LV.9]以坛为家II

    发表于 2011-11-17 13:38:20 | 显示全部楼层
    呵呵。光有zcj又有什么用,暗桩一大堆。
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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