10

考古:重现MRP游戏开发环境

 1 year ago
source link: https://xuanxuanblingbling.github.io/ctf/game/2022/06/18/mrp/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

考古:重现MRP游戏开发环境

2022-06-18

| CTF/Game

更新中…在网上找到斯凯SDK开发包(含向导).rar

经过使用,简化附件为Mrp开发包.zip,其中包括的文件有:

  • 使用说明.txt
  • ADS1.2的授权文件/license.dat
  • SKY Developer Suite(CP)_Setup.exe
  • SDK破解/使用说明.txt
  • SDK破解/mr_helpere.mrp
  • SDK破解/mr_helperk.mrp
  • SDK破解/mr_helpero.mrp
  • SDK破解/SDKCrack.exe

首先安一个XP虚拟机和Visual Studio 2005,可在MSDN i tell you上下载:

使用XP的原因是:斯凯MRP游戏SDK的底座为VS 2005,而VS 2005的底座是XP,新系统会有兼容性问题…

  • XP SP2:[ed2k://|file|sc_winxp_pro_with_sp2.iso|629227520|505B810E128351482AF8B83AC4D04FD2|/](ed2k:// file sc_winxp_pro_with_sp2.iso 629227520 505B810E128351482AF8B83AC4D04FD2 /),网上找了一个windows xp sp2的秘钥:BB96V-433XK-GM9WR-KXCDJ-4HTQW
  • VS 2005:[ed2k://|file|cs_vs_2005_pro_dvd.iso|2733268992|9DA1C378BAC22E66A73C9E20EC78CCFB|/](ed2k:// file cs_vs_2005_pro_dvd.iso 2733268992 9DA1C378BAC22E66A73C9E20EC78CCFB /),原版XP不自带能打开iso的软件,可以在外面解压好在拖进去,安装程序为./vs/setup.exe,自定义安装,语言仅勾选Visual C++即可

image

ARM Developer Suite

MRP游戏运行在MTK 6225等系列的处理器上,所以其实是个ARM程序。因此需要windows下的ARM交叉编译环境,找到官方的ARM Developer Suite,大小88.24MB,但是安装过程提示需要下一张CD…

后在网上在找到118M的版本,可以正常安装:

运行Setup.exe,这个安装时选择typical,需要输入license时,给入附件中的ADS1.2的授权文件/license.dat文件即可。

SKY Developer Suite

安装附件中的SKY Developer Suite(CP)_Setup.exe,即斯凯MRP的SDK,默然安装路径为C:\SKYMOBI\,这个SDK可以找到系统中的VS 2005并添加工程模板。但这曾经是一个需要授权的SDK,所以目前运行需要破解,复制附件中的以下四个文件到C:\SKYMOBI\SDS4CPv1.0\Compiler目录中:

  • mr_helpere.mrp
  • mr_helperk.mrp
  • mr_helpero.mrp
  • SDKCrack.exe

然后在复制后的目录运行SDKCrack.exe,提示破解成功。

新建工程以及编译

最后打开VS2005,新建工程,选择C++,即可看到斯凯的开发扩展,找到并选择SkyAppWiz(CP)1

image

具体工程类别为:

  • Helloworld工程:Helloworld
  • DEMO工程:空战游戏的模版
  • SGL应用程序:开发一些实用功能的软件的模版

例如我使用Helloworld工程,修改DemoWinWinEvent函数,打印个内存地址:

void DemoWinWinEvent(int32 data, int32 eventId)
{
	char buf[20];

	switch (eventId)
	{
	case WIN_EVENT_SHOW:
	case WIN_EVENT_REFRESH:	
		mrc_clearScreen(255, 255, 255);
		
		sprintf(buf,"[+] XUANXUAN %x",(void *)buf);
		mrc_drawText(buf, 0, 152, 0, 0, 0, 0, MR_FONT_MEDIUM);
		
		mrc_refreshScreen(0, 0, 240, 320);
		break;
	case WIN_EVENT_PAUSE:
		break;
	case WIN_EVENT_EXIT:
		break;
	case WIN_EVENT_UPDATE:
		break;
	}
}

如果想编译成mrp,必须找到你新建工程的那个文件夹,然后运行build.bat生成,此脚本具体内容如下,只是调用mrpbuilder.exe,生成的mrp在bin文件夹。

C:\SKYMOBI\SDS4CPv1.0\Compiler\mrpbuilder.exe ./Makefile.mpr
pause

如果想在支持mrp的实机运行,可在sd卡根目录下新建mythroad目录,并将编译好的Helloworld_240.mrp改名为dsm_gm.mrp放入其中,然后开机输入*#220807#即可

image

给出编译后的mrp文件:Helloworld_240.mrp,至此,我们可以正向开发,也可以逆向分析,则可继续探索mrp游戏实现背后的秘密了。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK