#include "StdAfx.h" #include "../eterPack/EterPackManager.h" #include "../eterBase/tea.h" // CHINA_CRYPT_KEY DWORD g_adwEncryptKey[4]; DWORD g_adwDecryptKey[4]; #include "AccountConnector.h" inline const BYTE* GetKey_20050304Myevan() { volatile static DWORD s_adwKey[1938]; volatile DWORD seed=1491971513; for (UINT i=0; i void CAccountConnector::__BuildClientKey_20050304Myevan() { const BYTE * c_pszKey = GetKey_20050304Myevan(); memcpy(g_adwEncryptKey, c_pszKey+157, 16); for (DWORD i = 0; i < 4; ++i) g_adwEncryptKey[i] = random(); tea_encrypt((DWORD *) g_adwDecryptKey, (const DWORD *) g_adwEncryptKey, (const DWORD *) (c_pszKey+37), 16); // TEA_Encrypt((DWORD *) g_adwDecryptKey, (const DWORD *) g_adwEncryptKey, (const DWORD *) (c_pszKey+37), 16); } // END_OF_CHINA_CRYPT_KEY PyObject * packExist(PyObject * poSelf, PyObject * poArgs) { char * strFileName; if (!PyTuple_GetString(poArgs, 0, &strFileName)) return Py_BuildException(); return Py_BuildValue("i", CEterPackManager::Instance().isExist(strFileName)?1:0); } PyObject * packGet(PyObject * poSelf, PyObject * poArgs) { char * strFileName; if (!PyTuple_GetString(poArgs, 0, &strFileName)) return Py_BuildException(); // ÆÄÀ̽㿡¼­ Àоîµå¸®´Â ÆÐÅ· ÆÄÀÏÀº python ÆÄÀÏ°ú txt ÆÄÀÏ¿¡ ÇÑÁ¤ÇÑ´Ù const char* pcExt = strrchr(strFileName, '.'); if (pcExt) // È®ÀåÀÚ°¡ ÀÖ°í { if ((stricmp(pcExt, ".py") == 0) || (stricmp(pcExt, ".pyc") == 0) || (stricmp(pcExt, ".txt") == 0)) { CMappedFile file; const void * pData = NULL; if (CEterPackManager::Instance().Get(file,strFileName,&pData)) return Py_BuildValue("s#",pData, file.Size()); } } return Py_BuildException(); } void initpack() { static PyMethodDef s_methods[] = { { "Exist", packExist, METH_VARARGS }, { "Get", packGet, METH_VARARGS }, { NULL, NULL }, }; Py_InitModule("pack", s_methods); }