Объединение процессов

Тема в разделе "WASM.BEGINNERS", создана пользователем RFX, 3 мар 2009.

  1. mupsy

    mupsy New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2008
    Сообщения:
    55
    Самое простое это наверно создать в ланчере удаленный поток и там прилинковать библиотеку в которой функция будет отвечать за закрытие процесса античита...
    Если тута никто ничего не придумает,то через часик,так как сейчас занят пока,я тебе выложу приблизительный код...Надеюсь ты поймешь код на СИ
     
  2. mupsy

    mupsy New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2008
    Сообщения:
    55
    код самой библиотеки...
    // dllmain.cpp : Defines the entry point for the DLL application.
    #include "stdafx.h"


    DWORD WINAPI GetProc(LPVOID);

    BOOL APIENTRY DllMain( HMODULE hModule,
    DWORD ul_reason_for_call,
    LPVOID lpReserved
    )
    {
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    CreateThread(0,0,GetProc,0,0,0);
    break;
    case DLL_THREAD_ATTACH:
    break;
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
    break;
    }
    return TRUE;
    }

    DWORD WINAPI GetProc(LPVOID)
    {
    PROCESSENTRY32 pe;
    pe.dwSize=sizeof(pe);
    HANDLE hSnap=CreateToolhelp32Snapshot(2,0);
    HANDLE hProc;
    Process32First(hSnap,&pe);
    while(Process32Next(hSnap,&pe)!=0)
    {
    if(!lstrcmpiA("имя твоего античита",pe.szExeFile))
    {
    MessageBoxA(0,"Process find",0,0);
    while(TRUE)
    {
    hProc=OpenProcess(PROCESS_QUERY_INFORMATION,0,pe.th32ProcessID);
    if(hProc==0)
    {
    MessageBoxA(0,"Process was closed",0,0); // тута можешь делать че хочешь античит был закрыт
    break;
    }
    CloseHandle(hProc);
    Sleep(100);
    }
    }
    }
    MessageBoxA(0,"Exit",0,0);
    return 0;
    }

    пример античита:
    #include <windows.h>

    int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
    {
    STARTUPINFOA si={0};
    PROCESS_INFORMATION pi;
    si.cb=sizeof(si);
    char mydll[]="C:\\mydll.dll";
    CreateProcessA("Имя игры",0,0,0,0,0,0,0,&si,&pi); запускаешь из античита игру
    Sleep(1000);засыпаем так как после возврата из CreateProcess процесс может быть еще не создан
    HMODULE kern=GetModuleHandleA("kernel32.dll");
    typedef HINSTANCE(WINAPI LoadLib)(char *);
    LoadLib* load;
    load=(LoadLib*)GetProcAddress(kern,"LoadLibraryA");
    HANDLE hMem=VirtualAllocEx(pi.hProcess,0,sizeof(mydll),MEM_RESERVE | MEM_COMMIT,PAGE_READWRITE);
    WriteProcessMemory(pi.hProcess,hMem,mydll,sizeof(mydll),0);
    DWORD ID;
    CreateRemoteThread(pi.hProcess,0,0,(LPTHREAD_START_ROUTINE)load,hMem,0,&ID); собственно грузим нашу библиотеку которая проверяет закрыт ли процесс античита
    return 0;
    }

    Ну я попробывал так Все хорошо работает...Если нужны какие нить коментарии спрашивай...Код конечно не безупречен но результата я добился...
     
  3. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.317
    для сокрытия процессов от диспетчера задач нужно сплайсить ZwQuerySystemInformation, для сокрытия исполняемого файла от проводника - сплайсить ZwQueryDirectoryFile...

    про методы внедрения кода в чужой процесс читать у Рихтера:
    http://wm-help.net/books-online/book/59464/59464-16.html#h22
    любой из трех способов имеет право на жизнь... мне канеш нравятся удаленные потоки... к тому удаленные потоки палятся только касперским методом перехвата ZwCreateThread...
     
  4. VArgen

    VArgen New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2009
    Сообщения:
    2
    может кто переделать на делфи, а то я с++ не знаю), вижу знакомое в окде но переделать не могу
     
  5. mupsy

    mupsy New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2008
    Сообщения:
    55
    тебе же только надо вызывать апи функции...как в делфи их вызывают так и вызывай...
     
  6. VArgen

    VArgen New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2009
    Сообщения:
    2
    вызвать то смогу, но вот не знаю какого типа делать переменные, т.к делфи не долго изучаю) не все еще знаю
     
  7. mupsy

    mupsy New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2008
    Сообщения:
    55
    уж если на то дело пошло то тогда надо делфи изучать как следует прежде чем такие программы писать,а потом уже WinApi изучать...
    почти все что тута есть это дельфиновский integer - HANDLE,DWORD.если конечно integer = 4 байтам в делфи
     
  8. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Если даже будешь долго изучать все равно всего не упомнишь ;)
    Поэтому пользуйся подсказками - набираешь имя функции и открывающую скобку - тут дельфя тебе и покажет все параметры и их типы - вот их и указывай (для структур обычно это виндовое название с префиксом tag, но бывают и исключения)
    "Сложнее" со структурой программы, т.к. в дельфе никаких WinMain и DllMain нет (вместо DllMain см.DllProc)