飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2308|回复: 2

申请加入PYG破文二

[复制链接]
  • TA的每日心情
    无聊
    2020-4-10 17:02
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2005-8-15 21:06:37 | 显示全部楼层 |阅读模式
    【原创】营养烹调大师 V0.99 Build 102 简单脱壳+算法分析

         日期:2005年8月13日   破解人:冷血书生[OCN]
    ———————————————————————————————————————————


    【软件名称】:营养烹调大师   软件版本:0.99
    【软件大小】:1197 KB
    【下载地址】:http://www.skycn.com/soft/7244.html
    【软件简介】:营养烹调大师是一款集膳食营养与烹调技术于一体的家庭日常饮食管理软件。它能够根据家庭成员的营养素需求量及市场上的烹饪原料(或定制的菜肴)快速生成符合家庭需要的一天或多天食谱,并能迅速计算出营养素实际摄入量、成本、原料采购量等实用数据,是指导家庭科学膳食的好助手。内置的多功能的食谱编辑器可以让你方便地对食谱文件进行修改和调整,轻松打造出完全符合自己意愿的"梦幻食谱"。
    【软件限制】:注册码限制
    【破解声明】:初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
    【破解工具】:

    ———————————————————————————————————————————
     
    【破解过程】:

       首先用PEID检测,查到UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo加壳!好,前两天刚学了手脱,现在就正好试试!下面OD载入程序:


    载入之后,F8一下来到这里
    005508E1    BE 00604D00    mov esi,Cookmast.004D6000


    看看这个时候惊现了ESP,0012FFA4,我们就下硬件断点。

    F9运行一下,F8几下就到了 004F69A8    55             push ebp

    这个就是传说中的OEP了!好,就在这里DUMP下来啦!再次打开程序,发现可以打开,没什么失败啊,要修复啊之类的了,真棒!

    再用PEID查一下,发现软件是用Borland Delphi 6.0 - 7.0编写的!


       好了,再次开工!OD载入脱壳后的程序,右键,查找字符,找到注册的错误提示!

    试炼信息:

    机器码:SP791614707
    注册码:123654789


       找到错误提示,双击,往上翻,下断!



    004EE1D0    55             push ebp                                        ; 下断
    004EE1D1    68 9CE24E00    push unpackCo.004EE29C
    004EE1D6    64:FF30        push dword ptr fs:[eax]
    004EE1D9    64:8920        mov dword ptr fs:[eax],esp
    004EE1DC    8D85 80FEFFFF  lea eax,dword ptr ss:[ebp-180]
    004EE1E2    50             push eax
    004EE1E3    8D95 7CFEFFFF  lea edx,dword ptr ss:[ebp-184]
    004EE1E9    8B83 F8020000  mov eax,dword ptr ds:[ebx+2F8]
    004EE1EF    E8 C4A3F5FF    call unpackCo.004485B8
    004EE1F4    8B85 7CFEFFFF  mov eax,dword ptr ss:[ebp-184]
    004EE1FA    E8 196DF1FF    call unpackCo.00404F18                          ; EAX看到机器码
    004EE1FF    83E8 02        sub eax,2                                       ; EAX-2
    004EE202    50             push eax
    004EE203    8D95 78FEFFFF  lea edx,dword ptr ss:[ebp-188]
    004EE209    8B83 F8020000  mov eax,dword ptr ds:[ebx+2F8]
    004EE20F    E8 A4A3F5FF    call unpackCo.004485B8
    004EE214    8B85 78FEFFFF  mov eax,dword ptr ss:[ebp-188]
    004EE21A    BA 03000000    mov edx,3                                       ; 取机器码的第三位开始到最后一位
    004EE21F    59             pop ecx
    004EE220    E8 4B6FF1FF    call unpackCo.00405170
    004EE225    8B85 80FEFFFF  mov eax,dword ptr ss:[ebp-180]
    004EE22B    E8 ACB2F1FF    call unpackCo.004094DC                          ; 将第三位开始到最后的机器码转成16进制
    004EE230    8BF0           mov esi,eax                                     ; EAX送ESI
    004EE232    8BC6           mov eax,esi                                     ; ESI送EAX
    004EE234    B9 0D000000    mov ecx,0D                                      ; 0D送进ECX
    004EE239    99             cdq
    004EE23A    F7F9           idiv ecx                                        ; EAX=EAX/ECX
    004EE23C    05 233E2400    add eax,243E23                                  ; EAX+243E23
    004EE241    8BF0           mov esi,eax                                     ; EAX送ESI
    004EE243    8D95 74FEFFFF  lea edx,dword ptr ss:[ebp-18C]
    004EE249    8B83 FC020000  mov eax,dword ptr ds:[ebx+2FC]
    004EE24F    E8 64A3F5FF    call unpackCo.004485B8
    004EE254    8B85 74FEFFFF  mov eax,dword ptr ss:[ebp-18C]
    004EE25A    50             push eax                                        ; 假码入栈
    004EE25B    8D95 70FEFFFF  lea edx,dword ptr ss:[ebp-190]
    004EE261    8BC6           mov eax,esi
    004EE263    E8 10B2F1FF    call unpackCo.00409478
    004EE268    8B95 70FEFFFF  mov edx,dword ptr ss:[ebp-190]                  ; 看到真码
    004EE26E    58             pop eax
    004EE26F    E8 E86DF1FF    call unpackCo.0040505C                          ; 真假码比较,可做内存注册机
    004EE274    74 1C          je short unpackCo.004EE292                      ; 相等就跳,爆破点



    【算法总结】


    (1)取机器码的第三位开始到最后,再转换成HEX,记为A
    (2)A除以0D,记为B
    (3)B+243E23=注册码

    ———————————————————————————————————————————

    【Crack_总结】:

       初学算法,不足之处,还请各位大侠指点!

    [ Last edited by 冷血书生 on 2005-8-19 at 11:11 AM ]
    PYG19周年生日快乐!
  • TA的每日心情

    2022-6-29 23:13
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2005-9-9 16:48:32 | 显示全部楼层
    啊! 学习 收藏文章!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2025-1-14 15:35
  • 签到天数: 1637 天

    [LV.Master]伴坛终老

    发表于 2005-9-24 21:33:38 | 显示全部楼层
    将004EE274    74 1C          je short unpackCo.004EE292 修改为JMP即可爆破。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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