飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 8314|回复: 10

[原创] PYG5.4第八轮第二课教学测试 软件破解分析

[复制链接]
  • TA的每日心情
    无聊
    2024-8-16 18:56
  • 签到天数: 50 天

    [LV.5]常住居民I

    发表于 2009-4-2 17:38:03 | 显示全部楼层 |阅读模式
    【文章标题】: PhotoCompressor 破解分析
    【文章作者】: zhangyun173
    【作者邮箱】: [email protected]
    【软件名称】: PhotoCompressor 试用版
    【加壳方式】: FSG 2.0 -> bart/xt
    【下载地址】: http://www.onlinedown.net/soft/57925.htm
    【使用工具】: OllyDbg, LordPE, PEid
    【操作平台】: WinXP
    【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教! PS:只是菜鸟级分析!
    哭·····找了几个月的工作了。都没找到自己合适的工作。我是学机械的想找计算机方面的也找不到,大多要工作经

    验。看到PYG5.4第八轮第二课教学正式启动了  也没参加成,感触比较大,于是想破解下看看自己能不能行.

    拿到这个软件第一反应当然是查壳了 FSG 2.0 -> bart/xt 脱壳机脱了运行不了,自己单步跟,跟是跟到了OEP了但是修

    复不来输入表。没**坛搜了下拿到一个脚本脱了 借助他的脚本完成了脱壳。运行就弹出两个框框,注意是两个。那么

    肯定要动两个地方了。我第一想的当然是对话框断点。但是找了半天没找到关键位置。后来我发现他这个对话框是在程序

    运行了一会才弹出来的。于是我想到了他是不是加了个时间控件然后弹出对话框,那么加不加时间控件就是关键了,这个

    关键跳也肯定是在运行时间控件的前面。于是下好断点bp SetTimer 和 bp MessageBoxA(要根据对话框判断是那个时间控

    件) 重载,F9了13次 出现  timer 并且堆栈窗口 出现 “购买”二字 凭直觉感觉就是一处关键。再一次F9过后,等待了

    3秒钟果不其然弹出试用版本的框子。嘿嘿 重载 到13处timer Alt+F9 返回 稍微分析了下 将以下两处改后没对话框了,

    并且单个文件压缩正常。
    00406B95     /7F 1E         jg      short 00406BB5    13次出timer 屁股后面跟了 购买
    改为... 直接NOP掉 不用麻烦
    0040C6BC     /7F 1E         jg      short 0040C6DC    14次出timer 屁股后面跟了 购买
    同上 直接NOP掉
    0012E650   00406BC8  /CALL 到 SetTimer 来自 1.00406BC2
    0012E654   001304D6  |hWnd = 001304D6 (class='#32770',parent=00220466)
    0012E658   0000000A  |TimerID = A (10.)
    0012E65C   000007D0  |Timeout = 2000. ms
    0012E660   00000000  \Timerproc = NULL
    0012E664   315318E2
    0012E668   0012F52C
    0012E66C   0012F52C
    0012E670   00B12700  ASCII "购买"
    0012E674   00B18E30  ASCII "8314413038813958"
    接下来就是试用次数了,这个不麻烦。改下文件名就又是30次了。不用脑袋想就是注册表问题,而且他又只有主程序和一

    个ResourceChs.dll马上来到注册表放软件信息的位置果不其然 Software 下的 21ai 不就是它吗!21ai目录下就是文件

    名了,删除过后同样又是30次,但是不想那么麻烦,想直接在它读注册表的时候做点文章
    于是下bp RegOpenKeyA 找了半天什么也没发现,到后来才知道它是把注册表根目录坼开了的 。嘿嘿,这个比较龌龊哈!
    上面没办法,于是想到开一次少一次那么肯定要修改注册表的 下好断点
    bp RegSetValueExA 堆栈窗口 读的注册表是 Trial  没根目录,所以说比较龌龊。
    返回吧  
    004A2295   /74 30           je      short 004A22C7  修改为 JMP  不让他修改注册表减少试用次数
    无聊也找到了这个地方
    0040A568 cmp     eax, 1E eax是读出注册表现在可以试用的次数 1E是30 这是比较试用次是否比30大。大了就直接清空

    0次

    0040A56B jg      short 0040A571  可直接在上面 给eax赋值为9999次 改不改无所谓 当然改了要好看点9999次嘛

    0040A56D test    eax, eax         但是注意进制的转换你别哈起直接给它9999。              
    0040A56F jge     short 0040A573
    0040A571 xor     eax, eax
    接下来就是文件夹压缩的水印去除了,我的思路是这样的,这个水印肯定是在压缩文件的时候加上去的。(呵呵,傻瓜也

    知道。)但是怎么来找压缩的那个CALL呢?先想的是他压缩完了会弹出个对话框,但是逆了半天没逆到关键位置放弃了。

    查找字符串,撒子都没得!看来脱壳没脱好。接着 查找-->所有参考文本 嘿嘿有东东。就在最前面发现2个“.jpg”像素

    .大小等等信息。 不用想就知道一个是单文件,一个是文件夹的压缩。并且第二个的.jpg 上面有ALL Files 信息直接就

    来到第二个.jpg处,跟了一会
    00407447  |.  E8 C4EC0000   call    CxImage::DrawStringEx     这个CALL 就是加水印的了
    在其上面有个跳转
    00407414     /75 36         jnz     short 0040744C   JMP一下 水印去除  多跳跳有益身体健康
    (半年没打篮球了,前天被同学叫去打篮球接下来的时间,脚一直是酸痛的。悲哀!)
    做到这一步基本上是收工了。如果你不想要已完成多少图片的对话框可以直接将
    00499311  |. /75 04         jnz     short 00499317   处NOP 掉
    当然你要像我这样添点东西的话可以在数据窗口处 ctrl+G 来到 004D5B4A 用文本ASCII显示 二进制也用ASCII编辑 修改
    信息就可以了

    另外上传自己破解了的文件:
    PhotoCompressor.part1.rar (390.63 KB, 下载次数: 5)
    PhotoCompressor.part2.rar (390.63 KB, 下载次数: 8)
    PhotoCompressor.part3.rar (252.79 KB, 下载次数: 32)
    把脱壳的脚本也贴出来吧
    var   OEP
    var pIAT


    Start:
          
           sto   
           sto

           add        ebx,c
           mov       OEP,[ebx]
           sub        ebx,c
           mov       pIAT,ebp

           bphws    OEP,"x"
           run         //goooo  to oep

    //来到oep,修复输入表

    @nextdll:
           mov eax, pIAT
           mov eax,[eax]
           cmp eax,0
           je  @over

    @nextfunc:
           cmp       [eax],7FFFFFFF
           je    @equ_7FFFFFFF
           cmp       [eax],FFFFFFFF
           je    @equ_FFFFFFFF
           add        eax,4
    jmp @nextfunc

    @equ_7FFFFFFF:
    @equ_FFFFFFFF:
           mov       [eax],0
           add        pIAT,8
           jmp        @nextdll

    @over:
           bphwc    OEP
    ret

    ///dpe "c:\fsg_dumped.exe",OEP  
    //本来想用脚本直接dump到文件中,可是用脚本dump出的文件不能运行,只好运行到OEP再手动Dump了....
    //最后到达OEP时若代码很乱,就取消分析



    第一次写教程有什么不对的地方希望大家谅解!目的只是想和大家分享下。如果不好以后不会在发了。

    [ 本帖最后由 zhangyun173 于 2009-4-2 17:47 编辑 ]

    评分

    参与人数 1威望 +40 飘云币 +80 收起 理由
    Nisy + 40 + 80 很详细,很精彩!

    查看全部评分

    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-4-2 22:22:57 | 显示全部楼层
    哈哈,占了个沙发,我只能分析到前两步,去水印的方法网上还没有找到教程,所以没有办法,只好等你们这些老大的分析,受教了。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-4-2 22:24:40 | 显示全部楼层
    其实脱壳也没有那么麻烦,我手脱修复的时候,把大小改成1000就OK了。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-4-29 07:52
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2009-4-2 23:26:05 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-12-27 19:17
  • 签到天数: 40 天

    [LV.5]常住居民I

    发表于 2009-4-3 13:11:59 | 显示全部楼层
    00404C80  /$  83EC 24          sub esp,24
    00404C83  |.  51               push ecx
    00404C84  |.  8D4424 04        lea eax,dword ptr ss:[esp+4]
    00404C88  |.  50               push eax
    00404C89  |.  E8 62F40A00      call dumped_.004B40F0
    00404C8E  |.  83C4 08          add esp,8
    00404C91  |.  85C0             test eax,eax
    00404C93  |.  75 0D            jnz short dumped_.00404CA2
    00404C95  |.  8B4424 14        mov eax,dword ptr ss:[esp+14]
    00404C99      05 6C070000      add eax,76C                   ;这句改为:mov eax,7D8 就可以去掉过期提示
    00404C9E  |.  83C4 24          add esp,24
    00404CA1  |.  C3               retn
    00404CA2  |>  33C0             xor eax,eax
    00404CA4  |.  83C4 24          add esp,24
    00404CA7  \.  C3               retn
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2020-12-27 19:17
  • 签到天数: 40 天

    [LV.5]常住居民I

    发表于 2009-4-3 15:16:59 | 显示全部楼层
    另外发现:
    00404C99      05 6C070000      add eax,76C  ;改为:mov eax,7D8 生成的图像不带水印

    但是 不论是这样修改还是搂主的修改 将使用次数调制 0 此时,还将出现过期窗口。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2017-10-25 13:07
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2009-7-8 16:07:36 | 显示全部楼层
    终于看见 谢谢诶啊
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2023-3-23 15:24
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    发表于 2009-7-21 15:30:20 | 显示全部楼层
    感谢分享 向高手学习
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-7-24 16:17:39 | 显示全部楼层
    学习中!/:L
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2015-10-9 11:25
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2009-7-25 09:22:46 | 显示全部楼层
    学习了,谢谢楼主分享。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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