Migliore risposta
Uno dei più grandi (se non il più grande) sito web che contiene sfide di ingegneria del codice inverso, è Crackmes.de .
Questo sito web è fantastico perché:
- It “s Gratuito .
- Le sfide sono classificate in base a:
- Difficoltà: Hai 9 livelli di difficoltà, da Molto facile a quelli più difficili.
- Piattaforma: Vuoi esercitarti con Windows, Linux , ecc … capacità di inversione?
- Lingua: vuoi risolvere un crackme scritto in quale lingua? Sì, se hai esperienza nel reverse code engineering, noterai che nella maggior parte dei casi non è esattamente la stessa cosa decodificare un eseguibile scritto in Delphi rispetto a un altro scritto in linguaggio assembler.
- Crackmes risolti: Se stai iniziando a fare reverse engineering, puoi cercare crackmes facili da risolvere, in modo da poter confrontare il tuo metodo di cracking con i cracker che lo hanno risolto prima di te, questo è davvero un tesoro per lapprendimento e lespansione delle tue capacità di pensiero e di risoluzione.
Risposta
Presumo che tu non sia esperto di informatica e programmazione di basso livello quindi la risposta è sì, è molto difficile.
Esistono due “livelli” di linguaggi di programmazione; Alto e basso. I linguaggi di programmazione elevati sono generalmente piuttosto facili da usare e da imparare. Sono abbastanza leggibili dalluomo e devono essere “tradotti” dalle macchine per essere eseguiti. Esempi di linguaggi di programmazione di alto livello sono Javascript, R, Python, Java e molti altri.
I linguaggi di programmazione di basso livello sono più difficili da imparare. Hanno bisogno di una maggiore comprensione del funzionamento della memoria e dei processi del computer. Lesempio migliore e più famoso di una lingua di livello piuttosto basso è C. Il C è molto potente e piuttosto difficile da imparare. Ma è molto vicino alla macchina comprensibile rispetto ai linguaggi di programmazione di alto livello. Un linguaggio di programmazione di livello piuttosto basso è Assembly. Il codice assembly esiste in diversi tipi ma sono tutti complicati, fastidiosi e molto difficili da leggere. Tuttavia, il codice di assemblaggio è una parte importante nel Reverse Engineering. Se decodifichi qualcosa, visualizzi / modifichi il codice Assembly di un programma.
Devi capire che Assembly è fondamentalmente la lingua madre. Se scrivi un programma cè sempre il codice Assembly con esso. O il tuo compilatore traduce il tuo codice in Assembly o linterprete lo fa per te in tempo reale.
Ciò che tutto ciò significa fondamentalmente è che diventare un vero reverse-engineer professionista è facile. Tutto quello che devi fare è diventare fluente in diversi tipi di Assemblea e imparare a programmare in C. Lunico problema è che queste due cose sono difficili da fare.
Buona fortuna!