問題タブ [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 に答える
808 参照

android - Android デバイスにアプリがインストールされていないというエラー

Androidアプリを「リバースエンジニアリング」しようとしています。名前は何でも構いません。とにかく、apk を .zip に変更してから、classes.dex ファイルを取得し、smali ファイルを取得し、1 つの smali ファイルを変更してから、dex に変換して zip に戻し、apk に戻します。

不足しているものはありますか?以前は機能していましたが、以前は機能していましたが、突然機能しなくなりました。「アプリがインストールされていません」と表示されるだけです。アンドロイドのアップデートのせい?または何...?

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

java - Javaコードで1行を削除するようにsmaliコードを変更する方法

以下のJavaコードの580行目と581行目を削除したいです。このファイルは Android デバイスの system/framework/services.jar にあるため、実行した手順は次のとおりです。

  1. jar を smali に逆コンパイルする

  2. smali ファイルを変更する

  3. smali ファイルを dex ファイルに再コンパイルする

  4. services.jar にパックします。

  5. services.jar を Android 携帯電話にプッシュする

    問題は step2 で、smali ファイルを変更する方法です。:line580 とその下のコードを削除しようとしましたが、動作しません。コンパイル時に nullPointerExecption がスローされました...そして、/ error / が表示されますjd-gui ツール 誰かアドバイスをください。smali はまったくの初心者です。

Java コードは次のとおりです。

逆コンパイル後の smali コード:

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

android - 移植中にアラームで強制終了

apktool (api 19 から api 18 へ) で逆コンパイルして SemcClock.apk を移植しようとしましたが、一部の fc が発生しました。アラームは適切に設定されますが、アラーム時刻になると強制的に閉じます。

ログキャット

AlarmReceiver.smali

私はそれを移植できることを願っています!!ありがとう

0 投票する
0 に答える
817 参照

android - .smali ファイルの変更で、特定のコード ポイントで一部のコードを挿入するとクラッシュする

質問があります。特定のコードポイントにコードを挿入しようとしています。ほとんどの時点で、コード インジェクションは成功しました。

しかし、 「com/google/ads/e」パッケージの「a」メソッドでコード インジェクションが失敗しました。コード ポイントは':goto_2''return v0' の間です。

この時点で、'const/4 v1, 0x1' のようなコードは問題ありませんが、'const-string v1, "aaa"', 'new-instance v1, ~', 'sget v1, ~' のようなコードはクラッシュします。アプリは実行されていますが、v1 はコードに影響を与えません。

この問題は、モニター命令に関連しているようです。しかし、なぜこの問題が発生するのかわかりません。

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

android - スマリ語の解釈と理解。誰かが翻訳を手伝ってくれませんか?

私はAndroidデバイスで実験していて、アプリケーションコードをいじって、その間にそれを学ぶことができるようにしています. しかし、私はsmaliコードを編集する方法にかなりこだわっています. OOP 言語しか学んでいない人にとっては、それほど簡単なことではありません。

だから、これは私のsmaliコードです:

これは同等の Java コードです。

今のところ、私は物事を単純に保ち、Java の IE パラメータ 'MyProcessor.l' に定数を入れたいと思います:

次のようないくつかの異なるアプローチを試しました。

しかし、コンパイルエラーが発生していたので、明らかに間違っていました。その上、私は自分が何をなぜしているのかを本当に理解していませんでした。ここで論理的な手順を説明してくれる人はいますか? どうもありがとう。

0 投票する
0 に答える
2373 参照

android - smali コードにメソッド呼び出しを挿入する

メソッド「send()」の次の呼び出しをsmaliメソッドに追加したい:

send() は現在のクラスのメソッドです。X は、現在のクラス名のワイルドカードです。現在、未解決の問題が 2 つあります。

  1. なぜinvoke-directはレジスタp0を必要とするのですか? これはパラメーターだと思いました。

  2. p0 レジスタを考慮に入れる必要がありますか? この追加コードをそのままにしておくと、アプリ全体がコンパイルされなくなる可能性はありますか? もしそうなら、どのレジスタを使用する必要があるかをどのように見つけることができますか?

このメソッド呼び出しを任意のメソッドに追加したい。メソッドの構造がわからず、レジスタの使用法も予測できません。したがって、上位コードの p0 が変化する可能性があるかどうか、およびどのような条件下で変化するかを正確に知る必要があります。

私の意図を強調するために、簡単な例を示します。

スマートフォンに保存されている連絡先を読み取るだけのこのメソッドがあるとします。

このコードを .apk ファイルから自動的に抽出するパーサーを作成しました。ここで、上位のメソッド呼び出しを追加して、メソッドの機能を拡張したいと考えています。

この場合、最初に呼び出しを追加するだけです。唯一の違いは 13 行目に表示されます (コメントを参照)

.prologueの後にメソッド呼び出しを追加するだけです。しかし、この動作が常に機能するとは限りません。通話を追加する「完璧な」場所はありますか? 「invoke-direct」で常にp0を使用できますか、または使用できるレジスタを確認するにはどうすればよいですか?


質問: "invoke-direct" で常にp0を使用できますか、または使用できるレジスタを確認するにはどうすればよいですか?

回答: 「非静的メソッドの最初のパラメーターは、常にメソッドが呼び出されるオブジェクトです。」(リンクは最初のコメントのブローを参照)。私のメソッドは静的ではないため、常に p0 を使用できます

これで、メソッド呼び出しを配置する場所を知る必要があるだけです。

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

android - Android アプリを逆コンパイルするための要件は?

こんばんは、私はこの主題がStackOverFlowで非常に一般的であることを知っていますが、私の質問は少し異なり、ウェブ全体で解決策を見つけることができませんでした! ;)

これは私の質問です:

「アプリを Apktool で逆コンパイルできるようにするための (Eclypse での) 構築要件は何ですか?」

いくつかのテストを行ったところ、ルールが見つかりませんでした...たとえば、空のアプリを作成しました (作成して、プロジェクトを apk ファイルにエクスポートしました)。作成オプションは次のとおりです。

最小: API 14、Android 4.0

ターゲティング: API 14、Android 4.0

コンパイル: API 14、Android 4.0

そして、私はapkを逆コンパイルできませんでした... とにかく、私は自分のアプリを逆コンパイルできません! 建物のオプションで何を変更する必要がありますか? Apktool 1.4.3 および 2.0.0 でテストを行いました。また、proguard がアクティブ化されていません。このリンクは、21.1.1 より上のバージョンをビルドすると問題が発生する可能性があることを示していますが、ApkTool 2.0.0 で修正されました... https://code.google.com/p/android-apktool/issues/detail?id =680

エラーログ:

ApkTool 1.4.3 の場合:

ApkTool 2.0.0 の場合:

私を助けようとするすべての人に感謝します:)私はあなたたちを愛しています!

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

android - Dalvikバイトコードの「イン」と「アウト」とは何ですか?

dex コード (たとえば、dexdump ツールによって生成される) では、メソッド定義ごとに、「レジスタ」、「insns サイズ」などの他のメタデータに加えて、「ins」と「outs」が表示されます。

新しいレジスタを導入するために dex コードを計測しています。インストルメンテーションが失敗しています。追加した新しいレジスタの数に基づいて、"ins" と "outs" の値を変更する必要があるのではないかと思います。

私の質問は、これらの「イン」と「アウト」は何を表しているのでしょうか?

(fyi:これにはdexlib2を使用しています。)