dar*_*eir 63 java android decompiling recompile
我需要修改现有的APK,修改源代码然后重新编译它.
但是现在我想知道如何重新编译java文件并将它们放回到jar文件中!(jar部分应该很简单,主要问题似乎是如何为android重新编译java文件)
我知道另一种解决方案是使用apktool然后修改smali文件,但是当我们想要添加大量代码时,它似乎真的很复杂!
我的应用程序是一个基本的HelloWorld whitout混淆.
dar*_*eir 41
感谢Chris Jester-Young,我设法让它成功!
我认为我设法做到的方式只适用于非常简单的项目:
使用apktool我得到了android清单和ressources文件
在Eclipse中,我使用与旧项目相同的设置创建一个新项目(检查清单文件中的所有信息)
/!\一定要从设备中删除旧的apk,会抛出错误,说明apk签名与旧签名不一样!
edw*_*win 33
我知道这个问题仍然得到了解答,我想传递一个信息,如何从没有dexjar的apk获取源代码.
我不知道这有多可靠.
@darkheir答案是做反编译apk的手动方式.它帮助我们理解Apk创建中的不同阶段.
获得源代码后,请按照接受的答案中提到的步骤操作
另一个在线Apk De-compiler @Andrew Rukin:http://www.javadecompilers.com/apk
仍然值得.向创作者致敬.
Bev*_*vor 12
答案已经过时或不完整。这可能适用于不受保护的 apk(没有 Proguard),但现在没有人部署不受保护的 apk。我能够修改(我的)受到良好保护的 apk 的方式(Proguard,检查“黑客工具”的安全检查,检查应用程序是否使用调试模式重新打包的安全检查,...)是通过 apktool 作为其他人已经在这里提到过。但是没有人解释说,您必须再次签署该应用程序。
apktool d app.apk
//generates a folder with smali bytecode files.
//Do something with it.
apktool b [folder name] -o modified.apk
//generates the modified apk.
//and then
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore modified.apk androiddebugkey
//signs the app the the debug key (the password is android)
//this apk can be installed on a device.
Run Code Online (Sandbox Code Playgroud)
在我的测试中,原始版本的 apk 没有日志记录。在我用 apktool 反编译后,我交换了一个完整的字节码文件,而没有通过带有日志记录的完整字节码文件进行记录,重新编译并对其进行签名,然后我就可以将它安装在我的设备上。之后,当我将应用程序连接到它时,我能够在 Android Studio 中看到日志。
在我看来,使用dex2jar和反编译JD-GUI仅有助于更好地理解类正在做什么,仅用于阅读目的。但是由于一切都经过了保护,我不确定您是否可以将这个半生不熟的 Java 代码重新编译为可用的 apk。如果是这样,请告诉我。我认为,唯一的方法是操作本示例中提到的字节码本身。
小智 9
首先从以下链接http://code.google.com/p/dex2jar/downloads/list下载dex2jar工具
解压缩它创建的dex2jar文件夹
现在你选择你的apk文件,并在更改扩展名后将其扩展名.apk更改为.zip它似乎是zip文件然后提取此zip文件找到classes.dex文件
现在选择classes.dex文件并将其放入dex2jar文件夹
现在打开cmd窗口并键入dex2jar文件夹的路径
现在输入命令dex2jar.bat classes.dex并按Enter键
现在打开dex2jar找到classes_dex2jar.jar文件的文件夹
接下来,从以下链接http://java.decompiler.free.fr/?q=jdgui下载java反编译工具
最后一步classes_dex2jar.jar在java反编译工具中打开文件,现在可以看到apk代码
我知道这个问题已经得到解答,我不想在这里给出更好的答案。我只会分享我在这个主题上的经验。
一旦我丢失了我的代码并且我只有这个apk文件。我使用下面的工具对它进行了反编译,这让我很开心。
在这种情况下必须使用这些工具,否则是不道德的,甚至有时是非法的(窃取别人的努力)。所以请明智地使用它。
这些是我最喜欢的工具:
要从 google play 获取 apk,您可以在 google 上搜索或查看这些网站:
在发布此答案之日,我测试了所有链接,它对我来说非常有用。
注意: Apk 反编译在代码保护的情况下无效。因为Proguard 会缩小和混淆代码并将类重命名为无意义的名称,这使得理解代码变得相当困难。
奖金:
| 归档时间: |
|
| 查看次数: |
132898 次 |
| 最近记录: |