HACKING 120% {Hacking, programmazione, computer & molto altro}

Consigli per iniziare

« Older   Newer »
  Share  
1S1K
view post Posted on 22/11/2013, 05:37     +1   -1




Come detto nella presentazione mi interessano 5 campi:

-Sistemi operativi
-Crittografia
-Linguaggi di programmazione
-Sicurezza informatica (quindi anche reti, ecc.)
-Attacchi informatici

Non pensate male quando dico che sono interessato agli attacchi, come si suol dire: "L'attacco è la miglior difesa", quindi penso che se si sa attaccare ci si possa anche difendere.

Attualmente sono più interessato alla crittografia, ovviamente intendo quella virtuale, non per mandare messaggi in codice scritti a mano, comunque visto che vorrei partire da questo argomento voi pensate che ci vogliano delle basi abbastanza avanzate dietro o si può anche iniziare per chi come me ha conoscenze semplici del tipo: formattare, installare diversi os, pulizia del computer e simili?
Già quando si parla del terminale però... sinceramente non capisco niente dei codici/parole che si scrivono.

Quindi voi cosa consigliate?
 
Top
iMuser
view post Posted on 22/11/2013, 10:06     +1   -1




I primi tre li sto affrontando proprio in questo periodo, e specialmente sulla crittografia ho parecchio da dire. Riguardo gli attacchi informatici ancora non so dirti granché.

Io ti consiglio di studiarti un bel linguaggio di programmazione
DOMANDA: quale linguaggio?
RISPOSTA: Se guardi nel forum ci sono una decina di discussioni gia aperte, una delle quali molto recente

E' la base fondamentale. Se non ti piace programmare non iniziare nemmeno a guardare gli attacchi informatici... In più conoscere un linguaggio di programmazione è l'unico modo per studiare a fondo i sistemi operativi (spesso scritti in C).
Una volta che sai programmare, oltre a programmare puoi gia cominciare a studiare i sistemi operativi con un bel libro universitario o su internet.

Per studiare la crittografia ti consiglio di cominciare da documenti vecchi, per poi passare a roba più recente gradualmente. I concetti sono sempre gli stessi, ma cambiano e si ampliano gli strumenti.
La crittografia aumenta la sicurezza dei nostri sistemi o comunicazioni, ma solo se saputa usare. Per farti un esempio, tu puoi usare un software di crittografia ritenendoti sicuro per il solo fatto che crtitti le comunicazioni, ignorando il fatto che l'algoritmo prevede una backdoor fruibile dalle forze dell'ordine, o da chi ne sia a conoscenza.
Per cominciare puoi leggerti Kriptonite.
 
Top
Sl0w_Rain
view post Posted on 22/11/2013, 11:22     +1   -1




Comincia a studiare il C e dopo passa alle librerie come blowfish, aes e altra roba.
 
Top
1S1K
view post Posted on 22/11/2013, 12:27     +1   -1




QUOTE (Sl0w_Rain @ 22/11/2013, 11:22) 
Comincia a studiare il C e dopo passa alle librerie come blowfish, aes e altra roba.

Posso sapere anche se può sembrare stupida, cosa c'entra studiare un linguaggio con un algoritmo crittografico?
 
Top
Sl0w_Rain
view post Posted on 22/11/2013, 13:19     +1   -1




CITAZIONE (1S1K @ 22/11/2013, 12:27) 
CITAZIONE (Sl0w_Rain @ 22/11/2013, 11:22) 
Comincia a studiare il C e dopo passa alle librerie come blowfish, aes e altra roba.

Posso sapere anche se può sembrare stupida, cosa c'entra studiare un linguaggio con un algoritmo crittografico?

Come lo vuoi implementare l'algoritmo senno? lol
 
Top
RootkitNeo
view post Posted on 22/11/2013, 14:34     +1   -1




CODICE
-Sistemi operativi
-Crittografia
-Linguaggi di programmazione
-Sicurezza informatica (quindi anche reti, ecc.)
-Attacchi informatici


