Вопрос Перевел external в динамическую библиотеку

Начинающий
Статус
Оффлайн
Регистрация
28 Дек 2020
Сообщения
238
Реакции[?]
20
Поинты[?]
3K
Всем привет возникла тут идея перевести external хатск в динамическую библиотеку с дальнейшим инжектом в какой-нибудь системный процесс.Проблема вот в чём при инжекте в любой процесс нечего не происходит в самом хатске в мейне прописан просто запуск консоли . Можно ли как то реализовать это и что нужно прописать в мейне что бы при инжекте хатск сам открывался(консоль)
 
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
695
Реакции[?]
328
Поинты[?]
12K
Всем привет возникла тут идея перевести external хатск в динамическую библиотеку с дальнейшим инжектом в какой-нибудь системный процесс.Проблема вот в чём при инжекте в любой процесс нечего не происходит в самом хатске в мейне прописан просто запуск консоли . Можно ли как то реализовать это и что нужно прописать в мейне что бы при инжекте хатск сам открывался(консоль)
ты код скинь
 
I love C++
Пользователь
Статус
Оффлайн
Регистрация
26 Мар 2021
Сообщения
218
Реакции[?]
46
Поинты[?]
1K
Всем привет возникла тут идея перевести external хатск в динамическую библиотеку с дальнейшим инжектом в какой-нибудь системный процесс.Проблема вот в чём при инжекте в любой процесс нечего не происходит в самом хатске в мейне прописан просто запуск консоли . Можно ли как то реализовать это и что нужно прописать в мейне что бы при инжекте хатск сам открывался(консоль)
При инжекте любой dll вызывается функция DllMain, погугли
 
Начинающий
Статус
Оффлайн
Регистрация
28 Дек 2020
Сообщения
238
Реакции[?]
20
Поинты[?]
3K
В том что если экстернал чит заинжектить в системный процесс то исполняемый файл(чит) будет исполняться системным процессом тем самым уберет возможность детекта некоторыми анти читами (я предположил самый простейший бомж способ есть конечно лучше это выделение памяти в системном процессе и тп)
 
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
695
Реакции[?]
328
Поинты[?]
12K
В том что если экстернал чит заинжектить в системный процесс то исполняемый файл(чит) будет исполняться системным процессом тем самым уберет возможность детекта некоторыми анти читами (я предположил самый простейший бомж способ есть конечно лучше это выделение памяти в системном процессе и тп)
А как ты инжектишь экстернал чит?
 
Начинающий
Статус
Оффлайн
Регистрация
28 Дек 2020
Сообщения
238
Реакции[?]
20
Поинты[?]
3K
А как ты инжектишь экстернал чит?
нужно перевести external хатск в динамическую библиотеку (он так и останется экстерналом для кс го) и заинжектить масив длл в любой системный процесс что бы он из него запустился
 
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
695
Реакции[?]
328
Поинты[?]
12K
нужно перевести external хатск в динамическую библиотеку (он так и останется экстерналом для кс го) и заинжектить масив длл в любой системный процесс что бы он из него запустился

Нихуя себе, пиздец у тя методика
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
15 Янв 2022
Сообщения
127
Реакции[?]
18
Поинты[?]
8K
C++:
void Main()
{
    AllocConsole();
   
   
}

BOOL WINAPI DllMain(
    HINSTANCE hinstDLL,  // handle to DLL module
    DWORD fdwReason,     // reason for calling function
    LPVOID lpvReserved )  // reserved
{
    // Perform actions based on the reason for calling.
    switch( fdwReason )
    {
        case DLL_PROCESS_ATTACH:
         // Initialize once for each new process.
         // Return FALSE to fail DLL load.
           
            CreateThread(0,0,(LPTHREAD_START_ROUTINE)Main,0,0,0);
            break;

        case DLL_THREAD_ATTACH:
         // Do thread-specific initialization.
            break;

        case DLL_THREAD_DETACH:
         // Do thread-specific cleanup.
            break;

        case DLL_PROCESS_DETACH:
       
            if (lpvReserved != nullptr)
            {
                break; // do not do cleanup if process termination scenario
            }
           
         // Perform any necessary cleanup.
            break;
    }
    return TRUE;  // Successful DLL_PROCESS_ATTACH.
}
Вместо Main'а ставишь уже точку входа твоего "хацка"
 
