Register for your free account! | Forgot your password?

You last visited: Today at 22:21

  • Please register to post and access all features, it's quick, easy and FREE!

 

.VDK file !

Closed Thread
 
Old   #31
 
elite*gold: 0
Join Date: Dec 2007
Posts: 142
Received Thanks: 135
any beta of the packer?? can you send via private message plz?



MADR4T is offline  
Old   #32
 
elite*gold: 0
Join Date: Jul 2008
Posts: 31
Received Thanks: 1
Quote:
Originally Posted by midin14 View Post
скопируй распаковщик и то что хочеш распаковать в одну папку,и юзай
Заработало, спасибо, просто по описанию в программе получается что она распаковывает все файлы в папку с программой, но то что её нужно копернуть к ВДКшникам, не сказано, но всё равно молодец)


Rostix90 is offline  
Old   #33
 
elite*gold: 0
Join Date: Oct 2007
Posts: 1
Received Thanks: 0
Ohhh so close! I was biting my nails hoping that the last page of the thread had the packer! Real shame. A group of my buddies is looking for just that. We'd be infinitely grateful and I can't let this thread die off. Any updates?
TCoops is offline  
Old   #34
 
elite*gold: 0
Join Date: Sep 2006
Posts: 3
Received Thanks: 0
it's seems we are not lucky


CHaNGeTe is offline  
Old   #35
 
elite*gold: 0
Join Date: Feb 2008
Posts: 4
Received Thanks: 0
Quote:
Originally Posted by Rostix90 View Post
Заработало, спасибо, просто по описанию в программе получается что она распаковывает все файлы в папку с программой, но то что её нужно копернуть к ВДКшникам, не сказано, но всё равно молодец)
А не подскажите ли, что дальше делать с рапаковаными чтобы что-нить поменять? гуард байпаса как я понимаю нет для русского сервера или я слепой? .. Кто-нить на наших хоть что-то поменял, достиг успехов? Может поделитесь инфой?
a1exey is offline  
Old   #36
 
elite*gold: 0
Join Date: Dec 2007
Posts: 788
Received Thanks: 135
ONE CE WE CAN UPPAKC AND REPACK MODIFIDE DVK FILE u basacly home free to do anything
RICANPAPI_16 is offline  
Old   #37
 
elite*gold: 0
Join Date: Apr 2008
Posts: 1
Received Thanks: 0
Did anything ever come of this? i know alot of people would be really happy to get their hands on a way to pack an unpack these files
Lokiie1984 is offline  
Old   #38
 
elite*gold: 0
Join Date: Jul 2008
Posts: 58
Received Thanks: 42
Very crappy code i threw together real quick a while back. All you need to do is figure out how to uncompress the data and add it in...


Code:
#include <iostream> 
#include <conio.h> 
#include <stdlib.h> 
#include <windows.h> 
#include <cstdlib>
#include <fstream> 
#include <direct.h>
#include "zlib library\\zlib.h"


using namespace std;


char* ReadFile(long pos, long length,ifstream *VDKFile); 
unsigned char* ConvertString(char* sValue,long length);
unsigned long* ConvertToLong(char * src, long length);
long ConvertToLong_2(char * src);
unsigned long* Inverse(unsigned long * src, long length);
void PrintData(unsigned long * src, long length); 
int HexToDecByte(unsigned long * src, long length); 


