Bem-vindo ao Fórum!

Registre-se agora mesmo e fique por dentro da maior comunidade de Cheats do Brasil!

EvSagaZ

Injetor em Console Application

Recommended Posts

Preciso de um injetor em cmd , alguem pode me ajudar ?

Share this post


Link to post
Share on other sites
Preciso de um injetor em cmd , alguem pode me ajudar ?

 

Qual a finalidade exatamente para criar ele em console? Não sei qual seja, mas recomendo você criar em C++... Uma source pra você

 

 

/*----------------------------------------------------*/
/* Créditos -> oO>Kssio<Oo™/Kssiobr, STaRDoGGCHaMPioN */
/* Ano: 2013                                          */ 
/*----------------------------------------------------*/
#include <iostream>
#include <direct.h>
#include <windows.h>
#include <tlhelp32.h>

using namespace std;

char* GetCurrentDir()
{
   char* szRet = (char*)malloc(MAX_PATH);

   _getcwd(szRet, MAX_PATH);

   return szRet;
}

LPCTSTR SzToLPCTSTR(char* szString)
{
   LPTSTR lpszRet;
   size_t size = strlen(szString)+1;

   lpszRet = (LPTSTR)malloc(MAX_PATH);
   mbstowcs_s(NULL, lpszRet, size, szString, _TRUNCATE);

   return lpszRet;
}

void WaitForProcessToAppear(LPCTSTR lpczProc, DWORD dwDelay)
{
   HANDLE            hSnap;
   PROCESSENTRY32    peProc;
   BOOL            bAppeared = FALSE;

   while(!bAppeared)
   {
       if((hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)) != INVALID_HANDLE_VALUE)
       {
           peProc.dwSize = sizeof(PROCESSENTRY32);
           if(Process32First(hSnap, &peProc))
               while(Process32Next(hSnap, &peProc) && !bAppeared)
                   if(!lstrcmp(lpczProc, peProc.szExeFile))
                       bAppeared = TRUE;
       }
       CloseHandle(hSnap);
       Sleep(dwDelay);
   }
}

DWORD GetProcessIdByName(LPCTSTR lpczProc)
{
   HANDLE            hSnap;
   PROCESSENTRY32    peProc;
   DWORD            dwRet = -1;

   if((hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)) != INVALID_HANDLE_VALUE)
   {
       peProc.dwSize = sizeof(PROCESSENTRY32);
       if(Process32First(hSnap, &peProc))
           while(Process32Next(hSnap, &peProc))
               if(!lstrcmp(lpczProc, peProc.szExeFile))
                   dwRet = peProc.th32ProcessID;
   }
   CloseHandle(hSnap);

   return dwRet;
}

BOOL InjectDll(DWORD dwPid, char* szDllPath)
{
   DWORD    dwMemSize;
   HANDLE    hProc;
   LPVOID    lpRemoteMem, lpLoadLibrary;
   BOOL    bRet = FALSE;

   if((hProc = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_CREATE_THREAD, FALSE, dwPid)) != NULL)
   {
       dwMemSize = strlen(szDllPath)+1;
       if((lpRemoteMem = VirtualAllocEx(hProc, NULL, dwMemSize, MEM_COMMIT, PAGE_READWRITE)) != NULL)
           if(WriteProcessMemory(hProc, lpRemoteMem, (LPCVOID)szDllPath, dwMemSize, NULL))
           {
               lpLoadLibrary = GetProcAddress(GetModuleHandleA("Kernel32.dll"), "LoadLibraryA");
               if(CreateRemoteThread(hProc, NULL, 0, (LPTHREAD_START_ROUTINE)lpLoadLibrary, lpRemoteMem, 0, NULL) != NULL)
                   bRet = TRUE;
           }
   }
   CloseHandle(hProc);

   return bRet;
}

int main(void)
{
   system("title Injector C++ KssioBr");//Nome do injetor que aparecerá no topo da janela

   char    szProc[MAX_PATH];//Variável do tipo caractere para receber o nome do processo no qual será injetado
   char    szDll[MAX_PATH];//Variável do tipo caractere para receber o nome da dll a ser injetada

   char*   szDllPath    = (char*)malloc(MAX_PATH);
   LPTSTR    lpszProc    = NULL;
   
   cout << "\n\n\t\t\t-------- Injector C++ oO>Kssio<Oo -------- \n\n";//Titulo do injetor aparece dentro da janela
   //----------------------------------------------------
   cout << "\t\t\t\t\tEntre com o nome do processo: ";
   cin >> szProc;//Ler do teclado e armazena em szProc

   cout << "\n\t\t\t\t\tEntre com o nome da dll: ";
   cin >> szDll;//Ler do teclado e armazena em szDll
   //----------------------------------------------------
   szDllPath = GetCurrentDir();
   strcat_s(szDllPath, MAX_PATH, "\\");
   strcat_s(szDllPath, MAX_PATH, szDll);

   cout << "\t\n\nAguardando Inicio do Jogo..." << endl;

   WaitForProcessToAppear(SzToLPCTSTR(szProc), 100);

   if(InjectDll(GetProcessIdByName(SzToLPCTSTR(szProc)), szDllPath))
       cout << "Injetado com Sucesso!" << endl;
   else
       cout << "Falha na injeção!" << endl;
   cout << "\n";

   return EXIT_SUCCESS;
}

 

Source de fácil entendimento... Abraços

Share this post


Link to post
Share on other sites
Qual a finalidade exatamente para criar ele em console? Não sei qual seja, mas recomendo você criar em C++... Uma source pra você

 

 

