Domanda Reversing Rimuovere Attesa da un Software

Second Reality

Utente Electrum
19 Settembre 2015
255
43
67
156
Salve a tutti, premetto che non sono molto esperto di tecniche di Reversing, so solo come funzionano i vari comandi dell Assembly e so creare code caves. Tuttavia, vorrei cimentarmi in questa impresa. Utilizzo un software in versione "prova" che ha le stesse funzionalità della versione completa, tuttavia, ogni tot operazioni o ogni tot secondi ( non so se ci sia un timer generale ), compare una finestra che recita " compra la versione completa! " con un conto alla rovescia di 60 secondi terminati i quali si sblocca un pulsante " CONTINUA ", premendolo, la finestra si chiude e il programma torna in esecuzione normale. Detto questo, utilizzando un debugger, come potrei intercettare la funzione che regola tutto ciò? Da ignorante rozzo ho utilizzato dapprima Cheat Engine per tentare di trovare il timer generale che regola il processo, ma senza successo. Poi mi è venuto il pallino di effettuare un jmp alla funzione che permette di continuare l'esecuzione del programma. Che consigli potete darmi?

Il programma è a 32bit ed è PRIVO di qualsiasi tipo di protezione. Credo sia un misto tra C# e c++.
Grazie.
 
Da come lo descrivi, credo che potresti mettere un break alla creazione della finestra.
Ad esempio sulla CreateWindowExA/W potrebbe essere un inizio. Se quando compare quella finestra chiama questa API, una volta raggiunto il breakpoint ti basterà un piccolo backtrace sullo stack per capire chi lancia la finestra ed evitare che lo faccia.
Ma ci sono diversi approcci possibili, questo è quello che utilizzerei io in questo caso.