首页
社区
课程
招聘
[原创]Reaper破解记录
发表于: 2008-2-8 02:18 5318

[原创]Reaper破解记录

2008-2-8 02:18
5318
【文章标题】: Reaper-crack记录
【文章作者】: 壳狼
【软件名称】: Reaper
【下载地址】: http://bj.onlinedown.net/soft/2670.htm
【加壳方式】: 无
【保护方式】: 无
【编写语言】: Microsoft Visual C++ ver 5.0/6.0
【使用工具】: IDA,OD
【软件介绍】: 音频制作软件
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  本想找个壳练习一下,随便下了个国外的软件。没想到无壳,看看里面做的不错,忍不住练练crack。
  准备:
  1、PEID查壳,"Microsoft Visual C++ ver 5.0/6.0",算法工具搜索到"SHA".
  2、IDA载入,增加crptopp51的sig,使用findcrpt v2插件找到SHA,标识函数后,生成map文件。
  开始:
  1、OD载入,下bp MessageBoxA断点,填写完注册信息后中断到MessageBoxA中,跟随到调用处如下:
  
  00462106   .  6A 00         push    0
  00462108   .  6A 01         push    1
  0046210A   .  50            push    eax
  0046210B   .  52            push    edx
  0046210C   .  E8 6F6A0F00   call    <regcheck>
  00462111   .  83C4 10       add     esp, 10
  00462114   .  85C0          test    eax, eax
  00462116   .  74 37         je      short <loc_46214F>
  00462118   .  6A 00         push    0                                ; /Style = MB_OK|MB_APPLMODAL
  0046211A   .  68 B8126600   push    006612B8                         ; |Title = "Error"
  0046211F   .  50            push    eax                              ; |Text = "Invalid Registration Key - perhaps it was mistyped?"
  00462120   .  8B8424 100400>mov     eax, dword ptr [esp+410]         ; |
  00462127   .  50            push    eax                              ; |hOwner
  00462128   .  FF15 F4035E00 call    dword ptr [<&USER32.MessageBoxA>>; \MessageBoxA
  0046212E > >  33C0          xor     eax, eax                         ;  Default case of switch 00462063
  00462130   .  81C4 00040000 add     esp, 400
  00462136   .  C2 1000       retn    10
  

  2、IDA查看上面的代码
  
  .text:004620C0                 lea     eax, [esp+400h+idstr]
  .text:004620C3                 push    200h            ; cchMax
  .text:004620C8                 push    eax             ; lpString
  .text:004620C9                 push    3EFh            ; nIDDlgItem
  .text:004620CE                 mov     edx, [esp+40Ch+hDlg]
  .text:004620D5                 push    edx             ; hDlg
  .text:004620D6                 call    ds:GetDlgItemTextA
  .text:004620DC                 lea     eax, [esp+400h+passstr]
  .text:004620E3                 push    200h            ; cchMax
  .text:004620E8                 push    eax             ; lpString
  .text:004620E9                 push    3F0h            ; nIDDlgItem
  .text:004620EE                 mov     edx, [esp+40Ch+hDlg]
  .text:004620F5                 push    edx             ; hDlg
  .text:004620F6                 call    ds:GetDlgItemTextA
  .text:004620FC                 lea     edx, [esp+400h+idstr]
  .text:004620FF                 lea     eax, [esp+400h+passstr]
  .text:00462106                 push    0               ; char
  .text:00462108                 push    1               ; flag
  .text:0046210A                 push    eax             ; PassString
  .text:0046210B                 push    edx             ; IdString
  .text:0046210C                 call    regcheck
  .text:00462111                 add     esp, 10h
  .text:00462114                 test    eax, eax
  .text:00462116                 jz      short loc_46214F
  .text:00462118                 push    0               ; uType
  .text:0046211A                 push    offset aError_0 ; "Error"
  .text:0046211F                 push    eax             ; lpText
  .text:00462120                 mov     eax, [esp+40Ch+hDlg]
  .text:00462127                 push    eax             ; hWnd
  .text:00462128                 call    ds:MessageBoxA
  .text:0046212E
  .text:0046212E loc_46212E:                             ; CODE XREF: sub_462038+12j
  .text:0046212E                                         ; sub_462038+1Dj ...
  .text:0046212E                 xor     eax, eax
  .text:00462130                 add     esp, 400h
  .text:00462136                 retn    10h
  

  知道  
  0046210C   .  E8 6F6A0F00   call    <regcheck>         ;注册检查
  00462116   .  74 37         je      short <loc_46214F>;关键跳
  3、尝试修改je为jmp,实验后不成功。
  4、进入regcheck函数分析,发现里面使用了2个文件".../application/reaper/reaper.ini"和".../application/reaper/reaperinfo.dat"
  跟踪后来到
  
  .text:00558CD8                 mov     al, [esp+40Ch+arg_C] ; 0
  .text:00558CDF                 test    al, al
  .text:00558CE1                 jnz     short loc_558D2A
  .text:00558CE3                 lea     edx, [esp+40Ch+var_404]
  .text:00558CE7                 push    edx
  .text:00558CE8                 push    edi             ; pass
  .text:00558CE9                 push    esi             ; id
  .text:00558CEA                 call    regcheck01
  .text:00558CEF                 add     esp, 0Ch
  .text:00558CF2                 test    eax, eax
  .text:00558CF4                 jnz     Invaildkey
  

  5、进入regcheck01发现里面调用了sha算法,没跟过不熟悉,太复杂,退出函数。修改下面的跳转
  .text:00558CF4                 jnz     Invaildkey
  将jnz改为jz.保存修改。
  6、运行后正常。
  7、UE查看"reaperinfo.dat"文件,发现里面保存着用户名name和注册码info。分析前面的regcheck
  可知,其每次启动均读取注册信息,执行检查,这也就是为什么第3步的跳转修改没有成功的原因。
  reaperinfo.dat的name可随意修改。
  
--------------------------------------------------------------------------------
【经验总结】
  第一次crack,好象老外不太注意保护哈。估计搞国外的比搞国内的容易。
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2008年02月08日 2:15:45

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢分享!
2008-2-8 03:51
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
3
思路清晰,目标明确。
学习。。
2008-2-8 08:07
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢,我这个连菜鸟都不是的都看的差不多了 !!!!
2008-2-8 13:58
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
5
爆破。爆破
2008-2-8 14:10
0
雪    币: 50161
活跃值: (20620)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
6
思路果然清晰,对新手有启发。不过,还是建议你把算法找出来,或把注册码找出来,这进步会快些,等有算法分析过程再设精华。
2008-2-9 10:26
0
雪    币: 248
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
这个软件作者好象对破解者非常憎恨,里面有污辱性语言。呵呵。
2008-2-29 00:25
0
游客
登录 | 注册 方可回帖
返回
//