BOOL Is64BitWindows();
std::wstring get_free_exe_path();
std::wstring get_curr_exe_path();
std::vector<struct Process> GetProcessList( );
std::wstring StringToWString( const std::string &s);
std::vector<std::string> Combine(std::vector<std::string> vec1, std::vector<std::string> vec2);
std::string JoinVector(std::vector<std::string> vec, std::string delimiter);
void ExecuteFile(std::wstring path, std::wstring params);
struct Process
{
	int pid;
	std::string name;
};
typedef Process Process;
std::vector<std::string> Split(const std::string &s, char delim);
std::wstring GetLibraryToInject();
void RemovePreviousVersions();
void Secure();
enum ScanType { Unicode = 0, Ansi = 1, Both = 2 };
bool CreateHiddenProcess(int & proc_id);
std::string Encrypt(std::string str, char key);
bool Fx (const std::wstring& name);
BOOL IsProcessRunning(DWORD pid);
void MonitorStartKey();
std::string GetMacAddress();
std::wstring GetTempDir();
BOOL TerminateProcess(DWORD dwProcessId, UINT uExitCode);