Сейчас на форуме: CDK123, zds, tyns777, tihiy_grom, morgot, rmn (+5 невидимых)

 eXeL@B —› Программирование —› PsLookupProcessByProcessId
Посл.ответ Сообщение


Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 09 декабря 2008 16:51
· Личное сообщение · #1

Вопрос, собственно, состоит в том, что зная, что эта функция должна делать, у меня никак не получается передать ей валидные параметры. Всё время на выходе имею ошибку C000000Dh. В документации по программированию в нулевом кольце, скачанной с rootkits.ru, имеется описание этой функции:
NTSYSAPI
NTSTATUS
NTAPI
PsLookupProcessByProcessId(

IN ULONG ProcessId,
OUT PEPROCESS *pEProcess );

Свой драйвер я пишу на асме, поэтому мой код выглядит так:
invoke PsLookupProcessByProcessId,addr ThePointer,addr ThePointer
где ThePointer - это глобальная переменная, имеющая значение Id процесса, который реально существует в системе. Что не так? Как заставить её заработать?

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 09 декабря 2008 17:15
· Личное сообщение · #2

Да, кстати, после определённых проб и ошибок удалось получить указатель на EPROCESS процесса по пиду, но вот почему-то System Idle Process с Id=0 всё же является невалидным параметром?

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 09 декабря 2008 18:03
· Личное сообщение · #3

> invoke PsLookupProcessByProcessId,addr ThePointer,addr ThePointer
на вход пид процесса, на выход указатель на епроцесс

-----
Shalom ebanats!





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 09 декабря 2008 18:38 · Поправил: coderess
· Личное сообщение · #4



-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 09 декабря 2008 19:38
· Личное сообщение · #5

Code:
  1. .386
  2. .model flat, stdcall
  3. option casemap:none
  4. include \masm32\include\w2k\ntstatus.inc
  5. include \masm32\include\w2k\ntddk.inc
  6. include \masm32\include\w2k\ntoskrnl.inc
  7. include \masm32\include\wxp\wxpundoc.inc
  8. includelib \masm32\lib\w2k\ntoskrnl.lib
  9. .data
  10. ;Process PID
  11. PID equ 1234
  12. ;OS Version Offset (Win2000 = 0Ah)
  13. OSV equ 88h
  14. .code INIT
  15. DriverEntry proc pDriverObject:PDRIVER_OBJECT, pusRegistryPath:PUNICODE_STRING
  16.     local Block:DWORD
  17.     invoke PsLookupProcessByProcessId, PID, addr Block
  18.     test eax, eax
  19.     jnz exit
  20.     mov eax, Block
  21.     add eax, OSV
  22.     mov ecx, [eax + 4h]
  23.     mov edx, [eax]
  24.     mov [ecx], edx
  25.     mov ecx, [eax]
  26.     mov edx, [eax + 4h]
  27.     mov [ecx + 4h], edx
  28. exit:
  29.     mov eax, STATUS_DEVICE_CONFIGURATION_ERROR
  30.     ret
  31. DriverEntry endp
  32. end DriverEntry


-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 09 декабря 2008 20:17
· Личное сообщение · #6

mak
Ух ты!!! Здорово! А можешь прокомментировать поля структуры EPROCESS более подробно? Чтоб можно было понять, как это получилось.

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 3.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 декабря 2008 20:40 · Поправил: deBator
· Личное сообщение · #7

ARCHANGEL
Есть такая вот программа
SymbolTypeViewer http://syseclabs.com/software/SymbolTypeViewer_v1.0_beta.zip
Может тебе пригодиться.

[added]
линк поправил, там пробел влез




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 09 декабря 2008 20:44 · Поправил: ARCHANGEL
· Личное сообщение · #8

deBator
Error 404 - Not found

Le fichier requis n'a pas été trouvé. Il peut s'agir d'une erreur technique. Veuillez réessayer ultérieurement. Si vous ne pouvez pas accéder au fichier après plusieurs tentatives, cela signifie qu'il a été supprimé.

Вот что я нашёл по указанной тобой ссылке. Если у тебя есть сама прога, можешь перезалить?

Добавлено
deBator
Спасибо, нормально слил

-----
Stuck to the plan, always think that we would stand up, never ran.





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 10 декабря 2008 12:56
· Личное сообщение · #9

Так, нашёл ответы на все вопросы. У кого такая же ситуация - смотрите wxpundoc.inc

-----
Stuck to the plan, always think that we would stand up, never ran.



 eXeL@B —› Программирование —› PsLookupProcessByProcessId
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати