事象の水平線

個人的ブックマーク代わりなメモ書きブログ。 地球は丸いよ。↓このへん。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop
前置きは省略で、自分用やり方メモ。(基本、他サイト様のパクリ)

1:apkの取得
ブラウザ上でgooglePlayを開き取得したいもののページへ行く
http://apps.evozi.com/apk-downloader/へ行く
先ほど開いた取得したいもののアドレスを打ち込んでダウンロード

2:apkの解凍
apkは7-zipで固められているらしいので適当なアーカイバで解凍する

3:バイナリXMLを読む
xmlはバイナリになっているらしいのでツールを使いコマンドプロンプトにテキストとして表示させる
ツール:android4me
リンクからAXMLPrinter2.jarをダウンロード
コマンドラインに以下のコマンドで表示される(java環境必須)

> java -jar AXMLPrinter2.jar AndroidManifest.xml
> java -jar AXMLPrinter2.jar res/layout/main.xml


とかとか

ファイルにするにはコマンドプロンプト上で右クリックすべて選択 → Enter(コピー) → テキストエディタに貼り付け保存
※AXMLPrinter2のソースも公開されているようなので自分で何とかすればファイル化とかもできるのかもしれない。中身見てないからやってない。

4:クラスファイルを変換
ツールを使いclasses.dexを.classに変換
ツール:dex2jar
なにやらいっぱいあるバッチファイルとシェルファイルの中からdex2jar.batを使用(windows)
コマンドラインで以下のコマンドで変換

> <dex2jar.batのパス> <classes.dexのパス>
例)> C:\dex2jar-0.0.9.15\dex2jar.bat C:\hogehoge\classes.dex


うまくいくとclasses.dexと同じ階層にclasses_dex2jar.jarが出来る
→ これをさらに(普通の)zip解凍

5:.classを.javaへ変換
ツールを使い.javaファイルへ変換
ツール:jad
Jad 1.5.8g for Windows 9x/NT/2000 on Intel platformをダウンロード → 解凍
コマンドプロンプトで以下のコマンドで変換

> <jad.exeのパス> -8 -d <出力パス> -s .java -r <.classファイルパス>
例)> C:\jad158g.win\jad.exe -8 -d C:\out -s .java -r C:\hoge\**\*.class



以下、個人用蛇足
6:eclipseで見れるようにする
いろいろと理解が足りないせいか、そのままではインポートできないので、読み出したAndroidManifest.xmlを参考にカラのプロジェクトを作る
パッケージ名をマニフェストにあわせておく方が後で楽。

一度、エクリプスで作ったカラのプロジェクトを他の場所にコピーし、srcの中身を5で変換した.javaファイルに置き換える

エクリプスでカラのプロジェクトは一旦ディスク上から削除し、中身を入れ替えたプロジェクトの方をインポートする

プロガードを使うとそうなるのかわからないけど、gotoとかいっぱいでエラーが大量に出てるが、一応エクリプスでコードを追える。

javaではgotoの概念が無いと思っていた(実際使えない。みたい。)が、一応予約語になっているらしくエクリプス上では他の制御文と同様の色つき太字で表示された。

<<参考>>
PlayストアからAndroidのapkを直接ダウンロードできる「APK Downloader」(2013年版)
Androidアプリをリバースエンジニアリングする方法
Android:Windowsでapkを逆コンパイルする方法
スポンサーサイト

PageTop

コメント

 ※
 ※
管理者にだけ表示を許可する
  ※ 必須項目です

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。