Проблема перехвата :(

Тема в разделе "WASM.BEGINNERS", создана пользователем mAgoja, 21 июл 2007.

  1. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    Драсте всем...
    осуществил перехват функции CreateProcess...
    в своем созданном тестовом процессе, перехват осуществляется...после возврата в программу у мя сразу идет выход из программы.... но он не осуществляется говорит не могу обратится к адресу :dntknw: , где я мог затереть стек... Заранее все огр.спасибо...
    Вот код перехватчика:

    BOOL result;
    HANDLE cProcess = GetCurrentProcess();
    HMODULE kern = GetModuleHandle("kernel32.dll");
    void * AddrCreateProcess = GetProcAddress(kern,"CreateProcessA");
    BOOL (*FuckAddr)(
    LPCTSTR lpApplicationName,
    LPTSTR lpCommandLine,
    LPSECURITY_ATTRIBUTES lpProcessAttributes,
    LPSECURITY_ATTRIBUTES lpThreadAttributes,
    BOOL bInheritHandles,
    DWORD dwCreationFlags,
    LPVOID lpEnvironment,
    LPCTSTR lpCurrentDirectory,
    LPSTARTUPINFO lpStartupInfo,
    LPPROCESS_INFORMATION lpProcessInformation
    );
    FuckAddr = FuckCreateProcess;
    InjectCode Inject;
    Inject.sJmp = 0xE9;
    Inject.sJmpArg = (DWORD)FuckAddr - ((DWORD)AddrCreateProcess + 0x5);
    DWORD countW;

    result = ReadProcessMemory(cProcess,AddrCreateProcess,temp22,5,&countW);
    result = WriteProcessMemory(cProcess,AddrCreateProcess,&Inject,sizeof(Inject),&countW);
     
  2. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    VirtualProtect на запись не забыл ?
     
  3. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    leo
    не не забыл)... спасибо я нашёл причину...я в самой функции(перехватчике) вырезал адрес возврата :lol:
     
  4. mAgoja

    mAgoja New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2004
    Сообщения:
    114
    Адрес:
    Ukraine
    Возможно ли такое?
    Я открываю процесс с параметрами: PROCESS_CREATE_THREAD | PROCESS_VM_WRITE | PROCESS_VM_OPERATION
    может какой нить поток в программе изменить область памяти куда я хочу записать свой жамп, допустим на PAGE_NOACCESS....
    стоит ли использовать повторно изменение защиты памяти? с помощью VirualProtect ????
    Заранее все спасибо!!!