convert comments in cpp files to utf8
This commit is contained in:
@ -254,7 +254,7 @@ bool CEterPack::Create(CEterFileDict& rkFileDict, const char * dbname, const cha
|
||||
|
||||
m_bReadOnly = bReadOnly;
|
||||
|
||||
// bReadOnly <EFBFBD><EFBFBD><EFBFBD>尡 <20>ƴϰ<C6B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̽<EFBFBD><CCBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// bReadOnly 모드가 아니고 데이터 베이스가 열린다면 생성 실패
|
||||
if (!CreateIndexFile())
|
||||
return false;
|
||||
|
||||
@ -283,7 +283,7 @@ bool CEterPack::DecryptIV(DWORD dwPanamaKey)
|
||||
if (m_stIV_Panama.length() != 32)
|
||||
return false;
|
||||
|
||||
if (m_bDecrypedIV) // <EFBFBD>̹<EFBFBD> <20><>ȣȭ<C8A3><C8AD> Ǯ<><C7AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٽ<EFBFBD> ó<><C3B3> <20><><EFBFBD><EFBFBD>
|
||||
if (m_bDecrypedIV) // 이미 암호화가 풀렸으면 다시 처리 안함
|
||||
return true;
|
||||
|
||||
DWORD* ivs = (DWORD*)&m_stIV_Panama[0];
|
||||
@ -474,7 +474,7 @@ bool CEterPack::__BuildIndex(CEterFileDict& rkFileDict, bool bOverwrite)
|
||||
|
||||
m_DataPositionMap.insert(TDataPositionMap::value_type(index->filename_crc, index));
|
||||
|
||||
if (bOverwrite) // <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ŷ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><D8BE>Ѵ<EFBFBD>
|
||||
if (bOverwrite) // 서버 연동 패킹 파일은 나중에 들어오지만 최상위로 등록해야한다
|
||||
rkFileDict.UpdateItem(this, index);
|
||||
else
|
||||
rkFileDict.InsertItem(this, index);
|
||||
@ -492,7 +492,7 @@ bool CEterPack::__BuildIndex(CEterFileDict& rkFileDict, bool bOverwrite)
|
||||
//
|
||||
//void CEterPack::ClearDataMemoryMap()
|
||||
//{
|
||||
// // m_file<EFBFBD><EFBFBD> data file<EFBFBD>̴<EFBFBD>...
|
||||
// // m_file이 data file이다...
|
||||
// m_file.Destroy();
|
||||
// m_tLastAccessTime = 0;
|
||||
// m_bIsDataLoaded = false;
|
||||
@ -516,8 +516,8 @@ bool CEterPack::Get(CMappedFile& out_file, const char * filename, LPCVOID * data
|
||||
// m_bIsDataLoaded = true;
|
||||
//}
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CEterPack<EFBFBD><EFBFBD><EFBFBD><EFBFBD> epk<EFBFBD><EFBFBD> memory map<EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD>, <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> <20><> <20>κ<EFBFBD><CEBA><EFBFBD> <20><>ũ<EFBFBD>ؼ<EFBFBD> <20>Ѱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>,
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD>, <20>ʿ<EFBFBD><CABF><EFBFBD> <20>κи<CEBA> memory map<61><70> <20>ø<EFBFBD><C3B8><EFBFBD>, <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><>.
|
||||
// 기존에는 CEterPack에서 epk를 memory map에 올려놓고, 요청이 오면 그 부분을 링크해서 넘겨 줬었는데,
|
||||
// 이제는 요청이 오면, 필요한 부분만 memory map에 올리고, 요청이 끝나면 해제하게 함.
|
||||
out_file.Create(m_stDataFileName.c_str(), data, index->data_position, index->data_size);
|
||||
|
||||
bool bIsSecurityCheckRequired = ( index->compressed_type == COMPRESSED_TYPE_SECURITY ||
|
||||
@ -982,15 +982,15 @@ bool CEterPack::Put(const char * filename, LPCVOID data, long len, BYTE packType
|
||||
data_crc = GetCRC32((const char *) data, len);
|
||||
#endif
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..
|
||||
// 기존 데이터가 있으면..
|
||||
if (pIndex)
|
||||
{
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> data ũ<EFBFBD>Ⱑ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<>⸦ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִٸ<D6B4>
|
||||
// 기존 data 크기가 넣을 데이터 크기를 수용할 수 있다면
|
||||
if (pIndex->real_data_size >= len)
|
||||
{
|
||||
++m_map_indexRefCount[pIndex->id];
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD> Ʋ<><C6B2><EFBFBD>ų<EFBFBD>, checksum<75><6D> Ʋ<><C6B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>.
|
||||
// 길이가 틀리거나, checksum이 틀릴 때만 저장 한다.
|
||||
if ( (pIndex->data_size != len) ||
|
||||
#ifdef CHECKSUM_CHECK_MD5
|
||||
(memcmp( pIndex->MD5Digest, context.digest, 16 ) != 0) )
|
||||
@ -1022,13 +1022,13 @@ bool CEterPack::Put(const char * filename, LPCVOID data, long len, BYTE packType
|
||||
return true;
|
||||
}
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ũ<>Ⱑ <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ٸ<EFBFBD>, <20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20>Ҵ<EFBFBD><D2B4><EFBFBD>
|
||||
// <EFBFBD>־<EFBFBD><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>. <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>д<EFBFBD>.
|
||||
// 기존 데이터 크기가 새로 들어갈 것 보다 적다면, 새로 인덱스를 할당해
|
||||
// 넣어야 한다. 원래 있던 인덱스는 비워 둔다.
|
||||
PushFreeIndex(pIndex);
|
||||
WriteIndex(fileIndex, pIndex);
|
||||
}
|
||||
|
||||
// <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// 새 데이터
|
||||
pIndex = NewIndex(fileIndex, filename, len);
|
||||
pIndex->data_size = len;
|
||||
|
||||
@ -1077,7 +1077,7 @@ bool CEterPack::CreateIndexFile()
|
||||
return false;
|
||||
|
||||
//
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
// 파일이 없으므로 새로 만든다.
|
||||
//
|
||||
fp = fopen(m_indexFileName, "wb");
|
||||
|
||||
@ -1107,16 +1107,16 @@ void CEterPack::WriteIndex(CFileBase & file, TEterPackIndex * index)
|
||||
}
|
||||
|
||||
/*
|
||||
* Free Block <EFBFBD>̶<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD> <20><><EFBFBD>Ѵ<EFBFBD>.
|
||||
* Free Block <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> FREE_INDEX_BLOCK_SIZE (32768) <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>.
|
||||
* Free Block 이란 데이터에서 지워진 부분을 말한다.
|
||||
* Free Block 들은 각각 FREE_INDEX_BLOCK_SIZE (32768) 단위로 나누어져
|
||||
* 리스트로 관리된다.
|
||||
*
|
||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 128k <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>
|
||||
* 128 * 1024 / FREE_INDEX_BLOCK_SIZE = 4 <EFBFBD>̹Ƿ<EFBFBD>
|
||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD> m_FreeIndexList[4] <EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EEB0A3>.
|
||||
* 예를 들어 128k 의 데이터는
|
||||
* 128 * 1024 / FREE_INDEX_BLOCK_SIZE = 4 이므로
|
||||
* 최종 적으로는 m_FreeIndexList[4] 에 들어간다.
|
||||
*
|
||||
* FREE_INDEX_BLOCK_SIZE <EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> FREE_INDEX_MAX_SIZE(512) <EFBFBD>̴<EFBFBD>.
|
||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 16MB <20>̻<EFBFBD><CCBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>迭<EFBFBD><E8BFAD> 512 <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EEB0A3>.
|
||||
* FREE_INDEX_BLOCK_SIZE 의 최대 값은 FREE_INDEX_MAX_SIZE(512) 이다.
|
||||
* 따라서 16MB 이상의 데이터는 무조건 배열의 512 위치에 들어간다.
|
||||
*/
|
||||
int CEterPack::GetFreeBlockIndex(long size)
|
||||
{
|
||||
@ -1153,7 +1153,7 @@ TEterPackIndex* CEterPack::NewIndex(CFileBase& file, const char* filename, long
|
||||
{
|
||||
TEterPackIndex* index = NULL;
|
||||
int block_size = size + (DATA_BLOCK_SIZE - (size % DATA_BLOCK_SIZE));
|
||||
// if ((index = FindIndex(filename))) // <EFBFBD>̹<EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD> Ȯ<><C8AE>
|
||||
// if ((index = FindIndex(filename))) // 이미 인덱스가 존재하는지 확인
|
||||
// return index;
|
||||
|
||||
int blockidx = GetFreeBlockIndex(block_size);
|
||||
@ -1323,7 +1323,7 @@ const char * CEterPack::GetDBName()
|
||||
|
||||
void CEterPack::__CreateFileNameKey_Panama(const char * filename, BYTE * key, unsigned int keySize)
|
||||
{
|
||||
// Ű <20><>ȣȭ
|
||||
// 키 암호화
|
||||
if (keySize != 32)
|
||||
return;
|
||||
|
||||
@ -1365,7 +1365,7 @@ void CEterPack::__CreateFileNameKey_Panama(const char * filename, BYTE * key, un
|
||||
) // HashFilter
|
||||
); // StringSource
|
||||
|
||||
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ű<><C5B0> ù<><C3B9>° 4<><34><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD> 16<31><36><EFBFBD><EFBFBD>Ʈ Ű <20><><EFBFBD><EFBFBD> <20>˰<EFBFBD><CBB0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// 만들어진 키의 첫번째 4바이트로 다음 16바이트 키 생성 알고리즘 선택
|
||||
unsigned int idx2 = *(unsigned int*) key;
|
||||
|
||||
switch (idx2 & 3)
|
||||
@ -1394,14 +1394,14 @@ void CEterPack::__CreateFileNameKey_Panama(const char * filename, BYTE * key, un
|
||||
//) // HexEncoder
|
||||
) // HashFilter
|
||||
); // StringSource
|
||||
// Ű <20><><EFBFBD><EFBFBD> <20>Ϸ<EFBFBD>
|
||||
// 키 생성 완료
|
||||
}
|
||||
|
||||
bool CEterPack::__Encrypt_Panama(const char* filename, const BYTE* data, SIZE_T dataSize, CLZObject& zObj)
|
||||
{
|
||||
if (32 != m_stIV_Panama.length())
|
||||
{
|
||||
// <EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD> <20><> <20><EFBFBD><DEBC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// 해커가 이 메세지를 보면 힌트를 얻을까봐 디버그에서만 출력
|
||||
#ifdef _DEBUG
|
||||
TraceError("IV not set (filename: %s)", filename);
|
||||
#endif
|
||||
@ -1423,7 +1423,7 @@ bool CEterPack::__Encrypt_Panama(const char* filename, const BYTE* data, SIZE_T
|
||||
__CreateFileNameKey_Panama(filename, key, sizeof(key));
|
||||
Encryptor.SetKeyWithIV(key, sizeof(key), (const BYTE*) m_stIV_Panama.c_str(), 32);
|
||||
|
||||
// MandatoryBlockSize<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> 2048 <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
// MandatoryBlockSize에 나누어 떨어지게 만들고 최대 2048 바이트만
|
||||
DWORD cryptSize = dataSize - (dataSize % Encryptor.MandatoryBlockSize());
|
||||
cryptSize = cryptSize > 2048 ? 2048 : cryptSize;
|
||||
|
||||
@ -1458,7 +1458,7 @@ bool CEterPack::__Decrypt_Panama(const char* filename, const BYTE* data, SIZE_T
|
||||
{
|
||||
if (32 != m_stIV_Panama.length())
|
||||
{
|
||||
// <EFBFBD><EFBFBD>Ŀ<EFBFBD><EFBFBD> <20><> <20><EFBFBD><DEBC><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// 해커가 이 메세지를 보면 힌트를 얻을까봐 디버그에서만 출력
|
||||
#ifdef _DEBUG
|
||||
TraceError("IV not set (filename: %s)", filename);
|
||||
#endif
|
||||
@ -1472,7 +1472,7 @@ bool CEterPack::__Decrypt_Panama(const char* filename, const BYTE* data, SIZE_T
|
||||
__CreateFileNameKey_Panama(filename, key, sizeof(key));
|
||||
Decryptor.SetKeyWithIV(key, sizeof(key), (const BYTE*) m_stIV_Panama.c_str(), 32);
|
||||
|
||||
// MandatoryBlockSize<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> 2048 <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
// MandatoryBlockSize에 나누어 떨어지게 만들고 최대 2048 바이트만
|
||||
DWORD cryptSize = dataSize - (dataSize % Decryptor.MandatoryBlockSize());
|
||||
cryptSize = cryptSize > 2048 ? 2048 : cryptSize;
|
||||
|
||||
|
Reference in New Issue
Block a user