Come imparare a programmare dal punto di vista di un hacker [chiuso]

3

Sono molto interessato agli aspetti di hacking e sicurezza. Ma mi sto interrogando su diverse cose che mi impediscono di perseguire questa passione per il momento. Uno di questi è in realtà linguaggio di programmazione. Come tutti sappiamo, la programmazione in generale è un campo aperto, e ciò che intendo non si può semplicemente apprendere le basi di un linguaggio per scrivere programmi o exploit complessi Come esempio, link questo exploit è stato scritto da C, anche se ho studiato C molto prima. Riesco a malapena a capire il codice.

Pertanto, ho intenzione di imparare C, Python e IA-32 come inizio per il prossimo periodo. Ma dopo aver imparato le basi, dove concentrarmi sulla programmazione come parte della sicurezza delle informazioni, non solo un programmatore regolare.

Il mio obiettivo e obiettivo è quello di leggere e comprendere l'exploit di cui sopra, ed essere in grado di scrivere uno sfruttamento simile (buffer overflow in generale). Inoltre, per essere in grado di trovare e sfruttare tali punti deboli, devo anche capire i sistemi interni ??

Inoltre, ho sentito che lo sfruttamento di cui sopra ha qualcosa a che fare con la programmazione di socket in ambiente Linux, e ANSI C quali sono questi e perché ho bisogno di loro per scrivere un simile exploit?

    
posta user209337 25.12.2013 - 05:52
fonte

1 risposta

3

Per indirizzare la tua prima preoccupazione. Capire il codice che hai collegato sarebbe difficile da capire per la prima volta. Dovresti digerire il punto di ingresso, il carico utile, lo sfruttamento e altre sfumature. Questo non è un codice wimpy che moltiplica due numeri e restituisce il risultato. Ha senso che qualcuno con un'esperienza limitata non sia in grado di capirlo.

Sfortunatamente, padroneggiare le basi non è abbastanza. Ad esempio, padroneggiare le basi non ti permetterà di capire il codice a cui ti sei collegato. I moderni linguaggi di programmazione sono progettati in modo tale che le basi siano comprensibili per le persone che non comprendono completamente la lingua.

Se vuoi comprendere appieno l'exploit, il payload, il codice e imparare di più sugli exploit, dovrai comprendere appieno alcune cose.

  1. Come funziona la memoria (codifica dei caratteri, stack e buffer overflow)
  2. C
  3. La piattaforma su cui si basa l'exploit. Hai intenzione di scrivere il tuo shellcode per Windows o Linux? ... perché c'è una grande differenza.
  4. Capire cosa succede quando compili ed esegui un programma

Se fossi in te, inizierei con il libro K & R C. Questo ti aiuterà a conoscere la memoria e C. Vorrei quindi leggere Programmazione da zero. Questo ti aiuterà a insegnarti cosa succede quando viene eseguito un programma e la connessione tra il codice sorgente che scrivi e le istruzioni che il tuo computer esegue.

Anche se credo che questo sia il modo migliore per iniziare, è certamente il modo più difficile per iniziare ... Il materiale è molto denso e difficile da comprendere. Capire queste cose richiede molto tempo e molti sforzi. Inoltre, la tua base di conoscenze avrà ancora evidenti carenze. Anche così, se riesci a superare questo, sarai facilmente in grado di capire quali sono gli exploit che stai facendo e come funzionano dopo un esame

    
risposta data 25.12.2013 - 06:52
fonte

Leggi altre domande sui tag