0

私は現在、病院向けのアプリに取り組んでいる学生です。動作する .apk の古いビルドがありますが、使用しているソース コードはより新しいものです。

私の問題は、新しいソースからapkをビルドし、winRarまたはapktoolで内部を見ると、「com」フォルダー(およびその中に「iTextPDF」というフォルダー)がないことです。古いapkにはこのフォルダーがあります。

新しいコード/apk で発生するのは、アプリでグラフが生成されてから pdf に出力されると、アプリがクラッシュすることです。エラーは、ファイルが存在しないことを示しています。

繰り返しますが、古い apk で動作しますが、ソースがありません。コードの変更はそれほど多くないと思います。何か助けはありますか?

4

2 に答える 2

1

1. 古いソースコードを入手してみる

最善の策は、古いソースにアクセスすることですが、可能であればそうすると思います。

2. 問題が何であるかを理解し、それを解決しようとする

最初に頭に浮かぶのは、アプリには異なるパッケージ ID があり、「com.」が欠落していることです。ただし、これは単なる推測です。各アプリには一意のパッケージ名が必要であることを考えると、元のソースから作業していない場合、それは少し理にかなっています。

3. 古いコードのリバース エンジニアリングを試みることができます。

APKToolDex2Jar & JD-GUI、およびAndroGuardを見てください。

APKTool を使用すると、APK を「smali」コードに分解できます。それを見て変更し、APKTool を使用してそれを APK に組み立てることができます。

Dex2Jar は APK の classes.dex ファイルを Jar に変換し、JD-GUI は Jar を Java のようなコードに逆コンパイルします。Java のようなコードは、おそらくAPK にコンパイルされません。

Androguard は RE フレームワークであり、非常に強力ですが、やや使いにくいです。

APK の再作成を開始するための優れたチュートリアルは、ここにあります: So you want to reverse-engineer an Android app (apk)

于 2013-07-16T21:45:18.180 に答える