/*----------------------------------------------------*/
/* Créditos -> oO>Kssio<Oo™/Kssiobr, STaRDoGGCHaMPioN */
/* Ano: 2013                                          */
/*----------------------------------------------------*/
#include <iostream>
#include <direct.h>
#include <windows.h>
#include <tlhelp32.h>

using namespace std;

char* GetCurrentDir()
{
   char* szRet = (char*)malloc(MAX_PATH);

   _getcwd(szRet, MAX_PATH);

   return szRet;
}

LPCTSTR SzToLPCTSTR(char* szString)
{
   LPTSTR lpszRet;
   size_t size = strlen(szString)+1;

   lpszRet = (LPTSTR)malloc(MAX_PATH);
   mbstowcs_s(NULL, lpszRet, size, szString, _TRUNCATE);

   return lpszRet;
}

void WaitForProcessToAppear(LPCTSTR lpczProc, DWORD dwDelay)
{
   HANDLE            hSnap;
   PROCESSENTRY32    peProc;
   BOOL            bAppeared = FALSE;

   while(!bAppeared)
   {
       if((hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)) != INVALID_HANDLE_VALUE)
       {
           peProc.dwSize = sizeof(PROCESSENTRY32);
           if(Process32First(hSnap, &peProc))
               while(Process32Next(hSnap, &peProc) && !bAppeared)
                   if(!lstrcmp(lpczProc, peProc.szExeFile))
                       bAppeared = TRUE;
       }
       CloseHandle(hSnap);
       Sleep(dwDelay);
   }
}

DWORD GetProcessIdByName(LPCTSTR lpczProc)
{
   HANDLE            hSnap;
   PROCESSENTRY32    peProc;
   DWORD            dwRet = -1;

   if((hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0)) != INVALID_HANDLE_VALUE)
   {
       peProc.dwSize = sizeof(PROCESSENTRY32);
       if(Process32First(hSnap, &peProc))
           while(Process32Next(hSnap, &peProc))
               if(!lstrcmp(lpczProc, peProc.szExeFile))
                   dwRet = peProc.th32ProcessID;
   }
   CloseHandle(hSnap);

   return dwRet;
}

BOOL InjectDll(DWORD dwPid, char* szDllPath)
{
   DWORD    dwMemSize;
   HANDLE    hProc;
   LPVOID    lpRemoteMem, lpLoadLibrary;
   BOOL    bRet = FALSE;

   if((hProc = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_CREATE_THREAD, FALSE, dwPid)) != NULL)
   {
       dwMemSize = strlen(szDllPath)+1;
       if((lpRemoteMem = VirtualAllocEx(hProc, NULL, dwMemSize, MEM_COMMIT, PAGE_READWRITE)) != NULL)
           if(WriteProcessMemory(hProc, lpRemoteMem, (LPCVOID)szDllPath, dwMemSize, NULL))
           {
               lpLoadLibrary = GetProcAddress(GetModuleHandleA("Kernel32.dll"), "LoadLibraryA");
               if(CreateRemoteThread(hProc, NULL, 0, (LPTHREAD_START_ROUTINE)lpLoadLibrary, lpRemoteMem, 0, NULL) != NULL)
                   bRet = TRUE;
           }
   }
   CloseHandle(hProc);

   return bRet;
}

int main(void)
{
   system("title Injector C++ KssioBr");//Nome do injetor que aparecerá no topo da janela

   char    szProc[MAX_PATH];//Variável do tipo caractere para receber o nome do processo no qual será injetado
   char    szDll[MAX_PATH];//Variável do tipo caractere para receber o nome da dll a ser injetada

   char*   szDllPath    = (char*)malloc(MAX_PATH);
   LPTSTR    lpszProc    = NULL;
  
   cout << "\n\n\t\t\t-------- Injector C++ oO>Kssio<Oo -------- \n\n";//Titulo do injetor aparece dentro da janela
   //----------------------------------------------------
   cout << "\t\t\t\t\tEntre com o nome do processo: ";
   cin >> szProc;//Ler do teclado e armazena em szProc

   cout << "\n\t\t\t\t\tEntre com o nome da dll: ";
   cin >> szDll;//Ler do teclado e armazena em szDll
   //----------------------------------------------------
   szDllPath = GetCurrentDir();
   strcat_s(szDllPath, MAX_PATH, "\\");
   strcat_s(szDllPath, MAX_PATH, szDll);

   cout << "\t\n\nAguardando Inicio do Jogo..." << endl;

   WaitForProcessToAppear(SzToLPCTSTR(szProc), 100);

   if(InjectDll(GetProcessIdByName(SzToLPCTSTR(szProc)), szDllPath))
       cout << "Injetado com Sucesso!" << endl;
   else
       cout << "Falha na injeção!" << endl;
   cout << "\n";

   return EXIT_SUCCESS;
}

 

Source de fácil entendimento... Abraços

 

 

 

 

PARA O MEU TRABALHO , SÓ ESTOU INTERESSADO EM CONSOLE MESMO , MUITO OBRIGADO ! EM C++ Já tenho (:

Share this post


Link to post
Share on other sites
PARA O MEU TRABALHO , SÓ ESTOU INTERESSADO EM CONSOLE MESMO , MUITO OBRIGADO ! EM C++ Já tenho :)

 

Entendi. Basta você pegar uma source na net e converter para console app usando Console.Writeline para escrever e Console. Readline para ler... Até mais!

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.