jacksunblack 发表于 2007-12-23 22:28:08

时间限制的爆破(2007年12月23日)

【破文标题】时间限制的爆破(2007年12月23日)
【破文作者】Jacksunblack
【作者邮箱】[email protected]
【破解工具】PeiD v0.94;Ollydbg;LordPE;Import REConstructor
【破解平台】Windows XP sp2
【软件名称】Easy To-Do Pro 2.0.0
【软件大小】2146KB
【原版下载】http://cncspace.newhua.com/soft/62913.htm
【保护方式】时间限制
【软件简介】Easy To-Do 是一款管理任务列表的程序,简单但功能强大,可以帮助你记住无论是在家里还是在办公室里你必须做的那些任务。通过使用Easy To-Do,你的工作效率会得到提高,会在短时间内完成更多的任务。该软件还可以作为项目管理软件使用。
【破解声明】本破解过程仅出于个人学习目的,如有不足敬请指教!
------------------------------------------------------------------------
【破解过程】    在软件中,未找到有关填写注册码的相关信息,作为一款试用(evaluation)软件,其限制试用时间为30天。
    为此,决定采取爆破的方式,解除软件的时间限制。
    首先,使用PeiD查壳,结果显示为Borland Delphi 6.0 - 7.0语言,无壳。为检测软件的错误提示窗口,故将系统时间提前一年。打开软件,在选中new 时,出现了警告窗口,其信息为:"Your evaluation period has expired, you cannot add any new tasks. Buy the full version today and start adding more tasks"
    使用Ollydbg载入程序,shift+F9运行程序,待显示出主窗体后,设置条件断点“bp MessageBoxA”,点击new。程序暂停,其代码段如下:
    77D5058A >8BFF            mov edi,edi                              ; ETODO.00762D04
    77D5058C    55            push ebp
    77D5058D    8BEC            mov ebp,esp
    77D5058F    833D BC04D777 0>cmp dword ptr ds:,0
    77D50596    74 24         je short USER32.77D505BC
    观察其堆栈窗口:
    0012FAFC   0045717A/CALL 到 MessageBoxA 来自 ETODO.00457175
    0012FB00   000A055E|hOwner = 000A055E ('Easy To-Do Pro (Evaluation) (...',class='TTodoMainForm')
    0012FB04   00762D04|Text = "Your evaluation period has expired, you cannot add any new tasks. Buy the full version today and start adding more tasks"
    0012FB08   00762CC4|Title = "Message"
    0012FB0C   00000030\Style = MB_OK|MB_ICONEXCLAMATION|MB_APPLMODAL
    确定此处即为错误信息提示处,在堆栈窗口CALL处按ENTER返回到调用处
    00457175    E8 C619FBFF   call <jmp.&user32.MessageBoxA>
    0045717A    8945 F4         mov dword ptr ss:,eax
    0045717D    33C0            xor eax,eax
    0045717F    5A            pop edx
    00457180    59            pop ecx
    向上找到此段程序的起始处:
    00457078|.5B            pop ebx
    00457079\.C3            retn
    0045707A      8BC0          mov eax,eax
    0045707C/$55            push ebp       ;此处即为此段程序的起始位置
    0045707D|.8BEC          mov ebp,esp
    0045707F|.83C4 A8       add esp,-58
    00457082|.53            push ebx
    00457083|.56            push esi
    在该位置下断点,重新载入并运行程序。程序断在0045707C的位置,查看堆栈窗口,显示信息如下:
    0012FB84   007629F0返回到 ETODO.007629F0 来自 ETODO.0045707C
    在其上点击“ENTER”键,到达其返回位置:
    007629EB   .E8 8C46CFFF   call ETODO.0045707C   ;此处即为调用上段程序的入口处
    007629F0   .E9 C8020000   jmp ETODO.00762CBD
    007629F5   >8B45 FC       mov eax,dword ptr ss:
    类似于上述过程,向上查找到此段程序的开端:
    0076297B   .C3            retn
    0076297C   $55            push ebp      ;此处即为该段程序的入口,在此处设断点
    0076297D   .8BEC          mov ebp,esp
    重新载入并运行程序,来到了0076297C处,F8步进并分析代码:
    007629D2   .8078 44 00    cmp byte ptr ds:,0
    007629D6   .74 1D         je short ETODO.007629F5                  ;此处的跳转未实现,出现错误窗口
    007629D8   .6A 30         push 30
    007629DA   .B9 C42C7600   mov ecx,ETODO.00762CC4                   ;ASCII "Message"
    007629DF   .BA 042D7600   mov edx,ETODO.00762D04                   ;ASCII "Your evaluation period has expired, you cannot add any new tasks. Buy the full version today and start adding more tasks"
    007629E4   .A1 C4A17800   mov eax,dword ptr ds:
    由此,将007629D6处的代码修改为无条件跳转jmp,经测试程序运行成功。
------------------------------------------------------------------------
【破解总结】    在程序中,由于没有出现注册码的部分,故采用了爆破的方式。 在尝试过程中,曾经使用bp GetLocalTime进行跟踪,但效果并不理想。因为原程序中出现了过多次的调取过程,比较繁琐。通过提前系统时间,来使程序失效,查找相应的错误窗口。对错误的部分进行拦截(bp MessageBoxA)和分析。
   
------------------------------------------------------------------------
【版权声明】请尊重原版软件!

阳小子 发表于 2007-12-24 09:51:11

不错,学习了。/:good

py22 发表于 2007-12-24 10:57:05

学习中,感谢分享。

magic659117852 发表于 2007-12-24 11:00:57

楼主的帖都比较清晰且总结的好

angelfish 发表于 2007-12-24 11:03:47

好好学习。。。。天天向上/:001

pw2000 发表于 2007-12-24 11:08:11

下载学习,谢谢分享。

fanboynet 发表于 2007-12-24 12:37:14

好好学习下分析思想,

JOHN 发表于 2007-12-24 12:41:28

好文,适合我这新人学习..

ku365 发表于 2008-2-22 21:27:52

不错,支持一下再说

3003201231 发表于 2008-2-22 22:27:58

不错 我也试试 学习了~`
页: [1] 2 3 4 5
查看完整版本: 时间限制的爆破(2007年12月23日)