Начинающий
Статус
Оффлайн
Регистрация
28 Дек 2020
Сообщения
238
Реакции[?]
20
Поинты[?]
3K
C++:
void Main()
{
    AllocConsole();
  
  
}

BOOL WINAPI DllMain(
    HINSTANCE hinstDLL,  // handle to DLL module
    DWORD fdwReason,     // reason for calling function
    LPVOID lpvReserved )  // reserved
{
    // Perform actions based on the reason for calling.
    switch( fdwReason )
    {
        case DLL_PROCESS_ATTACH:
         // Initialize once for each new process.
         // Return FALSE to fail DLL load.
          
            CreateThread(0,0,(LPTHREAD_START_ROUTINE)Main,0,0,0);
            break;

        case DLL_THREAD_ATTACH:
         // Do thread-specific initialization.
            break;

        case DLL_THREAD_DETACH:
         // Do thread-specific cleanup.
            break;

        case DLL_PROCESS_DETACH:
      
            if (lpvReserved != nullptr)
            {
                break; // do not do cleanup if process termination scenario
            }
          
         // Perform any necessary cleanup.
            break;
    }
    return TRUE;  // Successful DLL_PROCESS_ATTACH.
}
Вместо Main'а ставишь уже точку входа твоего "хацка"
Код:
DWORD GetProcessID(char*);
BOOL Inject(HANDLE,DWORD(WINAPI* func)(LPVOID));
DWORD WINAPI func(LPVOID);

//-------- главная функция ---------

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPTSTR,int)
{
if(!Inject(OpenProcess(PROCESS_ALL_ACCESS,false,GetProcessID("explorer.exe")),&func)) return false;
return true;
}

//-------- функция, которая будет выполняться в чужом процессе -------

DWORD WINAPI func(LPVOID)
{
LoadLibrary("kernel32.dll");
LoadLibrary("user32.dll");
MessageBox(0,"Hello from addres area of explorer","title",0);
return true;
}

//-------- поиск процесса ---------

DWORD GetProcessID(char* lpNameProcess) // в параметре - имя процесса для внедрения
{
HANDLE snap;
PROCESSENTRY32 pentry32;
snap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if(snap==INVALID_HANDLE_VALUE) return 0;
pentry32.dwSize=sizeof(PROCESSENTRY32);
if(!Process32First(snap,&pentry32)) {CloseHandle(snap);return 0;}
do
{
if(!lstrcmpi(lpNameProcess,&pentry32.szExeFile[0]))
{
CloseHandle(snap);
return pentry32.th32ProcessID;
}
}
while(Process32Next(snap,&pentry32));
CloseHandle(snap);
return 0;
}

//-------- функция внедрения в чужой процесс -------------------

BOOL Inject(HANDLE hProc,DWORD(WINAPI* func)(LPVOID))
{
DWORD id;
DWORD ByteOfWriten;
HMODULE hModule = GetModuleHandle(NULL);
DWORD size=((PIMAGE_OPTIONAL_HEADER)((LPVOID)((BYTE*)(hModule)+((PIMAGE_DOS_HEADER)(hModule))->e_lfanew+sizeof(DWORD)+sizeof(IMAGE_FILE_HEADER))))->SizeOfImage;
char* hNewModule = (char*)VirtualAllocEx(hProc,hModule,size,MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);
if(hNewModule==NULL) return false;
WriteProcessMemory(hProc,hNewModule,hModule,size,&ByteOfWriten);
if(ByteOfWriten!=size){return false;}
HANDLE hThread=CreateRemoteThread(hProc,NULL,0,func,(LPVOID)hNewModule,0,&id);
if(hThread==0) return false;
return true;
}
 
На самом деле я Zodiak
Участник
Статус
Оффлайн
Регистрация
22 Дек 2020
Сообщения
1,004
Реакции[?]
180
Поинты[?]
67K
Он хочет использовать RPM и WPM из под другого процесса, то есть заинжектить в блокнот, а обращаться с памятью посредством winapi , я слышал что то про internal-external читы, но боюсь не все так радужно и просто
 
кто читает тот умрет
Участник
Статус
Оффлайн
Регистрация
29 Июл 2019
Сообщения
693
Реакции[?]
536
Поинты[?]
149K
Методу 100 лет, метод говно, метод не обезопасит вообще.
 
Сверху Снизу