J'ai un code PPC que je veux convertir dans son code C d'origine, y at-il un moyen de le faire? Peut-être une personne (comme quelqu'un qui connaît PPC pour reconstruire le code C?) Ou un programme?Est-il possible de convertir PPC Assembly en C?
Répondre
Boomerang prétend soutenir la décompilation PPC.
Oui et non.
Il est possible en principe de traduire un programme dans n'importe quelle langue vers n'importe quelle autre langue. Les résultats ne seront pas beaux. Si le code existant est vraiment le résultat d'une compilation sans trop d'optimisation intelligente, alors il est probable qu'un processus assez rote peut le ramener à C. Cela est souvent facile à faire manuellement pour de petites quantités de code , mais ennuyeux et l'erreur sujette à de grandes bases de code.
Il existe des outils de rétro-ingénierie dans la nature qui font des déclarations sur la décompilation. Ce n'est pas un problème facile dans le cas général.
Une approche de l'automatisation du problème consiste à créer un ensemble PPC (ou même binaire) frontal pour un compilateur qui prend déjà en charge un backend de langage C. Le résultat est un compilateur croisé qui lit le code PPC et produit un code C très obfusqué. Je sais qu'il y a un back-end C pour GCC, par exemple. Quelle que soit l'approche que vous adopterez, il sera probablement essentiel d'avoir une bonne suite de tests (et la possibilité de l'exécuter) pour le binaire existant afin de pouvoir prouver que la traduction est équivalente. Notez que vous ne recevrez jamais les commentaires originaux, et aurez uniquement accès aux noms de variables et de fonctions d'origine qui ont fait une table de symboles ou des informations de débogage similaires.
Ce que j'essaie de faire est de tenter de récupérer les clés de chiffrement stockées à l'origine dans l'exécutable. En utilisant l'IDA, je l'ai transmis au PPC et il y a des fonctions dans PPC qui décryptent directement et qui stockent également les clés de chiffrement. Si cela a du sens. – user330416
@user: Vous n'avez pas besoin de "décompiler en C" tout l'exécutable juste pour ça. Veuillez mettre à jour votre question – ruslik
Ensuite, vous faites face à un plus grand défi. Moi qui étais mon code, j'écrirais ces fonctions à la main, en utilisant tous les trucs que je pourrais trouver ou inventer pour éviter la divulgation facile des clés. Ils ne seront pas faciles à décompiler du tout. Votre meilleur pari peut être la simulation de leur fonctionnement, et l'inférence des valeurs de clé à la suite du passage du code en direct. – RBerteig
Non. Jamais. Décompiler n'est pas la même chose que récupérer c. Vous ne pouvez jamais revenir en arrière. Vous pouvez essayer de l'inverser, essayer de comprendre ce qu'il fait, mais certaines informations sont définitivement perdues.
Ceci est du projet boomerang:
Cependant, un décompilateur général ne cherche pas à renverser toutes les actions du décompilateur, plutôt transforme le programme d'entrée à plusieurs reprises jusqu'à ce que le résultat est le code source de haut niveau. Par conséquent, ne recréera pas le fichier source d'origine; probablement rien de tel.
Il crée un code C qui pourrait être (mais ne le saura jamais) la source C.
Bien sûr, dans de nombreux cas, cela suffit. Il peut être utilisé pour déplacer un binaire hérité vers une nouvelle plate-forme, par exemple. Bien qu'un simulateur de la plate-forme héritée soit souvent un meilleur choix .... – RBerteig
IDA Pro 6.95 inclut un décompilateur PPC. Mais c'est peu cher (2350 $)
- 1. Convertir le programme C++ en assembly
- 2. Mips Assembly Language Convertir C conditionnel
- 3. C# Assembly Injection Check
- 4. Utilitaire pour convertir un assembly satellite en fichier .resource
- 5. C# CLR Assembly Query
- 6. Signature d'un assembly C++ en mode mixte
- 7. Chiffrer un assembly [C#]
- 8. Microphone PPC Windows Mobile
- 9. convertir C++ en vb6
- 10. Convertir VB en C#
- 11. Maven assembly: assembly
- 12. API assembly
- 13. Empreinte de Lua sur un micro PPC
- 14. Comment convertir AVI en 3gp en C#?
- 15. En Line Assembly Exemple
- 16. résultat possible en C#
- 17. WPF: Est-il possible de convertir le code suivant de Procedural (C#) en Declarative (XAML)?
- 18. Comment puis-je récupérer la version d'un assembly en C#?
- 19. Convertir hexadécimal en binaire C++
- 20. C# convertir hexadécimal en ip
- 21. C#: Convertir T en T []
- 22. Convertir C# System.Timer en Threading.Timer
- 23. convertir datetime js en C#
- 24. Comment convertir le code C# en C++
- 25. Convertir __declspec en _export C++
- 26. Comment convertir en utilisant C#?
- 27. Est-il possible de convertir nvarchar en int?
- 28. est possible de convertir un MBCS en DBCS?
- 29. C# Création d'un assembly pour référence future
- 30. Convertir un extrait de C# en vbscript
PPC comme dans PowerPC? – ruslik
Oui, l'assemblage PowerPC. – user330416
Vous ne pouvez pas obtenir le * original * C, car la compilation en code machine est un processus avec perte. Il n'y a pas de correspondance 1 à 1. Un désassembleur/décompilateur pour Power est cependant hors de mon expertise. – SingleNegationElimination