是为了网站版权加密,游戏数据加密又是为什么

游戏本身加密是为了版权,游戏数据加密又是为什么?_风色幻想吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:20,090贴子:
游戏本身加密是为了版权,游戏数据加密又是为什么?
普通的游戏修改软件无法修改数值,但还不是有其他办法么 有必要为了防止修改这么变态么
这个有人发过么?
这战斗画面我看着都醉...
日,在微博上...
没错,正当楼主某天闲的...
为何还要执着于64位加密...
没有使用权我还是去玩30...
我才问了几句就这态度?...
《花千骨》一书游戏版权...
点击0元预约魅蓝 5s,瓜分30万大奖
这才更考验修改党的技术啊少年.
这是为了保证游戏数据安全吧……
贴吧热议榜
使用签名档&&
保存至快速回贴日本游戏常用加密压缩算法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
日本游戏常用加密压缩算法
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢xiaominghimi 的BLOG
用户名:xiaominghimi
文章数:190
评论数:227
访问量:1106856
注册日期:
阅读量:5863
阅读量:12276
阅读量:389439
阅读量:1080451
51CTO推荐博文
&本站文章均为原创,转载务必在明显处注明:
转载自&原文链接:&
上一篇介绍了,如何使用Cocos2dX自带的CCUserDefault 存储游戏数据,那么Himi也提到此方式保存的为xml格式并且数据明文显示=。 =,这个对于我们开发者来说太暴漏了有木有! so~本篇Himi分享如何使用经典Base64算法对CCUserDefault进行数据加密!
OK,关于base64的介绍,Himi不再赘述,还不太熟悉的童鞋请点击以下连接阅读:
&(百度百科的 base64详细解释)
如果对于Cocos2dX自带的CCUserDefault类不太熟悉的请点击如下连接:
对Base64有了基础认识后我们就开始进入正题,首先,我们针对Cocos2dX使用c++版的base64加密文件:
base64.h以及base64.cpp &文件下载导入项目中:
650) this.width=650;" src="/wp-content/plugins/hacklog-downloadmanager/images/ext/zip.gif" alt="" title="" style="margin-top: 0 margin-right: 0 margin-bottom: 0 margin-left: 0 padding-top: 0 padding-right: 0 padding-bottom: 0 padding-left: 0 border-top-width: 0 border-right-width: 0 border-bottom-width: 0 border-left-width: 0 border-style: border-color: font-weight: font-style: font-size: 14 font-family: vertical-align: max-width: 100%; " />&&&(647 字节, 11 次)
然后Himi封装好了两个函数:(这里我们假设存储游戏金币)
首先.h中,定义枚举变量(备注1)
enum{&&&&&DATA_GOLD,&&&};&
然后.h定义两个函数:(备注2)
&void&saveDataByKeyValue(int&iKey,&string&sValue);&&&&int&loadDataByKey(int&iKey);&
最后.cpp中函数具体实现代码:(备注3)
&void&HelloWorld::saveDataByKeyValue(int&iKey,&string&sValue){&&&&&char&buffer[32];&&&&&sprintf(buffer,&&%s%d&,&&Himi&,iKey);&&&&&CCLog(&----------存储&);&&&&&CCLog(&存储之前数据&key:index:&Himi%i,&value:&%s&&&,iKey,sValue.c_str());&&&&&string&sKey&=&himiSaveData(reinterpret_cast&const&unsigned&char*&(sValue.c_str()),&sValue.length());&&&&&CCLog(&存储加密后的数据&key:index:&Himi%i,&value:&%s&&&,iKey,sKey.c_str());&&&&&CCUserDefault::sharedUserDefault()-&setStringForKey(buffer,&sKey);&&&&&CCUserDefault::sharedUserDefault()-&flush();&}&&&&int&HelloWorld::loadDataByKey(int&iKey){&&&&&CCLog(&----------读取&);&&&&&char&buffer[32];&&&&&sprintf(buffer,&&%s%d&,&&Himi&,iKey);&&&&&&&string&s&=&CCUserDefault::sharedUserDefault()-&getStringForKey(buffer);&&&&&CCLog(&解密前的数据:&%s&&&,s.c_str());&&&&&string&parseKey&=&himiParseData(s);&&&&&CCLog(&解密后的数据:&%s&&&,parseKey.c_str());&&&&&return&atoi(parseKey.c_str());&}&
OK,这里开始逐步解释一下:
首先说下备注2,这里定义的两个方法,第一个函数:
&&&&void saveDataByKeyValue(int iKey, string sValue);
其中第一个函数传入一个int值,为什么要这样,原因是这样方便与结合枚举变量(备注1)来进行存储,这样使用的时候非常简化你的代码和步骤;第二个函数是值,这里我封装成string,这样为了更好的结合我们的base64加密!这点在(备注3)中体现!
第二个函数:
&&&&int loadDataByKey(int iKey);
这个函数没什么好说的,传入的参数int,枚举变量即可!至于返回值是int 是方便程序中使用!
OK,那么备注3对于两个封装函数中的实现需要说明的有3点:
1. &将传入的int值(key)转化成char*类型,因为cocos2dx中并没有itoa这样的方法(原因上一篇有介绍),所以这里我采用 &&char buffer[32]; & &sprintf(buffer, &%s%d&, &Himi&,iKey); &方式进行将int转化char*类型;
2. 存储的时候我们步骤是:string值进行base64加密,然后存储到xml中;
3.&将int转化string的时候我在枚举变量前加入&Himi&,大家不喜欢可以换成自己喜欢的,但是千万不要删除!因为一旦你删除掉,然后将存储后的形式为: &1&数据&/1& &这样会造成你读取数据出错!
读取数据步骤:根据key读取xml的加密过的string,然后base64解密出原始值,最终atoi转化成int扔出!
这其中应该说没什么难于理解的,所以这里不再赘述了;
那么下面我们来看这两个函数如何使用:
&this-&saveDataByKeyValue(DATA_GOLD,&&10000&);&&&&this-&loadDataByKey(DATA_GOLD);&
代码是不是用起来很方面呢!哈哈,这就对啦,不能因为加密弄得乱78糟~OK,运行项目,控制台你将看到如下显示:
Cocos2d:&cocos2d:&cocos2d-1.0.1-x-0.12.0&Cocos2d:&cocos2d:&GL_VENDOR:&&&&&Imagination&Technologies&Cocos2d:&cocos2d:&GL_RENDERER:&&&PowerVR&SGX&543&Cocos2d:&cocos2d:&GL_VERSION:&&&&OpenGL&ES-CM&1.1&IMGSGX543-63.14.2&Cocos2d:&cocos2d:&GL_MAX_TEXTURE_SIZE:&4096&Cocos2d:&cocos2d:&GL_MAX_MODELVIEW_STACK_DEPTH:&16&Cocos2d:&cocos2d:&GL&supports&PVRTC:&YES&Cocos2d:&cocos2d:&GL&supports&BGRA8888&textures:&NO&Cocos2d:&cocos2d:&GL&supports&NPOT&textures:&YES&Cocos2d:&cocos2d:&GL&supports&discard_framebuffer:&YES&Cocos2d:&cocos2d:&compiled&with&NPOT&support:&NO&Cocos2d:&cocos2d:&compiled&with&VBO&support&in&TextureAtlas&:&NO&Cocos2d:&此项目已存在保存数据的xml文件&Cocos2d:&存储之前数据&key:index:&0,&value:&10000&Cocos2d:&存储加密后的数据&key:index:&0,&value:&MTAwMDA=&Cocos2d:&解密前的数据:&MTAwMDA=&Cocos2d:&解密后的数据:&10000&
存储的文件内容截图如下:
OK,最后呢,我要说一点,虽然我们使用base64可以对数据进行加密,但是对于不懂程序的用户来说基本无法修改,但是对于稍微有了解base64加密的童鞋,那么直接可以在线解码你的这个加密,所以呢!最后Himi提醒大家,使用base64当中,大家可以书写一些算法结合base64来使用!这样即使明文也不怕,至于怎么做,Himi就不再多说了 哈哈!
本篇源码下载:
650) this.width=650;" src="/wp-content/plugins/hacklog-downloadmanager/images/ext/zip.gif" alt="" title="" style="margin-top: 0 margin-right: 0 margin-bottom: 0 margin-left: 0 padding-top: 0 padding-right: 0 padding-bottom: 0 padding-left: 0 border-top-width: 0 border-right-width: 0 border-bottom-width: 0 border-left-width: 0 border-style: border-color: font-weight: font-style: font-size: 14 font-family: vertical-align: max-width: 100%; " />&&&(691 字节, 6 次)
本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
本文收录至博客专题:《》
15:55:16 10:19:22 12:08:14我的电脑单机游戏修改经历
我是一名电脑游戏爱好者,自1986年玩FC红白机起,至今也已有二十几年的游戏史了。我喜欢玩游戏,也喜欢修改游戏,我把这些年修改游戏的经历回忆记录下来,和与我有相同爱好的朋友共同分享。
早期的8位红白机、16位世嘉机包括再往后的ps系列和街机都不能修改数据,只能使用秘籍做简单调整。记忆较深的是8位魂斗罗调30人秘籍。游戏进入电脑时代后,就可以用相应的软件工具对其数据进行修改。我根据个人修改经历把单机游戏修改分为三个阶段。
第一个阶段是简单数据修改阶段。这一时期大概是从1997年-2001年左右,这段时间出的游戏数据大都简单,数据既不加密,也不伪装,都是直接呈现的,修改直接方便。这一时期的主流操作平台是win9x,该平台最常用的通用游戏修改工具是金山游侠2、3,fpe2000、GM7.0、东方不败1、2,修改方法原理基本相同,打开游戏→打开工具→搜索数据(金钱值、经验值、物资值等)→改变数值→再搜→确定数值→直接修改。这时期的游戏数据大多以16位(单字)记录在内存地址,通用工具就利用16位单字或双字搜索定位修改就可以,代表有红色警戒95/98的金钱、星际争霸的资源、暗黑1、2的相关数据、。当然也有特例,帝国时代2的资源必须用浮点搜索才能修改。铁路大亨2无法直接搜定修改。常用的工具也有优缺点,金山游侠不稳定常出错,fpe2000占系统,我最常用的是东方不败1,优点是游戏基本通吃,与win9x的兼容性最好。缺点是搜索内存范围小,只有4096,在当时也够用。总结一下这一时期游戏好修,几种工具组合使用,基本无敌。
第二阶段是数据初步加密伪装阶段。自2001年到2005年,这一时期操作系统普及了winxp,32位的系统与前期的修改工具软件基本不兼容了。此时各大游戏公司为了保证游戏的持续可玩性,免遭数据破坏而失衡,游戏数据大多数加密或伪装。伪装的举例为《大航海家2、3》,海商王等,货物数据虽然为10,但实际内存地址数据值为10000。加密的举例为《地球帝国2》、《创业王》,数据加密根本无法直接修改。除了上述问题外,修改爱好者也不再满足于基本数据的修改,我就记得我第一次玩RPG《武林群侠传》时,仅修改金钱、经验值满足不了需求,我更需要道具的修改。由于从2001年起,网络开始普及,因此网上大量的专用修改器出现了,我就可以从网上下载能修改物品道具的专用修改器。专修的优点是功能强大,修改简单,能直接修改加密数据,也能修改道具、物品等复杂修改。缺点是只针对一个游戏或一类游戏。其实专用修改器的功能通用修改器也可以完成,只是方法复杂,例如光荣的《大航海时代4》,游戏里的物品船只可以用装修工具修改,通过内存地址的修改方法金山游侠、fpe2001也可以修改,只是相对困难。这一时期还有一类特殊修改器--《变速齿轮》,他不修改数据,但改变程序速度与节奏,一些动作游戏很需要他,我在《侠盗-圣安地列斯》《武林群侠传》游戏的一些场景很需要他。最后介绍下这个时期的通用修改器,在xp平台下常用的通修工具有GM8.0、独孤求败2、金山游戏5、fpe2001等,我感觉gm8功能最强大,使用不太方便;
金山游戏5整个一个垃圾,独孤求败2最好用,类似9x下的东方不败1,但功能更强,修改范围不受限制,是我用过的最好的通用修改器。虽然这时的游戏修改难度增大,但通过查询网上高手的经验,大多数游戏可以修改。
第三个阶段是复杂数据修改阶段。这一时期从2006年起至今,游戏为了保护版权、保护游戏平衡和持续可玩性,各类单机游戏数据的加密和伪装的力度很大,通用修改器基本失去作用,由于大多数游戏爱好者投入到网络游戏的怀抱,对单机游戏不再兴趣,因此很多高手都不在编写专用修改器了,网上的专修也不多了,这一时期游戏修改的难度比以往都大。我常玩的游戏中即时战略游戏最难修改,微软代理的《神话时代》《国家崛起》和微软自己的《帝国时代3》,Relic
Entertainment公司的《英雄连》还有《轴心与同盟》,无论通用修改工具还是专用工具都不好用,只有打开游戏安装文件夹里的数据文件进行特殊修改,需要通过这样的修改方式修改的游戏还有模拟经营游戏里的《城市生活》《海商王2》《东印度公司》,策略游戏里的《钢铁雄心》系列、《全面战争》系列,RPG游戏和动作游戏相对还是好修改一些。我感觉此时的游戏要修改,必须到网上大量查阅相关资料,还要有一点的修改基础和经验,否则很难达到修改目的。
我修改游戏的原则。我修改游戏不喜欢过分修改,稍加一点优势就可,既有可玩性,又能降低游戏难度。即时战略游戏,如果能修改军队兵种的属性如:射程、攻击力、防御等,就稍加修改一点,但造价提高一些,游戏相对平衡一些,可玩性强了。举例《国家的崛起》德国豹式坦克的射程23,攻击25,生命250,造价300,我修改为射程28,攻击30,生命350,造价400,玩起来很有乐趣,但有人改为射程100,攻击100,生命1000,造价20,这游戏还有什么玩的意思,再例如:RPG游戏我从来不改经验值和等级,我只加一些很难得到的道具,就算使用这些道具,我还要练到级才用。但有些人喜欢一出场就改为99级,主角无敌,还有什么意思。再例如:模拟经营游戏《海商王》,我一般修改船只性能和产地产物,但绝不修改金钱,因为模拟经营游戏主要目的是赚钱,结果一开始就修了几千万的钱,游戏就没有可玩性了。
这就是我这些年的游戏修改心得和经历,写出来是为了和大家一起分享和探讨,有不足的地方希望指出,我也可以学到更多经验。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
随心飘万里
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 js加密版权链接数据库 的文章

 

随机推荐