SOS-解析文件结构
有一个程序,相应的操作如果保存在一个文件里.
怎么才能得到这个文件的结构.
什么数据保存在什么位置?
不知各位大侠们有没有高见.
有建设性意见都得高分.
[解决办法]
1.你要猜别人的文件结构,只能试,再猜
2.你自己要写一个文件,用xml
[解决办法]
做一个结构化文件
[解决办法]
哦~~~好孩子~~~~~~~~~~~~~~但不是好程序员^_^
举个例子:
暗黑破坏神1/2都会把游戏人物资料存储到磁盘文件上,其中暗黑2人物资料存储于“人物名.d2s”文件里。
现在,比如我的游戏角色 女巫 等级 20 生命 400 魔法 500 强壮 1000 敏捷 15(某人:练成什么了-_-|||)
把以上数字转换为16进制表示,即 等级 14H 生命 190H 魔法 1F4H 强壮 3E8H 敏捷 FH
常用的 intel/AMD CPU 采用小端字节序(liittle edian),即在它的存储器中,(对寄存器AX来说)总是按地址顺序先放置AL内容,后放置AH内容,亦即 190H 会被存储为 90 01。
也就是说,在磁盘文件里,上述数据被如此保存:
等级 14 生命 90 01 魔法 F4 01 强壮 E8 03 敏捷 0F
(如果你需要做网络底层协议,就会知道这个知识有多重要了!我见过无数被大端/小端绕得晕晕乎乎的GG,偶敢保证他们都不是FPEer。可见不玩游戏的程序员不是好程序员^_^)
ok,现在使用uedit32或其他16进制编辑器(偶当年用pctools)打开角色对应的 .d2s文件,搜索对应的16进制数据吧——这些字段的存储位置一般都很接近。然后,尽量发挥你的BT精神吧~~
偶的记录是:diablo 2时期,10万强壮10万敏捷的亚马逊MM一箭放倒大菠萝;d2 ex初期,偶已经找到了所有任务完成记录、技能树、人物属性(修改它就可以死灵变女巫、游侠变刺客)、hardcore人物标记及死亡标记等等的存储位置。除了装备修改外,其他方面已经强于后来才在网上流行的暗黑2专业修改器ATMA的早期版本。
只要按照这个思路开动脑筋,没有找不到的属性、技能数据,也没有解不破的文件格式。