欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

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

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

注:本文提到的东西仅供研究不可用于其他途径。
本帖其实是一个礼物:献给我的新项目: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
欢迎有兴趣研究各类游戏安全相关技术的人员加入。

上传的附件 npdecini.rar
MakeIniByIni.zip
DownLoadNp.zip

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功