Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API - Получение прав SYSTEM в Windows 7

Ответить
Настройки темы
Win32 API - Получение прав SYSTEM в Windows 7

Ветеран


Сообщения: 1405
Благодарности: 135

Профиль | Отправить PM | Цитировать


Изменения
Автор: mrcnn
Дата: 20-11-2014
Написал программу

Как сделать чтобы у процессов, показывалась количество используемой памяти?

То есть как при открытии процесса функцией OpenProcess открыть его с правами доступа SYSTEM ?
h = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, p[i]);



Код: Выделить весь код
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <conio.h>
#include <Psapi.h>
#include <Sddl.h>
#include <AccCtrl.h>
#include <Aclapi.h>

#pragma comment (lib, "wsock32.lib")
#pragma comment (lib, "Kernel32.lib")
#pragma comment (lib, "Psapi.lib")
#pragma comment (lib, "user32.lib")
#pragma comment (lib, "Gdi32.lib")
#pragma comment(lib, "advapi32.lib")



BOOL CALLBACK e2(HWND hwnd, LPARAM l)
{
char str[1024];
GetWindowText(hwnd, str, 1024);
printf("child: %x %s\n", hwnd, str);

return 1; 
}



BOOL CALLBACK e(HWND hwnd, LPARAM l)
{
char str[1024];
GetWindowText(hwnd, str, 1024);
printf("main: %x %s\n", hwnd, str);
EnumChildWindows(hwnd, (WNDENUMPROC) &e2, 0);
return 1;
}


