問題タブ [smali]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Androidのinvoke-virtualとinvoke-directの違いは何ですか
それinvoke-virtual
は仮想メソッドを呼び出していると言いましたinvoke-direct
が、直接メソッドです。
しかし、「仮想法」とは何か、「直接法」とは何なのかよくわかりません。
つまり、どのようなメソッド呼び出しが行わinvoke-virtual
れ、どのようなメソッドが呼び出されるのinvoke-direct
でしょうか。
誰か具体的な例を挙げてもらえますか?
android - 「smali」文法仕様 | スマリログインジェクション
smali コードで使用できる文法仕様はありますか? 私は smali コードをいじろうとしていますが、私が見逃していることの 1 つは、smali の一部のメソッドには .prologue セクションがあり、一部にはないという事実です。残念ながら、ウィキにはスマリ文法に関する情報がないようです。以前にこのような状況に陥った人はいますか? どんな提案/解決策も大歓迎です。
EDIT1: 私の目的は、アプリのすべてのアクティビティの onResume メソッドの先頭にログ メッセージを追加することです。
EDIT2: ANTLRv4.1 パーサーを使用して smali ファイルを解析しています。CommonTree (解析ツリー) と TokenStream を smaliLexer から取得しています。ログ命令のトークンを作成し、解析ツリーを変更してから、classes.dex ファイルを生成するのは正しい方法ですか? これまでのところ、TokenStream を変更する方法が見つからず、変更された ParseTree から dex ファイルを生成できません。
antlr4 - antlr4 用の smali 文法ファイル「.g4」
ここにある smali の文法ファイルは、antlrv3 用です。smali の .g4 ファイルが見つかりませんでした。この.g4はどのように作成されますか? antlrv3 .g ファイルを antlrv4 と互換性のあるファイルに変換する方法はありますか?
eclipse - Eclipse のスマリ サポートの追加
Eclipse を使用して smali プロジェクトを編集しようとしています。これにより、理論的には、smali に対してもすべての Java マジック (クラス定義を開く、階層を呼び出すなど) を使用できるようになるはずです。
Eclipse に対するある種のスマリ サポートは既にありますか?
何も見つからなかったので、現在 xtext を使用して自分で作成することを考えています。(しかし、私はxtextにはかなり慣れていません。)
smali コンパイラ自体が antrl3 を使用して記述されていることがわかりました。対応する文法記述は、xtext 文法を最初から指定する必要がないように見えます。
この説明を xtext のベースとして使用する良い方法はありますか?
または、その場合、xtext よりも良い方法がありますか?
java - Smali で既存のメソッドを変更する
私は smali の単純なメソッド (ここでは Android から来ています) を見てきました。Java の対応するものといくつかの例を比較して理解しようとしてきましたが、ほとんどがどのように機能するかを理解していると思いますが、行った変更はうまくいかないようです。
現在、Java のメソッドは次のとおりです。
そしてそれは小さいです:
上記のコンテキストで、メソッドを変更して Java と同等のことを行うにはどうすればよいでしょうreturn false;
か? 私が見ることができたものから、0x0
間違っていますが、smali をコンパイルするときにその原因となる問題を返すだけなので (REGISTER を期待していますか?)、正確に何をする必要があるのか 疑問に思っていました。
解決策と説明をいただければ幸いです。特に目的というわけではなく、ただこれを見るのが好きです。