Zoom Icon

Hex Workshop 3.11

From UIC

Crackare l'Hex Workshop 3.11

Contents


Infos
Author: Spider
Email: spider_xx87 (AT) hotmail (DOT) com
Website: http://bigspider.has.it/
Date: ??/07/2002 (dd/mm/yyyy)
Level: Working brain required
Language: Italian Image:Flag_Italian.gif
Comments: Que: Beh un tute sulla nuova ver dell'Hex ci serviva hihihih :)


Ok, in questo tute vedremo come è possibile crackare l'Hex Workshop v 3.11. Il procedimento che ho usato è un po' lunghetto, ma non c'è niente di complicato.

Incominciamo!


Introduzione

Il programma lo conoscete sicuramente. È un Hex Editor tra i più usati e "dovrebbe" scadere dopo 30 giorni. La registrazione si basa su un serial che viene calcolato in base ai campi "Name:" e "Company:", ma siccome la ricerca dei seriali non è il mio forte lo crackeremo diversamente.


Tools

  • SoftICE qualunque versione
  • Hex Workshop v3.11 (Non lo useremo solo come vittima!)


Link e Riferimenti

Purtroppo non ricordo proprio da dove ho scaricato il prog... Provate a cercarlo con un buon motore di ricerca.


Essay

Bene, incominciamo!
Per prima cosa voglio farvi notare una cosa: aprite il prog (devono già essere conclusi i 30 giorni del trial; se non è ancora espirato provate a farlo espirare portando avanti la data) e vediamo come la finestra principale del programma è disabilitata. Premiamo "Unlock"e poi "Cancel". Adesso, anche se la finestra che ci dice di registrarci c'è ancora, quella principale è abilitata e lo sono anche tutte le sue funzioni, ad eccezione della toolbar! Questo significa che per patchare il prog useremo il prog stesso (Hihihi, e fu così che l'Hex Workshop si uccise da solo! :-) ). Non piace anche a voi vincere con le armi degli avversari?

Ora però incominciamo con il crack vero e proprio. Prima vi consiglio di farvi una copia di backup, non si sa mai. Aprite il Symbol Loader e caricate hworks32.exe. Avviate e cominciate a steppare con F10. Non succede nulla fino all'offset :0044920A, dove troviamo l'istruzione Call 0048E640. Il SoftICE esce e riappare solo dopo la chiusura del prog. Mettiamo un bp sulla call e riavviamo il prog. Appena Il sice poppa, disabilitiamo il bp e premiamo F8 per entrare nella call. Vediamo quattro push, una call e un ret. Se c'è il ret significa che torniamo al punto di prima, e quindi la call esegue tutto il prog e noi dobbiamo entrarci dentro con F8. Steppiamo ancora con F10 e non succede nulla fino all'offset :0049A7EA, dove l'ennesima call esegue tutto il prog:


<nowiki>:</nowiki>0049A7EA call [eax+50] ;Questa call esegue tutto il prog
<nowiki>:</nowiki>0049A7ED test eax,eax ;<----Noi siamo appena usciti dalla call
<nowiki>:</nowiki>0049A7EF jnz 0049A806

Premiamo F4 per vedere lo schermo e ci accorgiamo che il prog non ha ancora nascosto la finestra principale. Ripremiamo F4 per tornare in Sice. Ora, se il prog non ha ancora nascosto la finestra principale, può darsi che quel test e quel jnz decidano la sorte del programma. Per verificare, mettiamo un bp nella call, steppiamo fino al jnz e scriviamo al sice il comando "r fl z", cioè "reverse flag zero", in modo che il prog salti quando invece non avrebbe dovuto saltare. Premiamo F5 per vedere com'è andata. Hehehe! Il programma è partito! Per ora non chiudetelo. Entrate in SoftICE e eliminate il bp con bc*, avendo prima l'accortezza di segnarvi il suo indirizzo. Adesso faremo il primo passo: modificheremo il jnz in jmp. E come faremo a modificare Hex Workshop 3.11? Semplice, lo faremo con Hex Workshop 3.11! Apriamo il file hworks32.exe e prendiamo "Find..." dal menu "Edit". Andate a vedere nel programma quali erano gli opcode delle istruzioni vicine al jmp... Ok, vi risparmio questa fatica! Erano 85C075158B4E1C, di cui quello del jnz era esattamente 7515. Nella finestra di dialogo "Find" assicuratevi che "Type:" sia "Hex Values", e scrivete "85C075158B4E1C" nella casella "Value:". L'Hex Workshop lo troverà sicuramente all'offset 0009A7ED. Modificate il 75 in EB (che è l'opcode di jmp) e cliccate "Save as" dal menu file (Importante: non dovete premere Save, ma Save as perché l'Hex Workshop è in esecuzione è quindi non possiamo sovrascrivergli il file) e salvatelo con un nuovo nome (Io ho usato "hworks32_2.exe").
Bene, adesso chiudete l'Hex Workshop ed eseguite quello modificato. Appare la solita finestra che ci dice che il trial è scaduto, la chiudiamo e... Funziona! L'Hex Workshop si è già fregato per metà, perché adesso lo potremmo usare benissimo chiudendo la finestra iniziale... In pratica abbiamo trasformato la protezione da trial di 30 giorni a nag-screen.
Non so a voi ma a me i nag danno parecchio fastidio! Che ne dite di fare un ultimo sforzo per togliere anche il nag? Bene, riprendete il Loader, caricate L'Hex Workshop modificato e avviatelo. Riattivate l'ultimo breakpoint con bpx 0049A7EA. Premete F5 e SoftICE ripoppa sulla call di poco fa. Entriamo nell call con F8 e incominciamo a steppare con F10. Non succede nulla fino all'indirizzo :00415471, dove una call visualizza la finestra principale ma non il nag. Dopo qualche riga un'altra call, all'indirizzo :00415485, esegue il nag e torna alla chiusura di esso. Eliminiamo il precedente bp e ne settiamo uno sulla call, usciamo da Sice e da Hex Workshop e lo riavviamo. Il Sice poppa e noi entriamo nella call con F8. Steppiamo con F10 e all'indirizzo :00414ECF l'ennesima call esegue il nag e ritorna alla chiusura del nag stesso. Osserviamo il codice che abbiamo davanti:


<nowiki>:</nowiki>00414EBE cmp byte ptr [004EFFE8],00
<nowiki>:</nowiki>00414EC5 jnz 00414EE5 ;<------ io non mi fiderei!
<nowiki>:</nowiki>00414EC7 push 00
<nowiki>:</nowiki>00414EC9 push dword ptr [edi+000000C0]
<nowiki>:</nowiki>00414EBF call 0043F981 ;visualizza il nag
<nowiki>:</nowiki>00414ED4 cmp byte ptr [004EFFE8],00

Come potete vedere all'indirizzo :00414EC5 troviamo un salto condizionato a 00414EE5, decisamente dopo la call che visualizza il nag. È quindi chiaro che modificando il jnz in jmp il nag non viene eseguito e il prog funziona come se fosse registrato!
Eliminate il bp. Segnatevi gli opcode delle istruzioni vicine al jnz (4E0000751E6A00FF), cercateli con l'Hex Workshop nell'exe che avevamo modificato prima (hworks32_2.exe), modificate il 75 in EB e salvate in un nuovo file (hworks32_3.exe). Adesso abbiamo l'Hex Workshop 3.11 bello funzionante... Voi direte: "Ma non facevamo prima a scaricarcelo dalla sezione Tools?". Certo che facevate prima, ma che bello c'è a trovarsi i programmi già belli crackati? Non è più divertente così?


###### ####### # ### ######## ####
# # # # # # # # # #
# # # # # # # # #
###### ####### # # # ####### ####
# # # # # # ##
# # # # # # # # ##
###### # # #### ######## # #


Note Finali

Saluto in primis Quequero. Poi saluto AndreaGeddon che mi sopporta rispondendo alle mie e-mail (grazie Andrè!!!), Yado che mi ha freezato tante volte il pc col krypton3 (grazie!), TheMR, Bubbo, e tutti gli studenti dell'UIC.


Disclaimer

I documenti qui pubblicati sono da considerarsi pubblici e liberamente distribuibili, a patto che se ne citi la fonte di provenienza. Tutti i documenti presenti su queste pagine sono stati scritti esclusivamente a scopo di ricerca, nessuna di queste analisi è stata fatta per fini commerciali, o dietro alcun tipo di compenso. I documenti pubblicati presentano delle analisi puramente teoriche della struttura di un programma, in nessun caso il software è stato realmente disassemblato o modificato; ogni corrispondenza presente tra i documenti pubblicati e le istruzioni del software oggetto dell'analisi, è da ritenersi puramente casuale. Tutti i documenti vengono inviati in forma anonima ed automaticamente pubblicati, i diritti di tali opere appartengono esclusivamente al firmatario del documento (se presente), in nessun caso il gestore di questo sito, o del server su cui risiede, può essere ritenuto responsabile dei contenuti qui presenti, oltretutto il gestore del sito non è in grado di risalire all'identità del mittente dei documenti. Tutti i documenti ed i file di questo sito non presentano alcun tipo di garanzia, pertanto ne è sconsigliata a tutti la lettura o l'esecuzione, lo staff non si assume alcuna responsabilità per quanto riguarda l'uso improprio di tali documenti e/o file, è doveroso aggiungere che ogni riferimento a fatti cose o persone è da considerarsi PURAMENTE casuale. Tutti coloro che potrebbero ritenersi moralmente offesi dai contenuti di queste pagine, sono tenuti ad uscire immediatamente da questo sito.

Vogliamo inoltre ricordare che il Reverse Engineering è uno strumento tecnologico di grande potenza ed importanza, senza di esso non sarebbe possibile creare antivirus, scoprire funzioni malevoli e non dichiarate all'interno di un programma di pubblico utilizzo. Non sarebbe possibile scoprire, in assenza di un sistema sicuro per il controllo dell'integrità, se il "tal" programma è realmente quello che l'utente ha scelto di installare ed eseguire, né sarebbe possibile continuare lo sviluppo di quei programmi (o l'utilizzo di quelle periferiche) ritenuti obsoleti e non più supportati dalle fonti ufficiali.