3

smali コードで使用できる文法仕様はありますか? 私は smali コードをいじろうとしていますが、私が見逃していることの 1 つは、smali の一部のメソッドには .prologue セクションがあり、一部にはないという事実です。残念ながら、ウィキにはスマリ文法に関する情報がないようです。以前にこのような状況に陥った人はいますか? どんな提案/解決策も大歓迎です。

EDIT1: 私の目的は、アプリのすべてのアクティビティの onResume メソッドの先頭にログ メッセージを追加することです。

EDIT2: ANTLRv4.1 パーサーを使用して smali ファイルを解析しています。CommonTree (解析ツリー) と TokenStream を smaliLexer から取得しています。ログ命令のトークンを作成し、解析ツリーを変更してから、classes.dex ファイルを生成するのは正しい方法ですか? これまでのところ、TokenStream を変更する方法が見つからず、変更された ParseTree から dex ファイルを生成できません。

4

2 に答える 2

3

smali 言語のほとんどすべてに、dalvik バイトコード/dex 形式の直接の類似物があります。この場合、.prologue ディレクティブは、debug_info_item の一部である DBG_SET_PROLOGUE_END デバッグ オペコードに対応します。

http://s.android.com/tech/dalvik/dex-format.htmlから:

prologue_end ステート マシン レジスタを設定し、追加される次の位置エントリがメソッド プロローグの終わり (メソッド ブレークポイントの適切な場所) と見なされることを示します。prologue_end レジスタは、特別な (>= 0x0a) オペコードによってクリアされます。

于 2013-08-02T18:00:02.157 に答える