int main() 
{

    char * FileName;  
	char * LastFolder;
	LastFolder = new char[128];
	char * FolderName;
	char * VDKHeaderName = {0};
	unsigned long * VDKHeaderBytes = 0;
	unsigned long * VDKFileCount;
	unsigned long * VDKType = 0; 
	unsigned long * VDKSize = 0;

	unsigned long * FileSizeCompressed = 0; 
	unsigned long * FileSizeUncompressed = 0; 
	unsigned long * Unknown = 0; 
	unsigned long * NextFile = 0; 
	unsigned long * NextDirectory = 0; 
	unsigned long * FileType = 0;
	unsigned long * CompressedData = 0;
	
	int FileSizeCompressedVal = 0;
	int FileSizeUncompressedVal = 0; 
	int UnknownVal = 0;
	int NextFileVal = 0; 
	int FileTypeVal = 0;

	unsigned long cPos = 0;
	char * Buffer; 
	char FileToExtract[15] = {0};

	ofstream FileToBeExtracted;
	

	// Uncomment these when file to extract isnt hardcoded in
	//cout << "Which file would you like to extract?\n"; 
	//cin.getline(FileToExtract,15,'\n\n');

	// Open the file chosen
	ifstream VDKFile; 
	VDKFile.open("C:\\Program Files\\Gravity\\Requiem\\data\\LANG.VDK",ios::binary); // Change the directory from being hardcoded in
	
	// Check for opening errors
	if(!VDKFile.is_open()){ cout << "Error! File not found or corrupted...\n"; }

	
	// Loop through the file (find a better loop than an infinite for loop)
	for(;;) 
	{ 
		// Get the FileCount
		char * TempBuf = new char[4];
		VDKFileCount = new unsigned long[4];
		TempBuf = ReadFile(cPos + 12, 4, &VDKFile); 
		VDKFileCount = Inverse(ConvertToLong(TempBuf,4),4);

		// Print FileCount
/*		for(int y = 0; y < 4; y++){ 
			cout << std::hex << (int)VDKFileCount[y] << " ";  
		} 
		cout << "\n\n";
*/		


		// Get the whole first 24 bytes and print
		TempBuf = ReadFile(cPos, 24, &VDKFile);
/*		cout << TempBuf << endl;
		for(int i = 0;i < 24; i++){
			cout << std::hex << (int)(unsigned char)TempBuf[i] << " "; 
		}
		cout << "\n\n";
*/

		// Loop through the files 
		for(int iCount = 0; iCount < (int)VDKFileCount; iCount++)
		{
			Buffer = new char[145]; 
			FolderName = new char[128]; 
			FileName = new char[128];
			
			if(cPos < 1) { 
				Buffer = ReadFile(cPos + 24, 1, &VDKFile); 
				cPos += 25;
				FileType = ConvertToLong(Buffer,1); 
				FileTypeVal = HexToDecByte(FileType, 1);
				cout << std::hex << FileTypeVal << endl;
			}else{ 
				Buffer = ReadFile(cPos, 1, &VDKFile); 
				FileType = ConvertToLong(Buffer,1);
				FileTypeVal = HexToDecByte(FileType, 1);
				cout << std::hex << FileTypeVal << endl;  
				cPos++;
			}
				 
			

			switch(FileTypeVal) { 
				case 0: 
					cout << "File...\n"; // testing purposes 
					Buffer = ReadFile(cPos, 128, &VDKFile);
  
					cPos += 128;
					FileName = Buffer;
					FileToBeExtracted.open(FileName, ios::app); 
					cout << "FileName: " << FileName << endl; // testing purposes
					break; 
				case 1: 
					cout << "Folder...\n"; // testing purposes  
					Buffer = ReadFile(cPos, 128, &VDKFile);

					cPos += 128;
					FolderName = Buffer;
					if(FolderName != "..") { 
						_chdir(LastFolder);
						_mkdir(FolderName); 
						LastFolder = FolderName; 
					}else { /* do nothing */  }
					cout << "FolderName: " << FolderName << endl; // testing purposes
					break; 
				default: 
					cout << "Unknown...\n"; 
					break; 
			};
			
			// Read the filesize uncompressed
			Buffer = ReadFile(cPos, 4, &VDKFile);
			cPos += 4;
			FileSizeUncompressed = Inverse(ConvertToLong(Buffer,4), 4);
			FileSizeUncompressedVal = HexToDecByte(FileSizeUncompressed, 4);
			cout << "FileSizeUncompressed: ";
			PrintData(FileSizeUncompressed, 4);
			
			// Read the filesize compressed 
			Buffer = ReadFile(cPos, 4, &VDKFile); 
			cPos += 4;
			FileSizeCompressed = Inverse(ConvertToLong(Buffer,4), 4);
			FileSizeCompressedVal = HexToDecByte(FileSizeCompressed, 4); 
			long cVal = ConvertToLong_2(Buffer);
			cout << "FileSizeCompressed: ";
			PrintData(FileSizeCompressed, 4);

			// Offset thats empty by files but not directorys
			Buffer = ReadFile(cPos, 4, &VDKFile);  
			cPos += 4;
			Unknown = Inverse(ConvertToLong(Buffer,4), 4); 
			UnknownVal = HexToDecByte(Unknown, 4); 
			cout << "Unknown: ";
			PrintData(Unknown, 4);  


			// Offset that links to the nextfile, 0 when last file of directory 
			Buffer = ReadFile(cPos, 4, &VDKFile);  
			cPos += 4;
			NextFile = Inverse(ConvertToLong(Buffer,4), 4);
			NextFileVal = HexToDecByte(NextFile, 4);
			cout << "NextFile: ";
			PrintData(NextFile, 4);
			
			// Compressed Data - Need to figure this out and how far i need to read to get to next file
			if(FileSizeCompressedVal != 0) 
			{	
				Buffer = ReadFile(cPos,  cVal, &VDKFile); 
				CompressedData = ConvertToLong(Buffer,cVal); 
				//cout << "CompressedData: "; 
				//PrintData(CompressedData, cVal); 
				cPos +=  cVal;

				// Uncompress the data here in put into the file buffer 
				
				for(int i = 0; i < cVal; i++){ 
					FileToBeExtracted << CompressedData[i]; 
				}
				
				// Close the file buffer for a new file to be used 
				FileToBeExtracted.close();

				// Some space for the next group of data
				cout << "\n\n";
			}else {
				// do nothing but keep looping 
				cout << "CompressedData: None\n\n";
			}

			
			
			// Here for testing purposes
			_getch();
		}


		

		delete[] FolderName; 
		delete[] FileName; 
		delete[] LastFolder;
		delete[] VDKFileCount;
		delete[] TempBuf;
		_getch();
		return 0;

		}
	return 0;
	}

