首页
社区
课程
招聘
[原创]调戏:NProtect GameGuard ini配置的破解
2013-12-4 04:44 70475

[原创]调戏:NProtect GameGuard ini配置的破解

2013-12-4 04:44
70475
注:本文提到的东西仅供研究不可用于其他途径。

本帖其实是一个礼物:献给我的新项目:alice

nProtect GameGuard会有一个ini文件,该文件是经过加密的,
估计很多人通过熟练使用OD将这个ini解密了。

老外有一片专门的文章公开过一套解密该ini的代码
根据个人理解,我整理了一下这个代码,使其在VS里可以编译和成功的使用。

对nprotect gameguard解密的代码 附件:
npdecini.rar


这个解密代码只能正确解密老版本(1950以下的,部分1970以上的版本)ini,因为nprotect新的版本KEY有变化!OD载入调试gameguard.des可以得到新的key,我就不说新key了(我不是送佛的)。

对ini解密后,会得到一个明文ini,这里肯定有不淡定,冲动的人去修改ini了,但是如果修改后用同样的算法加密回去,则不会被np承认,这是因为np在ini后面耍了一个RSA签名的MD5校对。
明文ini随便举个例子:
[GAMEMON]
GAME_NAME=*
UPDATE_SERVER=*
UPDATE_PATH=/real/
BACKUP_SERVER=
BACKUP_PATH=
OPTION_VALUE=0
SPEEDCHECK_INTERVAL=1000
SENDERRLOG=3
GAMECRC=1
USE_GGSCAN=1
LOG_SERVER=*
NO_USE_CHECKSC=1
NO_USE_CSR=1
USE_FHSH=1
BWTSERVER=bwt.nprotect2.net
BWT_OPTION=1
USE_IHMON=1
RT_UPDATE=1
RT_UPTIME=7200
RT_ENDTIME=30
NO_PHIDE=1

通过调试可以分析得到该RSA的N和E(下面表示都是16进制的!!!)
N=E3968E6A6FD0E7CD72F723FBFA22D611B7A83CEE3C42826530ABC0CDC9A0228C9F84B36D880C94809C2DFEF2CFC2414CE777A4D237C54C968C65AEAF09FCE3FB

E=10001


由于nprotect的自大,居然使用古老到黄瓜的512 RSA
于是显卡+cpu跑起~~经过3个礼拜的长征(我是用垃圾机器跑的)
获得了P和Q,于是根据这个我们可以编写一个加密ini的工具,把ini加密回去(这里要用openssl库,从网上撸一个就好)

加密ini的工具代码: MakeIniByIni.zip
(P和Q包含在代码中了,这里就不列出了)

这个时候再次不淡定直接修改了ini结果,又悲剧了,因为居然会重新从服务器下载原始ini,仔细阅读ini内容,发现

