ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

21.12.2008, 22:16
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме: 811764
Репутация:
119
|
|
сорри, опечатка 
|
|
|

21.12.2008, 22:19
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
А почему th32ProcessID равен 4 при вызове?
|
|
|

21.12.2008, 22:21
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме: 811764
Репутация:
119
|
|
Сообщение от groundhog
А почему th32ProcessID равен 4 при вызове?
мне нужен процесс по имени System 
|
|
|

21.12.2008, 22:23
|
|
Участник форума
Регистрация: 06.05.2008
Сообщений: 161
Провел на форуме: 1289087
Репутация:
59
|
|
Есть элемент CWebBrowser2, как в него можно задать куки из программы. т.е есть страница куда без кукисов или логина и пароля не попадешь, куки я как раз знаю. Я так понимаю мне их надо просто прописать в ие, но как?
|
|
|

21.12.2008, 22:28
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
criz, ты хочешь получить список всех процессов в системе что ли?
|
|
|

21.12.2008, 22:32
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме: 811764
Репутация:
119
|
|
Сообщение от groundhog
criz, ты хочешь получить список всех процессов в системе что ли?
Нет, мне надо получить список модулей/библиотек процесса System.
|
|
|

22.12.2008, 11:49
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
criz, больше чем уверен, что ты намутил что-то с обработкой ошибок. Скорее всего тебе возвращается отказ в доступе, а не ошибка по памяти. Попробуй скомпилять этот кусок кода:
Код:
#include <windows.h>
#include <tlhelp32.h>
int main (int argc, char* argv[]) {
HANDLE hSnapshot;
LPVOID lpMsgBuf;
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, 4);
if (hSnapshot == INVALID_HANDLE_VALUE) {
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
0,
(LPTSTR)&lpMsgBuf,
0,
NULL
);
MessageBox(NULL, (LPCTSTR)lpMsgBuf, TEXT("Error"), MB_OK | MB_ICONERROR);
LocalFree(lpMsgBuf);
}
return 0;
}
Последний раз редактировалось groundhog; 22.12.2008 в 11:51..
|
|
|

22.12.2008, 12:16
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме: 811764
Репутация:
119
|
|
groundhog, я тоже подумывал насчет нехватки прав... Вот код, который, как мне показалось, "дает" права:
Код:
void chPriv(int res)
{
HANDLE hToken;
if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken))
{
TOKEN_PRIVILEGES priv;
priv.PrivilegeCount = 1;
LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &priv.Privileges[0].Luid);
if(res)
priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
else
priv.Privileges[0].Attributes = 0;
AdjustTokenPrivileges(hToken, 0, &priv, sizeof(priv), NULL, NULL);
CloseHandle(hToken);
}
}
Есть ли здесь ошибка?
Если не использовать эту функцию, то вылетает ошибка "не хватает прав", а если использовать - "не хватает памяти".
Последний раз редактировалось criz; 22.12.2008 в 12:23..
|
|
|

22.12.2008, 13:10
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
Ну на первый взгляд - всё верно. Покажи весь исходник, трудно говорить о проблеме на словах. Чтобы понять в чём проблема нужно оттрассировать исходник, так что выложи где-нить, если не хочешь публично светить...
|
|
|

22.12.2008, 15:35
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме: 811764
Репутация:
119
|
|
Вот, весь код:
Код:
#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>
#define dwPID 4
void chPriv(int res);
int main(int argc, char* argv[])
{
MODULEENTRY32 mod;
LPVOID lpMsgBuf;
HANDLE snap = INVALID_HANDLE_VALUE;
chPriv(1);
snap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPID);
if(snap == INVALID_HANDLE_VALUE)
{
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, GetLastError(), 0, (LPTSTR)&lpMsgBuf, 0, NULL);
MessageBox(NULL, (LPCTSTR)lpMsgBuf, TEXT("Error"), MB_OK | MB_ICONERROR);
LocalFree(lpMsgBuf);
return 1;
}
mod.dwSize = sizeof( MODULEENTRY32 );
if( !Module32First(snap, &mod) )
{
printf("Module32First: %d\n", GetLastError());
CloseHandle(snap);
return 1;
}
do
{
printf("%s\t", mod.szModule);
printf("0x%X\n", mod.modBaseAddr);
}
while( Module32Next(snap, &mod));
chPriv(0);
CloseHandle(snap);
getchar();
return 0;
}
void chPriv(int res)
{
HANDLE hToken;
if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken))
{
TOKEN_PRIVILEGES priv;
priv.PrivilegeCount = 1;
LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &priv.Privileges[0].Luid);
if(res)
priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
else
priv.Privileges[0].Attributes = 0;
AdjustTokenPrivileges(hToken, 0, &priv, sizeof(priv), NULL, NULL);
CloseHandle(hToken);
}
}
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|