問題タブ [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 - .javaから.smaliへの直接変換。可能?
私はbaksmali/smaliツールを使用しています。しかし、.javaクラスを.smaliファイルにコンパイルする必要がある場合があります。したがって、最初にEclipseでコンパイルし、次に.APKを一連の.smaliファイルに逆アセンブルする必要があります。
1つのツールで.javaを.smaliに直接コンパイルすることは可能ですか?
私は自分で解決策を見つけることができませんでした...
java - APK の .smali ファイルを逆コンパイルする
APK ファイルを解凍できるAPK Managerをダウンロードしました。
ただし、それを解凍するだけで、.smali ファイルを .java に逆コンパイルしません。
.smali を .java に逆コンパイルすることは可能ですか?
java - Smali(およびDalvik VMオペコードを使用する方法/タイミング)を学ぶための最良の方法は何ですか?
私はJavaを知っていて、Cを学びましたが、使用したことはありません。仮想マシンでも実際のマシンでも、アセンブリの形式はわかりません。
Smaliをハックする方法を学ぶための最良の方法は何ですか?
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 で利用できるかどうか知っている人はいますか?
サムスンは何かを使用したに違いありません。
android - タブレット画面の問題
画面に合わせてアプリを書き直そうとしています..すべてがフルスクリーンで動作しますが、コントロールサーフェスの画面:(
これが私の画面の写真です
http://www.mediafire.com/imageview.php?quickkey=j6r0okbmbfd3a24&thumb=4
赤のレイアウトは全画面表示にする必要がありますが、フレームがロックされているため、完全なレイアウトを見ることができません
http://www.mediafire.com/?p300cpn0t7634v5
apkファイル..ヘルプ!!!!
java - Android ソースの Framework.jar の置換/再構築
これはかなりばかげた質問かもしれませんが、すべての時間を試す前に、それについての洞察を得たかったのです。
Framework.jar を再構築し (たとえば、MIUI から Framework.jar をプルするなど)、それを smali に逆コンパイルしてから、最初から再構築することはできますか?
私はそれを行うことを計画しました + Cyanogen mod から同様のファイルを参照として取得し、ビルドします。私がこれらすべてを行うことに興味を持った理由は、多かれ少なかれ無線インターフェイス層を再構築する必要がある電話を持っていて、smali を直接編集してデバッグするのが面倒になったからです。
ここで質問することにしたのは、それが可能かどうかについて急いで判断する人が少ないからです。すべてを (理論上) 正しく追加し、後でソース内の classes.dex ファイルを再構築した場合、なぜ機能しないのかわかりません。
私が尋ねている主な理由は、MIUI を自分の電話に移植する取り組みの一環です。MIUIに付属のframework.jarを編集して正しく動作させるよりも、Javaを書き直して動作中のframework.jar(CM7またはAOSPソースにはない部分が含まれている)を再構築する方が頭痛が少ないと思いました。
android - smali によって生成された classes.dex が .apk で機能しない
samli によって生成された classes.dex から .apk を生成しようとしました。しかし、私はこれらのエラーを受け取ります:
失敗 [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE] (エミュレーターに .apk をインストールしようとしたとき)
失敗 [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES] (電話に .apk をインストールしようとしたとき)。
ここに私が行った手順があります:
- 既存の .apk から抽出された classes.dex
- ./baksmali classes.dex
- ./スマリアウト
- mv out.dex クラス.dex
- フォルダー内の .apk コンテンツ全体を抽出し、新しいものである classes.dex を置き換えました
- .zip ファイルを生成し、名前を *.apk に変更しました
- アプリに署名しました: jarsigner -verbose -keystore my-release-key.keystore MyFieldTest.apk mykey
マニフェストの冒頭は次のとおりです。
アプリが最初に HTC 開発者によって署名され、現在は私によって署名されていることを知っています。しかし、問題を解決する可能性はありますか?
ありがとう!フェリックス
java - DalvikVM オペコードの Smali 構文
プロローグ
dex ファイル用の Smali/Baksmali アセンブラー/逆アセンブラーを使用して、DalvikVM 命令について学習しようとしています。
問題
このJavaファイルから
次の smali アセンブリ ファイルを生成しました。
私の質問は次の行についてです。
私が理解しているように、これはクラスの静的オブジェクトPrintStream
をレジスタにロードします。さて、これはどういう意味ですか?java.lang.System
v0
out:
java - APK から逆コンパイルされた Java - 何もしない while ループ
apk を逆コンパイルすると、すぐに戻って他のコードが続くだけの while ループが多数見られます。
逆コンパイルでこのコードを生成したい場合、どの Java コードを記述しますか?
ノート。逆コンパイルはapktool→baksmali→smali→dex2jar
編集
Android APK から元の Java バイトコードを実際に取得することはできません (少なくとも方法はわかりません)。私のツールが不十分なリバース エンジニアリング作業を行っている可能性がありますが、smali の出力は次のとおりです。
以下に対応します。
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)。
が次のハードルであると仮定すると、ローカル スタックを調整した後、waitForDebugger
Smali 構文を使用して挿入できます。invoke-static {}, Landroid/os/Debug;->waitForDebugger()V
私の質問は、どこに呼び出しを挿入するのwaitForDebugger
ですか? MainActivity
静的コンストラクター ( clinit
)、インスタンス コンストラクター ( init
) onCreate
、または他の場所で(マニフェストから)を選択する必要がありますか? Eclipse、NetBeans などの IDE は、デバッグ ビルドでこれをどのように行うのですか?