Per quanto riguarda il punto 1 è necessario conoscere l'architettura del computer, in quanto il sistema operativo è un astrazione posata sull'hardware.

Studiare crittografia può essere un inizio, ma si tratta di algoritmi. Quindi probabilmente meglio studiare prima programmazione.

Sicurezza informatica non è direttamente collegata con "ret etc.". C'è una parte sulla sicurezza in quanto vi sono protocolli e meccanismi per "garantirla".

Attacchi informatici dipende che intendi.

In pratica ti consiglio di iniziare dalla programmazione. Avrai veramente molto da studiare.
E nel mentre ricorda che parlare un buon inglese (o almeno capire quello informatico) è essenziale per procedere nello studio (purtroppo ne so qualcosa).
 
Top
1S1K
view post Posted on 22/11/2013, 20:26     +1   -1




Quindi consigli di partire dai linguaggi di programmazione, poi studiare l'architettura degli elaboratori, i sistemi operativi e infine la crittografia?

Per sicurezza informatica intendo in generale, sicurezza in rete (anche per questo mi interesso di crittografia), software di protezione, firewall, comunicazioni criptate e simili, non so se mi sono spiegato bene.

Per attacchi informatici intendo come si inizia-svolge e si termina un attacco, conocendo il modo di attaccare si può sviluppare una difesa adeguata, che in questo caso è la sicurezza informatica.
 
Top
1S1K
view post Posted on 22/11/2013, 20:47     +1   -1




QUOTE (Sl0w_Rain @ 22/11/2013, 13:19) 
QUOTE (1S1K @ 22/11/2013, 12:27) 
Posso sapere anche se può sembrare stupida, cosa c'entra studiare un linguaggio con un algoritmo crittografico?

Come lo vuoi implementare l'algoritmo senno? lol

Io sapevo che un algoritmo crittografico è solamente formule e appunto algoritmi matematici, non sapevo della programmazione.

E poi scusami, sono qui per imparare, se l'ho chiesto è perché non conoscevo la risposta...
 
Top
RootkitNeo
view post Posted on 22/11/2013, 21:03     +1   -1




CITAZIONE (1S1K @ 22/11/2013, 20:26)
Quindi consigli di partire dai linguaggi di programmazione, poi studiare l'architettura degli elaboratori, i sistemi operativi e infine la crittografia?

No allora, devo essermi espresso male. Il campo crittografico è una cosa, l'architettura degli elaboratori ed i sistemi operativi sono un altra.
Per comprendere i sistemi operativi ti servono conoscenze di architettura del processore; questa di solito è più semplice da raggiungere se si programma con un linguaggio ad alto livello.

Se studi un sistema operativo ci sono moltissimi aspetti dati per scontato riguardante la sua "progettazione" (vengono citati aspetti fortemente legati con il processore e vengono dati per scontato).

CITAZIONE
Per sicurezza informatica intendo in generale, sicurezza in rete (anche per questo mi interesso di crittografia), software di protezione, firewall, comunicazioni criptate e simili, non so se mi sono spiegato bene.

Il campo come hai appunto detto è molto ampio. Molti elementi non sono direttamente collegati.
Anche qui, se sai programmare probabilmente riesci a capire meglio alcuni concetti, ma non è detto. Comunque sugli antimalware non troverai molto in rete, anzi.

CITAZIONE
Per attacchi informatici intendo come si inizia-svolge e si termina un attacco, conocendo il modo di attaccare si può sviluppare una difesa adeguata, che in questo caso è la sicurezza informatica.

Io volevo sottolineare che è molto vasto, e se intendi interessarti di sicurezza dal punto di vista dei malware ed anche dal punto di vista degli attacchi informatici, ti ci vorrà molto tempo e non ha senso una scaletta, vista l'infinità di cose che può cambiare nel frattempo. lol
La sicurezza dal punto di vista degli attacchi è molto importante se ti occupi di programmazione per internet (come siti in PHP ad esempio).



CITAZIONE (1S1K @ 22/11/2013, 20:47)
CITAZIONE (Sl0w_Rain @ 22/11/2013, 13:19) 
Come lo vuoi implementare l'algoritmo senno? lol

