ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

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

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

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

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

WON, твой код отличается несколькими строчками: нет перевода интерфейса в promisc-режим и другой вывод информации
З.Ы. ну еще там IP-заголовок описан.
 

  #2  
Старый 21.01.2009, 23:24
WON
Новичок
Регистрация: 02.07.2008
Сообщений: 17
Провел на форуме:
93013

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

xismyname а на чём ты компилируешь...? Я на VS 6.0, подключаю
#pragma comment( lib, "wsock32.lib" ) и у меня выскакиевает 60 error(s), 19 warning(s) непонятного содержания...
 

  #3  
Старый 22.01.2009, 20:44
xismyname
Познающий
Регистрация: 07.09.2008
Сообщений: 79
Провел на форуме:
272452

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

Цитата:
Сообщение от WON  
xismyname а на чём ты компилируешь...? Я на VS 6.0, подключаю
#pragma comment( lib, "wsock32.lib" ) и у меня выскакиевает 60 error(s), 19 warning(s) непонятного содержания...

В Lcc-win32.

Если выдает ошибку убери файлы mstcpip.h и ws2tcpip.h.

Последний раз редактировалось xismyname; 22.01.2009 в 20:47..
 

  #4  
Старый 22.01.2009, 00:23
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме:
811764

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

Пробуй так:
Цитата:
#pragma comment(lib, "ws2_32.lib")
 

  #5  
Старый 22.01.2009, 01:10
Chaak
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме:
5321514

Репутация: 3313


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

windows.h подключай после winsock2, а не наоборот
 

  #6  
Старый 25.01.2009, 12:18
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме:
1290766

Репутация: 1236


По умолчанию

бери WinPCAP - там целый фреймворк по захвату и фильтрации пакетов, не ошибешься
__________________


snow white world wide
 

  #7  
Старый 07.02.2009, 01:12
WON
Новичок
Регистрация: 02.07.2008
Сообщений: 17
Провел на форуме:
93013

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

Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <winsock2.h>
#include <windows.h>
#include <conio.h>

#pragma comment(lib, "ws2_32.lib")  

typedef struct{
	unsigned int version 	: 4;
	unsigned int h_len   	: 4;
	unsigned int tos     	: 8;
	unsigned int tot_len 	: 16;
	unsigned int ID      	: 16;
	unsigned int flags   	: 3;
	unsigned int f_offset	: 13;
	unsigned int TTL        : 8;
	unsigned int protocol   : 8;
	unsigned int h_checksum : 16;
	unsigned int srcip      : 32;
	unsigned int dstip      : 32;
}IPHEADER;

int main(void)
{
	SOCKADDR_IN      addr;
	WSADATA          wsd;
	SOCKET           mSocket;
	HOSTENT          *host;
	IPHEADER         *ip;
	unsigned long    mode = 1;
	int              len;
	char             pcname[32];
	char             buf[sizeof(IPHEADER)];


	/* load windows socket interface */
	if(WSAStartup(MAKEWORD(2,2),&wsd) != 0)
	{
		puts("Could not load winsocket api");
		exit(1);
	}

	/* Get computer name */
	len = sizeof(pcname) - 1;
	GetComputerNameA(pcname, (unsigned long *)len);
	len = 0;

	/* Get host IP address by name */
	host = gethostbyname(pcname);

	/* Set addr & buf to 0 */
	memset(&addr,0,sizeof(addr));
	memset(buf,0,sizeof(buf));

	/* init. local address & create raw socket */
	addr.sin_addr.s_addr    = ((struct in_addr*)host->h_addr_list[0])->s_addr;
        addr.sin_family         = AF_INET;
	addr.sin_port           = htons(0);
	mSocket                 = socket(AF_INET,SOCK_RAW,IPPROTO_IP);

	if(mSocket == INVALID_SOCKET)
	{
		puts("Could not create a RAW socket");
		exit(1);
	}

	/* Bind socket with local address */
	if(bind(mSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR)) != -1)
	{
		/*-----------------------------------------------*/
		int x = 1;
		while(!kbhit())
		{
			len = recv(mSocket,buf,sizeof(buf),0);

			/* Check received data */
			if(len >= sizeof(IPHEADER))
			{
				ip = (IPHEADER*)buf;
				printf("\n+--------- %d ------------+\n",x++);

				printf("| DEST    : %s\n",inet_ntoa(*((struct in_addr*)ip->dstip)));
				printf("| SRC     : %s\n",inet_ntoa(*((struct in_addr*)ip->srcip)));
				printf("| VERSION : %d\n",ip->version);

				printf("+------------------------+\n");

			}
		}
	}
	else
	{
		puts("Could not bind");
	}
	return 0;
}
Зделал всё как сказали.. клмпилиться но сразу же выскакивает ошибка "Инструкция по адресу ... обратилась к памяти... и не может быть прочитана...

Ошибка в строке
Код:
GetComputerNameA(pcname, (unsigned long *)len);
Может подскажете как исправить?

Последний раз редактировалось WON; 07.02.2009 в 01:14..
 

  #8  
Старый 07.02.2009, 02:03
__mad
Участник форума
Регистрация: 04.11.2007
Сообщений: 103
Провел на форуме:
548128

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

GetComputerNameA(pcname, &len);
 

  #9  
Старый 07.02.2009, 12:50
WON
Новичок
Регистрация: 02.07.2008
Сообщений: 17
Провел на форуме:
93013

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

Код:
GetComputerNameA(pcname, &len);
я тоже об этом думал но оно выдаёт ошибку несоответствия типов поэтому я написал так:

Код:
GetComputerNameA(pcname, (unsigned long *)&len);
программа запускаеться, ошибку не выкидывает но и программа ничего не делает.. показывает красивый чёрный прямоугольник...

Последний раз редактировалось WON; 07.02.2009 в 14:11..
 
 





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


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




ANTICHAT.XYZ