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

20.01.2009, 16:51
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме: 811764
Репутация:
119
|
|
WON, твой код отличается несколькими строчками: нет перевода интерфейса в promisc-режим и другой вывод информации 
З.Ы. ну еще там IP-заголовок описан.
|
|
|

21.01.2009, 23:24
|
|
Новичок
Регистрация: 02.07.2008
Сообщений: 17
Провел на форуме: 93013
Репутация:
8
|
|
xismyname а на чём ты компилируешь...? Я на VS 6.0, подключаю
#pragma comment( lib, "wsock32.lib" ) и у меня выскакиевает 60 error(s), 19 warning(s) непонятного содержания...
|
|
|

22.01.2009, 20:44
|
|
Познающий
Регистрация: 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..
|
|
|

22.01.2009, 00:23
|
|
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
Провел на форуме: 811764
Репутация:
119
|
|
Пробуй так:
#pragma comment(lib, "ws2_32.lib")
|
|
|

22.01.2009, 01:10
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
windows.h подключай после winsock2, а не наоборот
|
|
|

25.01.2009, 12:18
|
|
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
Провел на форуме: 1290766
Репутация:
1236
|
|
бери WinPCAP - там целый фреймворк по захвату и фильтрации пакетов, не ошибешься
__________________
 
snow white world wide
|
|
|

07.02.2009, 01:12
|
|
Новичок
Регистрация: 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..
|
|
|

07.02.2009, 02:03
|
|
Участник форума
Регистрация: 04.11.2007
Сообщений: 103
Провел на форуме: 548128
Репутация:
104
|
|
GetComputerNameA(pcname, &len);
|
|
|

07.02.2009, 12:50
|
|
Новичок
Регистрация: 02.07.2008
Сообщений: 17
Провел на форуме: 93013
Репутация:
8
|
|
Код:
GetComputerNameA(pcname, &len);
я тоже об этом думал но оно выдаёт ошибку несоответствия типов поэтому я написал так:
Код:
GetComputerNameA(pcname, (unsigned long *)&len);
программа запускаеться, ошибку не выкидывает но и программа ничего не делает.. показывает красивый чёрный прямоугольник...
Последний раз редактировалось WON; 07.02.2009 в 14:11..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|