so I'm trying to create a DLL Injector for minecraft, below is my attempt along with some online resources on making a DLL Injector. I have the following errors and can't work out why they are present:
'Inject DLL Identifier is not found' 'strcat is unsafe'
Sorry if this is a noob mistake, I am learning :(
Also, would I have to use a Java injector for Minecraft seeming as Java is the language its ran in?
Thanks for any answers!
using namespace std;
char FileToInject[] = "37gHsZ.dll";
char ProcessName[] = "javaw.exe";
typedef HINSTANCE(*fpLoadLibrary)(char*);
int main()
{
    DWORD processId = NULL;
    PROCESSENTRY32 pe32 = { sizeof(PROCESSENTRY32) };
    HANDLE hProcSnap;
    while (!processId)
    {
        system("cls");
        cout << "(!) Locating the process: " << ProcessName << "... (!)\n";
        cout << "(!) Ensure Minecraft 1.7.10 is running (!)" << endl;
        hProcSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
        if (Process32First(hProcSnap, &pe32))
        {
            do
            {
                if (!strcmp(pe32.szExeFile, ProcessName))
                {
                    processId = pe32.th32ProcessID;
                    break;
                }
            } 
            while (Process32Next(hProcSnap, &pe32));
        }
        Sleep(1000);
    }
    cout << "Located process: " << ProcessName << endl;
    while (!InjectDLL(processId))
    {
        system("cls");
        cout << "Classes failed to inject" << endl;
        Sleep(1000);
    }
    cout << "Classes loaded succesfuly\n" << endl;
    Sleep(500);
    cout << "Closing in 3 seconds" << endl;
    CloseHandle(hProcSnap);
    Sleep(5000);
    return 0;
}
bool InjectDLL(DWORD ProcessID)
{
    HANDLE hProc;
    LPVOID paramAddr;
    HINSTANCE hDLL = LoadLibrary("KERNEL32");
    fpLoadLibrary LoadLibraryAddr = (fpLoadLibrary)GetProcAddress(hDLL, "LoadLibraryA");
    hProc = OpenProcess(PROCESS_ALL_ACCESS, false, ProcessID);
    char dllPath[250] = "C:\\Recorder\\";
    strcat(dllPath, FileToInject);
    paramAddr = VirtualAllocEx(hProc, 0, strlen(dllPath) + 1, MEM_COMMIT, PAGE_READWRITE);
    bool memoryWritten = WriteProcessMemory(hProc, paramAddr, dllPath, strlen(dllPath) + 1, NULL);
    CreateRemoteThread(hProc, 0, 0, (LPTHREAD_START_ROUTINE)LoadLibraryAddr, paramAddr, 0, 0);
    CloseHandle(hProc);
    return memoryWritten;
}
 
    