問題タブ [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.
eclipse - Android携帯からEclipseへのAPKファイルの回復
残念ながら、コンピューターが盗まれ、クラウドサービスの自動バックアップが自動で表示されたように見えましたが、数か月前に停止していました。そのため、AndroidアプリのすべてのEclipseソースファイルを失いました。
私はこれらすべてのファイルを回復しようとしています、そしてあなたが最後のステップで私を助けることができることを望んでいました。
だから、私がしたこと:
PlayストアからダウンロードしたAstroファイルマネージャー:https ://play.google.com/store/apps/details?id = com.metago.astro&hl = en
Astro File Managerを使用してアプリをバックアップし、SDカードからコンピューターにコピーしました。
APK-toolをダウンロードしました:http ://code.google.com/p/android-apktool/ (
apktool-install-windows-r04-brut1.tar.bz2
および)そしてそれらをフォルダーapktool1.4.3.tar.bz2
に抽出しました。c:\windows
apkをデコードしました:
apktool d name.apk
これまでのところ良いですが、ここで私は立ち往生しています。私はAndroidプログラミングにまったく慣れていないので、次のようにします。
私は次のフォルダを取得します:res
そしてsmali
resフォルダにはすべてのリソースが含まれていますが...
src
以前はフォルダー内のEclipseにあったすべてのファイルがsmali
フォルダー内にあり、.smali
拡張子が付いていることがわかりますが、外観はまったく異なります。
それらを「通常」(Javaコード)に戻す方法はありますか?ある種のツール/トリックを段階的に?
ありがとう!
私はこのブログに参加しました:http://jack-mannino.blogspot.com.es/2010/09/reversing-android-apps-101.html
しかし、dex2jarファイルを抽出した後、Eclipseは.classファイルを開くことができません。助けてくれる人はいますか?また、ファイル名の背後にある$ 1、$ 2などはどういう意味ですか?
OK、基本的に、私がしたことですが、最後のステップがありません(推測しています):
- インストールされたAstroファイルマネージャー
- アプリをバックアップしました
- APKをコピーし、dex2jar:'d2j-dex2jar c:\ apk\myappname.apk'を使用してjarファイルを作成しました
- JD(http://java.decompiler.free.fr/?q=jdgui)を使用してzipファイルを作成しました
- zipファイルを抽出しました
したがって、すべてのソースコードを見ることができますが、マニフェストが欠落しているように見えるため、Eclipseはそれをプロジェクトとして開きません。
誰かが私に最後のヒントを与えることができますか?どうもありがとう!
android - 誤解を招く Smali の指示
私はapkを持っています。
私は apktool.jar を使用して小さなソースを取得しました。
しかし、生成された smali ファイルには、v0 を対象とするすべての命令が含まれているため、奇妙です。
サンプル手順:
各メソッドには、最後に .array-data があります。
これを理解するための助けは本当に役に立ちますか?
android - .smaliファイルの変更
機能テスト用のインストルメンテーションを追加するために、いくつかのandroidapkをリバースエンジニアリングしました。次のようなスマリを与えられて知りたいのですが、どうすれば次のようなものを追加できますか
.smaliファイルの各メソッドに。
android - Android の dex コードの自動変換
Dex ファイルを変換/計測したい。変換の目標には、コード カバレッジの測定が含まれます。ソースファイルは利用できないことに注意してください。したがって、Dex のインストルメント化が唯一のオプションです。
目標を達成するためのツールを作成するための例として参照できる既存のコード ベースがあるかどうか疑問に思っています。
私は、Smali プロジェクトと、Smali 上に構築された他の多くのプロジェクトについて知っています。ただし、これらのプロジェクトはいずれも、私の目的に適した例ではありません。
smali コードまたは dexlib 表現を自動的に変換するコードを探しています。そこから smali が生成されます。後者のオプションは、smali を生成するオーバーヘッドを回避できるため、私の目的には適しています。
android - Androidアプリケーションのsmaliコードを調べて漏洩した個人情報を特定する
Androidアプリケーションのsmaliコードを調べて、個人情報の漏洩を検知しようとしています。これまでの私の戦略は、個人情報(IMEI、電話番号など)を変数に置き換えるコードを検索し、インターネットに送信されるか、使用されなくなるまでその変数を追跡することです。
これを行うための優れたツールはありますか?
私はもう試した
- apkinspector(http://code.google.com/p/apkinspector/)
- アンドロガード(http://code.google.com/p/androguard/)
- androwarn(https://github.com/maaaaz/androwarn)
、しかし、これらのどれも私が望むことをすることができない可能性があります。
bytecode - smali コードと dalvik バイトコード仕様、および dex ファイル内のオペコードの実際の 16 進数を混同する
という名前の Java クラスを定義しましたDefineFields
。空のコンストラクターがあります。コンパイルすると、classes.dex
ファイル内の 16 進コードは次のように表示されます。
その後、バイトコード仕様を検索し、見つけました
仕様書を読みました。しかし、私は何が何であるかを完全に理解することはできません35c
。(私は c を知っています、x は仕様で説明テーブルを持っています。) さらに知りたいのは、と の10
16 進数をどのように説明できるかです。7010
0C
050C
これらは仕様のオペコードと一致しません。
android - smali(Android):インスタンス変数の操作
私はsmaliを使用して次のことを行おうとしています:
ArrayList
クラスにプライベートインスタンスフィールドを追加する- クラスのコンストラクターでインスタンスフィールドをインスタンス化します
add
クラスのメソッドの1つでフィールドに対して操作を実行します。
これらは、関連するコードスニペットです。(私のクラス名はcom.mypackage.MyClass
(ie com/mypackage/MyClass
))
# instance fields
smaliコードのセクションに、次の行を追加しました
パブリックコンストラクターメソッド(.method public constructor <init>()V
)で、行を追加しました
そして最後に、メソッド呼び出しを実行したいインスタンスメソッドにadd
、行を追加しました
ただし、ライン
エラーが発生します(logcatによる)
同じメソッドの同様のメソッド呼び出しで行ったことを比較したところ、何が問題だったのか理解できませんでした。
何か案が?
ありがとう!
android - smali: パラメータ化されたクラスの処理
List<E>
があり、そのメソッドを呼び出したいとしましょうadd(E object)
。私のリストは実際にはList<String>
です。この呼び出しを smali でどのように表現すればよいでしょうか?
すべきか
また
または、他の何か?
android - smali: 文字列定数
String 定数をレジスタにロードし、それをメソッド呼び出しで使用するために行う必要があることは他にありますか?
?
次の命令ブロック
次のlogcatエラーメッセージが表示されました:
java - Android APKからコールグラフを生成するには?
Google Play からいくつかの Android アプリケーションをダウンロードしました。Smali
リバース エンジニアリング ツールを使用してコードを入手apktool
しました。これらのアプリケーションのコール グラフを生成したいと考えています。スタック オーバーフローと Google に関する多くのリンクを見てきました。提案されたツールのほとんどは 用であるか、c/c++
または 用である場合Java
、もちろん私が持っていないソース コードが必要です。
コールグラフを自動的に生成する方法はありますか? ありがとう。