首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向现有的Apk中注入代码?

如何向现有的Apk中注入代码?
EN

Stack Overflow用户
提问于 2014-11-20 10:17:58
回答 2查看 17.8K关注 0票数 0

我知道这可以反编译和重新编译apk。我以前看过这个帖子:Injecting code into APK,但我想要的不是反编译或逆向工程。

在我的例子中,我只想做一些游戏,使用触摸事件兼容游戏垫。我见过一些公司也做过类似的事情,让android游戏与他们的游戏平台兼容。不幸的是,我没有找到将一些代码注入到现有apk中的解决方案。

所以我的问题是:

有没有办法对apk (在游戏应用程序中更改触摸和关键事件)进行一些更改,并在不影响实际源代码的情况下添加一些代码?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-20 16:34:44

对于像这样简单的东西,你所需要的只是面包屑。只需将一个调用插入到您的自定义类中,就可以用Java编写其余的调用。

反编译/重新编译很少起作用,而且无论如何对这种情况来说都是过分的。即使是在混淆的应用程序中,使用smali也是有效的,尽管有些应用程序计算了自身的完整性检查,并且如果修改了,也会拒绝运行。

票数 3
EN

Stack Overflow用户

发布于 2014-11-20 12:31:06

为了达到这个目的,首先将这个apk解压缩到源代码中,用于反编译apk

步骤1:

创建一个新文件夹并复制要解码的.apk文件。

现在将这个.apk文件的扩展名重命名为.zip (例如,从filename.apk重命名为filename.zip)并保存它。现在您可以访问classes.dex文件等。在这个阶段,您可以看到可绘制的文件,但不能看到xml和java文件,所以继续。

第2步:

现在,在同一个文件夹(或新文件夹)中解压此.zip文件。

下载dex2jar (https://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=)并将其解压缩到同一个文件夹(或新文件夹)。

将classes.dex文件移动到dex2jar文件夹中。

现在打开命令提示符并将目录更改为该文件夹(或新文件夹)。然后编写d2j-dex2jar classes.dex并按enter键。现在,您可以将classes_dex2jar.jar文件放在同一个文件夹中。

下载java反编译器(http://jd.benow.ca/),双击jd,单击打开的文件,然后从该文件夹打开classes.dex.dex2jar文件:现在您得到了类文件。

按src名称保存所有这些类文件(在jd中,单击“->保存所有源”)。在这个阶段,您获得了java源代码,但是.xml文件仍然不可读,所以继续。

第3步:

现在打开另一个新文件夹

放入要解码的.apk文件

下载apktool (https://code.google.com/p/android-apktool/downloads/detail?name=apktool1.5.2.tar.bz2&can=2&q=)和apktool窗口(https://code.google.com/p/android-apktool/downloads/detail?name=apktool-install-windows-r05-ibot.tar.bz2&can=2&q= )的最新版本(都可以从同一个链接下载),并将它们放在同一个文件夹中。

下载框架-res.apk并把它放在同一个文件夹中(并不是所有apk文件都需要这个文件,但它并不有害)

打开命令窗口

导航到APKtool的根目录并键入以下命令: apktool Frameworkres.apk

apktool myApp.apk (其中myApp.apk表示要解码的文件名)

现在,您可以在该文件夹中获得一个文件文件夹,并且可以轻松地读取apk的xml文件。

第4步:

这不是任何步骤,只是将两个文件夹(在本例中都是新文件夹)的内容复制到单个文件夹

更新源代码..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27037015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档