Io sapevo che un algoritmo crittografico è solamente formule e appunto algoritmi matematici, non sapevo della programmazione.

E poi scusami, sono qui per imparare, se l'ho chiesto è perché non conoscevo la risposta...

Lui intende dire che studiati così rimangono solo formule, non hai un riscontro sul funzionamento. Se sai programmare bene o male dovresti riuscire ad implementarne uno.

PS: tra poco pubblico un mio vecchio articolo di Crittografia nella sezione Sicurezza, tienila d'occhio se sei interessato. ;)

PS: eccolo: https://hacking120.blogfree.net/?t=4752439
 
Top
1S1K
view post Posted on 23/11/2013, 02:48     +1   -1




Anche te consigli il C per iniziare come ha detto Sl0w?
 
Top
RootkitNeo
view post Posted on 23/11/2013, 14:39     +1   -1




Mah guarda, il problema dell'iniziare con il C è che devi proprio impegnarti sul serio. Alcuni concetti la prima volta che li affronti potrebbero crearti confusione. Se invece li affronti in seguito conoscendo già la programmazione e facendo un percorso diverso, avrai meno problemi (almeno nel capirli).

La cosa certa è che C è uno dei linguaggi più potenti, ma la sua potenza deriva dalla sua "vicinanza" con uno stile di programmazione ad un livello più basso, al contrario di Java e C# ad esempio. Il "basso" rimane relativo, in quanto rientra nei linguaggi di alto livello.

Se vuoi iniziare dal C ti consiglio questo: www.mediafire.com/?my13aiij324
E' stato scritto da Brian W. Kernighan & Dennis M. Ritchie.

Leggilo/studialo, se non dovesse piacerto o hai problemi particolari - oltre che chiedere sul forum - puoi sempre scegliere di passare ad un altro linguaggio.
 
Top
1S1K
view post Posted on 24/11/2013, 05:19     +1   -1




Quindi se parto dal C e riesco a studiarlo posso affrontare gli altri più facilmente essendo "complicato" come linguaggio?

So che i sistemi operativi, per lo meno la maggior parte sono scritti in C, dico bene?

Leggendo vecchie discussioni qui e su altri forum alcuni consigliano di abbinare allo studio della programmazione anche altro, visto che ho già un adeguata conoscenza hardware, è utile studiare in contemporanea elettronica e appunto programmazione?

Per elettronica intendo proprio circuiti, come funzionano, come crearli, come farli funzionare e simili.

So che il C è sempre quello, il libro che mi hai consigliato pone le basi o approfondisce?
Non penso di sbagliarmi, il C è sempre quello giusto?
Non ha versioni come Java dico bene?
 
Top
RootkitNeo
view post Posted on 24/11/2013, 14:51     +1   -1




CITAZIONE (1S1K @ 24/11/2013, 05:19) 
Quindi se parto dal C e riesco a studiarlo posso affrontare gli altri più facilmente essendo "complicato" come linguaggio?

In linea di massima diciamo di si. Nel senso che ci sono concetti che in altri linguaggi non interessano in quanto non sono direttamente controllabili. Ad esempio i puntatori. In C/C++ hai a disposizione i puntatori e puoi direttamente controllarli per puntare dove vuoi. In Java e C# ad esempio queste cose non ci sono; esistono i riferimenti (agli oggetti), che puntano ad un oggetto e quindi indirettamente sono dei puntatori, ma non puoi controllare nulla.

Il problema che potresti avere passando poi dal C a Java/C# è lo stile nella programmazione, o per meglio dire il paradigma di programmazione utilizzato. Ho conosciuto in passato ragazzi molto bravi con il C, che quando hanno provato a studiare la OOP (programmazione orientata agli oggetti) in Java l'hanno detestata.

Ma questo problema è del tutto normale... alla fine lo avresti anche se facessi il percorso contrario, anche se credo sia (almeno secondo me, poi dipende) più semplice in quanto la OOP ha degli schemi di ragionamento particolari, specie nella progettazione di un programma.

