8.6 KiB
{% hint style="success" %}
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Consultez les plans d'abonnement!
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs aux HackTricks et HackTricks Cloud dépôts github.
Guide de décompilation Wasm et de compilation Wat
Dans le domaine de WebAssembly, les outils pour décompiler et compiler sont essentiels pour les développeurs. Ce guide présente quelques ressources en ligne et logiciels pour gérer les fichiers Wasm (WebAssembly binaire) et Wat (WebAssembly texte).
Outils en ligne
- Pour décompiler Wasm en Wat, l'outil disponible sur la démo wasm2wat de Wabt est très utile.
- Pour compiler Wat en Wasm, la démo wat2wasm de Wabt sert à cet effet.
- Une autre option de décompilation peut être trouvée sur web-wasmdec.
Solutions logicielles
- Pour une solution plus robuste, JEB de PNF Software offre des fonctionnalités étendues.
- Le projet open-source wasmdec est également disponible pour les tâches de décompilation.
Ressources de décompilation .Net
La décompilation des assemblies .Net peut être réalisée avec des outils tels que :
- ILSpy, qui propose également un plugin pour Visual Studio Code, permettant une utilisation multiplateforme.
- Pour des tâches impliquant décompilation, modification et recompilation, dnSpy est fortement recommandé. Un clic droit sur une méthode et le choix de Modifier la méthode permettent des modifications de code.
- dotPeek de JetBrains est une autre alternative pour décompiler des assemblies .Net.
Amélioration du débogage et de la journalisation avec DNSpy
Journalisation DNSpy
Pour enregistrer des informations dans un fichier en utilisant DNSpy, incorporez le snippet de code .Net suivant :
%%%cpp using System.IO; path = "C:\inetpub\temp\MyTest2.txt"; File.AppendAllText(path, "Mot de passe : " + password + "\n"); %%%
Débogage DNSpy
Pour un débogage efficace avec DNSpy, une séquence d'étapes est recommandée pour ajuster les attributs d'assembly pour le débogage, en s'assurant que les optimisations qui pourraient entraver le débogage sont désactivées. Ce processus inclut le changement des paramètres DebuggableAttribute
, la recompilation de l'assembly et l'enregistrement des modifications.
De plus, pour déboguer une application .Net exécutée par IIS, exécuter iisreset /noforce
redémarre IIS. Pour attacher DNSpy au processus IIS pour le débogage, le guide indique de sélectionner le processus w3wp.exe dans DNSpy et de commencer la session de débogage.
Pour une vue complète des modules chargés pendant le débogage, il est conseillé d'accéder à la fenêtre Modules dans DNSpy, suivie de l'ouverture de tous les modules et du tri des assemblies pour une navigation et un débogage plus faciles.
Ce guide encapsule l'essence de la décompilation WebAssembly et .Net, offrant un chemin pour les développeurs afin de naviguer ces tâches avec aisance.
Décompilateur Java
Pour décompiler le bytecode Java, ces outils peuvent être très utiles :
Débogage des DLL
Utilisation d'IDA
- Rundll32 est chargé à partir de chemins spécifiques pour les versions 64 bits et 32 bits.
- Windbg est sélectionné comme débogueur avec l'option de suspension lors du chargement/déchargement de la bibliothèque activée.
- Les paramètres d'exécution incluent le chemin de la DLL et le nom de la fonction. Cette configuration interrompt l'exécution lors du chargement de chaque DLL.
Utilisation de x64dbg/x32dbg
- Semblable à IDA, rundll32 est chargé avec des modifications de ligne de commande pour spécifier la DLL et la fonction.
- Les paramètres sont ajustés pour se briser à l'entrée de la DLL, permettant de définir un point d'arrêt au point d'entrée de la DLL souhaité.
Images
- Les points d'arrêt d'exécution et les configurations sont illustrés par des captures d'écran.
ARM & MIPS
- Pour l'émulation, arm_now est une ressource utile.
Shellcodes
Techniques de débogage
- Blobrunner et jmp2it sont des outils pour allouer des shellcodes en mémoire et les déboguer avec Ida ou x64dbg.
- Blobrunner versions
- jmp2it version compilée
- Cutter offre une émulation et une inspection de shellcode basées sur une interface graphique, mettant en évidence les différences dans le traitement des shellcodes en tant que fichier par rapport à un shellcode direct.
Déobfuscation et analyse
-
scdbg fournit des informations sur les fonctions de shellcode et les capacités de déobfuscation. %%%bash scdbg.exe -f shellcode # Informations de base scdbg.exe -f shellcode -r # Rapport d'analyse scdbg.exe -f shellcode -i -r # Hooks interactifs scdbg.exe -f shellcode -d # Dump du shellcode décodé scdbg.exe -f shellcode /findsc # Trouver le décalage de départ scdbg.exe -f shellcode /foff 0x0000004D # Exécuter à partir du décalage %%%
-
CyberChef pour désassembler le shellcode : recette CyberChef
Movfuscator
- Un obfuscateur qui remplace toutes les instructions par
mov
. - Les ressources utiles incluent une explication YouTube et des diapositives PDF.
- demovfuscator pourrait inverser l'obfuscation de movfuscator, nécessitant des dépendances comme
libcapstone-dev
etlibz3-dev
, et l'installation de keystone.
Delphi
- Pour les binaires Delphi, IDR est recommandé.
Cours
- https://github.com/0xZ0F/Z0FCourse_ReverseEngineering
- https://github.com/malrev/ABD
Déobfuscation binaire
{% hint style="success" %}
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Consultez les plans d'abonnement!
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs aux HackTricks et HackTricks Cloud dépôts github.