Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+5 невидимых)

 eXeL@B —› Программирование —› Перехват API - открытие чужого процесса
Посл.ответ Сообщение

Ранг: 31.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 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 не катит - на машине для которой пишется перехватчик прав админа нету.



Ранг: 59.9 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 13 апреля 2008 17:54 · Поправил: El_Diablo
· Личное сообщение · #2

рабочий перехватчик апи, работающий не через хуки
IAT patching?



Ранг: 31.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 13 апреля 2008 17:58 · Поправил: smex
· Личное сообщение · #3

Прости пожалуйсто, а чтоли чтобы открыть процесс нужны дебаг привелегии. Я просто не пойму почему у всех выше приведенный код работает, а у меня еррор 126. Работаю по админом.

До самого перехвата еще не дошел, если ты глянеш на исходник то увидиш, что я не могу открыть процесс, не говоря уже о IAT патчинге или вставке длинного перехода вначале API функции.



Ранг: 59.9 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 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.



Ранг: 31.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 13 апреля 2008 18:09
· Личное сообщение · #5

Да я уже все перепробовал и так в том числе. Еррор 126 грёбаны.



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 13 апреля 2008 18:39
· Личное сообщение · #6

GetLastError() что говорит?



Ранг: 59.9 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 13 апреля 2008 18:40
· Личное сообщение · #7

GetLastError() что говорит?
Во время отладки ret всегда равен 126 (ERROR_MOD_NOT_FOUND).

гыыыы...




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 13 апреля 2008 19:01 · Поправил: Hellspawn
· Личное сообщение · #8

GetLastError зачем дёргать сразу? сначала проверить надо вернувшийся хендл hRemoteProcess

з.ы. тогда уж перед OpenProcess, делай SetLastError(0)

-----
[nice coder and reverser]




Ранг: 31.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 13 апреля 2008 19:36 · Поправил: smex
· Личное сообщение · #9

О чудо, ушел погулять на свежий воздух, прихожу, ничего не трогая, тот же код милимметр в милимметр - а оно уже все работает. Хотя GetLastError попрежнему возвращает 126, но главное что работает. Честное слово ни байта в проге не менял, нажал F5, и код заработал. Мдяя, а я еще не верил в существование инопланетян (или настолько кривых рук).

PS: Аж самому стыдно за создание такого флудотопика. Пойду покурю.



Ранг: 59.9 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 13 апреля 2008 20:18
· Личное сообщение · #10

Залей полностью свой код.



Ранг: 31.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 13 апреля 2008 20:33
· Личное сообщение · #11

Но она еще недописанная. Код внедряется, но вылетает по исключению. Заливаю пока что есть. И заодно статью по теме.

0b37_13.04.2008_CRACKLAB.rU.tgz - 1.rar



Ранг: 59.9 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 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
Может поможет кодес
З.Ы.: код писался давно, поэтому кривоват.



Ранг: 31.5 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 13 апреля 2008 21:24 · Поправил: smex
· Личное сообщение · #13

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

PS: Угу прикольны код, мо полезного че увижу.


 eXeL@B —› Программирование —› Перехват API - открытие чужого процесса
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати