首页
社区
课程
招聘
[原创]仙劍奇俠傳,文件加密解密算法.放出來喏~!
发表于: 2010-6-28 20:54 10402

[原创]仙劍奇俠傳,文件加密解密算法.放出來喏~!

2010-6-28 20:54
10402
// RSTEncDec.h: interface for the CRSTEncDec class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_RSTENCDEC_H__20112A8E_16B6_4E06_9829_9CB5FC1F209C__INCLUDED_)
#define AFX_RSTENCDEC_H__20112A8E_16B6_4E06_9829_9CB5FC1F209C__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "DBDecEnc.h"

//-------------------------------------------------------------------------------------------------------------
typedef struct	_PACKFILE_HEADER_INFO{
	DWORD	_01dwLogon;	//0x1A545352 "RST"
	DWORD	_02dwUnk  ; //04
	DWORD	_03dwIndexSeek  ; //08
	DWORD	_04dwDataSeek   ; //0C
	DWORD	_05dwLenSub  ; //10
	DWORD	_06dwFileNum ; //14
	DWORD	_07dwUnk  ; //18
	DWORD	_08dwUnk  ; //1C
	DWORD	_09dwUnk  ; //20
	DWORD	_0AdwUnk  ; //24
	DWORD	_0BdwUnk  ; //28
	DWORD	_0CdwFileSize  ; //2C
	DWORD	_10dwUnk[0x14] ; //30
}_HEADER_INFO,_HEADERINFO;


class CPALFile
{
public:
	CPALFile();
	virtual ~CPALFile();
public:
	HANDLE	hOpen;
	HANDLE  hWrite;
	DWORD	m_dwCpkRead;
public:
	int	      GetSize();
public:
	HANDLE	  PalOpen(LPCTSTR strOpen);
	HANDLE	  PalOpen(LPCTSTR strOpen,DWORD	dwAccess,DWORD	dwShare,LPSECURITY_ATTRIBUTES lpSAttributes,
					  DWORD	dwMode,DWORD dwFlag,HANDLE	hTemp);
	HANDLE	  PalCreate(LPCTSTR strCreate);
	int       PalRead  (HANDLE hFile, LPVOID pbuf, DWORD dwlen);
	int		  PalRead  (HANDLE hFile, DWORD dwSeek,LPVOID pbuf, DWORD dwlen);
	int       PalWrite (HANDLE hFile, LPVOID pbuf, DWORD dwlen);
	int		  PalWrite (HANDLE hFile, DWORD dwSeek,LPVOID pbuf, DWORD dwlen);
	void      PalClose (HANDLE hFile) { ::CloseHandle(hFile); hFile=NULL; }
};

//-------------------------------------------------------------------------------------------------------------
typedef struct  _RST_DATA_INDEXLIST{
	DWORD	_01dwUnk;
	DWORD	_02dwUnk;
	DWORD	_03dwUnk;
	DWORD	_04dwSeek;     //文件位置
	DWORD	_05dwLenght1;  //加密后长度
	DWORD	_06dwLenght2;  //解密后长度
	DWORD	_07dwNumber;
	DWORD	_08dwEnd;
}_DATA_LIST;

class CRSTEncDec  
{
public:
	CRSTEncDec();
	virtual ~CRSTEncDec();
private:
	char	  DecKey[0x0100];
public:
	char	  m_chrData[0x02][0x1000];
public:
	int       RSTLoadKey(char *key1=NULL,char *key2=NULL,char *key3=NULL);
	int		  RSTDecrpyt(LPVOID	pdat,DWORD	dwnum,LPVOID pkey=NULL);
	int		  RSTDecIndex(LPVOID pbuf,DWORD len);
};


class CCPKFile : public CRSTEncDec,public CDBDecEnc
{
public:
	CCPKFile();
	virtual ~CCPKFile();
public:
	CPALFile		file;
	_HEADERINFO		_hdi;
	_DATA_LIST	   *_plist;
	int            m_iListNum;
	DWORD		    dwFileSize;
	LPBYTE			pData;
public:
	_DATA_LIST*   GetIndexList()
	{
		return (_DATA_LIST*)pData;
	}
public:
	int   DecCPKFile(LPCTSTR strOpen,LPCTSTR strSave);
	int	  DecCPKIndex(LPCTSTR strOpen);
	int	  WriteData(LPCTSTR strpath);
	char* GetDecType(LPVOID pheader);

public:
	int   DecData (char *pdat,int len,LPCTSTR strpath);
	int   SaveFile(int num,char *pdat,int len,LPCTSTR strpath,LPCTSTR strname);
};

class CSMPFile : public CRSTEncDec
{
public:
	CSMPFile();
	virtual ~CSMPFile();
public:
	CPALFile		file;
	_HEADERINFO		_hdi;
	_DATA_LIST	   *_plist;
	int            m_iListNum;
	DWORD		    dwFileSize;
	LPBYTE			pData;
public:
	_DATA_LIST*   GetIndexList()
	{
		return (_DATA_LIST*)pData;
	}
public:
	int   DecSMPFile(LPCTSTR strOpen,LPCTSTR strSave,LPCTSTR name=NULL);
	int	  DecSMPIndex(LPCTSTR strOpen);
	int	  WriteData(LPCTSTR strpath,LPCTSTR name);
	char* GetDecType(LPVOID pheader);
public:
	int   SaveFile(int num,char *name);
};

#endif // !defined(AFX_RSTENCDEC_H__20112A8E_16B6_4E06_9829_9CB5FC1F209C__INCLUDED_)


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (12)
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这是仙剑几啊
2010-6-28 23:23
0
雪    币: 68
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
拜女牛人。。。。
2010-6-29 10:05
0
雪    币: 252
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个... 呃,游戏汉化人员爱捣鼓的东西.不过这个游戏是中文的.
2010-6-29 10:12
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
哪个版本的仙剑?仙剑95?
2010-6-30 11:31
0
雪    币: 101
活跃值: (144)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
顶下楼主MM
2010-6-30 15:47
0
雪    币: 1053
活跃值: (1253)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
怎么可以 顶lzmm呢?
要支持嘛
2010-7-1 02:47
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
顶下楼主支持
2010-7-2 15:51
0
雪    币: 1402
活跃值: (341)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
我是来顶楼主的。。。。
2010-7-2 17:39
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
纯属支持!

绝无恶意!
2010-7-2 18:16
0
雪    币: 276
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
轻轻顶下楼主MM
2010-7-3 07:02
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我也要顶,也绝无恶意
2010-7-3 23:06
0
雪    币: 221
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
先回答问题,各位没看代码吧。这样应该是PAL4(PAL4_DEC)
呵呵,一定支持。不顶了。
2010-7-3 23:19
0
游客
登录 | 注册 方可回帖
返回
//