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

android - .javaから.smaliへの直接変換。可能?

私はbaksmali/smaliツールを使用しています。しかし、.javaクラスを.smaliファイルにコンパイルする必要がある場合があります。したがって、最初にEclipseでコンパイルし、次に.APKを一連の.smaliファイルに逆アセンブルする必要があります。

1つのツールで.javaを.smaliに直接コンパイルすることは可能ですか?

私は自分で解決策を見つけることができませんでした...

0 投票する
6 に答える
258554 参照

java - APK の .smali ファイルを逆コンパイルする

APK ファイルを解凍できるAPK Managerをダウンロードしました。

ただし、それを解凍するだけで、.smali ファイルを .java に逆コンパイルしません。

.smali を .java に逆コンパイルすることは可能ですか?

0 投票する
3 に答える
76099 参照

java - Smali(およびDalvik VMオペコードを使用する方法/タイミング)を学ぶための最良の方法は何ですか?

私はJavaを知っていて、Cを学びましたが、使用したことはありません。仮想マシンでも実際のマシンでも、アセンブリの形式はわかりません。

Smaliをハックする方法を学ぶための最良の方法は何ですか?

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

java - baksmali を使用した Deodexing - Java クラスの Android 実装がありませんか?

Samsung Galaxy S2 デバイスに付属の ROM を逆アセンブル/デオデックスしようとしています。

Baksmali を使用していますが、Email.odex と MobilePrint.odex の 2 つのファイルを正しく取得できません。どちらも、ROM 上の他のものには含まれていないように見える Java クラス (javax.swing.abstracttable および java.awt.image) を必要としています。

これらのクラスの実装が Android/DalvikVM で利用できるかどうか知っている人はいますか?

サムスンは何かを使用したに違いありません。

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

android - タブレット画面の問題

画面に合わせてアプリを書き直そうとしています..すべてがフルスクリーンで動作しますが、コントロールサーフェスの画面:(

これが私の画面の写真です

http://www.mediafire.com/imageview.php?quickkey=j6r0okbmbfd3a24&thumb=4

赤のレイアウトは全画面表示にする必要がありますが、フレームがロックされているため、完全なレイアウトを見ることができません

http://www.mediafire.com/?p300cpn0t7634v5

apkファイル..ヘルプ!!!!

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

java - Android ソースの Framework.jar の置換/再構築

これはかなりばかげた質問かもしれませんが、すべての時間を試す前に、それについての洞察を得たかったのです。

Framework.jar を再構築し (たとえば、MIUI から Framework.jar をプルするなど)、それを smali に逆コンパイルしてから、最初から再構築することはできますか?

私はそれを行うことを計画しました + Cyanogen mod から同様のファイルを参照として取得し、ビルドします。私がこれらすべてを行うことに興味を持った理由は、多かれ少なかれ無線インターフェイス層を再構築する必要がある電話を持っていて、smali を直接編集してデバッグするのが面倒になったからです。

ここで質問することにしたのは、それが可能かどうかについて急いで判断する人が少ないからです。すべてを (理論上) 正しく追加し、後でソース内の classes.dex ファイルを再構築した場合、なぜ機能しないのかわかりません。

私が尋ねている主な理由は、MIUI を自分の電話に移植する取り組みの一環です。MIUIに付属のframework.jarを編集して正しく動作させるよりも、Javaを書き直して動作中のframework.jar(CM7またはAOSPソースにはない部分が含まれている)を再構築する方が頭痛が少ないと思いました。

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

android - smali によって生成された classes.dex が .apk で機能しない

samli によって生成された classes.dex から .apk を生成しようとしました。しかし、私はこれらのエラーを受け取ります:

失敗 [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE] (エミュレーターに .apk をインストールしようとしたとき)

失敗 [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES] (電話に .apk をインストールしようとしたとき)。

ここに私が行った手順があります:

  1. 既存の .apk から抽出された classes.dex
  2. ./baksmali classes.dex
  3. ./スマリアウト
  4. mv out.dex クラス.dex
  5. フォルダー内の .apk コンテンツ全体を抽出し、新しいものである classes.dex を置き換えました
  6. .zip ファイルを生成し、名前を *.apk に変更しました
  7. アプリに署名しました: jarsigner -verbose -keystore my-release-key.keystore MyFieldTest.apk mykey

マニフェストの冒頭は次のとおりです。

アプリが最初に HTC 開発者によって署名され、現在は私によって署名されていることを知っています。しかし、問題を解決する可能性はありますか?

ありがとう!フェリックス

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

java - DalvikVM オペコードの Smali 構文

プロローグ

dex ファイル用の Smali/Baksmali アセンブラー/逆アセンブラーを使用して、DalvikVM 命令について学習しようとしています。

問題

このJavaファイルから

次の smali アセンブリ ファイルを生成しました。

私の質問は次の行についてです。

私が理解しているように、これはクラスの静的オブジェクトPrintStreamをレジスタにロードします。さて、これはどういう意味ですか?java.lang.Systemv0out:

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

java - APK から逆コンパイルされた Java - 何もしない while ループ

apk を逆コンパイルすると、すぐに戻って他のコードが続くだけの while ループが多数見られます。

逆コンパイルでこのコードを生成したい場合、どの Java コードを記述しますか?

ノート。逆コンパイルはapktool→baksmali→smali→dex2jar

編集

Android APK から元の Java バイトコードを実際に取得することはできません (少なくとも方法はわかりません)。私のツールが不十分なリバース エンジニアリング作業を行っている可能性がありますが、smali の出力は次のとおりです。

以下に対応します。

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

android - Android のデバッグ (再設計された APK と waitForDebugger)

APKTOOL、Smali などのツール、および Eclipse や NetBeans などの IDE を使用して APK をブラック ボックス テストする方法を考え出そうとしています。必要なものはほとんど揃っています。デコンパイル/デバッグ インストゥルメント/再コンパイル/署名/アラインし、デバイス上で実行できます。

私が抱えている問題は、デバッガーが接続された後にブレークポイントを設定することです (ブレークポイントは Smali コードで設定されます)。ブレークポイントが Dalvik に送信されていないか、Dalvik がブレークポイントを尊重していないようです。いずれにせよ、プログラムがブレークポイントに遭遇したときに、デバッガーはスナップしません。いくつかの調査では、必要になる可能性があることが示されていますDebug.waitForDebugger。(http://stackoverflow.com/questions/3107587/android-with-jdb-confusion-using-waitfordebugger)。

が次のハードルであると仮定すると、ローカル スタックを調整した後、waitForDebuggerSmali 構文を使用して挿入できます。invoke-static {}, Landroid/os/Debug;->waitForDebugger()V

私の質問は、どこに呼び出しを挿入するのwaitForDebuggerですか? MainActivity静的コンストラクター ( clinit)、インスタンス コンストラクター ( init) onCreate、または他の場所で(マニフェストから)を選択する必要がありますか? Eclipse、NetBeans などの IDE は、デバッグ ビルドでこれをどのように行うのですか?