首页
社区
课程
招聘
欢迎大家都来做这个破解作业,共同进步如何?能否置顶一段时间?[推荐]
发表于: 2005-6-20 11:59 5138

欢迎大家都来做这个破解作业,共同进步如何?能否置顶一段时间?[推荐]

2005-6-20 11:59
5138
为了帮助新手快速进步,我特别构思了这个作业,希望管理员能给予照顾,给予置顶!

题目如下:

程序下载:(这个测试有BUG,强行终止启动程序原来游戏程序不关闭)http://oa.tyldbz.gov.cn/taiyuan/center/download.nsf/bytime/BE90A31E57E846EE4825700D00241CCF/$file/TeamUpSetup.exe

或者这个:(这个类型相同,但没那个BUG)
http://oa.tyldbz.gov.cn/taiyuan/center/download.nsf/bytime/BE90A31E57E846EE4825700D00241CCF/$file/bubblefish.exe

本文下载:
http://oa.tyldbz.gov.cn/taiyuan/center/download.nsf/bytime/BE90A31E57E846EE4825700D00241CCF/$file/破解说明.txt

注册机下载:(为研究算法的人准备)
http://oa.tyldbz.gov.cn/taiyuan/center/download.nsf/bytime/BE90A31E57E846EE4825700D00241CCF/$file/通用注册机.exe

是个小游戏,破解这个小游戏,有效时间和为20小时

游戏简介:

该游戏是一个团队过关的游戏,由GIRL.INC制作,被reflexive公司代理网上销售,reflexive公司对原游戏主程序进行了加密,并将启动程序变成自己的程序。

启动程序在启动后,先检测是否注册,如果没有注册,弹出一个界面。上面有注册、更多、试玩等按钮,点“注册”按钮可弹出注册画面,是根据机器码原理注册的。我分析了,是网页格式的。点“试玩”按钮后,启动程序界面隐藏,执行原游戏程序,只能连续玩游戏60分钟,60分钟后,原游戏程序将被最小化,弹出启动程序界面,告诉你试玩时间到,请注册。如果你在不到60分钟内退出游戏,将弹出原来的启动窗口,告诉你还有多少时间可以玩。

该游戏我找到了注册机,注册后,启动游戏后不弹出启动程序界面了,直接进入游戏,但退出游戏后,将弹出20秒的延迟窗口,告诉你“感谢玩full version”,本窗口20秒内关闭

20秒延迟窗口的背景图片可以在游戏目录下找到,但不能修改,程序有背景图片字节大小检验功能,修改了,就不能玩了。

经过我分析,原游戏主程序是一个扩展名为RWG的文件,游戏启动后,你可在WINDOWS的任务列表中,发现有两个名字相同的程序,一个扩展名为exe,这个是启动程序,它在监控制原游戏程序的执行时间和关闭;一个扩展名为RWG,这个就是原游戏程序,现在以独立线程进行。

启动程序和原游戏程序以消息传递的原理进行通讯,由于只是简单的进行了封装,所以原游戏程序并没有接收和响应启动程序的消息接口,用的只是WINDOWS窗口本身的消息接收和传递机制。所以,启动程序在游戏试玩60分钟到后,无法关闭原游戏程序,而只能让其最小化,不让你还原继续游戏而已。

我们的任务,就是破解以上说的这些。本游戏的破解程度可分多个级别,根据你自己的能力做吧。

超级菜鸟:20小时什么也没做出来
0级菜鸟:做一个注册表文件,可保证60分钟到后,导入此注册表文件,可再获得60分钟玩。
1级菜鸟:暴力破解了注册码检测,相当与真正注册一样,但关闭游戏程序后,20秒延迟窗口还在。
2级菜鸟:更改游戏关闭后20秒延迟窗口的背景图片,程序正常运行。
3级菜鸟:将关闭游戏后20秒延迟窗口隐藏,但20秒延迟仍在,从任务管理器可以看见。
4级菜鸟:将关闭游戏后20秒延迟窗口的延迟改为0秒,闪烁一下即可关闭。
5级菜鸟:将关闭游戏后20秒延迟窗口彻底关闭,不出现,不闪烁。
6级菜鸟:修改启动程序,让启动程序解密原游戏程序并调用执行后,自己就退出,从任务管理器可以看出,游戏开始玩后只有一个rwg进程在,原来的同名EXE进程已不在。
7级菜鸟:除了能做到以上,还能找到对应自己电脑机器码的注册码,找到即可,不需要明确算法。
8级菜鸟:除了能做到以上,可找到注册码的算法,并找到自己机器的注册码
9级菜鸟:除了能做到以上,哈哈,能写出注册机。
10级菜鸟:以上都可以不做,写程序还原原来的游戏程序。

不要强求自己,能做多少就做多少,这个游戏是多进程的,启动程序会生出两个进程,一个监视进程,一个原游戏进程,启动程序还要在内存解密原游戏程序并调用执行之~。

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 296
活跃值: (260)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
2
记得这种加密方式Wik And The Fable Of Souls也用过~
退出画面计时是用浮点ST7放剩余时间的
2005-6-20 12:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
菜鸟们来练练,不要辜负了楼主的心意啊

超级菜鸟就不做了
    首先做0级菜鸟,找注册表里存放时间的地方,可以用注册表比较工具,也可以在程序中下断点。找到后导出注册表值,但以后导入并没有用,所以除了注册表,程序一定还在某文件中写了使用时间。可以用FILEMON,也可在程序中直接下断点找到这个文件。有了这两样,以后就能在到期后通过重新导入再获得60分钟的游戏时间。
    这样的破解很麻烦,我们来提高些,准备做1级菜鸟。不过我这时另外换了个思路,程序是将使用时间写入到注册表和一个文件中的,如果把程序中写注册表和文件的地方跳过不也可以吗?找到程序中写注册表和文件的地方,爆破掉,哈哈,成功了。
    这时程序已经准完美破解了,每次启动都有60分钟的时间。如果想一次超过60分钟可能还需要处理一下,我没看。
    对于注册码,没有时间也没有兴趣,只做爆破手,呵呵,所以可能永远只能是大菜鸟了。
    顺便说一下,游戏还是蛮好玩的:)