long ConvertToLong_2(char * src) 
{ 
	LONG value = (*((LONG*)src)); 
	return value; 
}

int HexToDecByte(unsigned long * src, long length)
{
	char HexVal[4] = {0};
	int  DecVal = 0; 
	
	for(int i = 0; i < length; i++){ 
		DecVal += src[i];
	} 
	return DecVal;
}

unsigned long* Inverse(unsigned long * src,long length)
{
	unsigned long * dest; 
	dest = new unsigned long[length];
	int x = length; 
	for(int i = 0; i < length; i++){ 
		dest[--x] = src[i]; 
	}
	return dest;
}

unsigned long* ConvertToLong(char* src, long length) 
{	
	
	unsigned long* dest;
	dest = new unsigned long[length];
	for(int i = 0; i < length; i++){ 
		dest[i] = (int)(unsigned char)src[i]; 
	} 
	 

	return dest;
}

char* ReadFile(long pos, long length,ifstream *VDKFile){
  char *buffer;
  buffer = new char [length];
  VDKFile->seekg(pos);
  VDKFile->read (buffer,length);
  return buffer;
}

unsigned char* ConvertString(char* sValue,long length){
  unsigned char *nValue;
  int i;
  nValue= new unsigned char[length];
  for(i=0;i<=length;i++) nValue[i]=(unsigned char)sValue[i];
  return nValue;
}

void PrintData(unsigned long * src, long length) 
{ 
		for(int x = 0; x < length; x++){ 
			cout << std::hex << (int)src[x] << " ";  
		} 
		cout << "\n";
}
I_Mystic_I is offline  
Thanks
1 User
Old   #39
 
elite*gold: 0
Join Date: Apr 2008
Posts: 7
Received Thanks: 0
Hi all, I have created an unpacker using native requiem filesystem.dll library. It seems a bit more accurate about what it is unpacking and where (for example gives different results with another packer on dat.vdk).. Usage is simple - ex. "evilfs.exe dat.vdk"
Attached Files
File Type: zip vdkunpack.zip (234.4 KB, 564 views)
veider is offline  
Old   #40
 
elite*gold: 0
Join Date: Dec 2007
Posts: 142
Received Thanks: 135
Thx ur work, but we have already 2 unpacker, we need a packer, what makes the VDK! I help a little, it uses zlib compression
MADR4T is offline  
Old   #41
 
elite*gold: 0
Join Date: Apr 2008
Posts: 7
Received Thanks: 0
First it would be interesting to decrypt crypted files in vdk.. like exp.csv for example which are not unpacked in plain text..
veider is offline  
Old   #42
 
elite*gold: 0
Join Date: Apr 2008
Posts: 7
Received Thanks: 0
Ok,I was able to unpack encrypted files as also.. As a proof of concept here is the beginning of npcAsset.csv from dat.vdk:

