EXARXEIA_CITY Δημοσ. 31 Μαΐου 2006 Δημοσ. 31 Μαΐου 2006 Εχω κάνει ενα απλο πρόγραμμα σε delphi με ενα text και ενα button. Οταν βάζεις τον σωστο κωδικο το προγραμμα κλεινει αλλιως βγάζει μηνυμα "wrong pass". Aνοιγω λοιπον το πρόγραμμα με το w32dasm για disassembly και κάνω search για το "wrong pass", το βρισκω, κοιταω πανω πανω μεχρι να βρω τα unconditional or conditional jumps και βρίσκω την τιμη 004537F5©. Ανοιγω το αρχειο με ενα hex editor (hiew) βρισκω τον καταχωρητη(αν λεω σωστα) και δινω την τιμη 90(nop=no operation). Οταν λοιπον τρεχω την εφαρμογη, βάζω κάποιον κωδικο και οταν πατάω το κουμπι μου βγαζει Access violation. Γιατι ? σε παλια προγράμματα με αυτην την μέθοδο δεν ειχα πρόβλημα.
gtroza Δημοσ. 31 Μαΐου 2006 Δημοσ. 31 Μαΐου 2006 άν θυμάμαι καλά nop = μη κάνεις τίποτα για το "χρόνο" της εντολης nop μετα πάει στην αμέσως επόμενη εντολη πρέπει να κάνεις jump στο "σημείο του προγράμματος" που θέλεις να σε πηγαίνει ο κωδικός που βάζεις
damn3 Δημοσ. 31 Μαΐου 2006 Δημοσ. 31 Μαΐου 2006 posa nop bazeis? 1? dokimase na baleis gia ola ta bytes tis entolis (pisteuw sthn periptwsh sou 2 nop).
tech25 Δημοσ. 31 Μαΐου 2006 Δημοσ. 31 Μαΐου 2006 και βρίσκω την τιμη 004537F5© Ayto pou dineis einai to offset. Postare ton kodika se ayto to offset.
EXARXEIA_CITY Δημοσ. 31 Μαΐου 2006 Μέλος Δημοσ. 31 Μαΐου 2006 Τον κωδικά ? απο το w32dasm η απο delphi ?
Επισκέπτης Δημοσ. 1 Ιουνίου 2006 Δημοσ. 1 Ιουνίου 2006 profanws apo w32dasm...alliws ti na to kaneis to offset?
Legionnaire Δημοσ. 1 Ιουνίου 2006 Δημοσ. 1 Ιουνίου 2006 Εχω κάνει ενα απλο πρόγραμμα σε delphi με ενα text και ενα button. Οταν βάζεις τον σωστο κωδικο το προγραμμα κλεινει αλλιως βγάζει μηνυμα "wrong pass".Aνοιγω λοιπον το πρόγραμμα με το w32dasm για disassembly και κάνω search για το "wrong pass"' date=' το βρισκω, κοιταω πανω πανω μεχρι να βρω τα unconditional or conditional jumps και βρίσκω την τιμη 004537F5©. Ανοιγω το αρχειο με ενα hex editor (hiew) βρισκω τον καταχωρητη(αν λεω σωστα) και δινω την τιμη 90(nop=no operation). Οταν λοιπον τρεχω την εφαρμογη, βάζω κάποιον κωδικο και οταν πατάω το κουμπι μου βγαζει Access violation. Γιατι ? σε παλια προγράμματα με αυτην την μέθοδο δεν ειχα πρόβλημα.[/quote'] Θα πρέπει να εισάγεις σε binary/hex code την εντολη "jump <mem_addr>" όπου <mem_addr> η διεύθυνση μνήμης που θέλεις (π.χ. της return). Το NoOP απλά καταναλώνει ένα κύκλο προγράμματος και χρησιμοποιείται όταν δεν ξέρεις ακριβώς την διεύθυνση του jump. Οπότε "πηδάς" στο περίπου και βάζεις αρκετά NoOP (εκεί που πήδηξες) ώστε κάποια στιγμή να εκτελεστεί ο κώδικας που στόχευες.
MrTryANalyzer Δημοσ. 1 Ιουνίου 2006 Δημοσ. 1 Ιουνίου 2006 Παράδειγμα το Jne 75 51 μετά απο nop-άρισμα γίνεται nop nop 90 90. Αφού λες οτι με την σωστή εισαγωγή κωδικού τότε το πρόγραμμα κάνει έξοδο, ψάξε να βρείς κάποιο conditional jump το οποίο θα σε πηγαίνει στο API ExitProccess ή κάτι παρόμοιο.
tech25 Δημοσ. 1 Ιουνίου 2006 Δημοσ. 1 Ιουνίου 2006 Giati den postareis ton kodika se ayto to offset? P.S. Isos tha itan kalytera an to case einai me je i jne ka to antistrepeis 75->74 or else 74->75
EXARXEIA_CITY Δημοσ. 1 Ιουνίου 2006 Μέλος Δημοσ. 1 Ιουνίου 2006 ναι tech25 απλα δεν κατάλαβα. ειναι 7509 jne -edit- ναι δουλεψε ετσι ! το εκανα 74, μπορεις να μου πεις λιγο τι ακριβως εγινε ?
EXARXEIA_CITY Δημοσ. 1 Ιουνίου 2006 Μέλος Δημοσ. 1 Ιουνίου 2006 α ναι οκ καταλαβα, το jump if not equal γινετε jump if equal οποτε οταν βαζω αλλο κωδικο τον παιρνει σωστα και οταν βαζω τoν σωστο τον παιρνει λάθος. thanks guys για την βοηθεια.
tech25 Δημοσ. 1 Ιουνίου 2006 Δημοσ. 1 Ιουνίου 2006 Mporeis na to kaneis kai me jump (jmp) oste aneksartita ama bazeis sosto i lathos na pigainei sto simeio pou theleis.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.