{% hint style="success" %} Μάθετε & εξασκηθείτε στο AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Υποστήριξη HackTricks * Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! * **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %} # Οδηγός Αποσυμπίεσης Wasm και Συμπίεσης Wat Στον τομέα του **WebAssembly**, τα εργαλεία για **αποσυμπίεση** και **συμπίεση** είναι απαραίτητα για τους προγραμματιστές. Αυτός ο οδηγός εισάγει μερικούς διαδικτυακούς πόρους και λογισμικό για την επεξεργασία αρχείων **Wasm (WebAssembly binary)** και **Wat (WebAssembly text)**. ## Διαδικτυακά Εργαλεία - Για να **αποσυμπιέσετε** το Wasm σε Wat, το εργαλείο που είναι διαθέσιμο στη [δείγμα wasm2wat του Wabt](https://webassembly.github.io/wabt/demo/wasm2wat/index.html) είναι χρήσιμο. - Για **συμπίεση** του Wat πίσω σε Wasm, η [δείγμα wat2wasm του Wabt](https://webassembly.github.io/wabt/demo/wat2wasm/) εξυπηρετεί τον σκοπό. - Μια άλλη επιλογή αποσυμπίεσης μπορεί να βρεθεί στο [web-wasmdec](https://wwwg.github.io/web-wasmdec/). ## Λύσεις Λογισμικού - Για μια πιο ισχυρή λύση, το [JEB από την PNF Software](https://www.pnfsoftware.com/jeb/demo) προσφέρει εκτενή χαρακτηριστικά. - Το ανοιχτού κώδικα έργο [wasmdec](https://github.com/wwwg/wasmdec) είναι επίσης διαθέσιμο για εργασίες αποσυμπίεσης. # Πόροι Αποσυμπίεσης .Net Η αποσυμπίεση των .Net assemblies μπορεί να επιτευχθεί με εργαλεία όπως: - [ILSpy](https://github.com/icsharpcode/ILSpy), το οποίο προσφέρει επίσης ένα [plugin για το Visual Studio Code](https://github.com/icsharpcode/ilspy-vscode), επιτρέποντας τη διαλειτουργικότητα. - Για εργασίες που περιλαμβάνουν **αποσυμπίεση**, **τροποποίηση** και **επανσυμπίεση**, το [dnSpy](https://github.com/0xd4d/dnSpy/releases) συνιστάται ιδιαίτερα. **Κάντε δεξί κλικ** σε μια μέθοδο και επιλέξτε **Τροποποίηση Μεθόδου** για να κάνετε αλλαγές στον κώδικα. - [JetBrains' dotPeek](https://www.jetbrains.com/es-es/decompiler/) είναι μια άλλη εναλλακτική για την αποσυμπίεση των .Net assemblies. ## Ενίσχυση της Αποσφαλμάτωσης και Καταγραφής με DNSpy ### Καταγραφή DNSpy Για να καταγράψετε πληροφορίες σε ένα αρχείο χρησιμοποιώντας το DNSpy, ενσωματώστε το παρακάτω απόσπασμα κώδικα .Net: %%%cpp using System.IO; path = "C:\\inetpub\\temp\\MyTest2.txt"; File.AppendAllText(path, "Κωδικός πρόσβασης: " + password + "\n"); %%% ### Αποσφαλμάτωση DNSpy Για αποτελεσματική αποσφαλμάτωση με το DNSpy, προτείνεται μια σειρά βημάτων για να προσαρμόσετε τα **attributes Assembly** για αποσφαλμάτωση, διασφαλίζοντας ότι οι βελτιστοποιήσεις που θα μπορούσαν να εμποδίσουν την αποσφαλμάτωση είναι απενεργοποιημένες. Αυτή η διαδικασία περιλαμβάνει την αλλαγή των ρυθμίσεων `DebuggableAttribute`, την επανασυμπίεση του assembly και την αποθήκευση των αλλαγών. Επιπλέον, για να αποσφαλματώσετε μια εφαρμογή .Net που εκτελείται από το **IIS**, η εκτέλεση του `iisreset /noforce` επανεκκινεί το IIS. Για να συνδέσετε το DNSpy στη διαδικασία IIS για αποσφαλμάτωση, ο οδηγός καθοδηγεί στην επιλογή της διαδικασίας **w3wp.exe** μέσα στο DNSpy και στην έναρξη της συνεδρίας αποσφαλμάτωσης. Για μια συνολική εικόνα των φορτωμένων μονάδων κατά την αποσφαλμάτωση, συνιστάται η πρόσβαση στο παράθυρο **Modules** στο DNSpy, ακολουθούμενη από το άνοιγμα όλων των μονάδων και την ταξινόμηση των assemblies για ευκολότερη πλοήγηση και αποσφαλμάτωση. Αυτός ο οδηγός συνοψίζει την ουσία της αποσυμπίεσης WebAssembly και .Net, προσφέροντας μια διαδρομή για τους προγραμματιστές να πλοηγηθούν σε αυτές τις εργασίες με ευκολία. ## **Java Decompiler** Για να αποσυμπιέσετε το Java bytecode, αυτά τα εργαλεία μπορεί να είναι πολύ χρήσιμα: - [jadx](https://github.com/skylot/jadx) - [JD-GUI](https://github.com/java-decompiler/jd-gui/releases) ## **Αποσφαλμάτωση DLLs** ### Χρησιμοποιώντας IDA - **Rundll32** φορτώνεται από συγκεκριμένες διαδρομές για 64-bit και 32-bit εκδόσεις. - **Windbg** επιλέγεται ως ο αποσφαλματωτής με την επιλογή να ανασταλεί η φόρτωση/εκφόρτωση βιβλιοθήκης ενεργοποιημένη. - Οι παράμετροι εκτέλεσης περιλαμβάνουν τη διαδρομή DLL και το όνομα της συνάρτησης. Αυτή η ρύθμιση σταματά την εκτέλεση κατά την φόρτωση κάθε DLL. ### Χρησιμοποιώντας x64dbg/x32dbg - Παρόμοια με την IDA, το **rundll32** φορτώνεται με τροποποιήσεις γραμμής εντολών για να προσδιορίσει τη DLL και τη συνάρτηση. - Οι ρυθμίσεις προσαρμόζονται για να σπάσουν στην είσοδο DLL, επιτρέποντας την τοποθέτηση σημείων διακοπής στο επιθυμητό σημείο εισόδου DLL. ### Εικόνες - Τα σημεία και οι ρυθμίσεις διακοπής εκτέλεσης απεικονίζονται μέσω στιγμιότυπων οθόνης. ## **ARM & MIPS** - Για προσομοίωση, το [arm_now](https://github.com/nongiach/arm_now) είναι ένας χρήσιμος πόρος. ## **Shellcodes** ### Τεχνικές Αποσφαλμάτωσης - **Blobrunner** και **jmp2it** είναι εργαλεία για την κατανομή shellcodes στη μνήμη και την αποσφαλμάτωσή τους με την Ida ή το x64dbg. - Blobrunner [εκδόσεις](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5) - jmp2it [συγκεντρωμένη έκδοση](https://github.com/adamkramer/jmp2it/releases/) - **Cutter** προσφέρει GUI-based προσομοίωση και επιθεώρηση shellcode, επισημαίνοντας τις διαφορές στη διαχείριση shellcode ως αρχείο σε σχέση με άμεσο shellcode. ### Αποκατάσταση και Ανάλυση - **scdbg** παρέχει πληροφορίες σχετικά με τις λειτουργίες shellcode και τις δυνατότητες αποκατάστασης. %%%bash scdbg.exe -f shellcode # Βασικές πληροφορίες scdbg.exe -f shellcode -r # Αναφορά ανάλυσης scdbg.exe -f shellcode -i -r # Διαδραστικά hooks scdbg.exe -f shellcode -d # Dump αποκωδικοποιημένου shellcode scdbg.exe -f shellcode /findsc # Βρείτε την αρχική μετατόπιση scdbg.exe -f shellcode /foff 0x0000004D # Εκτέλεση από μετατόπιση %%% - **CyberChef** για αποσυναρμολόγηση shellcode: [Συνταγή CyberChef](https://gchq.github.io/CyberChef/#recipe=To_Hex%28'Space',0%29Disassemble_x86%28'32','Full%20x86%20architecture',16,0,true,true%29) ## **Movfuscator** - Ένας obfuscator που αντικαθιστά όλες τις εντολές με `mov`. - Χρήσιμοι πόροι περιλαμβάνουν μια [εξήγηση στο YouTube](https://www.youtube.com/watch?v=2VF_wPkiBJY) και [PDF διαφάνειες](https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas_2015_the_movfuscator.pdf). - **demovfuscator** μπορεί να αντιστρέψει την obfuscation του movfuscator, απαιτώντας εξαρτήσεις όπως `libcapstone-dev` και `libz3-dev`, και εγκαθιστώντας το [keystone](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md). ## **Delphi** - Για τα δυαδικά αρχεία Delphi, συνιστάται το [IDR](https://github.com/crypto2011/IDR). # Μαθήματα * [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse_ReverseEngineering) * [https://github.com/malrev/ABD](https://github.com/malrev/ABD) \(Αποκατάσταση δυαδικών αρχείων\) {% hint style="success" %} Μάθετε & εξασκηθείτε στο AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Υποστήριξη HackTricks * Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! * **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}