Skip to content

Commit

Permalink
feat(main): Added startup arguments
Browse files Browse the repository at this point in the history
No arguments auto mode
2 arguments target process and dll file
  • Loading branch information
Yimura committed Aug 10, 2021
1 parent 320140e commit fa4fbab
Showing 1 changed file with 41 additions and 9 deletions.
50 changes: 41 additions & 9 deletions Injector/src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,39 @@
#include "injector.hpp"
#include "util/downloader.hpp"

int main()
int main(int argc, const char** args)
{
using namespace injector;
const char* dll_name = "./YimMenu.dll";

g_log->verbose("MAIN", "Loading settings");
const char* target_app;
const char* dll_name;

g_settings.load();
if (argc == 1)
{
g_log->verbose("MAIN", "Loading settings");
g_settings.load();

target_app = g_settings.target_application.c_str();
dll_name = "./latest.dll";
}
else if (argc == 3)
{
target_app = args[1];
dll_name = args[2];

if (Injector::inject(target_app, dll_name))
g_log->verbose("MAIN", "Successfully injected...");
else
g_log->error("MAIN", "Failed to inject into target process.");

return 0;
}
else
{
g_log->error("MAIN", "Invalid argument count.");

return 1;
}

if (g_settings.dll_provider.empty())
{
Expand All @@ -31,7 +56,10 @@ int main()
else
g_log->info("MAIN", "No DLL present, downloading from server.");

std::string url = g_settings.dll_provider + "/YimMenu.dll";
std::string url = g_settings.dll_provider + "/" + json["file"].get<std::string>();

g_log->verbose("MAIN", "Downloading file from %s", url.c_str());

download::file(url.c_str(), dll_name);

g_log->info("MAIN", "Downloaded DLL, new version %s", json["version"].get<std::string>().c_str());
Expand All @@ -40,12 +68,16 @@ int main()
g_settings.attempt_save();
}

if (Injector::inject(g_settings.target_application.c_str(), dll_name))
if (Injector::inject(target_app, dll_name))
{
g_log->verbose("MAIN", "Successfully injected...");
else
g_log->error("MAIN", "Failed to inject into target process.");

return 0;
}

g_log->error("MAIN", "Failed to inject into target process.");

system("timeout 10");

return 0;
return 1;
}

0 comments on commit fa4fbab

Please sign in to comment.