問題タブ [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.

0 投票する
1 に答える
10273 参照

android - Androidのinvoke-virtualとinvoke-directの違いは何ですか

それinvoke-virtualは仮想メソッドを呼び出していると言いましたinvoke-directが、直接メソッドです。

しかし、「仮想法」とは何か、「直接法」とは何なのかよくわかりません。

つまり、どのようなメソッド呼び出しが行わinvoke-virtualれ、どのようなメソッドが呼び出されるのinvoke-directでしょうか。

誰か具体的な例を挙げてもらえますか?

0 投票する
2 に答える
2612 参照

android - 「smali」文法仕様 | スマリログインジェクション

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

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

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

0 投票する
1 に答える
411 参照

antlr4 - antlr4 用の smali 文法ファイル「.g4」

ここにある smali の文法ファイルは、antlrv3 用です。smali の .g4 ファイルが見つかりませんでした。この.g4はどのように作成されますか? antlrv3 .g ファイルを antlrv4 と互換性のあるファイルに変換する方法はありますか?

0 投票する
2 に答える
11552 参照

java - smali コード構文で「.line」は何を意味しますか? (Android-Smali コード)

この質問を見てください

逆コンパイルされた smali コードには、.line 3.line 7.

何がどう.lineあるべきか理解できません。使用法について詳しく教えてください。

0 投票する
1 に答える
470 参照

eclipse - Eclipse のスマリ サポートの追加

Eclipse を使用して smali プロジェクトを編集しようとしています。これにより、理論的には、smali に対してもすべての Java マジック (クラス定義を開く、階層を呼び出すなど) を使用できるようになるはずです。

Eclipse に対するある種のスマリ サポートは既にありますか?

何も見つからなかったので、現在 xtext を使用して自分で作成することを考えています。(しかし、私はxtextにはかなり慣れていません。)

smali コンパイラ自体が antrl3 を使用して記述されていることがわかりました。対応する文法記述は、xtext 文法を最初から指定する必要がないように見えます。

この説明を xtext のベースとして使用する良い方法はありますか?

または、その場合、xtext よりも良い方法がありますか?

0 投票する
1 に答える
12241 参照

java - Smali で既存のメソッドを変更する

私は smali の単純なメソッド (ここでは Android から来ています) を見てきました。Java の対応するものといくつかの例を比較して理解しようとしてきましたが、ほとんどがどのように機能するかを理解していると思いますが、行った変更はうまくいかないようです。

現在、Java のメソッドは次のとおりです。

そしてそれは小さいです:

上記のコンテキストで、メソッドを変更して Java と同等のことを行うにはどうすればよいでしょうreturn false;か? 私が見ることができたものから、0x0間違っていますが、smali をコンパイルするときにその原因となる問題を返すだけなので (REGISTER を期待していますか?)、正確に何をする必要があるのか​​ 疑問に思っていました。

解決策と説明をいただければ幸いです。特に目的というわけではなく、ただこれを見るのが好きです。