Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

NtOpenProcess

261
29 мая 2006 года
ahilles
1.5K / / 03.11.2005
Как получить хендл процесса с полным доступом (PROCESS_ALL_ACCESS) через функцию NtOpenProcess.
Чего только не делал - ничего не получается.
1.8K
30 мая 2006 года
k3Eahn
365 / / 19.12.2005
Цитата:
Originally posted by ahilles
Как получить хендл процесса с полным доступом (PROCESS_ALL_ACCESS) через функцию NtOpenProcess.
Чего только не делал - ничего не получается.


Проверено на Win2000 SP3

Код:
include w2k\ntdll.inc
include w2k\ntddk.inc
include w2k\native.inc

includelib \lib\w2k\ntdll.lib

EXPLORERPID equ 3E0h

.data
cid CLIENT_ID <EXPLORERPID,0>
oa OBJECT_ATTRIBUTES <sizeof OBJECT_ATTRIBUTES>

.data?
hExplorer dd ?

.code

    invoke NtOpenProcess,offset hExplorer,PROCESS_ALL_ACCESS,offset oa,offset cid
261
31 мая 2006 года
ahilles
1.5K / / 03.11.2005
Цитата:
Originally posted by k3Eahn
Проверено на Win2000 SP3
Код:
include w2k\ntdll.inc
include w2k\ntddk.inc
include w2k\native.inc

includelib \lib\w2k\ntdll.lib

EXPLORERPID equ 3E0h

.data
cid CLIENT_ID <EXPLORERPID,0>
oa OBJECT_ATTRIBUTES <sizeof OBJECT_ATTRIBUTES>

.data?
hExplorer dd ?

.code

    invoke NtOpenProcess,offset hExplorer,PROCESS_ALL_ACCESS,offset oa,offset cid



Спасибо , вот проблемочка есть а нельзя ли это всё на С++ или Дельфи. Просто у меня никак не получается со структурой ObjectAttributes

1.8K
31 мая 2006 года
k3Eahn
365 / / 19.12.2005
Код:
#include <windows.h>
#include <stdio.h>

typedef struct
{
    ULONG UniqueProcessId;
    ULONG UniqueThreadId;
}CLIENT_ID,*PCLIENT_ID;

typedef struct _UNICODE_STRING {
  USHORT  Length;
  USHORT  MaximumLength;
  PWSTR  Buffer;
} UNICODE_STRING,*PUNICODE_STRING;

typedef struct
{
    ULONG Length;
    HANDLE RootDirectory;
    PUNICODE_STRING ObjectName;
    DWORD Attributes;
    PVOID SecurityDescriptor;
    PVOID SecurityQualityOfService;
}OBJECT_ATTRIBUTES,*POBJECT_ATTRIBUTES;

#define STATUS_SUCCESS 0
#define EXPLORERPID 0x404

HANDLE hExplorer;
typedef int (__stdcall *PNTOPENPROCESS)(HANDLE*,DWORD,POBJECT_ATTRIBUTES,PCLIENT_ID);
PNTOPENPROCESS NtOpenProcess;
int main(int argc, char *argv[])
{
    OBJECT_ATTRIBUTES oa={sizeof(OBJECT_ATTRIBUTES)};
    CLIENT_ID cid={EXPLORERPID,0};

    NtOpenProcess=(PNTOPENPROCESS)GetProcAddress(\
        GetModuleHandle("ntdll"),\
        "NtOpenProcess");
    printf("NtOpenProcess for Explorer %s and %#x received for handle\n",\
        (STATUS_SUCCESS==NtOpenProcess(&hExplorer,PROCESS_ALL_ACCESS,&oa,&cid))\
        ? "succeeded" : "failed",hExplorer);

    return 0;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог