Coding a SYN Scanner guide ( source included )
-
advent.cloud.strife at gmail.com
Thu Mar 29 05:13:07 EEST 2007
V13 wrote:
> On Wednesday 28 March 2007 19:52, - wrote:
>
>> Το παρων μακροσκελες guide πραγματευεται την δημιουργια
>> ενος SYN port scanner ( source included ) καθως και την αναλυση των
>> επιμερους σταδιων που χρειαζονται για τον προγραμματισμο του.
>>
>> http://rapidshare.com/files/23172011/Coding-a-Syn-Scanner.rar.html
>>
>> Μερικα απο αυτα ειναι:
>>
>> --Raw Sockets
>> --Libpcap / Sniffing
>> --Tcp/ip header analysis
>> --Το ίδιο το SYN Scanning
>>
>> Aυτα. Enjoy teh 1368 lines of it. Περιμενω feedback. ( στο mail που
>> αναφερω στον οδηγο )
>>
>
> Poly kalo! Eisagogi se diktya kai sto pcap me ena poly kalo paradeigma...
> Eyge! Giati den to stelneis gia na mpei san arthro sto magaz?
>
> Oson afora ton link layer header, paliotera poy'xa piasei kati tetoia ekana
> to eksis:
>
> pcap_device.datalink_type=pcap_datalink(pcap_device.handle);
>
> switch(pcap_device.datalink_type)
> {
> case DLT_NULL:
> pcap_device.header_offset=4;
> break;
> case DLT_LOOP:
> pcap_device.header_offset=4;
> break;
> case DLT_EN10MB:
> pcap_device.header_offset=14;
> break;
> case DLT_RAW:
> pcap_device.header_offset=0;
> break;
> case DLT_LINUX_SLL:
> pcap_device.header_offset=16;
> break;
> default:
> ......
> }
>
> An anoikseis me tin pcap to 'any' interface, tote ayto exei san link type to
> DLT_LINUX_SLL.
>
> Epeisis, to na xrisimopoieis etsi ta structs mallon problimata tha soy
> dimioyrgisei logo alignment kai reordering. Des to __attribute__((packed))
> toy gcc. P.x. gia to IP:
>
> ----
> struct pseudo_hdr {
> u_int32_t src; /* 32bit source ip address*/
> u_int32_t dst; /* 32bit destination ip address */
> u_char mbz; /* 8 reserved bits (all 0) */
> u_char proto; /* protocol field of ip header */
> u_int16_t len; /* tcp length (both header and data */
> } __attribute__((packed));
> ----
>
> Des tin eksodo apo to parakato programma:
> ----
> #include <stdio.h>
>
> struct A { int a; char b; int c;};
>
> struct B { int a; char b; int c; } __attribute__((packed));
>
> int main()
> {
> printf("%d\n%d\n", sizeof(struct A), sizeof(struct B));
> }
> ----
>
> v13 at hell:/tmp$ ./a
> 12
> 9
>
> Opos blepeis, logo alignment, to proto struct epiase 12 bytes giati to c
> egine align sta 32bit (4 byte), opote kai to c ksekinoyse apo to +2*4. Ayto
> mporeis na to deis kanontas compile me to -Wpadded:
>
> v13 at hell:/tmp$ gcc -Wpadded a.c -o a
> a.c:3: warning: padding struct to align ‘c’
>
> Eimai sxedon sigoyros oti to gcc mporei kai na allaksei th seira ton
> metabliton poy briskontai mesa se ana struct alla den ksero pos
> to 'diorthoneis' ayto... Isos kapois allos na mporei na boithisei.
>
>
>> ithilgore
>>
> <<V13>>
>
thanx ! tetoiou eidous feedback perimenw.
implicit reordering mias struct den nomizw na ginetai kai sumfwna me to
C standard upo kanonikes sun8hkes den 8a prepei na ginetai
Twra gia to packing ston sugekrimeno kwdika mono gia ka8ara optimization
skopus ( < size ) tha eixe isws nohma.
To pseudo header allwste xrhsimopoieitai mono sto checksuming kai me ena
sizeof upologizetai pada swsta to mege8os.
Ta upoloipa headers einai adistoixa twn klassikwn <netinet/ip.h>
<netinet/tcp.h>. Padws nice for pointing out .
(to ar8ro to steila sto magaz btw molis prin )
ithilgore
>
>
More information about the unix-admin-gr
mailing list