CrackMe V7 By Dark-Graveyard

Stato
Discussione chiusa ad ulteriori risposte.
Ma l'alto livello è per esempio C++, Basic, Java? e Basso livello ASM, binario?
Per noi non è più facile capire C++ di ASM?
 
Mariusp ha detto:
E appunto e il C++ è alto livello, quindi avevo detto bene mi sembra o no?

Stando a quando dice Predator no, non so percisamente perchè però se ci pensi un secondo ha senso ciò che ha scritto.
In un sorgente diassemblato, è più facile capire il basso livello che l'alto.
Ragionando come un reverser, ovvero arrivare ad un codice più semplificato* possibile per poi passare ad altri fini, tipo keygen e cazziemazzi i linguaggi a basso livello fanno meno uso di funzioni di quelli di alto livello, leggendo un sorgente di un programma a basso livello sai esattamente cosa fa quel programma perchè non fa uso di funzioni o altro già implementate.

*(semplificato != facile da scrivere)

-
Temo di non essere ne sto chiaro, ne di aver capito bene, però, io non sono un reverser : D
 
Cioè quindi il concetto è che sull basso livello, leggendo indirizzo per indirizzo è più semplice capire il codice giusto??
 
sei si scrive un programma in asm, e poi lo disassembli (tipo con olly) ottieni un codice che è abbastanza simile a quello del source originario.

Invece disassemblare programmi scritti ad alto livello è + complicato: prova a disassemblare python o autoit compilati, Predator li ha provati, fanno il giro del globo. Anche perché pensaci, prendiamo un linguaggio puramente OO, tipo python, ruby o simili, compilato: in asm gli oggetti non esistono come sono concepiti ad alto livello... e per tradurli da quel che ho visto crea sequenze lunghissime di istruzioni.
 
Ma davvero nessuno oltre a pred è riuscito a risolverlo ? dai raga, è un crackme fatto circa 2 anni fa, usa tecniche che ormai si bypassano facilmente
PS: Pred io ancora non ti vedo su msn
 
comunque sia predator che Mariusp hanno ragione.
Infatti mariusp diceva che è più facile reversare un programma scritto con un linguaggio ad alto livello, ma non ha mai detto che leggeva il disassemblato. Infatti lui parlava di linguaggi decompilabili (ormai sono sempre di più) e che quindi rimanevi a leggere ad alto livello.
Ovviamente se parliamo di leggere a basso livello (quindi il disassemblato) è più semplice un programma scritto a basso livello. Questo però non è sempre vero, in quanto i linguaggi ad alto livello, spesso, hanno una logica nella compilazioni di costrutti ad alto livello. Ad esempio vb6, per rendervi l'idea, anche se non è un esempio preciso, compila certe cose (non so se in nativo o in p-code) sempre allo stesso modo, permettendo una pseudo-decompilazione o cmq di capire l'inizio e la fine di un if, anche senza capire cosa fa l'if,
 
Cavolo mi ero dimenticato di questo crackme, per il momento ho rimosso l'AntiDebug:

http://img141.imageshack.us/i/66700203.png/
http://img18.imageshack.us/i/26960017.png/

è la prima volta che lo faccio :eek:, io ho tirato a caso.. nel senso che non sapevo come si rimuoveva l'AntiDebug e così ho provato la prima cosa che mi è venuta in mente ed ha funzionato :blamg:
 
Predator ha detto:
IsDebuggerPresent non è l'unico LOL

bho, io googlo un po ma trovo solo guide di scarso livello sul reversing :-/ , come su IsDebugPresent, uffa ci fosse un sito che raccogliesse un po di materiale. Comunque tornando al crackme c'è un altra protezione a IsDebuggerPresent? ecco perchè il codice mi sembra un po strano :eek:
 
bhe visto che tutti sono infognati da tempo do la mia soluzione:
-accettare qualsiasi seriale:
patchare 0040ED9B JE SHORT con un NOP

-eliminare gli antidebugging e farlo runnare dentor olly senza problemi:
0040FD35 JE -> JMP
00410AFF JE -> JMP

Ciauz
Predator
 
Stato
Discussione chiusa ad ulteriori risposte.