Python e hacking.

Stato
Discussione chiusa ad ulteriori risposte.

xevier

Utente Silver
16 Febbraio 2009
42
8
0
63
Ciao a tutti, dopo aver letto vari tutorial su python, mi sono messo a studiare "imparare python terza edizione" di Mark Lutz, in modo da imparare a programmare almeno un linguaggio prma di iniziare "l'arte dell'hacking" seconda edizione di Jon Erickson; tuttavia dando una sbirciatina all'arte dell'hacking ho notato che utilizza prevalentemente il C T_T. So che il C e il python sono simili in quanto sono entrambi orientati ad ogetti e che prima o poi dovrò imparare il C, ma potreste dirmi se esiste un libro sull'hacking che usi python?
 
il c non è orientato ad oggetti (al limite il c++)

e comunque potresti imparare anche il c, che può risultare sempre utile conoscerlo
 
Si sry, intendevo il C++.Cmq preferisco imparare perbene prima il python, mi sembra un ottimo linguaggio , soprattutto perchè è facile da capire. Il mio problema è che l'arte dell'hacking usa il C T_T.
 
Non e' che un linguaggio e' orientato agli oggetti o no, dipende da come scrivi, molte librerie in C sono scritte ad oggetti (vedi ncurses, XLib, GTK+) l'unica differenza e' che magari altri linguaggi hanno features che avvantaggiano la scrittura di oggetti.

Il C ed il Python non c'entrano praticamente niente tra loro, anche la sintassi e' differente, ed il motivo per cui ne "L'Arte dell'Hacking" viene usato il C e' perche' buona parte del libro e' dedicata ai buffer overflows, cosa di cui Python non dovrebbe essere affetta visto che e' un linguaggio interpretato, quindi non dipende da te la presenza di quel tipo di bugs ma dagli sviluppatori dell'interprete.

Il Python non e' particolarmente adatto a questo genere di cose, per farti scriptini per vulnerabilita' in roba di rete conviene sempre usare il Perl a mio avviso, anche se poi alla fine usi il linguaggio che ti piace di piu' anche per quelle cose.

Per farla breve se ti vuoi imparare il Python ok, ma sappi che viene tendenzialmente usato per fare programmi di altro tipo, o per scriptare altre cose, anche se in realta' non e' cosi' usato, l'uso sta calando parecchio in favore di altri linguaggi, ed a breve si avra' il boom del Javascript sul desktop con la nascita di diversi progetti (tutti abbiamo la stessa idea nello stesso periodo vacca di') come Seed ed altri, e c'e' anche il mio che punta a target piu' "l33t" visto che ho pensato ad implementare prima le ncurses che altro :p

Comunque sia quel libro te lo puoi leggere senza problemi, io l'ho letto un giorno sul treno, e' abbastanza simpatico e semplice :)
 
Il fatto è che il python mi piace tantissimo, perchè si adatta al mio modo di pensare, basti pensare alla semplicità del programma Hello World ^^;mi fa arrabbiare il fatto di dover ricorrere ad altri linguaggi più complessi per poter imparare le tecniche di hacking T_T.
 
L'hello world e' semplice con qualsiasi linguaggio completamente interpretato (vedi ruby, vedi js, vedi lisp ecc), piuttosto di sprecare tempo a pensare ad "imparare le tecniche di hacking" impara a _programmare_, non a scrivere qualcosa in un linguaggio, alla fine la difficolta' piu' grande e' imparare il paradigma di programmazione, il resto e' sintassi e questioni tecniche dell'implementazione del linguaggio.

Detta piu' semplice, studia programmazione, quello che tu definisci hacking verra' da se' col tempo.
 
Bhe, Python è usato massimo per Exploit o scriptini di utility varie, ma il libro, che parla molto di Overflow e Shellcoding, non può certo usare Python (usa C e ASM). Massimo la parte della crittografia puoi provare a portarla da Perl (che usa il libro) a Python (non è difficile, in questa sezione trovi svariati miei script sulla crittografia se vuoi comparare le parole del libro con del codice).
 
