ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

C++: как определить свой IP, как получить имена всех дисков.
  #1  
Старый 29.10.2008, 16:35
Аватар для agrofyl2
agrofyl2
Познающий
Регистрация: 25.04.2008
Сообщений: 51
Провел на форуме:
146826

Репутация: 17
По умолчанию C++: как определить свой IP, как получить имена всех дисков.

Кожу я на С++, хочу написать своего мини-трояна, появилось пару вопросов:
1. Как получить свой IP.
2. Как можно получить имена всех подключенных дисков.

Система Windows.

Помогите пожалуйста.

---
И еще вспомнил:

3. Как удалить ключ реестра.

Последний раз редактировалось agrofyl2; 29.10.2008 в 17:00..
 
Ответить с цитированием

  #2  
Старый 29.10.2008, 17:13
Аватар для ronald
ronald
Участник форума
Регистрация: 27.03.2008
Сообщений: 288
Провел на форуме:
800727

Репутация: 83
Отправить сообщение для ronald с помощью ICQ
По умолчанию

MSDN
 
Ответить с цитированием

  #3  
Старый 29.10.2008, 17:21
Аватар для o_OBallers
o_OBallers
Banned
Регистрация: 11.10.2007
Сообщений: 54
Провел на форуме:
86268

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

Даю на делфи, переписать на C++, пару минут

Определение ip
PHP код:
uses winsock 


function GetLocalIPString;
const 
WSVer = $101;
var
  
wsaDataTWSAData;
  
PPHostEnt;
  
Buf: array [0..127of Char;
begin
  Result 
:= '';
  if 
WSAStartup(WSVerwsaData) = 0 then begin
    
if GetHostName(@Buf128) = 0 then begin
      P 
:= GetHostByName(@Buf);
      if 
<> nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
    
end;
    
WSACleanup;
  
end;
end
Список дисков
PHP код:
function DiskInDrive(const Drive:char):Boolean;
var
    
DrvNum:byte;
    
EMode:Word;
begin
  result
:=false;
  
DrvNum:=ord(Drive);
  if 
DrvNum >= ord('a'then
    dec
(DrvNum, $20);
  
EMode:=SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    if 
DiskSize(DrvNum - $40) <> -1 then
      result
:=true
    
else
      
messagebeep(0);
  finally
    
SetErrorMode(EMode);
  
end;
end;

var 
Alfavit:string[26]='ABCDEFGHIJKLMNOPQRSTUVWXYZ';
AlfavitCount:integer;
DiskListTStringList;
begin
DiskList
:=TStringList.Create;
        for 
AlfavitCount:=0 to 25 do
          
begin
            
if DiskInDrive(Alfavit[AlfavitCount]) then DiskList.Add(Alfavit[AlfavitCount]);
          
end;
DiskList.Free;
end
В списке DiskList список дисков.
Если сам переводить не умеешь попроси кого-нибудь.

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

  #4  
Старый 29.10.2008, 20:12
Аватар для agrofyl2
agrofyl2
Познающий
Регистрация: 25.04.2008
Сообщений: 51
Провел на форуме:
146826

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

o_OBallers, спасибо, имена дисков получил(примерно так же).
Остальное тоже покопаюсь найду
 
Ответить с цитированием

  #5  
Старый 29.10.2008, 21:39
Аватар для Jes
Jes
Постоянный
Регистрация: 16.04.2007
Сообщений: 398
Провел на форуме:
3371897

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

Цитата:
Сообщение от agrofyl2  
3. Как удалить ключ реестра.
Код:
Функция RegDeleteKey удаляет указанный ключ. Эта функция не может удалить ключ, которяй является подключем.

LONG RegDeleteKey(
    HKEY hKey,	// дескриптор открытого окна 
    LPCTSTR lpSubKey 	// адрес имени подключа на удаление 
);

Параметры:

hKey 	Идентифицирует уже открытый ключ или один из предопределенных дескрипторов:

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG

Ключ, указанный в параметре lpSubKey должен быть подключем ключа, указанного в hKey.
lpSubKey 	Адрес нульзаканчивающейся строки, указывающей имя ключа на удаление. Этот параметр не может быть NULL, и указанный ключ не должен иметь подключей.
Возвращаемые значения:

Если функция успешна, возвращается значение ERROR_SUCCESS.

Header	Declared in Winreg.h; include Windows.h.
Library	Use Advapi32.lib.
&copy msdn
 
Ответить с цитированием

  #6  
Старый 04.11.2008, 13:25
Аватар для pantur
pantur
Новичок
Регистрация: 03.11.2008
Сообщений: 5
Провел на форуме:
69800

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

MSDN => функция GetLogicalDrives.
 
Ответить с цитированием

  #7  
Старый 14.11.2008, 00:45
Аватар для xismyname
xismyname
Познающий
Регистрация: 07.09.2008
Сообщений: 79
Провел на форуме:
272452

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

Цитата:
Сообщение от agrofyl2  
Кожу я на С++, хочу написать своего мини-трояна, появилось пару вопросов:
1. Как получить свой IP.
2. Как можно получить имена всех подключенных дисков.

Система Windows.

Помогите пожалуйста.

---
И еще вспомнил:

3. Как удалить ключ реестра.

Код:
/* Заголовочный файл winsock2.h используеться для
 * Виндовс систем, на Линукс дистрибутивах
 * используют заголовочные файлы
 *  -> <arpa/net.h>
 *  -> <netinet/in.h>
 *  -> <sys/socket.h>
 *
*/ 
#include <winsock2.h>
#include <stdio.h>

int main(void)
{
        /* WSADATA структура для содержании информации 
         * о winsock,используеться только для виндовс */
	WSADATA wsd; 
	struct hostent *host;
	struct in_addr addr;
	char name[32];
	unsigned int buffsize = strlen(name);

	/* Для того чтобы работать с winsock ты должен
         * ее загрузить с помощью функции WSAStartup() */
	if(WSAStartup(MAKEWORD(2,2),&wsd) == 0)
	{
		GetComputerNameA(name,&buffsize);
		host = gethostbyname(name);

		if(host != NULL)
		{
			memcpy(&addr,host->h_addr_list[0],sizeof(host->h_addr_list[0]));
			printf("Your IP address is %s\n",inet_ntoa(addr));
		}
	}
}
Вот исходной код написанный на C,должен работать в любом C++ компиляторе,в Microsoft Visual C++ приходиться подключить библиотеку ws2_32.lib,хотя название этой библиотеки точно не помню.
 
Ответить с цитированием

  #8  
Старый 02.02.2009, 20:27
Аватар для xForgan
xForgan
Новичок
Регистрация: 20.08.2005
Сообщений: 14
Провел на форуме:
67271

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

Скомпилил я этот код,
Цитата:
uses winsock


function GetLocalIP: String;
const WSVer = $101;
var
wsaData: TWSAData;
P: PHostEnt;
Buf: array [0..127] of Char;
begin
Result := '';
if WSAStartup(WSVer, wsaData) = 0 then begin
if GetHostName(@Buf, 128) = 0 then begin
P := GetHostByName(@Buf);
if P <> nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
end;
WSACleanup;
end;
end;
появился екзешник, при запуске окошко мелькнуло и все. Подскажите как работает эта прога?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать свой порносайт и получить от него прибыль CrazyStudentS_Mi}{ Статьи 55 16.05.2010 00:58
Как стать хакером! foreva Болталка 19 12.12.2007 00:12
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
SQL Injection для чайников, взлом ASP+MSSQL k00p3r Чужие Статьи 0 12.06.2005 12:42



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


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




ANTICHAT.XYZ