虽然大概没什么人来看这个blog,但还是要稍微更新一下的。
前段时间被人摆脱去搞gift程序的破解,结果因为自己深陷数坑,搞了这么久才提出对白。Gift的脚本文件封装在一个pak文件里面再用zlib压缩,于是textdata.z就是脚本文件。自己用zlib写个程序解压后得到的pak文件就可以解包了。
值得一提的是虽然解压得出PAK文件里面第一个文件头结构就有指出脚本文件的个数,但实际上在后面还是有很多的空字节,因此用一些提取工具来提取会提取出错误的脚本,以下是自己写的提取脚本程序,代码很挫,没错误处理。
#include "windows.h"
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
struct filehead{
char name[0x30];
DWORD offset1;
DWORD offset2;
DWORD size;
DWORD unknown;
};
int chr='\\';
char path[256];
int main(int argc, char* argv[])
{
fstream is("textdata.z.pak",ios::in|ios::binary);
char *buff=new char [0x1f400];
is.read(buff,0x1f400);
filehead *p=(filehead*)buff;
int i=1;
while(p[i].size!=0)
{
char *pos1,*pos2;
char *temp=new char [p[i].size];
is.read(temp,p[i].size);
if((pos1=strchr(p[i].name,chr))!=NULL)
{
GetCurrentDirectory(256,path);
char *fuck=new char [pos1-p[i].name+2];
ZeroMemory(fuck,pos1-p[i].name+2);
memcpy(fuck,p[i].name,pos1-p[i].name+1);
lstrcat(path,"\\");
lstrcat(path,fuck);
CreateDirectory(path,NULL);
delete []fuck;
if((pos2=strchr(pos1+1,chr))!=NULL)
{
fuck=new char [pos2-pos1+1];
ZeroMemory(fuck,pos2-pos1+1);
memcpy(fuck,pos1+1,pos2-pos1);
lstrcat(path,fuck);
CreateDirectory(path,NULL);
delete []fuck;
}
}
fstream write(p[i].name,ios::out|ios::binary);
write.write(temp,p[i].size);
write.close();
delete []temp;
i++;
}
delete []buff;
is.close();
return 0;
}
提取出来的脚本有两种,一种是scn脚本,一种是tbl脚本,scn内含控制符以及对白,tbl则是对应scn脚本的索引。然后就可以写程序提取对白出来进行翻译了。
分享到:
相关推荐
本文将深入探讨如何实现"网络获取Gift并在屏幕上滑动,可以设置gift大小"的功能,同时处理相关的点击事件。 首先,我们需要理解"Gift"在网络应用中的概念。在大多数情况下,Gift指的是用户可以通过购买或赠送的虚拟...
《抽奖程序Gift 5.6:打造年会惊喜的科技利器》 抽奖程序在各种活动中起着举足轻重的作用,特别是在年会这样的大型聚会上,一个高效、公正且充满趣味性的抽奖环节往往能为活动增色不少。"Gift 5.6"就是这样一款专为...
标题中的"gift-master.zip"似乎是一个压缩文件,通常用于存储多个相关文件或文件夹。在IT领域,压缩文件是常见的数据传输和存储形式,通过压缩技术减小文件大小,便于管理和分享。zip是一种广泛使用的压缩格式,由...
Gift 包提供一整套有用的图像处理过滤器。完全使用 Go 语言,没有 Go 标准库之外的外部依赖。安装/更新go get -u github.com/disintegration/gift文档http://godoc.org/github.com/disintegration/gift快速开始/...
A Mathematical Gift 1 经典讲义 [Kenji_Ueno,_Koji_Shiga,_Shigeyuki_Morita]
在数据预处理阶段,GIFT可以执行去除非神经活动相关的信号(如头部运动、生理噪声等),以及时间序列标准化等操作。接着,通过FastICA算法或其他ICA算法训练模型,得到一组独立成分。然后,通过可视化和统计测试,...
A Mathematical Gift 2 [Kenji_Ueno,_Koji_Shiga,_Shigeyuki_Morita]
"GiftCard-Android好看的卡片动画效果"项目就是这样一个示例,它展示了如何在Android应用中实现精美的卡片翻转动画,为用户提供更生动、有趣的交互体验。下面将详细探讨这个项目中的核心知识点。 1. **自定义View**...
基于体感设备开发的多功能应用系统部分源代码,成果归大家所有。
在Android开发中,为了给用户带来更生动丰富的交互体验,我们常常会用到动画效果,其中GIF(Graphics Interchange Format)格式的动画因其轻量级、支持循环播放等特点,被广泛应用于各种应用场景,比如加载指示、...
[mobi]Python for Unix and Linux System Adminis - Noah Gift
LICEcap是一款非常实用的动态屏幕录制工具,尤其适合在Mac平台上进行快速、简便的GIF动图制作。它的简洁界面和高效操作使得它成为许多用户首选的截图工具。下面我们将详细探讨LICEcap的功能、使用方法以及其在工作和...
GiftCard-iOS, 简单的实现dribbble镜头 giftcard-ios你可以在 Dribbble 看到令人印象深刻的动画。##Why 我做这个?我开始学习一些代码,并开始学习一些代码,试图同时使用Xcode和Facebook的折纸工具。我还以为应该...
【标题】"轻软实训的GIFT-EMS礼记项目源码"是一个基于S2SH框架的Java项目,主要用于教学和实践。S2SH是Struts2、Spring和Hibernate三大开源框架的组合,广泛应用于企业级Web应用开发。这个项目可能是为了帮助学员...
Gift fromQ.exe
在"Greedy Gift Givers"这个题目中,我们面对的是一个贪心算法的应用问题。贪心算法是一种解决问题的策略,它在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的。...
项目的源代码"GiftCard-Android-master"包含所有实现这个自定义控件的相关文件,包括Java源码、资源文件以及可能的示例应用。通过查看和学习这个项目,开发者可以深入了解如何在Android中实现自定义视图,以及如何将...
这份PPT学习教案名为"the worlds most useful gift catalogue",主要探讨了如何通过赠送实用的礼物来帮助贫困地区的孩子和家庭。教程中包含了快速阅读、详细解读等环节,旨在引导学习者理解并参与到这个有益的活动中...
利用Biclique攻击方法,结合算法密钥调度方式以及轮函数结构的信息泄露规律,分别给出了对于GIFT-64算法的平衡Biclique攻击和Star攻击结果。对于GIFT-64算法的平衡Biclique攻击所需的数据复杂度和计算复杂度分别为2...