Ok, vorrà dire che per adesso penserò solo alla programmazione , il fatto è che ho davvero tanta voglia di imparare cose nuove ; sto anche leggendo "il computer come è fatto e come funziona, ottava edizione" ^^. Penso che tutta questa voglia di imparare derivi dal fatto di essere un autodidatta, faccio il quarto scientifico e di informatica non si vede neanche l'ombra , mi pento di nn essere andato all'industriale, soprattutto perchè li nn si fa il latino T_T.
 
xevier92 ha detto:
Ok, vorrà dire che per adesso penserò solo alla programmazione , il fatto è che ho davvero tanta voglia di imparare cose nuove ; sto anche leggendo "il computer come è fatto e come funziona, ottava edizione" ^^. Penso che tutta questa voglia di imparare derivi dal fatto di essere un autodidatta, faccio il quarto scientifico e di informatica non si vede neanche l'ombra , mi pento di nn essere andato all'industriale, soprattutto perchè li nn si fa il latino T_T.

[ot]Come ti capisco... Benvenuto nel club xD[/ot]
 
[ot]
Beh guarda, se tu fossi andato all'industriale saresti solo stato frustrato dal fatto che gli insegnanti sono degli idioti e le tue capacita' sarebbero state buttate, come sta succedendo a me :(

Io sono completamente autodidatta infatti, la scuola non mi ha _MAI_ dato niente, purtroppo i professori bravi alle superiori sono molto molto rari.

E secondo me gli autodidatti hanno diverse marce in piu' rispetto a quelli che seguono la scuola, anche se ne perdono in fatto di capacita' di lavorare in gruppo :(
[/ot]

Ti conviene concentrarti su una cosa alla volta, secondo me ad esempio ti converrebbe partire con il C e l'ASM x86 per capire cosa succede dietro, una volta che hai studiato a fondo queste due cose (quindi studiate sul serio eh, non quattro cagate input output e magari socket, vai a fondo con le strutture di dati e sui puntatori, che ci si fa tanta magia nera) e vedrai che a quel punto i vari overflow li capirai da solo perche' appunto, ti troverai a doverli risolvere quando scriverai applicazioni di una certa complessita' xD

Una volta imparato cio' puoi passare a robe a piu' alto livello, come python/ruby/perl/js, facendo cosi' apprezzerai davvero la semplicita' dell'altissimo livello e riuscirai a sfruttare molto meglio tante cose.

Ovviamente una volta imparato come funzionano le cose a basso livello usando il paradigma strutturato potrai studiarti altri paradigmi, come l'object oriented, l'object based, il funzionale e tanti altri, soprattutto in linguaggi come python e javascript che offrono molte piu' possibilita' e facilitano tante cose :)
 
Ci vorrà un po di tempo, ma penso che verso i 60 anni avrò imparato qualkosina XD. Cmq grazie per i consigli :hail:, ^^.
 
intanto potresti iniziare a leggere la guida di blacklight sul C...(c'è la versione pdf su questo sito nella sezione C/C++/C#)
oppure nel suo c'è nell' hacknowledge del suo sito (link)
 
Perche' sarebbe piu' potente? Tralasciando l'ovvia maggiore velocita' in runtime il Python non ha niente da invidiare al C++ imho.
 
col C puoi fare tutto, col python no XD
Ma il Python però è molto indicato per avvicinarsi alla programmazione, sinceramente non mi attira tantissimo ma poi dipende da ciò che si vuole fare
 
Col Python eccetto le cose a basso livello ci fai tutto, e con tutto intendo TUTTO! Ci sono librerie per giochi, audio, reti, conversioni da italiano a ugro-finnico, risoluzioni di Super Mario...
Solo che il calcolo aritmetico puro va lento con Python...
 
xevier92 ha detto:
Ok, vorrà dire che per adesso penserò solo alla programmazione , il fatto è che ho davvero tanta voglia di imparare cose nuove ; sto anche leggendo "il computer come è fatto e come funziona, ottava edizione" ^^. Penso che tutta questa voglia di imparare derivi dal fatto di essere un autodidatta, faccio il quarto scientifico e di informatica non si vede neanche l'ombra , mi pento di nn essere andato all'industriale, soprattutto perchè li nn si fa il latino T_T.

che c'entra il fatto di essere autodidatta? io sono nella 3a liceo scientifico, l'informatica nn l'ho fatta manco alle medie, ho fatto tutto da autodidatta in circa 6 mesi per le basi di un sacco di linguaggi (dal python all'asm passando per il C/C++, il javascript il php e linguaggi di mark up) senza avere l'ombra di una guida (intendo una persona, un prof o qualcosa del genere), ho imparato alcune tecniche, fra qui anche il buffer overflow, a livello teorico, nn occorre scopiazzare codice C, basta comprendere la logica del programma.

Cmq nn sono d'accordo sul fatto che il python stia perdendo in favore del javascript: python è pre-incluso in tutte le distribuzioni linux, ed è disponibile per gli altri os e persino per il symbian dei cell, è usato nn solo in ambito desktop ma al contrario del javascript può essere usato anche come linguaggio server-side al posto del php o del perl
 
Forse nn ci siamo capiti.... cmq io nn scopiazzo codice C e sono anche io un autodidatta ,voglio solo imparare. Il fatto di essere un autodidatta secondo me centra e come, in quanto non avendo una guida , in questo caso un insegnante ,perchè anche un manuale potrebbe essere interpretato come una guida,si è spinti da un desiderio di conoscenza che non è imposto ma volontario, che deriva soprattutto dalla meraviglia.... mi sa che sto andando sul filosofico XD.
 
Malex ha detto:
Cmq nn sono d'accordo sul fatto che il python stia perdendo in favore del javascript: python è pre-incluso in tutte le distribuzioni linux, ed è disponibile per gli altri os e persino per il symbian dei cell, è usato nn solo in ambito desktop ma al contrario del javascript può essere usato anche come linguaggio server-side al posto del php o del perl

Mi sa che sei molto poco informato :)

