标题:求解存档文本的checksum校验范围
取消只看楼主
ragnarok
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-1-24
结帖率:33.33%
已结贴  问题点数:20 回复次数:5 
求解存档文本的checksum校验范围
小弟是一名游戏爱好者,平时喜欢自己轻度修改下游戏的存档,但是有些游戏的存档有checksum校验功能,修改数值会造成存档无法使用,所以特来此论坛求助各位大神帮忙小弟看看,小弟因刚注册本论坛还没有积分,所以没法悬赏,如有大神愿意帮助小弟解开本人愿意现金酬谢(不低于200块RMB),首次发帖不知道是不是符合版规,如不符合请版大手下留情,小弟急求

如有大神愿意帮忙小弟请麻烦联系我下或者留言,必有重谢!


[此贴子已经被作者于2017-1-24 16:33编辑过]

搜索更多相关主题的帖子: 爱好者 游戏 
2017-01-24 16:28
ragnarok
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-1-24
得分:0 
以下是引用九转星河在2017-1-24 16:56:55的发言:

先抛开$不谈~这个好像和C扯不上什么关系耶~那些修改软件的应该是用金山游侠之类的~虽然我见过简单的修改text文档里面的内容也行~但感觉修改游戏软件太多方法太灵活了~还是谈谈C或者弄个简单的游戏设计软件玩玩比较好~


感谢版大回复,由于小弟也不懂这个checksum的校验属于汇编的哪一类知识,所以只好发到这个版块还请原谅,那小弟问下如果想自己学习这部分知识的话,应该从什么部分开始学起?这个checksum的校验属于汇编中的哪部分知识?小弟并没有任何汇编方面的知识,还请版大能指引下方向,谢谢了
2017-01-24 18:06
ragnarok
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-1-24
得分:0 
回复 5楼 吹水佬
大神您好,谢谢您指引了下方向,不过由于小弟并无这类汇编方面的基础,所以您发的帖子我看的不是很懂,请问可以拜托您帮着解一下么?

之前也修改过有类似checksum校验机制的存档,不过都是些论坛方面的大神查找出来现成的check范围,自己用msc校验了下而已,而且小弟只会那种格式的,小弟用的软件为:MemorySumChecker 1.49,一般论坛大神给出的校验范围是以下格式的,请问如何做成你编写的那种格式?

ENDIAN(LITTLE)
CSUM == 0
CSUM <= ADD(0, 5FC0F, 1)
WRITE( 5FC14, 4)
SHOW

还有种类似大神做的这种 010 Editor v1.0 Script File的脚本文件,不过感觉这种更高深!,请问下面这种脚本格式的编写如何改成上面那种msc格式的?

//-----------------------------------
//--- 010 Editor v1.0 Script File
// Define variables
quad  pos = 0;
int   sum1 = 0, sum2 = 0;

// Check that a file is open
if( FileCount() == 0 )
{
    MessageBox( idOk, "error", "No file is opened." );
    return -1;
}

// Check that is ed_zero savedata



while( pos < FileSize()-8 )
{
    sum2--;
    sum1 += ReadInt(pos);
    pos += 4;
}

sum2 -= sum1;

if( sum1 == ReadInt(pos) && sum2 == ReadInt(pos+4) )
{
    // MessageBox( idOk, "ok", "No set is needed" );
    Printf("No set is needed\n");
    return -1;
}

WriteInt(pos,sum1);
WriteInt(pos+4,sum2);
FileSave();

// MessageBox( idOk, "ok", "set ok" );
Printf("set ok\n");

最后感谢大神能回答我的问题,如方便的话小弟想加大神好友详细请教下,必有重谢!也祝大神新年快乐!
2017-01-27 01:56
ragnarok
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-1-24
得分:0 
以下是引用吹水佬在2017-1-27 07:46:43的发言:


在这个个人都是友好的交流讨论学习,个个都是好友。
有问题在坛子上提出是最好的方式,这样可以与更多的人从不同的角度讨论、分析、解决问题,分享大家的经验。
老实讲,本人来这也是想在问题中找学问,在帮人解决问题中学习新知识。不怕你说错,就怕你不说。


感谢版大百忙之中的解答,小弟这就将对比用的数据上传给您,您看下能不能找到解决方法,谢谢啦!

对比用存档.zip (10.77 KB)


存档6为第一个存档,存档7为过了10秒钟后的存档,理论上来讲应该除了时间以外没有任何其他变动的数据,麻烦版大帮忙看下

[此贴子已经被作者于2017-1-27 12:39编辑过]

2017-01-27 12:38
ragnarok
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-1-24
得分:0 
以下是引用吹水佬在2017-1-27 15:42:44的发言:

看了一下那两个文件,好象不存在sum1和sum2的数据,应该不是6楼那段代码处理的文件。


版大新年快乐!祝今年学业有成,名利双收,哈哈

版大果然技术精湛,看出了原因,是的,之前上传的2组对比用的存档是另外个游戏的,按照小弟知道的几种checksum的校验方式测试了下,分别在一堆00的位置输入802083B8ED和0104C11DB7这两组,进入游戏后仍然报错,看来不是CRC32F和CRC32I,还测试了下在+10的上下位置输入了40,结果也是报错,应该也不是Xor,所以是什么样的校验方式小弟实在是搞不懂,还请版大帮忙计算下,如果实在解不开也没事,如果不嫌麻烦的话,不知还可以拜托版大帮着计算下其它游戏的可以么(多数为日式PS3和PSV的游戏)
2017-01-28 00:36
ragnarok
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2017-1-24
得分:0 
以下是引用吹水佬在2017-1-28 07:45:26的发言:

不好意思,只从游戏的角度看,可能帮不了什么。
本人对游戏这玩意不太认识,对玩游戏提不起兴趣,总觉得不是你在玩游戏,而是游戏在玩你,所以玩游戏不如造游戏。
说实在的,好多时觉得所谓的游戏修改器(或外挂)都是游戏本身的一部份,做神是她,做鬼也是她。如果她真的不想人家改变她,谁能改变她?除非你完全攻破她,此时她也活不下去,你也没得玩。


版大说的是,不过还是感谢版大这次的耐心解答了
2017-01-28 10:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-473804-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020743 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved