Не успеваю внедрить dll

Discussion in 'WASM.WIN32' started by Flasher, Apr 26, 2008.

  1. Flasher

    Flasher Member

    Blog Posts:
    0
    Joined:
    Jan 31, 2004
    Messages:
    640
    Проблема с лоадером.
    Моя программа сама запускает нужный файл и должен потом туда внедрить свой dll для хука определенных функций.
    Схема обычная:
    CreateProcess, потом по PROCESS_INFORMATION.hProcess -> VirtualAllocEx\WriteProcessMemory\CreateRemoteThread.

    На мошних машинах внедряется с 20-ого раза, чаще всего даже бывает, что внедряется, но не успевает хукать.

    Не подскажите как решить эту проблему?
    Надо как-то остановить работу файла пока я не закончил свои темные дела, а потом сново продолжить.
     
  2. HuXTUS

    HuXTUS New Member

    Blog Posts:
    0
    Joined:
    Jan 8, 2007
    Messages:
    240
    а почему бы не запускать процес замороженным? а после того, как сделаешь свои темные дела, ResumeThread???
     
  3. Asterix

    Asterix New Member

    Blog Posts:
    0
    Joined:
    Feb 25, 2003
    Messages:
    3,576
    схема должна быть такая:
    запустить процесс "засуспенденным" и вписать на Entry Point jmp $ (0xEB,0xFE),
    отпустить процесс, подгрузить длл которая поставит хуки, "засуспендить" процесс
    опять и вернуть оригинальные байты с Entry Point на место, отпустить процесс

    трюк c jmp $ нужен для работоспособности в любых системах, например в 2k и XP dll
    подгружается в "засуспенденный" процесс с разным эффектом
     
  4. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    Проще создать поток остановленным, изменить CONTEXT.regEax(Адрес ModuleEntryPoint) или ниже
    CONTEXT.regEip(ThreadInitRoutine) на свой код и выполнить после инжекта ResumeThread.
     
  5. Flasher

    Flasher Member

    Blog Posts:
    0
    Joined:
    Jan 31, 2004
    Messages:
    640
    Описание проблемы чуток каряво написал, хорошо что вы поняли о чем я :)
    Благодарю за идеи, тему можно считать исчерпанным.