Coding a SYN Scanner guide ( source included )

ithilgore advent.cloud.strife at gmail.com
Fri Mar 30 01:21:41 EEST 2007


Giorgos Keramidas wrote:
> On 2007-03-30 00:58, ithilgore <advent.cloud.strife at gmail.com> wrote:
>   
>> Καλη παρατηρηση γενικα και απο τους 2. Καταλαβα τι εννοειτε αλλα στον
>> συγκεκριμενο κωδικα συμβαινουν τα εξης:
>> α) Το pseudo header χρησιμοποιειται **μονο** για το datagram που
>> στελνουμε και **μονο** για τον υπολογισμο του checksum : με αλλα λογια
>> δεν χρησιμοποιειται πουθενα σε συνδυασμο με την read( )
>>
>> Να θυμισω λιγο τον κωδικα :
>>     
>
> Δεν έχω δει τον κώδικα.  Η σελίδα του αρχικού link κάνει timeout
> όταν πάω να την ανοίξω.  Οπότε μπορεί να σου λέω και κάτι άσχετο.
>
>   
>> Αλλα θα μπορουσε να σκεφτει κανεις και το αλλο:  Κοιταξτε τα
>> <netinet/ip.h> και γενικα τα επισημα headers.
>>     
>
> Εδώ πάλι διαφωνώ κάπως...
>
> Στο δικό μου λειτουργικό, που χρησιμοποιεί κι αυτό gcc για να κάνει
> build τα πάντα, το netinet/ip.h header περιέχει:
>
> % /*
> %  * Structure of an internet header, naked of options.
> %  */
> % struct ip {
> % #if BYTE_ORDER == LITTLE_ENDIAN
> %         u_int   ip_hl:4,                /* header length */
> %                 ip_v:4;                 /* version */
> % #endif
> % #if BYTE_ORDER == BIG_ENDIAN
> %         u_int   ip_v:4,                 /* version */
> %                 ip_hl:4;                /* header length */
> % #endif
> %         u_char  ip_tos;                 /* type of service */
> %         u_short ip_len;                 /* total length */
> %         u_short ip_id;                  /* identification */
> %         u_short ip_off;                 /* fragment offset field */
> % #define IP_RF 0x8000                    /* reserved fragment flag */
> % #define IP_DF 0x4000                    /* dont fragment flag */
> % #define IP_MF 0x2000                    /* more fragments flag */
> % #define IP_OFFMASK 0x1fff               /* mask for fragmenting bits */
> %         u_char  ip_ttl;                 /* time to live */
> %         u_char  ip_p;                   /* protocol */
> %         u_short ip_sum;                 /* checksum */
> %         struct  in_addr ip_src,ip_dst;  /* source and dest address */
> % } __packed __aligned(4);
>
> Το linux έχει αρκετά πιο "περίεργες" ιδέες για το networking.
>
>   
>> Δεν τα εχει πουθενα ως packed. Αυτο που λεω ειναι οτι θα μπορουσε να
>> ειναι default συμπεριφορα ως attribute αλλα απο'τι φαινεται δεν
>> χρειαζεται στις περιπτωσεις αυτες.
>>     
>
> Μπα, νομίζω χρειάζεται (ειδικά στα netinet/* headers).
>
> Remember SPARC & SIGBUS :-)
>   
>
>   

Το link δεν δουλευει ? Περιεργο , οσοι το χουν κατεβασει ως τωρα δεν 
ειχαν προβλημα .

Οσο για τα headers ουσιαστικα το ιδιο λεμε.  Εγω λεω δεν χρειαζεται να 
ειναι packed ως απλα defined packed
αφου αποσο ειδα και απο τον gdb ειναι packed by default ( δες το 
παραδειγμα με το ACK που ειπα ).
Αυτο που λεω δηλαδη ειναι οτι μαλλον στο συστημα μου ,που το χω 
δοκιμασει επιτυχως ( Slackware 11 kernel 2.2.4.33 ) ,θα ειναι
by default packed σε συμπεριφορα ακομα και αν δεν ειναι ορισμενο το 
attribute.

ithilgore








More information about the unix-admin-gr mailing list