{% 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 %}