EnableMe2# [SOLVED By morfeo]

Stato
Discussione chiusa ad ulteriori risposte.
sono andato a tentativi.... che tutorial ti devo fare ;)
allora....
nn ho fatto altro che seguire tutte le chiamate a _vbaHresultCheckObj e vedere i valori attribuiti cambando il pushtra -1 enabled, 0 disabled
 
ok allora dato che la soluzione è arrivata (in un modo o nell'altro), vi scrivo io un tutorial con la tecnica precisa :)
 
^__^' come sempre la soluzione mi è passata sotto il naso... :asd::asd:
complimenti!!!
 
Predator ha detto:
ok allora dato che la soluzione è arrivata (in un modo o nell'altro), vi scrivo io un tutorial con la tecnica precisa :)

io intanto faccio un tutorial su come avere una botta DI culo lol
 
[size=x-large]Mini Tutorial:[/size]

Aprite l'eseguibile in Olly
Premete tasto destro e scegliete:
Search For -> all commands
ricerchiamo questo comando
CALL DWORD PTR DS:[ECX+8C]
che cosa serve? guardate bene il comando assembler, contiene un valore molto importante... ed è una COSTANTE!
si tratta di [ECX+8C]
è la costante che si occupa di abilitare o disabilitare controlli in visual basic.
pertanto con questa ricerca troveremo tutti i comandi relativi alla funzione
Enabled = true/false

in questo crackme sono 3:
Codice:
[b]Found commands:
00402C3C                          CALL    DWORD PTR DS:[ECX+8C]
00402C89                          CALL    DWORD PTR DS:[ECX+8C]
00402FB0                          CALL    DWORD PTR DS:[ECX+8C][/b]

facciamo doppio click sul primo (00402C3C) e vediamo
Codice:
00402C37     PUSH    [b]-1[/b]
00402C39     PUSH    EAX
00402C3A     MOV     ECX, DWORD PTR DS:[EAX]
00402C3C     CALL    DWORD PTR DS:[b][ECX+8C][/b]

poco piu' su possiamo notare PUSH -1 che equivale a ABILITA

guardiamo il secondo (00402C89):
Codice:
00402C84     PUSH    [b]ECX[/b]
00402C85     FSTP    DWORD PTR SS:[ESP]
00402C88     PUSH    EAX
00402C89     CALL    DWORD PTR DS:[b][ECX+8C][/b]
in questo caso invece di PUSH -1 abbiamo PUSH EAX, questo significa che il sorgente prevede una variabile. Questo potrebbe assumere enabled=true o false a secondo dei casi.

ma vediamo il terzo(00402FB0)
Codice:
00402FAB     PUSH    [b]0[/b]
00402FAD     PUSH    EAX
00402FAE     MOV     ECX, DWORD PTR DS:[EAX]
00402FB0     CALL    DWORD PTR DS:[b][ECX+8C][/b]

come vedete qui c'è PUSH 0 questa è una costante e significa FALSE! l'abbiamo trovato.

Per abilitare il tasto ci sono 2 modi o mettere -1 al posto di 0 oppure noppare l'istruzione all'offset 00402FB0

dato che tutti i controlli di default sono abilitati, noppando la call impediremo la disabilitazione.
Chiaro? :)
Le difficoltà erano date dal fatto che ho codato tutti i controlli a runtime pertanto non ci si poteva appoggiare a nessun tools.
ma seguendo le istruzioni che vi ho scritto questo crackme si risolve in circa 30 secondi.

Predator
 
Scusa pred, una domanda che nn c'entra niente:
ma tu hai conquistato la tua donnina dicendole ti strappo il femore di qua ti sfilo la spina dorsale di la?
Cmq un feedback a morfeo potresti anche darlo visto che ha risolto il tuo crack me ;)
 
si dato che è il suo primo crackme, gli ho dato un feedback positivo :)
il discorso donna è troppo ot.
 
Soluzione Larika :

tools:
1) debuggy by Vanja Fuckar
2) fastidiosissimo enable me di predator LOL

Lanciare l'enableme, lanciare il debuggy. Cliccare il pulsante get processes per avere una lista dei processi attivi, selezionare enableme e clikkare su attach.
Ora abbiamo il controllo dell'applicazione, nel nuovo pannello che appare sulla sinistra, c'è un pulsante windows, che ti da la possibilità di vedere e modificare le proprietà del form. Clikkiamo quindi su windows, vediamo che c'è una voce verify, ci clikkiamo sopra due volte e vediamo le sue proprietà. Quelle che ci interessano sono visible, enable, style. Cambiamo lo stile con uno qualsiasi e poi clikkiamo su enable. Ta da il pulsante compare e ci possiamo clikkare sopre, ora è abilitato.
Volendo si può anche salvare il programma modificato facendo un dump su file della memoria.

Vi consiglio vivamente di avere questo tool a portata di mano, io non so dove l'avevo trovato, non mi ricordo più scusate.
 
Larika ha detto:
Soluzione Larika :
...
2) fastidiosissimo enable me di predator LOL

LOOOL
prima di tutto devo dire che non avevo mai usato questo tool, e mi sembra molto carino!
pero' c'è una cosa quando premo [Enable/Disable] da me il crackme crasha terminando il processo.
Qualcun'altro mi conferma sta cosa?
Larika puoi postare il dump che hai eseguito? E spiegarmi come fai a dumparlo in quel programma :)
 
Devi cambiare lo stile prima altrimenti l'app crasha!!! Infatti l'avevo scritto che prima devi cambiare lo stile.
 
si si l'avevo già fatto ma mi crasha lo stesso :(
provero' nel pc a casa, magari è colpa di questo in ufficio.
 
2003 REL 1.02

per il dump, fare disasm/cache

nel campo from mettere l'indirizzo base visualizzato a fianco del processo, poi fai find last per trovare la fine. Ora fai save e scegli il nome del fine.
Nel file viene salvato il dump della memoria, avrete quindi una serie di istruzioni asm che sono poi utilizzabili da altri programmi tipo olly o altri debugger packer.
 
Stato
Discussione chiusa ad ulteriori risposte.