Comment cartographier les instructions binaires retour aux déclarations ou expressions à l'aide de la bibliothèque ASM?
-
26-09-2019 - |
Question
Je suis en train d'analyser bytecode Java dans une structure de données intermédiaire pour une utilisation ultérieure. Je suis tombé dans ASM. Il est puissant et stable. Cependant, je suis moment difficile de traduire les instructions binaires dos à l'expression java normale et déclarations. Pourrait point de qui que ce soit une direction pour moi?
La structure de données peut traiter ressembler à ceci:
ClassInfo
- FieldInfo
- MethodInfo
-- ForLoopStatement
-- WhileStatement
--- AssignmentExpression
--- FunctionCallExpression
...
En fait il n'y a rien de plus qu'une abstraction du langage java.
Merci.
La solution
db4o que nous utilisions ironiquement appelé BLOAT bibliothèque pour récupérer un entièrement construit à partir d'un AST corps de la méthode. Il fonctionnait assez bien pour nous, mais il ne repose pas sur l'ASM.
Autres conseils
Pourquoi ne pas rester avec Java bytecode tel qu'il est et si vous avez besoin d'une forme lisible par l'homme, désassembler simplement? Au moins votre question ne fait pas clairement pourquoi Java lui-même bytecode ne peut pas être la structure de données intermédiaire utilisé pour le stockage.
La version officielle du SDK Java a un outil appelé Javad .