HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2051  
Старый 21.12.2008, 22:16
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме:
811764

Репутация: 119
По умолчанию

сорри, опечатка
 
Ответить с цитированием

  #2052  
Старый 21.12.2008, 22:19
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

А почему th32ProcessID равен 4 при вызове?
 
Ответить с цитированием

  #2053  
Старый 21.12.2008, 22:21
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме:
811764

Репутация: 119
По умолчанию

Цитата:
Сообщение от groundhog  
А почему th32ProcessID равен 4 при вызове?
мне нужен процесс по имени System
 
Ответить с цитированием

  #2054  
Старый 21.12.2008, 22:23
n4e/\@
Участник форума
Регистрация: 06.05.2008
Сообщений: 161
Провел на форуме:
1289087

Репутация: 59
По умолчанию

Есть элемент CWebBrowser2, как в него можно задать куки из программы. т.е есть страница куда без кукисов или логина и пароля не попадешь, куки я как раз знаю. Я так понимаю мне их надо просто прописать в ие, но как?
 
Ответить с цитированием

  #2055  
Старый 21.12.2008, 22:28
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

criz, ты хочешь получить список всех процессов в системе что ли?
 
Ответить с цитированием

  #2056  
Старый 21.12.2008, 22:32
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме:
811764

Репутация: 119
По умолчанию

Цитата:
Сообщение от groundhog  
criz, ты хочешь получить список всех процессов в системе что ли?
Нет, мне надо получить список модулей/библиотек процесса System.
 
Ответить с цитированием

  #2057  
Старый 22.12.2008, 11:49
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

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..
 
Ответить с цитированием

  #2058  
Старый 22.12.2008, 12:16
criz
Постоянный
Регистрация: 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..
 
Ответить с цитированием

  #2059  
Старый 22.12.2008, 13:10
groundhog
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме:
2238549

Репутация: 1318


Отправить сообщение для groundhog с помощью ICQ
По умолчанию

Ну на первый взгляд - всё верно. Покажи весь исходник, трудно говорить о проблеме на словах. Чтобы понять в чём проблема нужно оттрассировать исходник, так что выложи где-нить, если не хочешь публично светить...
 
Ответить с цитированием

  #2060  
Старый 22.12.2008, 15:35
criz
Постоянный
Регистрация: 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);
}
}
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Сценарии/CMF/СMS 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