Quote:
Id,Name,String_Name,Name_Eng,Job_Name,String_Job_N ame,Job_Name_Eng,NPC_kind,NPC_Group,Resource_id,Lu a_Name,Spawn_kind,Monster_Attack_Type,NPC_Damage,M odeling_Resize,Monster_Size,Material,Effect_Size,C opse_Time,Fly_Type,Spawn_After_Delay,Use_Alpha,Mon ster_Level,Basic_HP,Basic_HP_recovery,Basic_MP,Bas ic_MP_recovery,BasicSTR,BasicDEX,BasicINT,BasicCON ,BasicMND,Basic_Defense,Basic_RangeDefense,BasicFi reResist,BasicLightningResist,BasicWaterResist,Bas icWindResist,BasicCurseResist,BasicHolyResist,Basi c_Short_Range_DamageMin,Basic_Short_Range_Damage,B asic_Short_Range_Speed,Basic_Short_Range,Basic_Sho rt_Range_HitRate,Basic_Short_Range_CriticalRate,Ba sic_Long_Range_DamageMin,Basic_Long_Range_Damage,B asic_Long_Range_Speed,Basic_Long_Range,Basic_Longt _Range_HitRate,Basic_Long_Range_CriticalRate,Basic SREvationRate,BasicLREvationRate,OriginalSpeed_Wal k,BasicWalkSpeed,BasicBackWalkSpeed,OriginalSpeed_ Run,BasicRunSpeed,BasicBackRunSpeed,Flee_Speed,Agg ro_Range,Chase_Range,Help_Range,Help_HP_Check,Esca pe_HP_Check,Escape_Choice_Time,Escape_Type,Non_Bat tle_Type_id,First_Attack_Value,Attack_Value,Range_ Attack_Value,Melee_Skill_Value,Range_Skill_Value,H eal_Value,Other_Skill_Value,First_Attack,First_Att ack_Level,Boss_Lua_Name,Passive_01,Passive_02,Idle _Skill_01,Idle_Skill_rate01,Mob_Skill_01,Use_Skill _rate01,Mob_Skill_02,Use_Skill_rate02,HP_Check_01, HP_Skill_01,HP_Skill_Target01,HP_Check_02,HP_Skill _02,HP_Skill_Target02,Party_HP_Check,Party_HP_Skil l,Party_HP_Skill_Target,Each_Time_Check_01,Each_Ti me_Skill_01,Each_Time_Skill_Target01,Each_Time_Che ck_02,Each_Time_Skill_02,Each_Time_Skill_Target02, Each_Time_Check_03,Each_Time_Skill_03,Each_Time_Sk ill_Target03,Dead_Skill,Distance_Check,Distance_Sk ill,Function_Code,Merchant_Code,DropItem_id,Quest_ List_Index,Quest_Drop_Index,NPC_Life_Index,Attack_ NPC_Index,City_Index,Spawn_Time_Start,Spawn_Time_E nd,Mission_Drop_Index,Quest_Condition,Trigger_Col, Summon_Idx,Tamable_Group,Cash_Code,Contents,Locati on,Premium
1010,Аь?Ў?ГБэФ,701010,Krebiz,0,0,0,0,101,1010,n pc_attack,1,0,1,100,10,1,80,50,0,50,0,15,198,0,39, 0,0,0,0,0,0,41,41,0,0,0,0,0,0,19,33,300,4,130,500, 14,28,300,30,130,500,196,196,150,0,0,380,500,250,3 80,15,100,0,0,0,3,1,3,100,100,100,100,90,80,100,0, 30,0,0,0,0,0,0,0,0,0,0,0,4,0,0,4,0,0,11,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,1010,0,100,0,0,0,0,0,0,0,0,0,0,0 ,1,0,0
veider is offline  
Old   #43
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1
Received Thanks: 0
has anyone found the character mesh's yet? I would really like to play with them to make a michinima or soemthing..
ArcAiN6 is offline  
Old   #44
 
elite*gold: 0
Join Date: Jun 2009
Posts: 3
Received Thanks: 0
so whats all the VDK extractors?
i have used dsfgd extractor, and it works ok, but there's some files it dont extract, and some text in the csv files are...well, like this:
115615 , ƿ
115616 , Ƽξ

one of the other extractors here, on end of page4 doesnt work.
and then there's those scrips, or whatever, that i dont know how to use

is there an update for dsfgd extractor?
or anyone knows what extractor that is good atm?
elmond is offline  
Old   #45
 
elite*gold: 0
Join Date: Jul 2008
Posts: 23
Received Thanks: 14
Still no info about a packer? Unpacking is all fine (even if both unpackers fail to unpack all lang.vdk files) but a packer would help even more...or an unpacker that can unpack the whole lang.vdk would be nice too


LordIoner is offline  
Closed Thread



« Previous Thread | Next Thread »

Similar Threads
anyone post here the file of editing file.. the .edf file
please post here... so that i can download again.. i guess the old one thread was gone.. i've been search for an hour in this section.. but i can't...
3 Replies - RF Online
How to open mesh file and anim file(dekaron).PLZ~
How to open mesh file and anim file(dekaron).PLZ~
11 Replies - Dekaron Private Server
pacth file ???(div file)launcher & auto updata!!
Hi. I run the launcher and the client tries to patch The problem is to create a div A certain amount of data divided into two separate...
7 Replies - Dekaron Private Server



All times are GMT +1. The time now is 22:21.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.