Site hosted by Angelfire.com: Build your free website today!

PeBrowse PRO Use

A small handy guide...

by chopin

Έκθεση για το project:Cracking Tool

  Αυτή είναι η πρώτη έκθεση ενός καινούριου μέλους της M.a.s.k. ,του chopin.Αναφέρεται στο 
σπάσιμο ενός προγράμματος με την χρήση ενός εργαλείου το οποίο και αναλύεται στο πλαίσιο 
του 3ου project μας που αφορά τα cracking tools.Σίγουρα χρειάζεται να γνωρίζουμε την χρήση 
αρκετών εργαλείων καθώς κάποια από αυτά έχουν ιδιότητες που δεν υπάρχουν σε άλλα.
Καλό διάβασμα...



Εργαλεία: PEBrowse Professional Interactive V6.12.2 (www.smidgeonsoft.com) 
Δυσκολία: Εύκολο

Στόχος : TweakMASTER (www.tweakmaster.com)


Λίγα λόγια για τον debugger : 
 O συγκεκριμένος degubber είναι ένα καταπληκτικό εργαλείο ιδανικό για newbies.  Είναι Freeware 
πράγμα πολύ σημαντικό,η εγκατάστασή του είναι πολύ εύκολη και παρέχει βοήθεια για κάθε σχεδόν 
εντολή που θα συναντήσετε. Παρακάτω θα προσπαθήσω  να σας δείξω μερικές από τις δυνατότητές 
του χρησιμοποιόντας ένα πρόγραμμα-στόχο  που πιστεύω ότι έχει ένα πολύ έυκολο serial number.
Μερικές φορές για να σπάσεις  ένα πρόγραμμα είναι πολύ ποιο δύσκολο να βρεις το σωστό 
breakpoint από το να βρεις  το ίδιο το serial number. Στην προκειμένη περίπτωση δεν θα 
ασχοληθούμε με τον  τρόπο που βρίσκουμε το breakpoint αλλά μόνο με την εύρεση του σωστού S/N.

Ξεκινάμε  λοιπόν!! 

Φορτώνουμε αρχικά το στόχο-πρόγραμμα στον debugger και από το μενού view επιλέγουμε
disassemble at  4D4FFE.Στο παράθυρο που θα εμφανιστεί με δεξί  κλικ θέτουμε ένα breakpoint
σε αυτή την διεύθυνση. Στη συνέχεια πατώντας F5(run) τρέχουμε το πρόγραμμα και επιλέγουμε
Register.Στο παράθυρο που θα εμφανιστεί βάζουμε ένα τυχαίο user name & Serial number
(ας πούμε u/n: Chopin και s/n: 1234)  και πατάμε στο next.O debugger σπάει στην διεύθυνση που
θέσαμε το breakpoint.  Στα παράθυρα που θα εμφανιστούν ψάχνουμε για αυτό που αναγράφει :
 "Register contents  at EIP: 4D4FFE" (περιεχόμενα καταχωρητών στην διεύθυνση 4D4FFE) 
