Jump to content

Recommended Posts

Posted

Reverse engineering (ελλ. μηχανική αντιστροφής ή ανάστροφη μηχανίκευση), είναι μια μέθοδος που εφαρμόζεται για να μπορέσουμε να δούμε τον κώδικα με τον οπόιο είναι γραμμένο ένα εκτελέσιμο αρχείο.

 

Η μέθοδος αυτή πολύ χονδρικά θα μπορούσαμε να πούμε οτι είναι η αντίστροφη πορεία που πρέπει να ακολουθήσει κάποιος για να φτάσει εκεί που θέλει. Το reverse engineering είναι όρος που συναντάται πολύ συχνά σε διάφορες εφαρμοσμένες και θετικές επιστήμες, μια από αυτές και η πληροφορική.

 

Reverse engineering στην πληροφορική.

 

Όταν θέλουμε να φτιάξουμε μια εφαρμογή το πρώτο πράγμα που κάνουμε είναι να επιλέξουμε την γλώσσα προγραμματισμού με την οποία θα φτιάξουμε το πρόγραμμα και στην συνέχεια να αρχήσουμε την σύνθεση του προγράμματος γράφοντας κώδικα. Στο τέλος συνήθως κάνουμε και ένα compile την εφαρμογή μας ωστέ από κώδικας να μεταφραστεί σε εκτελέσιμο αρχείο (.exe) το οποίο με doubleclick θα μπορούμε να το τρέξουμε από τον υπολογιστή μας.

 

Έτσι λοιπόν έχοντας κάποιος στην κατοχή του ένα εκτελέσιμο αρχείο δεν μπορεί να γνωρίζει τον κώδικα. Με την μέθοδο της μηχανικής αντιστροφής ο σκοπός είναι έχοντας το εκτελέσιμο αρχείο να μπορέσουμε να φτάσουμε στον κώδικα με τον οποίο είναι γραμμένη η εφαρμογή. H συγκεκριμένη διαδικασία ονομάζεται και decompile (ελλ. αποσυμπίληση), δηλαδή η αντίστροφη πορεία του compile.

 

Reverse engineering και hacking.

 

Τα άτομα που ασχολούνται αποκλειστικά με αυτές τις τεχνικές αποκαλούνται και reversers ή reverse engineers. Πολλοί συγχέουν το reverse engineering με το hacking. Στην πραγματικότητα έχει έμμεση σχέση με αυτό, αλλά έχει άμεση σχέση με το cracking. Πράγματι είναι εφικτό με αυτή την μέθοδο να παρακαμφθούν διάφοροι μηχανισμοί προστασίας εμπορικών εφαρμογών ή ακόμη και να εντοπιστούν οι κωδικοί πρόσβασης και ενεργοποίησης.

 

Ακόμη εφόσον γίνει γνωστός ο κώδικας της εφαρμογής και βρεθούν και τα password πρόσβασης ο προγραμματιστής μπορεί να φτιάξει και ένα crack ή patch για το αντίστοιχο λογισμικό και να το διανέμει στο διαδύκτιο. Έτσι λοιπόν όλες οι εταιρίες κατασκευής λογισμικού πλέον λένε στις άδειες οτι απαγορεύεται το decompile ή reverse engineering. Αρκετές δε εταιρίες βάζουν και ειδικό password για να μην μπορεί κάποιος να έχει πρόσβαση στον κώδικα.

 

Reversing σε εφαρμογές γραμμένες με απλή Visual basic.

 

Η εφαρμογή του reverse engineering σε εκτελέσιμες εφαρμογές γραμμένες σε visual basic είναι η ευκολότερη υπόθεση για έναν reverser. Η visual basic είναι από τις μοναδικές γλώσσες προγραμματισμού που με την βοήθεια ενός decompiler από ένα απλό εκτελέσιμο αρχείο μπορούμε να πάρουμε άμεσα τον κώδικα με τον οποίον γράφτηκε με το πάτημα ενός κουμπιού. Ένας πολύ καλός decompiler για αυτό είναι ο VB decompiler. Υπάρχουν και περιπτώσεις που μπορούμε να πάρουμε άμεσα και κώδικα από εφαρμογές σε visual basic NET, παρά ταύτα δεν είναι πάντοτε εφικτό αυτό και πρέπει να ακολουθηθούν περισσότερα βήματα με ποιο σύνθετες διεργασίες.

 

Reversing σε εφαρμογές γραμμένες με άλλες γλώσσες προγραμματισμού.

 

Εδώ χρειάζονται περισσότερες γνώσεις και ενασχόληση με το reversing ωστέ να μπορέσουμε να φτάσουμε στον κώδικα με τον οποίο είναι γραμμένη μια εφαρμογή. Μάλιστα όσο μεγαλύτερο εύρος δυνατοτήτων έχει μια εφαρμογή σημαίνει οτι τόσο ποιο μεγάλος και περίπλοκος θα είναι ο κώδικας της εφαρμογής άρα θα πρέπει να ασχοληθούμε τόσο και περισσότερο. Οπότε η υπομονή και η επιμονή είναι βασικότατα στοιχεία για την επίτευξη των στόχων.

 

Το βασικό εργαλείο που χρησιμοποιούμε σε αυτές τις περιπτώσεις είναι ένας hex editor ένας debugger και ένας dissasembler. Μερικοί καλοί dissasemblers περιλαμβάνουν και hex editor καθώς και μερικούς decompilers αλλά και template editor. Στο διαδύκτιο θα βρείτε μερικούς decompilers και για άλλες γλώσσες προγραμματισμού εκτός της vb, όμως δύσκολα θα δώσουν απευθείας τον κώδικα μιας εφαρμογής. Επιπροσθέτως όταν κάποιος κατέχει μια εφαρμογή δεν μπορεί να γνωρίζει εξαρχής την γλώσσα με την οποία γράφτηκε άρα σχεδόν πάντοτε χρειαζόμαστε έναν πολύ καλό dissasembler που να τα περιλαμβάνει όλα.

 

Τα παραπάνω λογισμικά τα κάνουμε run όλα μαζί κατά το reversing γιατί θα χρειαστεί η χρήση όλων αυτών ωστέ να φτάσουμε στην εύρεση του κώδικα.

 

Ο debugger χρησιμεύει στην περίπτωση που θέλουμε να ελέγξουμε αν υπάρχει κάποιο λάθος στον κώδικα που έχουμε διαθέσιμο από την όλη διαδικασία. Αν υπάρχει λάθος πρέπει να ελέγξουμε μήπως κάναμε κάποιο λάθος βήμα.

 

Ο Hex editor μας βοηθάει να δούμε ένα αρχείο που θα επιλέξουμε σε δεκαεξαδική μορφή, άρα μετατρέπει την διαδική μορφή που είναι το αρχείο σε δεκαεξαδική, αυτό είναι σημαντικό διότι κάθε τετράδα αριθμών στο δεκαεξαδικό σύστημα αποτελεί χονδρικά και μια εντολή γραμμένη σε γλώσσα assembly. Κατ΄αυτόν τον τρόπο είναι εφικτό να καταλάβουμε την βασική δομή με την οποία είναι γραμμένη μια εφαρμογή αυτό θα γίνει με τον dissasembler.

 

O dissasembler λοιπόν κάνει την σημαντικότερη δουλειά, μας μετατρέπει έναν binary κώδικα σε εντολές. Ο binary κώδικας είναι λ.χ ο κώδικας σε 16-δική μορφή που πήραμε από τον hex editor. Έτσι φτάνουμε σχεδόν στον τελικό στόχο.

 

Όμως δεν τελειώσαμε καθώς πάντοτε υπάρχουν και κομμάτια κώδικα αμετάφραστα. Εκεί είναι λοιπόν που πρέπει να εφαρμόσουμε τις γνώσεις μας και μέσω δοκιμών με διάφορες μεταβλητές και με τον debugger να βρούμε τα κομμάτια του κώδικα που λείπουν.

 

