Oppure

Loading
20/07/11 11:31
Nullable
Postato originariamente da nessuno:

Postato originariamente da Nullable:
Chiaro, oltre la classe BinaryReader c'è qualcos'altro che dovrei sapere ( su come leggere il flusso di dati ) ?


Parliamo di C# (di .NET insomma) ...


Quindi ? :D
aaa
20/07/11 15:01
No ... intendevo che non c'è molto altro da sapere ... se non come leggere il file e trovare dei dati all'interno di quello che hai letto ...
20/07/11 15:06
Nullable
Postato originariamente da nessuno:

No ... intendevo che non c'è molto altro da sapere ... se non come leggere il file e trovare dei dati all'interno di quello che hai letto ...


Quindi dovrebbe bastare la conoscenza sulla classe BinaryReader ?
aaa
20/07/11 15:10
Ma sì ... più o meno ...

Comincia a scrivere e vedi cosa ti serve che non sai ...
20/07/11 15:36
Nullable
Postato originariamente da nessuno:

Ma sì ... più o meno ...

Comincia a scrivere e vedi cosa ti serve che non sai ...


Il codice che ho scritto è questo :

   string path = @"C:\prova.exe";
            FileStream fStream = new FileStream(path, FileMode.Open);
            BinaryReader bReader = new BinaryReader(fStream);
            Console.WriteLine(bReader.ReadString());
            Console.Read();


l'output di tale codice è il seguente : i55.tinypic.com/…

Suppongo abbia a che fare con l'encoding, giusto ?
Ultima modifica effettuata da Nullable 20/07/11 15:36
aaa
20/07/11 15:55
HeDo
Postato originariamente da Nullable:
***


a me queste cose fanno aprire dalle risate!
aaa
20/07/11 15:57
Nullable
Postato originariamente da HeDo:

Postato originariamente da Nullable:
***


a me queste cose fanno aprire dalle risate!


Come scusa ?
aaa
20/07/11 16:22
HeDo
Postato originariamente da Nullable:

Come scusa ?


Ti stai incaponendo su un genere di programma per cui non esistono cose ben precise da studiare o da imparare. Non puoi fare come stai facendo tu, o almeno, _non solo_. Non sono programmi da chiedere su un forum, non ci sono guide per realizzarli.

La detection del linguaggio con cui è stato realizzato un programma può essere al contempo semplice e difficile, l'analisi spesso si basa su euristiche moderatamente complesse.
Se poi vogliamo mettere i puntini sulle I, in realtà tu non fai la detection del tipo di linguaggio, ma del compilatore. Io posso tranquillamente programmare in C++ e compilare sia con mingw sia con VS10, gli output binari saranno diversi (molto!).

Come se non bastasse ogni compilatore ha un numero decisamente alto di opzioni di compilazione che possono invalidare molti metodi di detection.
D'altra parte ci sarebbe il "problema" dei packer, non è detto che tutto sia sempre in chiaro! Esistono infinite tecniche di offuscamento in grado di confondere il più sofisticato decompilatore, figurati quanto ci vuole a far fallire una detection.

Inoltre io posso (paradossalmente!) hostare il .NET framework in un eseguibile compilato in C++ che tira su un servizio WCF e inizia ad interagire con un database tramite Entity Framework... a quel punto te che cosa detecti? I cavoli a merenda!

Il tipo di programma che vuoi realizzare spesso è una feature di programmi di decompilazione più sofisticati come IDA, nessuno si mette a farlo standalone semplicemente perchè senza una solida base di decompilazione del binario non riesci a farti una vaga idea di cosa c'è dentro l'eseguibile.

Prima di avventurarti in un'impresa del genere ti consiglio di leggerti almeno un paio di volumi sul reverse engineering, architetture dei compilatori e struttura dei file eseguibili, poi ne possiamo riparlare.

Mi dispiace fare sempre il guastafeste ma concludo sempre i post lunghi con la stessa frase.

Per ora lascia perdere.

aaa