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!
Crackare l'Hex Worksop v3.11
Written by Spider
Introduzione
Il programma lo conoscete
sicuramente. E' 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 usati
Tools usati:
- SoftICE qualunque versione
- Hex Workshop v3.11 (Non lo useremo solo come vittima!)
L'Hex Workshop v3.11 non lo scaricate dai Tools perchè quello
credo che sia già crackato (Que correggimi se sbaglio)
URL o FTP del programma
Purtroppo non ricordo
proprio da dove ho scaricato il prog... Provate a
cercarlo con un buon motore di ricerca tipo http://www.altavista.it
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:
:0049A7EA call [eax+50] ;Questa call esegue tutto il prog
:0049A7ED test eax,eax ;<----Noi siamo appena usciti dalla call
: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:
:00414EBE cmp byte ptr [004EFFE8],00
:00414EC5 jnz 00414EE5 ;<------ io non mi fiderei!
:00414EC7 push 00
:00414EC9 push dword ptr [edi+000000C0]
:00414EBF call 0043F981 ;visualizza il nag
: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. E' 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ì?
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
Vorrei ricordare che il
software va comprato e non rubato, dovete registrare l'Hex
Workshop 3.11 dopo il periodo di valutazione, altrimenti potreste
trovarvi faccia a faccia con il proprietario della Breakpoint
Software, che difficilmente sarà lì a dirvi belle parole. Non
mi ritengo responsabile per eventuali danni causati al vostro
computer determinati dall'uso improprio di questo tutorial.
Questo documento è stato scritto per invogliarvi a registrare
legalmente i vostri programmi, e non a farvi fare uso dei
tantissimi file crack presenti in rete, infatti tale documento
aiuta a comprendere lo sforzo immane che ogni singolo
programmatore ha dovuto portare avanti per fornire ai rispettivi
consumatori i migliori prodotti possibili e per creare protezioni
così difficili da aggirare.
Noi reversiamo al solo scopo
informativo e di miglioramento del linguaggio Assembly.
Suonano al citofono. Ma chi può essere?
Era il proprietario
della Breakpoint Software. Non era venuto a dirmi belle parole.
Io c'ho provato a spiegargli che questo documento è stato
scritto per invogliarvi a registrare legalmente i vostri
programmi, ma non mi ha voluto credere. Mah!! 'Sta gente d'oggi!