Esistono diversi progetti (esempio serverjs) che portano il javascript a lato server ed il trend attuale va verso il javascript ;)
 
meh. ha detto:
Malex ha detto:
Cmq nn sono d'accordo sul fatto che il python stia perdendo in favore del javascript: python è pre-incluso in tutte le distribuzioni linux, ed è disponibile per gli altri os e persino per il symbian dei cell, è usato nn solo in ambito desktop ma al contrario del javascript può essere usato anche come linguaggio server-side al posto del php o del perl

Mi sa che sei molto poco informato :)

Esistono diversi progetti (esempio serverjs) che portano il javascript a lato server ed il trend attuale va verso il javascript ;)
Tu sei fissato col JS xD
Comunque non conoscevo serverjs, massimo conoscevo il JS fuori dal browser con quel progetto... com'è che si chiamava... ah si: lulzJS xD
Comunque il trend andrà verso JS, ma non è mica solo quello il futuro dell'IT. Python (come ha detto Malex) è di base in tutti i sistemi Linux, ha porting per tutti gli OS, per Nokia e pure per PSP e NDS. Ormai viene impiegato per tutto, dalla grafica 3D (Blender) alle IA e alla Robotica. Ci sono framework per usarlo server side come Django o CGI per Apache e librerie per ogni singola cosa esistente. Quindi va bene JS, ma non esageriamo ^^
 
Perche' tu guardi al presente, bisogna guardare il trend non cosa c'e' ora. E la tendenza va verso Javascript, non leggo articoli su digg a proposito di python da un casino (a parte articoli negativi :p).
 
Stato
Discussione chiusa ad ulteriori risposte.