首页
社区
课程
招聘
[旧帖] [原创]快乐日记本 破解过程 0.00雪花
发表于: 2007-12-8 17:57 10370

[旧帖] [原创]快乐日记本 破解过程 0.00雪花

2007-12-8 17:57
10370
【文章标题】: 快乐日记本V3.2.5 破解过程
【文章作者】: yangjt
【作者邮箱】: yangjietao123@163.com
【作者主页】: http://blog.sina.com.cn/yangjt
【作者QQ号】: 325002492
【软件名称】: 快乐日记本V3.2.5
【软件大小】: 主程序634KB
【下载地址】: 附件里有,感兴趣的话自己下载
【加壳方式】: ASPack 2.12 -> Alexey Solodovnikov
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: OllyICE
【操作平台】: Windows XP SP2
【软件介绍】: 一个很经典的写日记用的软件
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  PEid查壳,ASPack……简单到我都不想多费口舌了……自己脱好了……
  
  
  首先OD载入脱壳后文件以后查找字符串,找到这些句
  
  005824ED   mov     edx, 00582E9C                     本产品注册给
  00582555   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  00582588   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  00582620   mov     edx, 00582E9C                     本产品注册给
  0058268B   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  005826C1   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  005826FF   mov     edx, 00582E9C                     本产品注册给
  0058276A   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  005827A0   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  005827FC   mov     edx, 00582E9C                     本产品注册给
  00582867   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  0058289D   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  005828DB   mov     edx, 00582E9C                     本产品注册给
  00582946   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  0058297C   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  005829F6   mov     edx, 00582E9C                     本产品注册给
  00582A61   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  00582A97   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  00582AD5   mov     edx, 00582E9C                     本产品注册给
  00582B40   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  00582B76   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  00582BD2   mov     edx, 00582E9C                     本产品注册给
  00582C3D   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  00582C73   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  00582CB1   mov     edx, 00582E9C                     本产品注册给
  00582D19   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  00582D4C   mov     edx, 00582EB4                     未注册版,您可以免费使用。
  

  然后在这些东西上一次下断点,可能麻烦了一点……但是破解就是要有耐心……
  
  F2好以后F9 运行程序
  发现程序先停在这里了……
  
  005824ED   .  BA 9C2E5800   mov     edx, 00582E9C                    ;  本产品注册给
  005824F2   .  E8 B528E8FF   call    00404DAC
  005824F7   .  8B55 F4       mov     edx, dword ptr [ebp-C]
  

  之后把代码往上拉
  
  005824DC   .  E8 FFCFFAFF   call    0052F4E0                             //关键Call
  005824E1   .  837D F8 00    cmp     dword ptr [ebp-8], 0            //关键比较
  005824E5   .  74 47         je      short 0058252E                         //关键跳转
  005824E7   .  8D45 F4       lea     eax, dword ptr [ebp-C]
  005824EA   .  8B4D F8       mov     ecx, dword ptr [ebp-8]
  005824ED   .  BA 9C2E5800   mov     edx, 00582E9C            ;  本产品注册给
  005824F2   .  E8 B528E8FF   call    00404DAC
  005824F7   .  8B55 F4       mov     edx, dword ptr [ebp-C]
  

  好了……现在让我们来理清一下破解程序的思路……要更改关键跳转是一种办法,可是当我
在继续跟踪这个程序的时候发现它的下面还有一次随机验证……会跳到其他的那些比较上……
所以说,大家刚刚也看到了,这个程序的验证有很多,全部改掉是一种办法,但是我们要找
寻一种更简单更聪明的办法于是乎我们就想到了那个关键的Call 在上面下好断点,把其他断
点删除,因为我们用不到了,把程序重新来过,停在那个Call上以后F7进入,经过N次重新
来过程序和关键Call的跟踪,我们找到了最关键的一个地方
  
  0052F6CF  |. /75 04         jnz     short 0052F6D5
  0052F6D1  |> |33DB          xor     ebx, ebx                 //这个异或运算即为破解核心
  0052F6D3  |. |EB 02         jmp     short 0052F6D7
  0052F6D5  |> \B3 01         mov     bl, 1
  0052F6D7  |>  8B46 5C       mov     eax, dword ptr [esi+5C]
  0052F6DA  |.  E8 E979FDFF   call    005070C8
  0052F6DF  |.  33C0          xor     eax, eax
  

  把它改成 Xor ebx,ecx
  
  OK……此程序界面部分和对功能限制的最困难的部分已经被我们搞定了……
  
  然后我们再把程序打开看看……发现导出日记的时候他会提示:
  注册码不对,如果您是注册用户,请与作者联系!
  然后我们再次回到脱好壳的程序中,查找字符串,发现在这里:
  
  0057DC97   .  E8 940DFBFF   call    005                  //此为关键Call
  0057DC9C   .  84C0          test    al, al                    //此为关键比较
  0057DC9E   .  75 14         jnz     short 0057DCB4   //此为关键跳转
  0057DCA0   .  B8 04DF5700   mov     eax, 0057DF04    ;  注册码不对,如果您是注册用户,请与作者联系!
  0057DCA5   .  E8 721FEDFF   call    0044FC1C
  

  
  OK……我们可以去改跳转……因为我们经过查找其他的关键字发现他们验证注册码
调用的不是同一个Call改那个就简单了……我就不教大家了……
  然后我这里所使用的方法是进入关键Call找关键句,然后改变EAX寄存器的返回值,
也能起到同样的效果……
  
  经过我查找,一共有以下几点关键Mov命令会改变EAX的寄存器值:
  
  0052EB1A   .  8A45 FB       mov     al, byte ptr [ebp-5]
  

  把它改为
  
