From 82682d6b3441d4abb911370d66b71d1fffdf9ea6 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Fri, 4 Aug 2023 05:02:55 -0500 Subject: [PATCH] Turn file into a single header --- SHNFileDecryptor/AbState.shn | Bin 227224 -> 227224 bytes SHNFileDecryptor/AbState.shn.bak | Bin 227224 -> 227223 bytes SHNFileDecryptor/SHNFileDecryptor.cpp | 449 ---------------- SHNFileDecryptor/SHNFileDecryptor.h | 492 ++++++++++++++++++ SHNFileDecryptor/SHNFileDecryptor.vcxproj | 2 +- .../SHNFileDecryptor.vcxproj.filters | 2 +- SHNFileDecryptor/SHNFile_example.cpp | 8 + 7 files changed, 502 insertions(+), 451 deletions(-) delete mode 100644 SHNFileDecryptor/SHNFileDecryptor.cpp create mode 100644 SHNFileDecryptor/SHNFile_example.cpp diff --git a/SHNFileDecryptor/AbState.shn b/SHNFileDecryptor/AbState.shn index 49c9c463c26aac034c18ce1c04459e08a8512cf1..ba3ba56bcadde84f2e9d0a08a8c382844f130a22 100644 GIT binary patch delta 42 ycmbR7o_EH3-VF&X+%x~qetY7{@-3^^#81xNHNTmQwVjKV5r~<#bFnh_6#)Rp-4X-< delta 42 xcmbR7o_EH3-VF&X-1C3-eAwNye9P)J@sqQ6&2Q#nZRcWT1Y)M`T&&D}MF6}45tRS{ diff --git a/SHNFileDecryptor/AbState.shn.bak b/SHNFileDecryptor/AbState.shn.bak index 0841484c05ff4ee7263d3e9c3e804e64f627a20f..aa926f4ac436d207fa881a97721135368a3d6dce 100644 GIT binary patch literal 227223 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

s`Nj#+i1&IG$gTudBoqx89y8ol<|LOhT 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�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%0DQ<;oq#zKg0PS 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 z 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 diff --git a/SHNFileDecryptor/SHNFileDecryptor.cpp b/SHNFileDecryptor/SHNFileDecryptor.cpp deleted file mode 100644 index f669827..0000000 --- a/SHNFileDecryptor/SHNFileDecryptor.cpp +++ /dev/null @@ -1,449 +0,0 @@ -#include -#include -#include -#include -#include -#include - -typedef std::byte byte; -typedef char sbyte; - -class SHNFile{ - std::vectorReadBytes(std::ifstream&file){ - std::vectorbyteArr; - while(!file.eof()){ - byteArr.push_back(byte(file.get())); - } - return byteArr; - } - std::vectorReadBytes(std::ifstream&file,int bytes){ - std::vectorbyteArr; - for(int i=0;i&data){ - for(int i=0;iintBytes=ReadBytes(file,4); - int numb = int(intBytes[3])<<24|int(intBytes[2])<<16|int(intBytes[1])<<8|int(intBytes[0]); - return numb; - } - void Encrypt(){ - Decrypt(); - } - void Decrypt(){ - byte num = byte(data.size()); - for(int i=data.size()-1;i>=0;i--){ - data[i] = byte(data[i]^num); - byte num3 = byte(i); - num3 = byte(num3&byte(15)); - num3 = byte(int(num3)+0x55); - num3 = byte(num3 ^ (byte((int(byte(i))*11)))); - num3 = byte(num3^num); - num3 = byte(int(num3)^170); - num = num3; - } - } - std::vectorReadBytes(int bytes){ - std::vectorbyteArr={}; - for(int i=0;ib=ReadBytes(1); - if(b.size()>0){ - return b[0]; - } else { - return byte(0); - } - } - void WriteByte(std::ofstream&f,byte b){ - f<intBytes=ReadBytes(2); - uint16_t numb = uint16_t(intBytes[1])<<8|uint16_t(intBytes[0]); - return numb; - } - void WriteUInt16(std::ofstream&f,uint16_t val){ - f<>8)&0xFF); - } - int16_t ReadInt16(){ - std::vectorintBytes=ReadBytes(2); - int16_t numb = int16_t(intBytes[1])<<8|int16_t(intBytes[0]); - return numb; - } - void WriteInt16(std::ofstream&f,int16_t val){ - f<>8)&0xFF); - } - uint32_t ReadUInt32(){ - std::vectorintBytes=ReadBytes(4); - uint32_t numb = uint32_t(intBytes[3])<<24|uint32_t(intBytes[2])<<16|uint32_t(intBytes[1])<<8|uint32_t(intBytes[0]); - return numb; - } - void WriteUInt32(std::ofstream&f,uint32_t val){ - f<>8)&0xFF)<>16)&0xFF)<>24)&0xFF); - } - int ReadInt32(){ - std::vectorintBytes=ReadBytes(4); - int numb = int(intBytes[3])<<24|int(intBytes[2])<<16|int(intBytes[1])<<8|int(intBytes[0]); - return numb; - } - void WriteInt32(std::ofstream&f,int32_t val){ - f<>8)&0xFF)<>16)&0xFF)<>24)&0xFF); - } - struct Column{ - std::string name; - uint32_t type=0; - int length=0; - }; - std::string ReadString(int bytes){ - std::vectorstrBytes=ReadBytes(bytes); - std::string str=""; - for(int i=0;istrBytes=ReadBytes(4); - byte bytes[]={strBytes[0],strBytes[1],strBytes[2],strBytes[3]}; - float f; - memcpy(&f,&bytes,4); - return f; - } - void WriteSingle(std::ofstream&f,float n){ - byte bytes[4]; - memcpy(&n,&bytes,4); - for(int i=0;i<4;i++){ - f<byteArr=ReadBytes(1); - if(byteArr.size()>0&&byteArr[0]!=byte(0)){ - str+=unsigned char(byteArr[0]); - }else{ - break; - } - } - return str; - } - uint32_t GetRecordLength(){ - uint32_t start=2; - for(Column&col:columns){ - start+=uint32_t(col.length); - } - return start; - } - public: - struct Data{ - std::shared_ptrdata; - int type=0; - Data(byte b){ - std::shared_ptrptr=std::make_shared(byte(b)); - data=ptr; - type=1; - } - Data(sbyte b){ - std::shared_ptrptr=std::make_shared(sbyte(b)); - data=ptr; - type=7; - } - Data(uint16_t n){ - std::shared_ptrptr=std::make_shared(uint16_t(n)); - data=ptr; - type=2; - } - Data(int16_t n){ - std::shared_ptrptr=std::make_shared(int16_t(n)); - data=ptr; - type=6; - } - Data(uint32_t n){ - std::shared_ptrptr=std::make_shared(uint32_t(n)); - data=ptr; - type=3; - } - Data(int32_t n){ - std::shared_ptrptr=std::make_shared(int32_t(n)); - data=ptr; - type=8; - } - Data(float n){ - std::shared_ptrptr=std::make_shared(float(n)); - data=ptr; - type=4; - } - Data(std::string str){ - std::shared_ptrptr=std::make_shared(str); - data=ptr; - type=5; - } - template - T Get(){ - return *std::static_pointer_cast(data); - } - template - void Set(T b){ - data=std::make_shared(T(b)); - } - std::string GetDisplayText(){ - switch(type){ - case 1:{ - return std::to_string(int(Get())); - }break; - case 7:{ - return std::to_string(int(Get())); - }break; - case 2:{ - return std::to_string(Get()); - }break; - case 6:{ - return std::to_string(Get()); - }break; - case 3:{ - return std::to_string(Get()); - }break; - case 8:{ - return std::to_string(Get()); - }break; - case 4:{ - return std::to_string(Get()); - }break; - case 5:{ - return Get(); - }break; - } - } - }; - private: - friend std::ostream&operator<<(std::ostream&out,SHNFile::Data&d){ - out<cryptHeader; - std::vectordata,rawData; - uint32_t header=0,recordCount=0,defaultRecordLength=0,columnCount=0; - std::vectorcolumns; - std::vector>contents; - std::string filename; -public: - void Load(std::string file){ - cryptHeader.clear(); - data.clear(); - header=recordCount=defaultRecordLength=columnCount=0; - columns.clear(); - contents.clear(); - rawData.clear(); - marker=0; - std::chrono::time_pointtimer=std::chrono::high_resolution_clock::now(); - filename=file; - - //FILE OPERATIONS! - std::ifstream f(filename,std::ios::binary); - //Since we don't just read in the entire file raw, we have to do some additional work here as the header provides us with some basic info on how to decrypt this file. - //The backup itself needs all the data from the original file, so we're appending it to rawData as we continue reading it. - cryptHeader=ReadBytes(f,0x20); - std::copy(cryptHeader.begin(),cryptHeader.end(),std::back_inserter(rawData)); - int readAmt=ReadInt32(f); - rawData.push_back(byte(readAmt&0xFF)); - rawData.push_back(byte((readAmt>>8)&0xFF)); - rawData.push_back(byte((readAmt>>16)&0xFF)); - rawData.push_back(byte((readAmt>>24)&0xFF)); - data=ReadBytes(f,readAmt-0x24); - std::copy(data.begin(),data.end(),std::back_inserter(rawData)); - - Decrypt(); - header=ReadUInt32(); - recordCount=ReadUInt32(); - defaultRecordLength=ReadUInt32(); - columnCount=ReadUInt32(); - - int num2=2; - for(int i=0;irow; - for(int j=0;jdur=std::chrono::high_resolution_clock::now()-timer; - std::cout<<"Loaded "<&row:contents){ - std::streampos marker = f.tellp(); - WriteUInt16(f,uint16_t(0)); - int colNum=0; - for(Data&col:row){ - switch(columns[colNum].type){ - case 1: - case 12: - case 0x10:{ - WriteByte(f,col.Get()); - }break; - case 2:{ - WriteUInt16(f,col.Get()); - }break; - case 3: - case 11: - case 0x12: - case 0x1b:{ - WriteUInt32(f,col.Get()); - }break; - case 5:{ - WriteSingle(f,col.Get()); - }break; - case 9: - case 0x18:{ - WriteString(f,col.Get(),columns[colNum].length); - }break; - case 13: - case 0x15:{ - WriteInt16(f,col.Get()); - }break; - case 20:{ - WriteSByte(f,col.Get()); - }break; - case 0x16:{ - WriteInt32(f,col.Get()); - }break; - case 0x1a:{ - WriteString(f,col.Get(),-1); - }break; - } - colNum++; - } - std::streampos offset = f.tellp() - marker; - std::streampos newMarker = f.tellp(); - f.seekp(marker); - WriteUInt16(f,uint16_t(offset)); - f.seekp(newMarker); - } - f.close(); - std::ifstream finishedFile(filename,std::ios::binary); - data=ReadBytes(finishedFile); - std::ofstream encryptedFile(filename,std::ios::binary); - std::cout<<"Encrypting..."< +#include +#include +#include +#include +#include + +typedef std::byte byte; +typedef char sbyte; + +class SHNFile{ + std::vectorReadBytes(std::ifstream&file); + std::vectorReadBytes(std::ifstream&file,int bytes); + void WriteBytes(std::ofstream&file,std::vector&data); + int ReadInt32(std::ifstream&file); + void Encrypt(); + void Decrypt(); + std::vectorReadBytes(int bytes); + byte ReadByte(); + void WriteByte(std::ofstream&f,byte b); + void WriteSByte(std::ofstream&f,sbyte b); + uint16_t ReadUInt16(); + void WriteUInt16(std::ofstream&f,uint16_t val); + int16_t ReadInt16(); + void WriteInt16(std::ofstream&f,int16_t val); + uint32_t ReadUInt32(); + void WriteUInt32(std::ofstream&f,uint32_t val); + int Read(); + int32_t ReadInt32(); + void WriteInt32(std::ofstream&f,int32_t val); + std::string ReadString(int bytes); + void WriteString(std::ofstream&f,std::string str,int bytes); + float ReadSingle(); + void WriteSingle(std::ofstream&f,float n); + sbyte ReadSByte(); + std::string ReadString(); + uint32_t GetRecordLength(); +public: + struct Data{ + std::shared_ptrdata; + int type=0; + Data(byte b); + Data(sbyte b); + Data(uint16_t n); + Data(int16_t n); + Data(uint32_t n); + Data(int32_t n); + Data(float n); + Data(std::string str); + template + T Get(); + template + void Set(T b); + std::string GetDisplayText(); + }; +private: + friend std::ostream&operator<<(std::ostream&out,SHNFile::Data&d){ + out<cryptHeader; + std::vectordata,rawData; + uint32_t header=0,recordCount=0,defaultRecordLength=0,columnCount=0; + std::vectorcolumns; + std::vector>contents; + std::string filename; +public: + void Load(std::string file); + void Save(); + SHNFile(); +}; +#ifdef OLC_PGEX_SHNFile +std::vectorSHNFile::ReadBytes(std::ifstream&file){ + std::vectorbyteArr; + while(!file.eof()){ + byteArr.push_back(byte(file.get())); + } + return byteArr; +} +std::vectorSHNFile::ReadBytes(std::ifstream&file,int bytes){ + std::vectorbyteArr; + for(int i=0;i&data){ + for(int i=0;iintBytes=ReadBytes(file,4); + int numb = int(intBytes[3])<<24|int(intBytes[2])<<16|int(intBytes[1])<<8|int(intBytes[0]); + return numb; +} +void SHNFile::Encrypt(){ + Decrypt(); +} +void SHNFile::Decrypt(){ + byte num = byte(data.size()); + for(int i=data.size()-1;i>=0;i--){ + data[i] = byte(data[i]^num); + byte num3 = byte(i); + num3 = byte(num3&byte(15)); + num3 = byte(int(num3)+0x55); + num3 = byte(num3 ^ (byte((int(byte(i))*11)))); + num3 = byte(num3^num); + num3 = byte(int(num3)^170); + num = num3; + } +} +std::vectorSHNFile::ReadBytes(int bytes){ + std::vectorbyteArr={}; + for(int i=0;ib=ReadBytes(1); + if(b.size()>0){ + return b[0]; + } else { + return byte(0); + } +} +void SHNFile::WriteByte(std::ofstream&f,byte b){ + f<intBytes=ReadBytes(2); + uint16_t numb = uint16_t(intBytes[1])<<8|uint16_t(intBytes[0]); + return numb; +} +void SHNFile::WriteUInt16(std::ofstream&f,uint16_t val){ + f<>8)&0xFF); +} +int16_t SHNFile::ReadInt16(){ + std::vectorintBytes=ReadBytes(2); + int16_t numb = int16_t(intBytes[1])<<8|int16_t(intBytes[0]); + return numb; +} +void SHNFile::WriteInt16(std::ofstream&f,int16_t val){ + f<>8)&0xFF); +} +uint32_t SHNFile::ReadUInt32(){ + std::vectorintBytes=ReadBytes(4); + uint32_t numb = uint32_t(intBytes[3])<<24|uint32_t(intBytes[2])<<16|uint32_t(intBytes[1])<<8|uint32_t(intBytes[0]); + return numb; +} +void SHNFile::WriteUInt32(std::ofstream&f,uint32_t val){ + f<>8)&0xFF)<>16)&0xFF)<>24)&0xFF); +} +int SHNFile::Read(){ + std::vectorintBytes=ReadBytes(4); + int numb = int(intBytes[3])<<24|int(intBytes[2])<<16|int(intBytes[1])<<8|int(intBytes[0]); + return numb; +} +int32_t SHNFile::ReadInt32(){ + std::vectorintBytes=ReadBytes(4); + int32_t numb = int32_t(intBytes[3])<<24|int32_t(intBytes[2])<<16|int32_t(intBytes[1])<<8|uint32_t(intBytes[0]); + return numb; +} +void SHNFile::WriteInt32(std::ofstream&f,int32_t val){ + f<>8)&0xFF)<>16)&0xFF)<>24)&0xFF); +} +std::string SHNFile::ReadString(int bytes){ + std::vectorstrBytes=ReadBytes(bytes); + std::string str=""; + for(int i=0;istrBytes=ReadBytes(4); + byte bytes[]={strBytes[0],strBytes[1],strBytes[2],strBytes[3]}; + float f; + memcpy(&f,&bytes,4); + return f; +} +void SHNFile::WriteSingle(std::ofstream&f,float n){ + byte bytes[4]; + memcpy(&n,&bytes,4); + for(int i=0;i<4;i++){ + f<byteArr=ReadBytes(1); + if(byteArr.size()>0&&byteArr[0]!=byte(0)){ + str+=unsigned char(byteArr[0]); + }else{ + break; + } + } + return str; +} +uint32_t SHNFile::GetRecordLength(){ + uint32_t start=2; + for(Column&col:columns){ + start+=uint32_t(col.length); + } + return start; +} +SHNFile::Data::Data(byte b){ + std::shared_ptrptr=std::make_shared(byte(b)); + data=ptr; + type=1; +} +SHNFile::Data::Data(sbyte b){ + std::shared_ptrptr=std::make_shared(sbyte(b)); + data=ptr; + type=7; +} +SHNFile::Data::Data(uint16_t n){ + std::shared_ptrptr=std::make_shared(uint16_t(n)); + data=ptr; + type=2; +} +SHNFile::Data::Data(int16_t n){ + std::shared_ptrptr=std::make_shared(int16_t(n)); + data=ptr; + type=6; +} +SHNFile::Data::Data(uint32_t n){ + std::shared_ptrptr=std::make_shared(uint32_t(n)); + data=ptr; + type=3; +} +SHNFile::Data::Data(int32_t n){ + std::shared_ptrptr=std::make_shared(int32_t(n)); + data=ptr; + type=8; +} +SHNFile::Data::Data(float n){ + std::shared_ptrptr=std::make_shared(float(n)); + data=ptr; + type=4; +} +SHNFile::Data::Data(std::string str){ + std::shared_ptrptr=std::make_shared(str); + data=ptr; + type=5; +} +template +T SHNFile::Data::Get(){ + return *std::static_pointer_cast(data); +} +template +void SHNFile::Data::Set(T b){ + data=std::make_shared(T(b)); +} +std::string SHNFile::Data::GetDisplayText(){ + switch(type){ + case 1:{ + return std::to_string(int(Get())); + }break; + case 7:{ + return std::to_string(int(Get())); + }break; + case 2:{ + return std::to_string(Get()); + }break; + case 6:{ + return std::to_string(Get()); + }break; + case 3:{ + return std::to_string(Get()); + }break; + case 8:{ + return std::to_string(Get()); + }break; + case 4:{ + return std::to_string(Get()); + }break; + case 5:{ + return Get(); + }break; + } +} +void SHNFile::Load(std::string file){ + cryptHeader.clear(); + data.clear(); + header=recordCount=defaultRecordLength=columnCount=0; + columns.clear(); + contents.clear(); + rawData.clear(); + marker=0; + std::chrono::time_pointtimer=std::chrono::high_resolution_clock::now(); + filename=file; + + //FILE OPERATIONS! + std::ifstream f(filename,std::ios::binary); + //Since we don't just read in the entire file raw, we have to do some additional work here as the header provides us with some basic info on how to decrypt this file. + //The backup itself needs all the data from the original file, so we're appending it to rawData as we continue reading it. + cryptHeader=ReadBytes(f,0x20); + std::copy(cryptHeader.begin(),cryptHeader.end(),std::back_inserter(rawData)); + int readAmt=ReadInt32(f); + rawData.push_back(byte(readAmt&0xFF)); + rawData.push_back(byte((readAmt>>8)&0xFF)); + rawData.push_back(byte((readAmt>>16)&0xFF)); + rawData.push_back(byte((readAmt>>24)&0xFF)); + data=ReadBytes(f,readAmt-0x24); + std::copy(data.begin(),data.end(),std::back_inserter(rawData)); + + Decrypt(); + header=ReadUInt32(); + recordCount=ReadUInt32(); + defaultRecordLength=ReadUInt32(); + columnCount=ReadUInt32(); + + int num2=2; + for(int i=0;irow; + for(int j=0;jdur=std::chrono::high_resolution_clock::now()-timer; + std::cout<<"Loaded "<&row:contents){ + std::streampos marker = f.tellp(); + WriteUInt16(f,uint16_t(0)); + int colNum=0; + for(Data&col:row){ + switch(columns[colNum].type){ + case 1: + case 12: + case 0x10:{ + WriteByte(f,col.Get()); + }break; + case 2:{ + WriteUInt16(f,col.Get()); + }break; + case 3: + case 11: + case 0x12: + case 0x1b:{ + WriteUInt32(f,col.Get()); + }break; + case 5:{ + WriteSingle(f,col.Get()); + }break; + case 9: + case 0x18:{ + WriteString(f,col.Get(),columns[colNum].length); + }break; + case 13: + case 0x15:{ + WriteInt16(f,col.Get()); + }break; + case 20:{ + WriteSByte(f,col.Get()); + }break; + case 0x16:{ + WriteInt32(f,col.Get()); + }break; + case 0x1a:{ + WriteString(f,col.Get(),-1); + }break; + } + colNum++; + } + std::streampos offset = f.tellp() - marker; + std::streampos newMarker = f.tellp(); + f.seekp(marker); + WriteUInt16(f,uint16_t(offset)); + f.seekp(newMarker); + } + f.close(); + std::ifstream finishedFile(filename,std::ios::binary); + data=ReadBytes(finishedFile); + std::ofstream encryptedFile(filename,std::ios::binary); + std::cout<<"Encrypting..."< - + diff --git a/SHNFileDecryptor/SHNFileDecryptor.vcxproj.filters b/SHNFileDecryptor/SHNFileDecryptor.vcxproj.filters index 1529261..3ff10b4 100644 --- a/SHNFileDecryptor/SHNFileDecryptor.vcxproj.filters +++ b/SHNFileDecryptor/SHNFileDecryptor.vcxproj.filters @@ -15,7 +15,7 @@ - + Source Files diff --git a/SHNFileDecryptor/SHNFile_example.cpp b/SHNFileDecryptor/SHNFile_example.cpp new file mode 100644 index 0000000..232d3eb --- /dev/null +++ b/SHNFileDecryptor/SHNFile_example.cpp @@ -0,0 +1,8 @@ +#define OLC_PGEX_SHNFile +#include "SHNFileDecryptor.h" + +int main(){ + SHNFile shn; + shn.Load("AbState.shn"); + shn.Save(); +} \ No newline at end of file