Aiuto per Asprotect SKE 2.1x (dll)

Stato
Discussione chiusa ad ulteriori risposte.

Whivel

Utente Electrum
11 Luglio 2007
692
2
100
176
mentre reversavo un programma, di cui non importa il nome perchè non è quello lo scopo della discussione, mi sono trovato di fronte a diversi file protetti con Asprotect SKE 2.1x (o almeno così dice Peid)....

Ho usato Stripper per i file exe, con ottimo successo, ma per una dll, indispensabile per finire il lavoro, scritta in Delphi, la cosa non è funzionale al 100%. Infatti riesco a trovare una dll unpackata di ottima qualità, perfetta per capire dove agire per il cracking, ma purtroppo mancano alcune API, secondo me emulate (non sono esperto di Asprotect ne di unpacking)
esempio (originale)
Codice:
/$ E8 3FEE3E01    CALL 01770004
\. C2 8BC0        RETN 0C08B

purtroppo non so come fare per aggiustare le chiamate e il fatto che sia una dll, per di più in delphi, non aiuta....

ora quello che chiedo principalmente, ma non necessariamente, è come fare per ricostruire queste chiamate, ma non solo....


Un'altra idea che mi è venuta in mente era l'inline patch, ma la cosa non è semplice in quanto non so come funziona e non so nemmeno come vengono controllati eventuali crc....

L'idea che mi sembra più fattibile invece è quella di creare una dll che funga da "Loader", cioè il programma chiama la dll CREATA DA ME, questa carica la dll originale, la cracka e poi la esegue (o qualcos'altro di simile)... il fatto è che non so bene se si può fare.... tra l'altro questa dll viene usata come controllo COM in un progetto .NET, quindi dovrei ricreare anche un COM simile, a meno di non trovare un metodo che permetta di, dopo aver crackato la dll in runtime, di passare questa al processo chiamante (ma anche questo non so se si può e come fare)....
 
Whivel ha detto:
Un'altra idea che mi è venuta in mente era l'inline patch, ma la cosa non è semplice in quanto non so come funziona e non so nemmeno come vengono controllati eventuali crc....
Onestamente ancora non ho mai praticato l'inline patch su asprotect ma ci sono molti tuts in giro:

hxxp://www.tuts4you.com/download.php?view.273 di JohnWho
ne puoi trovare altri sempre sul medesimo sito...
Non so se lo script di Volx funzioni anche per le dll, ma se fosse avresti risolto il problema

Ciao
Superandry2
 
già provato.... ho provato pure un tutorial sulle dll, ma usa il trucco dello shift+F9, ma a me basta premerlo 1 volta (la prima) che subito si esegue....
 
ma certo Whivel è normale che asprotect faccia cosi.
in pratica distrugge la IAT, se lo stripper non lo fa, putroppo la devi ricostruire a mano
normalmente nella iat una CALL ad un'api è
jmp API
che noi vediamo con olly tipo:
00401114 JMP NEAR DWORD PTR DS:[<&user32.MessageBoxA>] ; user32.MessageBoxA

mentre una iat distrutta da asprotect si riduce ad esempio in
00401114 CALL 01770004
 
questo purtroppo lo sapevo.... il problema è che non so come ricostrutire le call mancanti...
 
Stato
Discussione chiusa ad ulteriori risposte.