int main(int argc, char* argv[])
{
DWORD b;
DWORD p[1024];
int i;
int r;
HANDLE h;
HMODULE m[1024];
DWORD b2;
int j;
char str[1024];
PROCESS_MEMORY_COUNTERS pm;
HWND hw;
HDC hdc;
SIZE x;
WIN32_FIND_DATA wf;
HANDLE hl;
HDC hdc2;
STARTUPINFO si;
PROCESS_INFORMATION pf;
int i1,i2,i3,i4;
SECURITY_ATTRIBUTES  sa1;
SECURITY_ATTRIBUTES  sa2;
char str2[1024];
char str3[1024];
char str4[1024];
SECURITY_INFORMATION sinf;
PSID ps1;
PSID ps2;
PACL pa1;
PACL pa2;
PSECURITY_DESCRIPTOR sd;


printf("error:%x %d\n", GetLastError(), GetLastError()); 
hl = FindFirstFile("*\0", &wf); 
printf("%s\n", wf.cFileName); 
while(FindNextFile(hl, &wf) ) 
printf("%s\n", wf.cFileName); 
hw = GetConsoleWindow(); 
hdc = GetDC(hw); 
hdc2 = GetDC(NULL); 
for(i1 = 30, i3 = 600; i1< 130; i1++, i3++) 
for(i2 = 30, i4 = 600; i2< 130;  i2++, i4++) 
SetPixel(hdc2, i3, i4, GetPixel(hdc2, i1, i2)); 
SetBkColor(hdc, RGB(0, 255, 0)); 
ScaleWindowExtEx(hdc, 5, 1, 5, 1, &x); 
ReleaseDC(hw, hdc);  
ReleaseDC(0, hdc2); 
printf("%d %d\n", x.cx, x.cy); 
SetConsoleTitle("_\0");
EnumProcesses(p, sizeof(p), &b);
r = b / sizeof(DWORD);
printf("r:%d\n", r);

for(i = 0;i < r;i++)
{
printf("Open: %d ", p[i]);
h = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, p[i]);
GetSecurityInfo(h, SE_UNKNOWN_OBJECT_TYPE, sinf, &ps1, &ps2, &pa1 ,&pa2, &sd);
ConvertSidToStringSid(&ps1, (LPSTR * ) &str2);
printf("%s\n", str2);
ZeroMemory(&pm, sizeof(pm));
GetProcessMemoryInfo(h, &pm, sizeof(pm) );
printf("\n");
printf("PageFaultCount:%x %d\n", pm.PageFaultCount, pm.PageFaultCount );
printf("PeakWorkingSetSize: %x %d\n", pm.PeakWorkingSetSize, pm.PeakWorkingSetSize / 1024);
printf("WorkingSetSize: %x %d\n", pm.WorkingSetSize, pm.WorkingSetSize / 1024);
printf("QuotaPeakPagedPoolUsage: %x %d\n", pm.QuotaPeakPagedPoolUsage, pm.QuotaPeakPagedPoolUsage / 1024);
printf("QuotaPagedPoolUsage: %x %d\n", pm.QuotaPagedPoolUsage, pm.QuotaPagedPoolUsage / 1024);
printf("QuotaPeakNonPagedPoolUsage: %x %d\n", pm.QuotaPeakNonPagedPoolUsage, pm.QuotaPeakNonPagedPoolUsage / 1024);
printf("QuotaNonPagedPoolUsage: %x %d\n", pm.QuotaNonPagedPoolUsage, pm.QuotaNonPagedPoolUsage / 1024);
printf("PagefileUsage: %x %d\n", pm.PagefileUsage, pm.PagefileUsage / 1024);
printf("PeakPagefileUsage: %x %d\n", pm.PeakPagefileUsage, pm.PeakPagefileUsage / 1024);
EnumProcessModules(h, m, sizeof(m),  &b2);
for(j = 0;j < ( sizeof(b2) /sizeof(HMODULE) ) ;j++)
{
GetModuleFileNameEx(h, m[j], str, 1024);
printf("%s\n", str);
}
CloseHandle(h);
printf("\n");
}
EnumWindows( (WNDENUMPROC) &e, 0);
ZeroMemory(&si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pf, sizeof(pf) );
ZeroMemory(&sa1, sizeof(sa1) );
ZeroMemory(&sa2, sizeof(sa2) );
sa1.nLength = sizeof(sa1);
sa1.bInheritHandle = 0;
sa2.nLength = sizeof(sa2);
sa2.bInheritHandle = 0;
if ( ! CreateProcess(0,argv[0],&sa1,&sa2, 0, 0, 0,0, &si, &pf) )
{
printf("error:%x %d\n", GetLastError(), GetLastError());
}
else
{
CloseHandle(pf.hProcess);
CloseHandle(pf.hThread);
}


 return 0;
}

Отправлено: 16:12, 20-11-2014

 

Аватара для deviance

Пользователь


Сообщения: 123
Благодарности: 43

Профиль | Отправить PM | Цитировать


mrcnn, права system можно получить у PsExec
Цитата:
Using PsExec
-s Run the remote process in the System account.

Отправлено: 23:21, 20-11-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


SHVtYW4=


Сообщения: 3451
Благодарности: 1273

Профиль | Отправить PM | Цитировать


mrcnn, Прокрутите колёсико мыши на себя - для того, чтоб внизу страницы увидеть колонку "Похожие темы": где далее увидите одну из похожих тем, пример, в теме так же имеются ещё ссылки на темы. Всё это говорит о том, что поиск работает.

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:30, 21-11-2014 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API - Получение прав SYSTEM в Windows 7

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Получение прав с помощью .BAT'ника Лис_Лисицин@vk Хочу все знать 2 22-03-2014 03:11
Доступ - получение абсолютных прав Администратора kuprin2015@vk Microsoft Windows 7 9 11-09-2013 01:52
Установка Android 4.0 на смартфон HTC Desire S и получение root прав на нем. SandR12 Мобильные ОС, смартфоны и планшеты 6 13-03-2013 13:12
[решено] Получение прав root'a в скрипте bash FATruden Программирование в *nix 4 03-05-2010 17:11
Получение прав Администратора в Windows Lexa veider Защита компьютерных систем 95 21-09-2004 11:11




 
Переход