mov     al, byte ptr [ebp]

  然后还有:
  
  0052ED02   .  8A45 FB       mov     al, byte ptr [ebp-5]
  0052EDF6   .  8A45 FB       mov     al, byte ptr [ebp-5]
  

  这两个Mov指令跟上面的改的形式一样……然后我们可以看看……基本上完美了……嗯,到此
  
  为止
  
  看下……破解后程序大小1.96MB,而源程序只有634KB……
  而我们只改变了4条指令……我们可以用SMC补丁了,至于怎么写是你们的事了……我给大家
  
  提供更改着几段代码的一个思路:
  
  源程序OD载入,然后用ESP定律到
  005F13B0  这个带有Jnz的地方,然后找一块空地
  
  经我更改后的代码
  
  005F13B0   /E9 891E0000     jmp     005F323E
  005F13B5   |90              nop
  005F13B6   |90              nop
  005F13B7   |C2 0C00         retn    0C
  005F13BA   |68 44445800     push    00584444               //记录此处
  005F13BF   |C3              retn                           //记录此处
  
  

  空地处要写的SMC补丁代码:
  
  005F323E    C605 1CEB5200 0>mov     byte ptr [52EB1C], 0
  005F3245    C605 04ED5200 0>mov     byte ptr [52ED04], 0
  005F324C    C605 F8ED5200 0>mov     byte ptr [52EDF8], 0
  005F3253    C605 D2F65200 D>mov     byte ptr [52F6D2], 0D9
  005F325A    68 44445800     push    00584444
  005F325F    C3              retn
  

  OK……此程序完毕……希望大家多指教
  
--------------------------------------------------------------------------------
【经验总结】
  破解了一个很实用的程序,麻烦各位大侠帮着指导下
  
  说实在的……这个程序里的乱七八糟的注册码把我搞晕了……只能做补丁了……
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2007年12月09日 17:26:21

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (39)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
哇,好厉害呀,真得好好学习呀!!
2007-12-8 21:31
0
雪    币: 609
活跃值: (237)
能力值: ( LV12,RANK:441 )
在线值:
发帖
回帖
粉丝
3
虽然这个程序很好……可是我没有找到注册码……因为跟踪过这个程序就知道,它里面有一堆假的注册码……
第一我没时间跟下去,因为我还是学生,学业为主……
第二我也是初学,可能技术也不怎么到家……
希望大家多多指导……
2007-12-8 22:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不错,是个高手
2007-12-8 22:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
偶是菜鸟,没看懂
2007-12-8 23:48
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
唉,偶要破的东东没类似这些字符串...
不知道怎么下手...
2007-12-9 01:39
0
雪    币: 252
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
楼上,下API断点 啊
2007-12-9 13:59
0
雪    币: 609
活跃值: (237)
能力值: ( LV12,RANK:441 )
在线值:
发帖
回帖
粉丝
8
更新了,自己给自己顶上去……
2007-12-9 18:14
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
加我大哥~~~~~~~~~呵
2007-12-9 18:33
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
大哥技术不错..懂了原理..呵呵~~~~~~~
2007-12-9 18:34
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
学习啊,谢谢了!
2007-12-9 21:42
0
雪    币: 200
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
你好,有一个问题,日记本的导出功能虽然能用了,可是不能备份和恢复,这个功能也许是这个日记本另一个亮点吧,高手,能不能把这个功能也给破解可用呀?谢谢了,高手,向你学习!
2008-2-15 11:23
0
雪    币: 609
活跃值: (237)
能力值: ( LV12,RANK:441 )
在线值:
发帖
回帖
粉丝
13
哈哈……我技术太烂……没办法……就这个地方我还找了一个多月……嘿嘿……现在在学ASM+CPP,等我啥时候学好了再来……
2008-2-15 11:54
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
14
支持一下。。
2008-2-15 12:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
好东西
2008-2-15 12:28
0
雪    币: 207
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
SMC呀。。
不懂
2008-2-15 12:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
偶是菜鸟,没看懂
2008-2-15 12:56
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
受用了 ` 感谢分享!·
2008-2-15 17:29
0
雪    币: 609
活跃值: (237)
能力值: ( LV12,RANK:441 )
在线值:
发帖
回帖
粉丝
19
SMC=Self Modify Code
2008-2-15 18:39
0
雪    币: 740
活跃值: (952)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
20
支持一下

以前也搞过这个东西,导出/备份就是个小JNZ,有个暗桩,很容易就能搞定
2008-2-15 19:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
凑合吧
2008-2-15 19:53
0
雪    币: 609
活跃值: (237)
能力值: ( LV12,RANK:441 )
在线值:
发帖
回帖
粉丝
22
哦?NONAME剑人教教我们吧…… 那个Xor我还是追了一个多月才追出来的……那个暗桩在哪里,我一直没找到哦……
2008-2-15 19:54
0
雪    币: 1306
活跃值: (2286)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
感觉楼主的头像很可爱!
2008-2-15 22:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
我是菜鸟,我想问一下,寻找那些关键字怎么找呢,怎么我的找不到?是脱壳后才用OD吗?怎么脱壳?劳烦指教,我菜得很...
2008-2-16 08:02
0
雪    币: 609
活跃值: (237)
能力值: ( LV12,RANK:441 )
在线值:
发帖
回帖
粉丝
25
呵呵……谢谢夸奖……嘻嘻


我倒……不用OD你怎么脱壳?用软件?得了吧……先学学基础的东西吧……呵呵……给你弄点教材看看……
http://bbs.pediy.com/showthread.php?t=20366
2008-2-16 08:25
0
游客
登录 | 注册 方可回帖
返回
//