Инжект в процес 7ью способами

Тема в разделе "WASM.BEGINNERS", создана пользователем addedie, 4 фев 2021.

Метки:
  1. addedie

    addedie New Member

    Публикаций:
    0
    Регистрация:
    14 авг 2019
    Сообщения:
    25
    вобщем есть такой сэмпл но чет ниодин из способов неработает на десятке
     

    Вложения:

  2. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    301
    открываем отладчик и смотрим
     
  3. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Печаль-беда...
     
  4. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.576
    addedie, надо указать подробнее, что за способ, и как именно "не работает"
    никому тут не хочется качать хз что и угадывать, что же там глючит.
     
    Mikl___ нравится это.
  5. MaKaKa

    MaKaKa Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2020
    Сообщения:
    53
  6. addedie

    addedie New Member

    Публикаций:
    0
    Регистрация:
    14 авг 2019
    Сообщения:
    25
    да именно отсюда
     
  7. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    addedie,

    Начало твоего вопроса штатное - какую ты работу самостоятельно провёл. Никакую скопипастил какой то кривой код создал тему фиксите, а ты на этом бабла порубишь. На форумах по коденгу такое не прокатит. Открывай дружок отладчик либо плати за решение.
     
  8. addedie

    addedie New Member

    Публикаций:
    0
    Регистрация:
    14 авг 2019
    Сообщения:
    25
    эм попробую задать вопрос подругому, как в Immunity Debugger брякнуться на запуске кода в чужом процессе и как потом посмотреть сам код по адресу я так понимаю есть несколько сособов , может подскажите?
    --- Сообщение объединено, 7 фев 2021 ---
    вобщем коекак пробежался по коду отладчиком студии все функции работают нормально и ошибок нет и не крашится ..пробовал создавать удаленный поток ..куда копать?
    --- Сообщение объединено, 7 фев 2021 ---
    вот функция отвечающая за инжект потоком
    Код (C):
    1. DWORD demoCreateRemoteThreadW(PCWSTR pszLibFile, DWORD dwProcessId)
    2. {
    3.     // Calculate the number of bytes needed for the DLL's pathname
    4.     DWORD dwSize = (lstrlenW(pszLibFile) + 1) * sizeof(wchar_t);
    5.  
    6.     // Get process handle passing in the process ID
    7.     HANDLE hProcess = OpenProcess(
    8.         PROCESS_QUERY_INFORMATION |
    9.         PROCESS_CREATE_THREAD |
    10.         PROCESS_VM_OPERATION |
    11.         PROCESS_VM_WRITE,
    12.         FALSE, dwProcessId);
    13.     if (hProcess == NULL)
    14.     {
    15.         wprintf(TEXT("[-] Error: Could not open process for PID (%d).\n"), dwProcessId);
    16.         return(1);
    17.     }
    18.  
    19.     // Allocate space in the remote process for the pathname
    20.     LPVOID pszLibFileRemote = (PWSTR)VirtualAllocEx(hProcess, NULL, dwSize, MEM_COMMIT, PAGE_READWRITE);
    21.     if (pszLibFileRemote == NULL)
    22.     {
    23.         wprintf(TEXT("[-] Error: Could not allocate memory inside PID (%d).\n"), dwProcessId);
    24.         return(1);
    25.     }
    26.  
    27.     // Copy the DLL's pathname to the remote process address space
    28.     DWORD n = WriteProcessMemory(hProcess, pszLibFileRemote, (PVOID)pszLibFile, dwSize, NULL);
    29.     if (n == 0)
    30.     {
    31.         wprintf(TEXT("[-] Error: Could not write any bytes into the PID [%d] address space.\n"), dwProcessId);
    32.         return(1);
    33.     }
    34.  
    35.     // Get the real address of LoadLibraryW in Kernel32.dll
    36.     PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(TEXT("Kernel32")), "LoadLibraryW");
    37.     if (pfnThreadRtn == NULL)
    38.     {
    39.         wprintf(TEXT("[-] Error: Could not find LoadLibraryA function inside kernel32.dll library.\n"));
    40.         return(1);
    41.     }
    42.  
    43.     // Create a remote thread that calls LoadLibraryW(DLLPathname)
    44.     HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, pfnThreadRtn, pszLibFileRemote, 0, NULL);
    45.     if (hThread == NULL)
    46.     {
    47.         wprintf(TEXT("[-] Error: Could not create the Remote Thread.\n"));
    48.         return(1);
    49.     }
    50.     else
    51.         wprintf(TEXT("[+] Success: DLL injected via CreateRemoteThread().\n"));
    52.  
    53.     // Wait for the remote thread to terminate
    54.     WaitForSingleObject(hThread, INFINITE);
    55.  
    56.     // Free the remote memory that contained the DLL's pathname and close Handles
    57.     if (pszLibFileRemote != NULL)
    58.         VirtualFreeEx(hProcess, pszLibFileRemote, 0, MEM_RELEASE);
    59.  
    60.     if (hThread != NULL)
    61.         CloseHandle(hThread);
    62.  
    63.     if (hProcess != NULL)
    64.         CloseHandle(hProcess);
    65.  
    66.     return(0);
    67. }
    --- Сообщение объединено, 7 фев 2021 ---
    подмечу что в DLL инжектируемая должна вывести MessageBox
    --- Сообщение объединено, 7 фев 2021 ---
    все разобрался всем спасибо
     
    eshmereum нравится это.