Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+5 невидимых) |
eXeL@B —› Программирование —› Перехват API - открытие чужого процесса |
Посл.ответ | Сообщение |
|
Создано: 13 апреля 2008 17:47 · Поправил: smex · Личное сообщение · #1 Я просто в шоке - с самого утра уже. Везде код такой же как у меня, у всех пашет - у меня нет. Так ладно, хватит плакаться, к делу. Значит необходимо открыть чужой процесс по его PID (смотрю через диспетчер задач). Код открывающий процесс: bool InjectAndExecute(DWORD pid) { HANDLE hRemoteProcess; int ret; hRemoteProcess = OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_WRITE|PROCESS_VM_OPERATIO N, FALSE, pid); ret = GetLastError(); return true; } Во время отладки ret всегда равен 126 (ERROR_MOD_NOT_FOUND). Перебробовал кучу PID'ов своей системы. Подскажите, чтобы это могло быть, ато чувстую еще пол часа, и кулаком разнесу монитор. PS: Мо у кого кстати есть рабочий перехватчик апи, работающий не через хуки, а внедряющийся по очереди в процессы по PIDам. Ring 0 не катит - на машине для которой пишется перехватчик прав админа нету. |
|
Создано: 13 апреля 2008 17:54 · Поправил: El_Diablo · Личное сообщение · #2 |
|
Создано: 13 апреля 2008 17:58 · Поправил: smex · Личное сообщение · #3 Прости пожалуйсто, а чтоли чтобы открыть процесс нужны дебаг привелегии. Я просто не пойму почему у всех выше приведенный код работает, а у меня еррор 126. Работаю по админом. До самого перехвата еще не дошел, если ты глянеш на исходник то увидиш, что я не могу открыть процесс, не говоря уже о IAT патчинге или вставке длинного перехода вначале API функции. |
|
Создано: 13 апреля 2008 18:07 · Личное сообщение · #4 вставке длинного перехода вначале API функции. Если надумаешь,что инжектить и ставить хуки, то дебаг привилегии нужны. hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, dwPID); делай так Remarks To open a handle to another local process and obtain full access rights, you must enable the SeDebugPrivilege privilege. For more information, see Changing Privileges in a Token. |
|
Создано: 13 апреля 2008 18:09 · Личное сообщение · #5 |
|
Создано: 13 апреля 2008 18:39 · Личное сообщение · #6 |
|
Создано: 13 апреля 2008 18:40 · Личное сообщение · #7 |
|
Создано: 13 апреля 2008 19:01 · Поправил: Hellspawn · Личное сообщение · #8 |
|
Создано: 13 апреля 2008 19:36 · Поправил: smex · Личное сообщение · #9 О чудо, ушел погулять на свежий воздух, прихожу, ничего не трогая, тот же код милимметр в милимметр - а оно уже все работает. Хотя GetLastError попрежнему возвращает 126, но главное что работает. Честное слово ни байта в проге не менял, нажал F5, и код заработал. Мдяя, а я еще не верил в существование инопланетян (или настолько кривых рук). PS: Аж самому стыдно за создание такого флудотопика. Пойду покурю. |
|
Создано: 13 апреля 2008 20:18 · Личное сообщение · #10 |
|
Создано: 13 апреля 2008 20:33 · Личное сообщение · #11 Но она еще недописанная. Код внедряется, но вылетает по исключению. Заливаю пока что есть. И заодно статью по теме. 0b37_13.04.2008_CRACKLAB.rU.tgz - 1.rar |
|
Создано: 13 апреля 2008 20:50 · Поправил: El_Diablo · Личное сообщение · #12 "\x68\x00\x00\x00\x00" "шеллкодес" вроде не должен содержать символ нуля. http://www.everfall.com/paste/id.php?kh9dbu0dtvgg http://www.everfall.com/paste/id.php?kh9dbu0dtvgg - Inject.cpp http://www.everfall.com/paste/id.php?n168wittk45f http://www.everfall.com/paste/id.php?n168wittk45f - Inect.h Может поможет кодес З.Ы.: код писался давно, поэтому кривоват. |
|
Создано: 13 апреля 2008 21:24 · Поправил: smex · Личное сообщение · #13 |
eXeL@B —› Программирование —› Перехват API - открытие чужого процесса |