Проблемы с инжектом

Тема в разделе "WASM.WIN32", создана пользователем Freecod, 29 июн 2008.

  1. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    А как к QueueUserAPC относятся антивирусы, ктонибудь тестил?
     
  2. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Странно если возвратить FALSE

    Код (Text):
    1. DllEntry proc hinstDLL:dword,dwReason:dword,lpvReserved:dword
    2. .if dwReason == DLL_PROCESS_ATTACH
    3.     invoke  MessageBox,0,addr mes,0,0
    4. .endif
    5. xor eax,eax
    6. ret
    7. DllEntry endp
    То сообщение появится три раза
     
  3. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    Дело не в количестве деатачей (когда инжектишь в эксплорер, тот вообще при каждом движении по папкам выбрасывает пачку этих сообщений), а в том, что код после

    Код (Text):
    1. .if dwReason == DLL_PROCESS_ATTACH
    2.     invoke  MessageBox,0,addr mes,0,0
    3. .endif
    выполниться железно один раз.
    Согнал весь функционал в потоки, и возврат. Так же спокойно можешь окна и диалоги в потоках обрабатывать (правда там есть пара особенностей).
     
  4. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Какой один раз, если мы например хотим попасть в процесс, так попали, выделяем память, записуем туда базонезависимый код, создаём поток, и возвращаем FALSE, так вот эта вся байда будет вызыватся несколько раз если конечно флаг какойнибудь не поставить
     
  5. Freecod

    Freecod New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2006
    Сообщения:
    136
    Я имею ввиду при вызове LoadLibrary. "Заходов" в DllMain будет несколько, но дальше DLL_PROCESS_ATTACH пройдёт только раз. При одном вызове LoadLibrary естественно.
     
  6. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    Понту с АПС если писать в память... Смысл то был в инжекте без открытия процесса:
    Код (Text):
    1. PVOID GetDllNameAddress()
    2. {
    3.     PVOID pMZ=GetModuleHandle(TEXT("ntdll.dll"));
    4.     DWORD dwExportSize;
    5.  
    6.     return (PVOID)((DWORD_PTR)pMZ+((PIMAGE_EXPORT_DIRECTORY)RtlImageDirectoryEntryToData(pMZ,TRUE,IMAGE_DIRECTORY_ENTRY_EXPORT,&dwExportSize))->Name+2);
    7. }
    8.  
    9. ZwQueueApcThread(OpenThread(THREAD_SET_CONTEXT,FALSE,(DWORD)(DWORD_PTR)GetThreadIDByName(&usServName,1)),LoadLibraryExA,GetDllNameAddress(),0,0)))
     
  7. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    tylerdurden А как это будет на ассемблере? мож скопилишь с ключом /FA у меня чото не получается. с С++ воабще не дружу =(
     
  8. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    2FED
    Блин, почитай стотью...как ее...обзор неск-ких методик обхода фаеров. Так этот способ расписан. Если не ошибаюсь, просто ищешь смещение строки с названием ntdll.dll (или любой другой, которая присутсвует в процессе, прибавляешь нему пару байт и через апс инжектишь свою длл с названием dll.dll, например.
    Но, все равно палится уже.
     
  9. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Aspire
    Нынче очередь потока не актуальна.
     
  11. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Clerk колись что актуально :)
     
  12. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    2FED
    Не скажу :))