UPDATE_SERVER这里条指定了更新服务器,于是想到是否可以通过将更新服务器修改掉,然后用自己建的服务器呢?通过调试发现,gameguard.des每次会下载一个updata.cfg文件
不过这里又遇到了一个updata.cfg文件也是内容加密的,通过调试发现,其加密和前面的那个ini配置是一样的,于是解密得到一个类似如下的明文:
[GAME]
GAME_NAME=*
SENDERL=1
[FILE101]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=GameMon.npz
REALFILENAME=GameMon.des
DESTINATION={appgg}
VERSION=2013.4.18.1
CRC32=2841459265
OPTION=0
[FILE102]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=npgg9x.npz
REALFILENAME=npgg9x.des
DESTINATION={appgg}
VERSION=2008.8.28.1
CRC32=4142835861
OPTION=0
[FILE103]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=npggNT.npz
REALFILENAME=npggNT.des
DESTINATION={appgg}
VERSION=2013.4.18.1
CRC32=570023612
OPTION=0
[FILE104]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=npsc.npz
REALFILENAME=npsc.des
DESTINATION={appgg}
VERSION=2012.11.23.1
CRC32=39273047
OPTION=0
[FILE105]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=nppt9x.npz
REALFILENAME=nppt9x.vxd
DESTINATION={sys}
VERSION=
CRC32=317793346
OPTION=0
NOAUTH=1
[FILE106]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=npptNT2.npz
REALFILENAME=npptNT2.sys
DESTINATION={sys}
VERSION=2005.1.5.1
CRC32=3155204954
OPTION=0
NOAUTH=1
[FILE107]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=ElswordTH.npz
REALFILENAME=ElswordTH.ini
DESTINATION={appgg}
VERSION=
CRC32=939585363
OPTION=0
[FILE108]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=splash.npz
REALFILENAME=splash.jpg
DESTINATION={appgg}
VERSION=
CRC32=4290898545
OPTION=0
NOAUTH=1
[FILE109]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=ggscan.npz
REALFILENAME=ggscan.des
DESTINATION={appgg}
VERSION=2007.1.4.1
CRC32=3342043955
OPTION=0
[FILE110]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=ggerror.npz
REALFILENAME=ggerror.des
DESTINATION={appgg}
VERSION=2010.12.3.1
CRC32=2554011195
OPTION=0
[FILE111]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=npgmup.npz
REALFILENAME=npgmup.des
DESTINATION={appgg}
VERSION=2012.11.21.1
CRC32=430827741
OPTION=0
[FILE112]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=tyavexcept.npz
REALFILENAME=tyavexcept.dat
DESTINATION={commonty}
VERSION=
CRC32=1749388263
OPTION=0
NOAUTH=1
[FILE113]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=BWT.dll.npz
REALFILENAME=BWT.dll
DESTINATION={commonty}
VERSION=2012.2.3.1
CRC32=1696487460
OPTION=0
NOAUTH=1
[FILE114]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=BwtTrust.dll.npz
REALFILENAME=BwtTrust.dll
DESTINATION={commonty}
VERSION=2012.1.3.1
CRC32=766667542
OPTION=0
NOAUTH=1
[FILE115]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=NpExcH.npz
REALFILENAME=NpExcH.dat
DESTINATION={commonty}
VERSION=
CRC32=3605494264
OPTION=0
NOAUTH=1
[FILE116]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=tyavcuremap.npz
REALFILENAME=tyavcuremap.dat
DESTINATION={commonty}
VERSION=
CRC32=2200465513
OPTION=0
NOAUTH=1
[FILE117]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=GameMon64.npz
REALFILENAME=GameMon64.des
DESTINATION={appgg}
VERSION=2012.12.5.1
CRC32=1754834583
OPTION=0
[FILE118]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=npggNT64.npz
REALFILENAME=npggNT64.des
DESTINATION={appgg}
VERSION=2013.4.12.1
CRC32=1478304012
OPTION=0
[FILE119]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=TeCtrl.dll.npz
REALFILENAME=TeCtrl.dll
DESTINATION={commonty}
VERSION=2012.2.23.1
CRC32=1845169325
OPTION=1
NOAUTH=1
[FILE120]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=tyav32.dll.npz
REALFILENAME=tyav32.dll
DESTINATION={commonty}
VERSION=2012.4.5.1
CRC32=4219495139
OPTION=1
NOAUTH=1
[FILE121]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=teexcept.npz
REALFILENAME=teexcept.dat
DESTINATION={commonty}
VERSION=
CRC32=1785387907
OPTION=1
NOAUTH=1
[FILE122]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=TYAVP_000.npz
REALFILENAME=TYAVP_000.bin
DESTINATION={commonty}
VERSION=2012.04.04.01
CRC32=729554879
OPTION=1
NOAUTH=1
[FILE123]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=TYAVS_000.npz
REALFILENAME=TYAVS_000.bin
DESTINATION={commonty}
VERSION=2012.04.04.01
CRC32=711416380
OPTION=1
NOAUTH=1
[FILE124]
DESCRIPTION=nProtect GameGuard Engine
FILENAME=ggsig.npz
REALFILENAME=ggsig.des
DESTINATION={appgg}
VERSION=
CRC32=269221070
OPTION=0


根据这个cfg可以看到gameguard.des要下载的np文件全部都是npz形态的,先不管npz是什么样子的,先写一个工具来根据ini下载cfg和npz文件到比较和谐的路径去,然后再研究。

这里用到一个工具curl,一个命令行的犀利的http工具,从网上搞一个回来,然后走起。

根据ini调用curl下载cfg,再根据cfg下载npz并存放到和谐路径的代码如下:
DownLoadNp.zip