2005-6-21 13:19
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好, 谢谢楼主  !
2005-6-22 11:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
哈哈,20小时做到十级,那里还是菜鸟,可以封为超级电脑了
2005-6-22 13:49
0
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
请问楼主,“本文下载”怎么下不了啊?能不能提供另一个地址?
2005-6-23 09:29
0
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我好像找到关键代码了,在Bubblefish游戏的目录里的ReflexiveArcade文件夹里有一个Arcade.dat文件,
用记事本打开她,其中有一段程序如下:
Button Text=&Submit&
Action=CFormActionAttemptToRegister
{
        Form Edit Control Containing RegCode=ReregisterFromGame RegCode Location
        Action Success=CFormActionSwitchPage
        {
                Page To Switch To=Enter Registration Code Success
        }
        Action Fail Control Is Empty=CFormActionSwitchPage
        {
                Page To Switch To=RegCodeFieldIsEmpty
        }
        Action Fail Doesnt Look Like A Reg Code=CFormActionSwitchPage
        {
                Page To Switch To=DoesntLookLikeARegCode
        }
        Action Fail Bad CRC=CFormActionSwitchPage
        {
                Page To Switch To=LooksLikeARegCodeButBadCRCOrSomeOtherProblem
        }
        Action Fail Entered A ProductID=CFormActionSwitchPage
        {
                Page To Switch To=EnteredAProductIDInsteadOfARegCode
        }
        Action Fail Entered Unknown Code=CFormActionSwitchPage
        {
                Page To Switch To=LooksLikeARegCodeButBadCRCOrSomeOtherProblem
        }
        Action Fail Reg Code Not Valid=CFormActionSwitchPage
        {
                Page To Switch To=ValidRegCodeButNotTheCorrectOne
        }
}
应该是关键代码吧,只要对此程序进行一点改动就报错,
怎样才能找到他的CRC验证代码呢?
怎样在OllyDbg中在那个比较函数上下断呢?
请“菜鸟”们解答一下,谢谢
2005-6-23 14:03
0
雪    币: 180
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
怎么没人回贴啊
2005-6-24 10:54
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我本来想发贴求助的,忽然想起论坛搜索,一搜索竟发现了楼主的帖子,不知道顶起以前的帖子是不是犯规啊。
我也在研究Reflexive系列的游戏加密。但我是新手,也是初次发问题,大家有空的话帮忙下,谢谢。

本来是朋友玩的reflexive系列的一游戏,试玩时间过后让我试下破解。
游戏下载页:
http://www.reflexive.net/index.php?PAGE=game_detail&AID=145
我安装仔细分析后,发现游戏在注册表和文件各做了两个时间标记。这系列的所有游戏均是如此。
注册表是:
HKEY_LOCAL_MACHINE\SOFTWARE\ReflexiveArcade\145\Progress  
文件是:
游戏目录下的\ReflexiveArcade\RAW_004.wdt。
于是我保存初次安装的注册表值和RAW_004.wdt文件,时间到后覆盖即可恢复。

想使用ollydbg调试此游戏,但似乎有反调试的功能。我没法摆平。高手指点下这样的断点该怎样断。谢谢!

这样还是有点不甘心,想试下试玩时间60分钟过后会怎样。打开变速齿轮,调到最大,运行游戏,稍后退出,时间到,提示"Thank you for

playing,your demo has expirde.Buy now to upgrade instantly."  w32dasm查找到参考字符串后,向上查找,

******************************************************
* Referenced by a CALL at Address:
|:00404A07   
|
:004033AD 56                      push esi
:004033AE 8BF1                    mov esi, ecx
:004033B0 D94618                  fld dword ptr [esi+18]
:004033B3 D81DA4B24100            fcomp dword ptr [0041B2A4]
:004033B9 DFE0                    fstsw ax
:004033BB F6C441                  test ah, 41
:004033BE 741F                    je 004033DF
:004033C0 E81B3C0000              call 00406FE0
:004033C5 84C0                    test al, al
:004033C7 7516                    jne 004033DF
:004033C9 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"Demo Expired"
                                  |
:004033CB 6854EB4100              push 0041EB54

* Possible StringData Ref from Data Obj ->"Thank you for playing, your demo "
                                        ->"has expired.
Buy now to upgrade "
                                        ->"instantly."
                                  |
:004033D0 6808EB4100              push 0041EB08
:004033D5 6A00                    push 00000000
*********************************************************************
在004033c7处,找到     jne 004033df    修改为je,爆破无时间限制!

我又从网上找到了reflexive系列游戏的破解方法和通用注册机,破解方法为:

****************************
1、使用UtrlEdit以二进制方式打开游戏的可执行程序;
2、打开后搜索"84 C0 74 0E 8B CE",找到后,修改为"84 C0 75 0E 8B CE";
3、保存,OK。
****************************
即修改00404A03 处的je 为jne。
跳过对游戏是否注册的检验。我想注册算法的CALL应该从这能找到,但我看了好久,没找到注册算法的CALL在哪?
可否高手帮忙解答一下,谢谢了。非常感谢!:)
偶菜,勿笑,欢迎批评!
2005-8-25 11:51
0
游客
登录 | 注册 方可回帖
返回
//