2011-01-30 13 views
1

私は現在、人生を含む会社のアプリケーションを開発しています。私がアクセスする( "http://company.com/files/xml/livescoring.xml"のようなネットから)アクセスするXMLファイルは、公開されることを意図したものではなく、私にしか知られていないはずです。Android:.apkファイルから読み込み可能な.javaファイル?

誰でも.apkファイルをデコードして元の.javaファイル(XMLファイルへのリンクを含む)を読むことができるかどうかは疑問でした。

したがって、.apkファイルの名前を.zipに変更し、.javaファイル(またはクラス)を含むように見える「classes.dex」にアクセスすることができました。グーグルでは、この「classes.dex」ファイルをデコードした「AvaBoxV2」という名前のツールにつながった。これで、.smaliという名前のファイルが存在する「out」フォルダを含むフォルダが作成されました。私はこれらのうちの1つをエディタで残し、最後にXMLファイルへのリンクがあります。良くない。 :

私のアプリやclasses.dexファイルを暗号化する方法はありますか?誰かが元のXMLファイルにアクセスできることをその会社に伝えたくありません。おそらくアプリに署名するとおそらく役に立ちますか?

また

は、あなたがGoogleの市場のためのアプリケーション(署名、バージョン管理、...)を調製し、本当にnoobのやさしいチュートリアルを知っていますか?

感謝を事前に!

+1

*あなたが服用している対策は何でも、いつでもそのような情報を得ることができます。コード、資産、ネットワーク通信はプライベートではありません。あなた自身に尋ねなければならない質問、または要件を与えている人は、XMLファイルを保護するためにコーディングを無駄にしたくない人の時間です。 –

答えて

6

.javaソースコードが含まれていませんAPK。

Dを分解することは可能ですalvikのバイトコードをbaksmaliのようなツールを使ってバイトコードのニーモニックに変換することはできますが、オリジナルの.javaソースを復元する方法はありません。

さらに、Android SDKに含まれるproguardのようなツールを使用すると、バイトコードを難読化でき、逆アセンブルされたバイトコードの動作を解釈しづらいことがあります。

リンク文字列をある種の難読化された形式で保存しておき、実行時にアプリケーションで難読化するようにすることもできます(単純な例は、ベース64エンコーディングですが、もしそうしたいと思えば、すぐにそれを逆転させるだろう)。

つまり、誰かがtcpdumpを実行し、デバイスとサーバーの間のネットワークトラフィックを傍受してURLを取得するのは簡単ではないので、誰もこの値を得ることを完全に防ぐ方法はありません。

2

ええ、このようなことを完全に防ぐことは不可能です。デスクトップアプリケーションや他のアプリケーションでも同じです。

前述したように、難読化は役に立ちますが、永続性のある人はまだそれを越えることができます。特にそのようなURLのようなもののために。

ハッカーのためにはるかに扱いにくい解決策の1つは、あなたのウェブサーバーと何らかのトークンシステムでPHPを使用して、リクエストがあなたのアプリから来ているかどうかを判断することです...しかし、私は本当にそれを提案していない。

+0

+1。非キッカー可能なスコアボードは、非ハッカー可能な方法で実装するのが非常に困難です。あなたの最高の賭けは、彼らが偽装することを難しくするのに多くの時間を費やすので、既存のスコアボードサービスを使用することです。 –

+0

ありがとうございました!私はちょうどこれらのxmlファイルの私の会社によってexlusively更新されたスポーツゲームからのlivescoresを読みます。私はそれを正確に指摘しなかったことを申し訳なく思う。 :)唯一の目的は、他のアプリがこれらのライフコースxmlを使用することを避けることです。だから私はそれを防ぐことができると思ったが、それは不可能だと分かった。大変ありがとうございました:) – Rainer

関連する問題