Quindi tenuti in considerazione questi parametri, potrei risponderti di Si, come ho detto all'inizio. Comunque puoi iniziare dal linguaggio che preferisci, che ti piace di più. Alla fine non c'è una regola da seguire... io però consiglio sempre di iniziare da un linguaggio con sintassi C-Like (Java, C, C#, C++). Se dai un occhio a Visual Basic .Net ti renderai conto che la sintassi è enormemente diversa.


CITAZIONE
So che i sistemi operativi, per lo meno la maggior parte sono scritti in C, dico bene?

Certo, il kernel di Linux è scritto in C ed alcune parti in C++.
Windows è scritto in C per la maggior parte, piccole parti in C++ e le parti che richiedono una velocità maggiore (precisamente il context switching) e le parti che comunicano con l'hardware.

Come dicevo il C è molto potente. Ma il C++ non è ovviamente da meno in quanto ha tutte le caratteristiche del C più molte "comodità" come le stringhe ed una libreria chiamata STL che mette a disposizione un sacco di classi utili.


CITAZIONE
Leggendo vecchie discussioni qui e su altri forum alcuni consigliano di abbinare allo studio della programmazione anche altro, visto che ho già un adeguata conoscenza hardware, è utile studiare in contemporanea elettronica e appunto programmazione?

Per elettronica intendo proprio circuiti, come funzionano, come crearli, come farli funzionare e simili.

Quando parli di conoscenza hardware che intendi?

Per quanto riguarda i circuiti in teoria non è utile ed in pratica nemmeno. Questo perchè conoscere transistor, diodi piuttosto che condensatori o oscillatori non ti cambierà nulla. Diversa è invece la conoscenza nel senso dell'architettura del PC e non dei circuiti stessi.

Ti consiglio di studiare ed applicare i concetti che studi piuttosto. Fai esercizi insomma.
Più avanti potrai studiare altro sempre in relazione alla programmazione, se ti piace. E' il caso ad esempio degli algoritmi.


CITAZIONE
So che il C è sempre quello, il libro che mi hai consigliato pone le basi o approfondisce?

Mah guarda, quella guida è scritta dal creatore del C. Non è lunghissima come vedi, contiene proprio l'essenziale. Parla sempre di concetti come i puntatori e le strutture... quindi tocca un po' tutto ciò che è C. Io te la consiglio comunque, poi se vuoi leggerti altro puoi farlo in seguito (molte cose poi le imparerai in seguito, utilizzandolo).

CITAZIONE
Non penso di sbagliarmi, il C è sempre quello giusto?
Non ha versioni come Java dico bene?

Si più o meno è come dici tu. Nel senso che esiste ad esempio C99 che introduce nuove cose. Tuttavia molti compilatori di permettono di compilare per il C classico (normale) o per C99 specificandolo al momento della compilazione.
Una di quelle introdotte è ad esempio la possibilità di dichiarare una variabile ed iniziarla come parte "inizializzazione" di un for. Il for in C è questo:
CODICE
int i;
for(i=0; i<n; i++) {

}


In C99 si può scrivere direttamente:
CODICE
for(int i=0; i<n; i++) {

}



Comunque basati pure sulla guida che ti ho linkato al momento. Anche perchè è gratuita. ;)


PS: scusa se tendo a scrivere molto quando rispondo...
 
Top
1S1K
view post Posted on 28/11/2013, 08:39     +1   -1




Se qualcuno vuole imparare a gestire, utilizzare un server, mainframe o comunque reti di computer avanzate cosa deve studiare?

Serve sempre come base l'architettura degli elaboratori?
 
Top
Sl0w_Rain
view post Posted on 28/11/2013, 13:42     +1   -1




CITAZIONE (1S1K @ 28/11/2013, 08:39) 
Se qualcuno vuole imparare a gestire, utilizzare un server, mainframe o comunque reti di computer avanzate cosa deve studiare?

Serve sempre come base l'architettura degli elaboratori?

Reti, linux,bsd,windows server, protocolli.
 
Top
17 replies since 22/11/2013, 05:37   207 views
  Share