Με διπλό κλικ  πάνω στον EAX βλέπουμε τα περιεχόμενά του , που στην προκειμένη περίπτωση
είναι ο s/n που βάλαμε (1234).Έχουμε λοιπόν:
- MOV EDX, 4D5254 
Με διπλό κλικ στον EDX  βλέπουμε τι υπάρχει σε αυτή την διεύθυνση : EVALMORE
(Θα δούμε παρακάτω τι σημαίνει  αυτό ).
- CALL 404F00 (μπαίνουμε σ’ αυτό το call πατώντας το F11-step into-). 
Πατώντας αρκετές φορές το F11 φτάνουμε στην διεύθυνση :
- 404F29 MOV ECX, DWORD  PTR [ESI] o ECX έχει τώρα την τιμή 34333231
( hex ASCII code για το 4321 ή καλύτερα  1234 που είναι ο s/n που βάλαμε)
- 404F2B MOV EBX, DWORD PTR [EDI] o EBX έχει τώρα την τιμή 4C415645 
( hex ASCII code για το LAVE ή καλύτερα EVAL (τι μου θυμίζει  αυτό ? το βρήκαμε λίγο πιο πάνω )
- 404F2D CMP ECX, EBX 
- 404F2F JNZ 404F89 (αυτά  μας φτάνουν για αρχή πατάμε το F5 και παίρνουμε προς στιγμής
τουλάχιστον,αυτό  που μας αξίζει : ένα wrong s/n message).Αυτή τη φορά βάζουμε ως s/n τη 
λέξη EVAL  κάνοντας όλα τα παραπάνω και φτάνοντας στην διεύθυνση 404F29 θα δούμε ότι
περνάμε  την πρώτη σύγκριση αλλά κολλάει παρακάτω όταν ο EDX που έχει την τιμή string length
του S/N γίνεται 0. Για να μην μακρηγορούμε κάτι μου λέει ότι το CALL 404F00 απλά  συγκρίνει τον
s/n που βάζουμε εμείς με την λέξη EVALMORE. Για του λόγου το αληθές  βάζουμε ως s/n την
παραπάνω λέξη και πάμε από την αρχή.Κάτι έγινε αυτή τη φορά  περάσαμε από όλες τις συγκρίσεις
του συγκεκριμένου call και επιστρέψαμε στην διεύθυνση  
- 4D5008 JNZ 4D50E0
- 4D500E LEA EDX, DWORD PTR [EBP-2C]
 Έχουμε κάποια CALL στα  οποία δεν μπαίνουμε πατώντας το F10(step over) και φτάνουμε εδώ :
- 4D5027 MOV  EAX, DWORD PTR [EBP-28] ( User name στον EAX) 
- 4D502A MOV EDX, 4D5254 
- 4D502F  CALL 404F00 Θυμάστε τι κάνει αυτό το call ? σύγκρινε τον s/n με την λέξη EVALMORE,
τώρα συγκρίνει το user name με αυτή την λέξη βάζουμε λοιπόν ως user name την  ίδια λέξη και
τρέχουμε το πρόγραμμα τι παίρνουμε ? ένα msgbox που μας δίνει μερικές  ακόμα evaluation days.
Αν σας φτάνει αυτό σταματήστε εδώ ,αν όχι πάμε να βρούμε  το πραγματικό s/n . Πάλι από την αρχή
με το δικό σας user name , ένα τυχαίο s/n  & break point address :
- 4D5100 MOV EAX, DWORD PTR [EBP-4C] user name στον EAX. 
- 4D5103 POP EDX ( με διπλό κλικ στον EDX βλέπουμε ότι περιέχει τον s/n που βάλαμε  ).
- CALL 488030 (μπαίνουμε σ’ αυτό το call πατώντας το F11 και στη συνέχεια πατώντας  αρκετές
φορές το F10 φτάνουμε στην διεύθυνση
 - 488088 call 478D42  "μπαίνουμε" και σ’ αυτό το call με F11 ) αν όλα πήγαν καλά πρέπει να
βρισκόμαστε εδώ :
- 478D42  PUSH EBP 
- ......
- .......
- .......

F10 για να φτάσουμε εδώ :
- 478D71 : CALL  478A68 -> Έλεγχος string length και επιστροφή του στον EAX. 
- 478D79 : POP ECX  
- 478D7A : CMP EAX, 18 -> Έλεγχος για length = 24 (18h)
- JZ GOOD 
- XOR  EAX, EAX (VERY BAD) 
στο σημείο αυτό αναιρούμε όλα τα παλιά break point από το  view -> breakpoints στο παράθυρο 
που θα εμφανιστεί με δεξί κλικ ‘remove all break  points’ και θέτουμε ως νέο break point την
διεύθυνση μετά το call που ελέγχει  το string length όπως είδαμε πιο πάνω. Break point λοιπόν 
στην 478D79. Πάλι από  την αρχή αυτή την φορά με 24 ψηφία στον s/n. Αυτή τη φορά στην 
478D7A ο EAX έχει  τη σωστή τιμή 18h. Πάμε λοιπόν παρακάτω:
- 478D86 : MOV EDX, DWORD PTR[ESI] (  O EDX έχει την τιμή A36D4D) 
- CMP EDX, DWORD PTR [EBX] ( O EBX περιέχει  τον δικό μας s/n και συγκρίνεται με το 4D 
του EDX, ASCII code του 4D είναι το  Μ)  
- JNZ -> BAD αρά το πρώτο ψηφίο του s/n πρέπει να είναι το ‘M’ το βάζουμε  και συνεχίζουμε . 
Αφού ξεπεράσουμε και αυτό το CMP πάμε παρακάτω. Έχουμε μια σειρά  από call αλλά δεν 
χρειάζεται να μπούμε σε κάποιο από αυτά μέχρι να φτάσουμε στην  διεύθυνση 
- 478Ε1Β: CALL 478C99 ->Αυτό το CALL μετακινεί τον s/n που δώσαμε  (από το 7ο ψηφίο 
και μετά) στον EAX έτσι πιο κάτω έχουμε :
- MOV EBX, EAX (τμήμα  του s/n στον ebx )
- CMP ESI, EBX ( σύγκριση με την τιμή που έχει ο esi που είναι  για το δικό μου username 
047D44DE )
- JZ GOOD
- XOR EAX, EAX (VERY BAD)
 Βάζουμε  λοιπόν από το 7ο ψηφίο και μετά στον s/n 047D44DE και ξανακάνουμε τα παραπάνω.  
Αν έγιναν όλα σωστά πάμε παρακάτω στην διεύθυνση
- 478E3B: CALL 478B33. Αυτό το call ουσιαστικά  παίρνει τα 7 πρώτα ψηφία 
του s/n και αφού κάνει κάποιες πράξεις αποθηκεύει το  αποτέλεσμά τους στον EAX στη 
συνέχεια έχουμε επιστρέφοντας από το call: 
- 478E40  XOR EAX, EBX 
- 478E42 CMP EAX, ESI -> Ο ΕΑΧ όπως είπαμε έχει το αποτέλεσμα ενώ  ο esi έχει ουσιαστικά 
τα 8 τελευταία ψηφία του s/n αρά το μόνο που έχουμε να κάνουμε  είναι να βάλουμε ως 8 
τελευταία ψηφία του s/n την τιμή που έχει τώρα ο eax. 

ΑΥΤΟ  ΗΤΑΝ ΟΛΟ!

ΠΡΟΣΟΧΗ 
Φυσικά δεν χρειάζεται καν να σας θυμίσω πως το βοήθημα αυτό είναι αυστηρά για 
εκπαιδευτικούς σκοπούς και για την οποιαδήποτε λάθος χρήση τους ο 
δημιουργός του δεν φέρει καμία ευθύνη. Αν θέλετε έτοιμα cracks υπάρχουν
πολλά άλλα μέρη στο internet, εδώ παρέχουμε μόνο γνώση.

 

BACK HOME