-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDllLauncher.cpp
More file actions
129 lines (97 loc) · 2.68 KB
/
Copy pathDllLauncher.cpp
File metadata and controls
129 lines (97 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include "DllLauncher.hpp"
#include <string>
#include <winternl.h>
#include <Common/CrashLog.hpp>
#include <Common/Helpers/StringHelper.hpp>
#include <DeadLock/CSDK_Loader.hpp>
#include <DeadLock/CHook_Loader.hpp>
#include <DeadLock/SDK/CFunctionList.hpp>
#include <AndromedaClient/CAndromedaGUI.hpp>
#include <AndromedaClient/CAndromedaClient.hpp>
#include <AndromedaClient/Settings/CSettingsJson.hpp>
static CDllLauncher g_CDllLauncher{};
auto CDllLauncher::OnDllMain( LPVOID lpReserved , HINSTANCE hInstace ) -> void
{
if ( lpReserved )
{
ManualMapParam_t* pParam = reinterpret_cast<ManualMapParam_t*>( lpReserved );
if ( pParam )
{
m_DllDir = pParam->m_DllDir;
m_DllDir = m_DllDir.substr( 0, m_DllDir.find_last_of( '\\' ) + 1 );
}
}
else
{
char szDllDir[MAX_PATH];
GetModuleFileNameA( hInstace , szDllDir , MAX_PATH );
m_DllDir = szDllDir;
m_DllDir = m_DllDir.substr( 0 , m_DllDir.find_last_of( '\\' ) );
m_DllDir += '\\';
}
m_hDllImage = hInstace;
m_SizeofImage = GetSizeOfImageInternal();
m_BaseOfCode = GetBaseOfCodeInternal();
char szGameFile[MAX_PATH] = { 0 };
GetModuleFileNameA( 0 , szGameFile , MAX_PATH );
m_DeadLockDir = szGameFile;
m_DeadLockDir = m_DeadLockDir.substr( 0 , m_DeadLockDir.find_last_of( "\\/" ) );
m_DeadLockDir += '\\';
memset( szGameFile , 0 , MAX_PATH );
CreateThread( 0 , 0 , StartCheatTheard , lpReserved , 0 , 0 );
}
auto CDllLauncher::OnDestroy() -> void
{
if ( !m_bDestroyed )
{
GetDevLog()->Destroy();
GetHook_Loader()->DestroyHooks();
GetAndromedaGUI()->OnDestroy();
GetCrashLog()->DestroyVectorExceptionHandler();
m_bDestroyed = true;
}
}
auto WINAPI CDllLauncher::StartCheatTheard( LPVOID lpThreadParameter ) -> DWORD
{
GetDevLog()->Init();
GetCrashLog()->InitVectorExceptionHandler();
DEV_LOG( "[+] StartCheatThread: %s\n" , ansi_to_utf8( GetDllDir() ).c_str() );
if ( !GetHook_Loader()->InitalizeMH() )
{
DEV_LOG( "[error] Hook_Loader::InitalizeMH\n" );
return 0;
}
if ( !GetFunctionList()->OnInit() )
{
DEV_LOG( "[error] FunctionList::OnInit\n" );
return 0;
}
if ( !GetSDK_Loader()->LoadSDK() )
{
DEV_LOG( "[error] CSDK_Loader::LoadSDK\n" );
return 0;
}
if ( !GetHook_Loader()->InstallSecondHook() )
{
DEV_LOG( "[error] Hook_Loader::InstallSecondHook\n" );
return 0;
}
GetSettingsJson()->UpdateConfigList();
GetSettingsJson()->LoadConfig( CONFIG_FILE );
while ( !GetAndromedaGUI()->IsInited() )
Sleep( 100 );
GetAndromedaClient()->OnInit();
return 0;
}
auto GetDllDir()->std::string&
{
return GetDllLauncher()->m_DllDir;
}
auto GetDeadLockDir() -> std::string
{
return GetDllLauncher()->m_DeadLockDir;
}
auto GetDllLauncher() -> CDllLauncher*
{
return &g_CDllLauncher;
}