这回又要说道npz文件是啥了,用记事本打开有看到了 PK
觉得可能是ZIP文件,用winzip解密,发现果然解压缩出来了,而且没问题,
这里又注意到cfg明文中有crc32一条,发现其是压缩包内的实际文件的crc32,
修改时,要和谐的修改cfg中的crc32才可以。(注意:cfg要加密回去才会有效果!)

似乎到这里就OK了,至于HTTP服务器,完全可以用iis来搭建(不会请baidu)

以上就是nprotect gameguard ini配置的破解


再次声明:本文仅供研究学习,不得用于其他途径。
严重声明:本文引发的可能存在的一系列后果,均与作者无关。


IGS游戏安全技术培训
QQ群:48715131
欢迎有兴趣研究各类游戏安全相关技术的人员加入。

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

上传的附件:
收藏
点赞3
打赏
分享
最新回复 (64)
雪    币: 8861
活跃值: (2369)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
cvcvxk 10 2013-12-4 04:52
2
0
那个N是2007年在360闲的无聊用办公室电脑分解的。
雪    币: 80
活跃值: (97)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
niling 2013-12-4 04:59
3
0
哈哈,广告位招租!
雪    币: 185
活跃值: (714)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
肉丝袜 2013-12-4 05:19
4
0
完爆NP
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lxmls 2013-12-4 06:06
5
0
mark。
雪    币: 9674
活跃值: (4334)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
程序原 2013-12-4 06:37
6
0
好早啊 这是没睡 还是起来了捏
雪    币: 1602
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
panti 2013-12-4 07:37
7
0
前排一观,解密np
雪    币: 22
活跃值: (423)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
靴子 2013-12-4 07:54
8
0
淡定淡定。。。
雪    币: 9
活跃值: (939)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
网络游侠 2013-12-4 09:00
9
0
2034版毫无压力的RING3 附加调试.
雪    币: 236
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
RtlFree 2013-12-4 09:14
10
0
好方法呀. 果然能多开了. 还能 去掉反调试呢.
雪    币: 636
活跃值: (174)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
Fypher 4 2013-12-4 09:26
11
0
老V的东西必须收藏
雪    币: 25
活跃值: (84)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
tihty 2 2013-12-4 09:31
12
0
经过V校的讲述,事情的来龙去脉我完全看明白了

我来发表下观点,NP这套系统应该在两个地方改进下

1.签名用2048位RSA进行
2.下载文件使用私有协议,免得被别人轻易冒充服务器

各位觉得呢?
雪    币: 10214
活跃值: (2240)
能力值: ( LV5,RANK:71 )
在线值:
发帖
回帖
粉丝
joker陈 2013-12-4 09:40
13
0
hs是否也如此自大?!
雪    币: 219
活跃值: (738)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
viphack 4 2013-12-4 09:58
14
0
顶顶顶
雪    币: 1487
活跃值: (955)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
仙果 19 2013-12-4 10:11
15
0
高神莫测啊,看不懂
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
学gg 2013-12-4 10:15
16
0
厉害
雪    币: 299
活跃值: (4084)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
pysafe 2013-12-4 10:45
17
0
牛逼。!
雪    币: 218
活跃值: (173)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
SANCDAYE 2013-12-4 10:46
18
0
07年。。。。
太猛了
雪    币: 709
活跃值: (2240)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
sudami 25 2013-12-4 11:02
19
0
好厉害
雪    币: 208
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
justlovemm 2013-12-4 11:28
20
0
老V竟然在数字公司呆过?
雪    币: 6
活跃值: (980)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lookzo 2013-12-4 11:45
21
0
太厉害了吧
雪    币: 69
活跃值: (242)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wmg 2013-12-4 12:36
22
0
NP就这样被爆了...
雪    币: 1898
活跃值: (1755)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
莫灰灰 9 2013-12-4 13:11
23
0
牛逼啊。。。。
雪    币: 7300
活跃值: (3758)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
海风月影 22 2013-12-4 14:23
24
0
已经失效了,你才放出来
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xiejienet 2013-12-4 15:50
25
0
楼主这么**,你家里人知道吗?
游客
登录 | 注册 方可回帖
返回