Quartett!的二进制脚本分析

我前两天在NetOA方面确实是有点懈怠了。不为别的,正是为了这篇将提到的脚本的分析。虽然没把分 析做彻底,不过我觉得现在已经足够使用,顺便拿出来说说。

上个周末,汉公突然跟我提起FFDSystem的话题,然后有人联系我做Quartett!的汉化。自从跟汉公和 明大合作参与汉化以来,我基本上就是做脚本处理的相关工作比较多;汉公解决破解的棘手问题,而明大 主要完成打包问题,也兼做脚本编辑器,视具体分工而定。这次也不例外,汉公主攻了资源文件的破解和 资源抽取,资源的打包还没做,脚本这块就暂时交给了我。一般,如果脚本是没经过处理的文本,那也就 没我什么事了;这次遇到的果然还是经过处理了的二进制脚本。

一拿到已经从Script.dat中提取出来的脚本文件,我吓了一跳:文件名居然都是MD5……汉公那边果然 还没把资源破解完善。不过没关系,只要文件内容是对的就能开工。可以确认的是,脚本(准确说是给到 我手上的脚本)的后缀名是tkn。

打开其中的第一个文件,0a69b4afebd6d64527a21e3f1aa993f9.tkn。内容如下:

Java代码

Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
00000000   54 4F 4B 45 4E 53 45 54  64 00 00 00 76 08 00 00   TOKENSETd...v...
00000010   0C 00 00 00 85 23 00 0C  00 00 00 81 62 61 73 65   ....?.....|ase
00000020   5F 70 61 74 68 00 0C 00  00 00 83 2E 2E 2F 00 16   _path.....?./..
00000030   00 00 00 85 23 00 16 00  00 00 81 69 6E 63 6C 75   ...?.....(nclu
00000040   64 65 00 16 00 00 00 83  53 63 72 69 70 74 2F 42   de.....ゴcript/B
00000050   61 73 65 49 6E 73 74 72  75 63 74 69 6F 6E 2E 74   aseInstruction.t
00000060   78 74 00 20 00 00 00 81  6D 6F 74 69 6F 6E 00 20   xt. ...[otion.
00000070   00 00 00 81 4D 61 69 6E  00 20 00 00 00 85 28 00   ...`ain. ...?.

读起来似乎很郁闷(?),其实看到有那么多ASCII字符我已经很开心了。可以辨认出最开头的 TOKENSET(但此时还无法判断那个d是什么)、ase_path、nclude等等。进一步观察可以发现那些看似被 剪掉了的字符都在,前面的base_path、include就是如此。编辑器里显示不出来只是因为大于0x7F的字节 被解释成双字节字符编码(DBCS)中一个双字节字符的首字节,也就是例如说0x81把base_path中的b (0x62)给“吃”了。

在上述截图范围内,我总共识别出了这些:base_path、include、Script/BaseInstruction.txt、 motion、Main等字串。观察它们前后的规律:这些字串总是以0结尾,是标准的C string;这些字串的前 面总是有一个大于0x7F的字节(留意到0x81和0x83),而在那个字节之前似乎总是有3个00字节,前面又 是一个非00的字节。

为了方便分析,我写了一个小程序来抽取出我感兴趣的信息,辅助分析。

对应上面内容而提出出来的内容:

(格式是:字符串起始地址 一个奇怪的数字 字符串之前的那个字节 字符串内容)

Java代码

0x1C 0xC 0x81 base_path
0x2B 0xC 0x83 ../
0x3B 0x16 0x81 include
0x48 0x16 0x83 Script/BaseInstruction.txt
0x68 0x20 0x81 motion
0x74 0x20 0x81 Main

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索脚本
, 内容
, 字节
, 字符
, 00
, 一个
nclude
二进制文件和脚本行为、二进制和脚本行为、shell 脚本 二进制、quartett、alban berg quartett,以便于您获取更多的相关知识。

时间: 2024-10-30 02:26:09

Quartett!的二进制脚本分析的相关文章

《智能路由器开发指南》——2.2 编译脚本分析

2.2 编译脚本分析 2.2.1 顶层目录概述 OpenWrt代码有8个固定的顶层目录及6个编译时创建的临时目录,顶层的固定目录含义如表2-3所示. 目录config是编译配置文件目录,是OpenWrt 15.05的新增目录,是将一些编译选项配置文件分类放在这里,包含全局编译设置.开发人员编译设置.目标文件格式设置和内核编译设置等4部分. 目录include和scripts包含各种脚本和Makefile.目录target是指目标嵌入式设备,针对不同的平台有不同的特性代码.针对这些平台特性,"ta

实用防火墙(Iptables)脚本分析

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://chenguang.blog.51cto.com/350944/1338882 实用防火墙(Iptables)脚本分析 --Redhat,CentOS,Ubuntu等常见Linux发行版中都会预装Iptables防火墙,大多数初学者设置起来由于对这款软件比较陌生,设置起来比较困难,下面这段脚本实现了修改变量的值就能轻松移植到自己的网络,同时对各段内容做了介绍.首先在/usr/bi

Android ROM开发(二)——ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法

Android ROM开发(二)--ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法 怪自己二了,写好的不小心弄没了,现在只好重新写一些了,上篇简单的配置了一下环境,这里呢,就来讲一下相关的只是点 我们先下载一个ROM,随便下,原理都是差不多的,这里我就下载一个红米Note的MIUI稳定版 1.ROM结构 ROM根据厂商的定制可能有所不同,但是大体是不变的 data 内置一些软件 META-INF 脚本文件 update-binary 二进制文件 updater

[原创]systemtap脚本分析系统中dentry SLAB占用过高问题

摘要 利用systemtap脚本分析系统中dentry SLAB占用过高问题 原创文章:来自systemtap脚本分析系统中dentry SLAB占用过高问题 背景 长时间运行着的tengine主机有内存占用75%以上的报警. 操作系统版本: 2.6.32.el6.x86_64 原因定位 收集内存使用的相关信息如下: 因内存占用率报警mem:76.28%先看一下内存的总体使用状况,从下图中可以看出used占用较高,buffers/cached占用较少(关于cached占用过高的分析处理请参见另一

iredmail下安装脚本分析(一)---get_all.sh 文件所在目录为PKGS_linux shell

iredmail是一套以postfix为核心的整合邮件系统的安装脚本,可以达到快速部署邮件服务器的目的. 经过上面的一系列分析后,进入到获取安装包的步骤,作者在此处单独写了一个脚本,get_all.sh,我们继续分析这个脚本 _ROOTDIR="$(pwd)" CONF_DIR="${_ROOTDIR}/../conf" . ${CONF_DIR}/global . ${CONF_DIR}/core . ${CONF_DIR}/iredadmin 程序的意思是利用p

使用ass.awk脚本分析systemstate生成的trace文件

在以前,很多客户和朋友曾经各种寻找ass109.awk脚本,用意分析systemstate生成的trace文件. 因为最初ass109.awk文件是Oracle内部一个老外大牛个人写脚本,还不算是Oracle公司产品化的东西,以为不能提供支持. 在LTOM431版本中,已经自带了ass109.awk脚本: sftp> lpwd E:/CRT-temp/tools/ltom431/ltom/tom_base/tom/src sftp> pwd /rootwork sftp> lls ass

webmin 之 setup.sh 脚本分析

#find install directory cd 'dirname $0' if [ -x /bin/pwd ]; then wadir='/bin/pwd' else wadir='pwd'; fi #查找并获得安装目录 -> wadir ver='cat $wadir/version' #获得安装版本 echo "*****************" . #显示用户提示信息 id | grep "uid=1<" >/dev/null if 

spark-shell脚本分析

本文主要分析spark-shell脚本的运行逻辑,涉及到spark-submit.spark-class等脚本的分析,希望通过分析脚本以了解spark中各个进程的参数.JVM参数和内存大小如何设置. spark-shell 使用yum安装spark之后,你可以直接在终端运行spark-shell命令,或者在spark的home目录/usr/lib/spark下运行bin/spark-shell命令,这样就可以进入到spark命令行交互模式. spark-shell 脚本是如何运行的呢?该脚本代码

shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)_linux shell

当服务器压力比较大,跑起来很费力时候.我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时. 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的. 下面是我在做优化时候,经常用到的一段shell 脚本. 这个也可以算是,统计web页面的slowpage 慢访问页面,象mysql slowquery . 以下是我的:nginx 配制   复制代码 代码如下:  log_format  main  '$remote_addr - $remote_user [