Στο παραπάνω κείμενο έδωσα κάποιες πολύ βασικές πληροφορίες, στην πραγματικότητα το reverse engineering είναι εξαιρετικά ποιο πολύπλοκο και δεν εφαρμόζεται μόνο για hacking cracking κτλπ αλλά και για άλλες εργασίες που μπορούν να προσφέρουν περισσότερη άνεση και ευχρηστία σε κάποιον ο οποίος χρησιμοποιεί μια εφαρμογή κλειστού κώδικα και δεν τον ικανοποιεί απολύτος.

 

Πηγή: Ελληνική Χάκινγκ Σκηνή

  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • I will have a special offer until April 19. If you are interested, don’t hesitate to send me a message.
    • ⚔️ LINEAGE II KHADIA ⚔️ Interlude PTS (L2OFF) • Mid Rate PvP • Custom Endgame Experience 🔥 NOT JUST ANOTHER SERVER — A REAL BATTLEFIELD 🔥 Welcome to L2Khadia, where classic Interlude meets competitive PvP and custom progression. No fake numbers, no empty promises — only action, economy, war and long-term gameplay. ━━━━━━━━━━━━━━━━━━━━━━ 📊 SERVER RATES EXP: x100 SP: x150 Adena: x300 Spoil: x15 ━━━━━━━━━━━━━━━━━━━━━━ ⚔️ WHY KHADIA? ✔ Original Interlude Mechanics & Formulas ✔ Mid Rate PvP Balance ✔ Real Clan Wars / Sieges / Olympiad ✔ Stable & Fair Economy ✔ Active Staff Team ✔ Long-Term Project Vision ━━━━━━━━━━━━━━━━━━━━━━ 🗡️ KHADIA CUSTOM CONTENT 🔥 Khadia Weapons – Unique power & visuals 🛡 Khadia Armor – Raid Boss drops & crafting 🧥 Khadia Cloaks – Endgame progression items 💎 Designed for competitive PvP ━━━━━━━━━━━━━━━━━━━━━━ 🎁 REWARD SYSTEMS 🏆 PvP / PK Reward System 📦 Daily PvP Reward Package 👑 Raid Package from Boss Extract Rewards 🗳 Vote Reward System 📈 Rankings: PvP / PK / Clans / Castles ━━━━━━━━━━━━━━━━━━━━━━ 💎 VIP FEATURES ✔ VIP Buff Coin ✔ Nick / Title Colors ✔ Special VIP Chat ( ^ Key ) ✔ Exclusive VIP Benefits ━━━━━━━━━━━━━━━━━━━━━━ 🎮 QUALITY OF LIFE ✔ Auto Loot for Farm ✔ Auto Loot Disabled for Raid Boss ✔ Offline Shop System ✔ Remote Buff Coin ✔ RaidBoss Status NPC ✔ PvP / PK Ranking NPC ━━━━━━━━━━━━━━━━━━━━━━ 🌍 FARM ZONES • Elven Fortress [80] – Medium • Cave of Trials [80+] – Party Hard • Monastery of Silence [80] – Medium • PvP Zones Around Raid Bosses ━━━━━━━━━━━━━━━━━━━━━━ 🏰 CLAN & SIEGE SYSTEM ✔ Full Interlude Clan System ✔ Max Clan Level 8 + Clan Skills ✔ Max 3 Clans per Alliance ✔ No Kick / Leave Penalty ✔ Weekly Castle Sieges ━━━━━━━━━━━━━━━━━━━━━━ 🚀 JOIN NOW – START YOUR LEGEND 🚀 🌐 Website: www.l2khadia.com 💬 Discord: https://discord.gg/DnZrgWn77n ━━━━━━━━━━━━━━━━━━━━━━ No Pay To Win • Fair Gameplay • Real PvP • Custom Endgame Content       We Wish you the best game ! 
    • First of all, he doesn’t even know English. He needs to learn it first.
    • Which copies are you talking about? Hahaha, stop crying, everyone knows you're a copy-paste, you can't even program "hello world".
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..