mirror of
https://github.com/BeamMP/BeamMP-Launcher.git
synced 2025-07-01 23:46:59 +00:00
Roll Back
This commit is contained in:
parent
179b46d17b
commit
c517a48fa6
@ -17,7 +17,6 @@ extern std::string UlStatus;
|
|||||||
extern std::string ListOfMods;
|
extern std::string ListOfMods;
|
||||||
void UDPSend(std::string Data);
|
void UDPSend(std::string Data);
|
||||||
int KillSocket(uint64_t Dead);
|
int KillSocket(uint64_t Dead);
|
||||||
void ClosePublic();
|
|
||||||
void CoreNetwork();
|
void CoreNetwork();
|
||||||
void GameSend(std::string Data);
|
void GameSend(std::string Data);
|
||||||
void SendLarge(std::string Data);
|
void SendLarge(std::string Data);
|
||||||
|
@ -6,8 +6,7 @@
|
|||||||
void PreGame(int argc, char* argv[],const std::string& GamePath);
|
void PreGame(int argc, char* argv[],const std::string& GamePath);
|
||||||
void InitGame(const std::string& Dir,const std::string&Current);
|
void InitGame(const std::string& Dir,const std::string&Current);
|
||||||
std::string CheckVer(const std::string &path);
|
std::string CheckVer(const std::string &path);
|
||||||
void FindDLL(const std::string& Name);
|
|
||||||
void SecurityCheck(char* argv[]);
|
void SecurityCheck(char* argv[]);
|
||||||
|
void FindDLL(char* args[]);
|
||||||
std::string GetGameDir();
|
std::string GetGameDir();
|
||||||
void LegitimacyCheck();
|
void LegitimacyCheck();
|
||||||
void DASM();
|
|
||||||
|
@ -66,9 +66,12 @@ void warn(const std::string& toPrint){
|
|||||||
addToLog(Print);
|
addToLog(Print);
|
||||||
}
|
}
|
||||||
void error(const std::string& toPrint) {
|
void error(const std::string& toPrint) {
|
||||||
|
static int ECounter = 0;
|
||||||
std::string Print = getDate() + Sec("[ERROR] ") + toPrint + "\n";
|
std::string Print = getDate() + Sec("[ERROR] ") + toPrint + "\n";
|
||||||
std::cout << Print;
|
std::cout << Print;
|
||||||
addToLog(Print);
|
addToLog(Print);
|
||||||
|
if(ECounter > 10)exit(7);
|
||||||
|
ECounter++;
|
||||||
}
|
}
|
||||||
void except(const std::string& toPrint) {
|
void except(const std::string& toPrint) {
|
||||||
std::string Print = getDate() + Sec("[EXCEP] ") + toPrint + "\n";
|
std::string Print = getDate() + Sec("[EXCEP] ") + toPrint + "\n";
|
||||||
|
@ -227,7 +227,7 @@ void CoreMain() {
|
|||||||
int Handle(EXCEPTION_POINTERS *ep){
|
int Handle(EXCEPTION_POINTERS *ep){
|
||||||
char* hex = new char[100];
|
char* hex = new char[100];
|
||||||
sprintf_s(hex,100, "%lX", ep->ExceptionRecord->ExceptionCode);
|
sprintf_s(hex,100, "%lX", ep->ExceptionRecord->ExceptionCode);
|
||||||
except(Sec("(Core) ") + std::string(hex));
|
except(Sec("(Core) Code : ") + std::string(hex));
|
||||||
delete [] hex;
|
delete [] hex;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -90,7 +90,12 @@ void ServerSend(std::string Data, bool Rel){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClosePublic(){
|
void NetReset(){
|
||||||
|
TCPTerminate = false;
|
||||||
|
GConnected = false;
|
||||||
|
Terminate = false;
|
||||||
|
UlStatus = Sec("Ulstart");
|
||||||
|
MStatus = " ";
|
||||||
if(UDPSock != (SOCKET)(-1)){
|
if(UDPSock != (SOCKET)(-1)){
|
||||||
debug(Sec("Terminating UDP Socket : ") + std::to_string(TCPSock));
|
debug(Sec("Terminating UDP Socket : ") + std::to_string(TCPSock));
|
||||||
KillSocket(UDPSock);
|
KillSocket(UDPSock);
|
||||||
@ -101,15 +106,6 @@ void ClosePublic(){
|
|||||||
KillSocket(TCPSock);
|
KillSocket(TCPSock);
|
||||||
}
|
}
|
||||||
TCPSock = -1;
|
TCPSock = -1;
|
||||||
}
|
|
||||||
|
|
||||||
void NetReset(){
|
|
||||||
TCPTerminate = false;
|
|
||||||
GConnected = false;
|
|
||||||
Terminate = false;
|
|
||||||
UlStatus = Sec("Ulstart");
|
|
||||||
MStatus = " ";
|
|
||||||
ClosePublic();
|
|
||||||
if(GSocket != (SOCKET)(-1)){
|
if(GSocket != (SOCKET)(-1)){
|
||||||
debug(Sec("Terminating GTCP Socket : ") + std::to_string(GSocket));
|
debug(Sec("Terminating GTCP Socket : ") + std::to_string(GSocket));
|
||||||
KillSocket(GSocket);
|
KillSocket(GSocket);
|
||||||
|
@ -23,20 +23,6 @@ void DAS(){
|
|||||||
f.close();
|
f.close();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
void DASM(){
|
|
||||||
#ifndef DEBUG
|
|
||||||
int i = 0;
|
|
||||||
std::ifstream f(GetEN(), std::ios::binary);
|
|
||||||
f.seekg(0, std::ios_base::end);
|
|
||||||
std::streampos fileSize = f.tellg();
|
|
||||||
if(IsDebuggerPresent() || fileSize > 0x4C4B40){
|
|
||||||
i++;
|
|
||||||
DAboard();
|
|
||||||
}
|
|
||||||
if(i)DAboard();
|
|
||||||
f.close();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
DWORD getParentPID(DWORD pid){
|
DWORD getParentPID(DWORD pid){
|
||||||
HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
|
HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
|
||||||
PROCESSENTRY32 pe = {0};
|
PROCESSENTRY32 pe = {0};
|
||||||
|
@ -4,44 +4,52 @@
|
|||||||
#include "Network/network.h"
|
#include "Network/network.h"
|
||||||
#include "Security/Enc.h"
|
#include "Security/Enc.h"
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <Logger.h>
|
#include "Logger.h"
|
||||||
#include <psapi.h>
|
#include <psapi.h>
|
||||||
|
#include <string>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
|
|
||||||
|
|
||||||
|
DWORD getParentPID(DWORD pid);
|
||||||
|
HANDLE getProcess(DWORD pid, LPSTR fname, DWORD sz);
|
||||||
|
|
||||||
void Kill(){
|
void Kill(){
|
||||||
static bool Run = false;
|
static bool Run = false;
|
||||||
if(!Run)Run = true;
|
if(!Run)Run = true;
|
||||||
else return;
|
else return;
|
||||||
while(Run){
|
while(Run){
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(200));
|
std::this_thread::sleep_for(std::chrono::seconds(2));
|
||||||
ClosePublic();
|
NetReset();
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
debug("NetReset Check!");
|
debug(Sec("Attention! NetReset Check!"));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FindDLL(const std::string& Name) {
|
void FindDLL(char* args[]){
|
||||||
static std::string PName = LocalEnc(Name.substr(0,Name.rfind(Sec("\\"))));
|
static auto argv = args;
|
||||||
static bool Running = false;
|
|
||||||
if(Running)return;
|
|
||||||
HANDLE hProcess = GetCurrentProcess();
|
HANDLE hProcess = GetCurrentProcess();
|
||||||
HMODULE hMods[1024];
|
std::string Parent(MAX_PATH,0);
|
||||||
DWORD cbNeeded;
|
DWORD ppid = getParentPID(GetCurrentProcessId());
|
||||||
unsigned int i;
|
HANDLE Process = getProcess(ppid, &Parent[0], MAX_PATH);
|
||||||
TCHAR szModName[MAX_PATH];
|
if(Process == nullptr){
|
||||||
if (K32EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbNeeded)) {
|
HMODULE hMods[1024];
|
||||||
for (i = 1; i < (cbNeeded / sizeof(HMODULE)); i++) {
|
DWORD cbNeeded;
|
||||||
if (K32GetModuleFileNameExA(hProcess, hMods[i], szModName, sizeof(szModName) / sizeof(TCHAR))) {
|
unsigned int i;
|
||||||
std::string MName(szModName);
|
if(K32EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbNeeded)){
|
||||||
MName = MName.substr(0, MName.rfind(Sec("\\")));
|
for ( i = 1; i < (cbNeeded / sizeof(HMODULE)); i++ ){
|
||||||
if (MName == LocalDec(PName)) {
|
TCHAR szModName[MAX_PATH];
|
||||||
Running = true;
|
if (K32GetModuleFileNameExA(hProcess, hMods[i], szModName, sizeof(szModName) / sizeof(TCHAR))){
|
||||||
std::thread t1(Kill);
|
std::string Name(szModName),PName(argv[0]);
|
||||||
t1.detach();
|
Name = Name.substr(0,Name.rfind(Sec("\\")));
|
||||||
|
PName = PName.substr(0,PName.rfind(Sec("\\")));
|
||||||
|
if(Name == PName){
|
||||||
|
std::thread t1(Kill);
|
||||||
|
t1.detach();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
ZeroMemory(szModName,MAX_PATH);
|
||||||
}
|
}
|
||||||
ZeroMemory(szModName, MAX_PATH);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CloseHandle(hProcess);
|
CloseHandle(hProcess);
|
||||||
|
@ -181,7 +181,7 @@ void InitLauncher(int argc, char* argv[]) {
|
|||||||
SetConsoleTitleA((Sec("BeamMP Launcher v") + std::string(GetVer()) + GetPatch()).c_str());
|
SetConsoleTitleA((Sec("BeamMP Launcher v") + std::string(GetVer()) + GetPatch()).c_str());
|
||||||
InitLog();
|
InitLog();
|
||||||
CheckName(argc, argv);
|
CheckName(argc, argv);
|
||||||
FindDLL(argv[0]);
|
FindDLL(argv);
|
||||||
SecurityCheck(argv);
|
SecurityCheck(argv);
|
||||||
Discord_Main();
|
Discord_Main();
|
||||||
RequestRole();
|
RequestRole();
|
||||||
|
@ -19,7 +19,6 @@ int main(int argc, char* argv[]) {
|
|||||||
std::thread gb(aa);
|
std::thread gb(aa);
|
||||||
gb.detach();
|
gb.detach();
|
||||||
#endif
|
#endif
|
||||||
DASM();
|
|
||||||
InitLauncher(argc,argv);
|
InitLauncher(argc,argv);
|
||||||
CheckDir(argc,argv);
|
CheckDir(argc,argv);
|
||||||
LegitimacyCheck();
|
LegitimacyCheck();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user