Sezione dedicata ai tool per il reversing :D

  1. Iniziare a reversare  
  2. Vademecum del reverser
  3. Analisi di IDA Pro    



 VADEMECUM DEL REVERSER

Ecco una lista di tool indispensabili (che uso io),senza i quali nulla potrete contro quei ladri di eseguibili :) (che non sono i migliori,ma quelli che io uso!)

Debugger:
OllyDbg
semplicemente il migliore,il firefox dei debugger,con una ricca raccolta di plug-in e script da paura!

HexEditor:
Frhed
Ottimo editor completo di sorgenti,libero e fantastico.Nessun fronzolo,solo tu e l'editor,nessuna funzione superavanzata completamente inutile...

Decompiler:
VB6:
VBdecompiler
Ottimo programmino,non decompila veramente,ma permette anche di visionare le API usate nel programma!

ImpREC
ImpREC
Ce ne sono davvero pochi di così buoni...(serve per ricostruire le import table dopo un dump di un eseguibile)

PE Editor:
PETools
Davvero carino e userfriendly,ottime funzioni di analisi,possibilità di dumping in memoria e tante altre cose...
A breve anche il mio di PE analyzer!!! Aspettatelo con ansia!


PatchEr:

UnivPatcher
Ottimo davvero,essenziale e veloce...crea una patch a partire dalle differenze di due eseguibili!

Packerdetector:
RDGPackerDetector
Veramente ottimo,funge anche da pe editor con tantissime funzioni avanzate,come la scansione esterna tramite signature,supporta plugin (grafica rinnovata) e trova anche il linguaggio con cui un exe è compilato!

Poi cè anche il MIO packer detector se volete :P lo trovate nel mio blog & sito


ResHacker:

ResHacker
Ottimo tool free...fa qualsiasi cosa su un file risorsa,veramente ottimo!Potete modificare qualsiasi eseguibile nella estetica (a meno che non sia compresso o fatto senza usare file .res)

Other:

OepFinder (non trovo link)
Trova l'entry point originale di un programma,davvero bello e utile.


Filemon & regmon
per l'analisi di quello che un programma compie ocn i file e con il registro

TNT_Enforcer (non trovo link)
Serve per abilitare i tasti disabilitati

e tutti i tool che vi scriverete per uso personale...











INTRO AL REVERSING  By Predator
Cosa  bisogna sapere e cosa no...

Distinguiamo fin da subito in Reversing di base/medio/avanzato:

per base si intende riuscire a reversare programmi semplici, nulla di complicato o studiato contro il revering.

per medio si intende capire concetti piu' ampi, affrontare semplici protezioni e magari capire semplici algoritmi di generazione.

per avanzato intendo affrontare manualmente packer cazzutissimi e non trovare ostacoli insormontabili.

SIETE NUOVI DEL SETTORE? SI? LEGGETE SOLO LA PARTE RELATIVA AL REVERSING DI BASE. NESSUNO NASCE SAPIENTE, TUTTI INIZIANO DA ZERO.

Requisiti:

1) CONCETTI DI INFORMATICA?
cosa devo sapere del pc?
per reversare un programma non basta sapere cosa fa un programma, è necessario PRIMA DI TUTTO sapere come il nostro computer interpreta le informazioni. A tal proposito è cosa INDISPENSABILE PER QUALSIASI REVERSER aver ben chiaro questi concetti basilari:

- IL CRACKING/REVERSING sapere di cosa si tratta! A morte a chi parla di reti, internet, siti ecc. I buffoni e i lamer qui non sopravvivono.
- Il BUS fondamentale conscere cosa è e come gira il flusso dati.
- SISTEMI DI ENUMERAZIONE, nel revering si ragiona quasi esclusivamente in esadecimale, conoscere l'esadecimale e le relative operazioni di base (XOR AND ecc.) è vitale.
- LETTURA DELLE INFORMAZIONI, come la CPU legge le informazioni.
- I REGISTRI E LO STACK, sapere cosa sono e conoscerne il funzionamento

Questi punti sono il plasma del reversing, apprenderne le logiche (non i funzionamenti tecnici) è INDISPENSABILE!!!!!!!
Chiunque non conosca questi punti oppure non abbia voglia di saperli per passare alla pratica, si dimentichi di reversare e si compri una Play Station.
A tal proposito io stesso ho scritto 7 documenti (in italiano) che illustrano in modo comprensibile a qualsiasi nwebie quanto serve.


2) CONOSCENZA PROGRAMMAZIONE?
Una delle prime domande che uno si pone è: per reversare devo sapere programmare?

Reversing di base:
- il reversing di base non richiede l'abilita' di programmazione di un linguaggio specifico, è sufficiente aver in mente i concetti basilari della logica di un programma.
Es. come funziona una condizione (IF) cosa è un ciclo (FOR-NEXT) ecc...
Saper programmare naturalmente aiuta nel raggiungere l'obiettivo ma non è un requisito indispensabile.

Reversing medio:
- per poter comprendere programmi codati da professionisti, che sanno di essere possibili vittime del reversing, richiede obbligatoriamente la conoscenza di uno o piu' linguaggi di programmazione.
qui la conoscenza di istruzioni assembler di base inizia a farsi sentire, sopratutto quando si vuole fare keygenerator. Attenzione ho scritto consocere "istruzioni" non saper programmare in assembler Smile

Reversing avanzato:
- neccessaria la conoscenza dell'assembler, e una buona conoscenza del linguaggio in cui è codato il programma.


3) CONOSCENZA DELLA STRUTTURA DELL'ESEGUIBILE (IL FORMATO PE)?
La domanda è: ho un eseguibile, cosa devo sapere di lui?

reversing di base:
-ben poco, per reversare programmi semplici è sufficiente verificare con appositi programmi il linguaggio in cui è scritto e se è protetto da un compressore.

reversing medio:
-per reversare programmi codati con buone protezioni è necessario conoscere le basi dell struttura dell'eseguibile, il cosidetto formato PE. (header, sessioni ecc...) Fortunatamente in molti casi basta usare Unpacker già pronti.

reversing avanzato:
-indispensabile conoscere il formato PE come le proprie mani, ci sono packers che creano serie difficoltà anche ai reverser piu' esperti. Il tutto svolto con l'unpacking manuale dell'exe.

4) QUALI PROGRAMMI?
quali sono gli strumenti piu' usati e quelli indispensabili per reversare?

reversing di base:
-un debugger (quel programma che disassembla l'exe mostrandone l'assembler e che permetta di modificarlo)-> OllyDbg!!! Mi inchino davanti a questo programma.
-un identificatore di PE: che ci dice con che linguaggio è scritto un programma e se usa delle protezioni commerciali -> RDG Packer Detector e PeID sono i migliori.
-opzionale: un packer per creare le patch.

reversing medio:
oltre a quanto sopra+
-programmi per l'unpacking automatico che ci ritonrano l'exe orginale.
-editor esadecimale (io uso WinHex, molto potente)
-ricostruttori ed editor di eseguibili -> ImportRec e Lord PE

reversing avanzato:
-qui non c'è limite, a volte è necessario costruirsi programmi su misura.

CONCLUSIONI:
reversare è anche un divertimento, una sfida personale. Nel reversing tutto è possibile, l'unico limite sono le vostre consocenze.
Non prentendete da voi di diventare cracker famosi o invecchierete davanti al computer.
Per iniziare a reversare basta poco, i piu' svegli si faranno programmi da soli e se li auto-crackeranno Very Happy
Per raggiungere livelli medi di reversing non richiede estremo impegno, ma solo voglia e passione del settore.


Predator

PS: munitevi di aspirine Very Happy










IDA PRO

una piccola analisi di questo bestiale strumento...

Permette l'analisi di pressochè qualsiasi file (pure i giochi di xbox o del gameboy per dire)

Ecco le funzioni principali:

-Disassembler,e mi pare ovvio,è la finestra principale,e se premete il tasto spazio appare un diagramma di flusso per seguire meglio la logica del disassemblato
-Hex editor
-Export
-Import
-Function (estrae tutte le funzioni usate nell'exe)
-String (di testo,contenute nell'exe)
-Library,dic euqali librerie sono usate da un soft (non so, math.h,ecc)

Funge anche da debugger,permette di settare breckpoint,di visionare i registri,presenta una barra riassuntiva colorata della conformazione dell'exe,ha centomila funzioni per manipolare l'assembly e tutto il resto...da paura...

Screen:


 



Ed ecco un trucchetto per rendere modificabile il codice (che di default è disabilitata come funzione per non renderlo crack oriented)

cercare il file ida\cfg\idagui.cfg settando:
DISPLAY_PATCH_SUBMENU = YES // Display the Edit,Patch submenu

poi nel programma,nel menù "edit" è apparsa la voce Patch...Smile


purtroppo è anche molto costoso qst editor,maesiste un freeware con limitazioni (un po pesantine: solo PE,llimite di tempo,e no modifiche) ma noi sappiamo come fare Very Happy

Link del Demo:

http://tiarater.datarescue.be/freefiles/idademo51.exe