【问题标题】:How to manipulate apk memory?如何操作apk内存?
【发布时间】:2017-04-21 21:36:44
【问题描述】:

我尝试在 apk 上执行 C++ 代码注入(我不需要 DLL,因为我可以将文件放在 apk 文件夹中),但是我不知道从哪里开始或者我是否要去在正确的道路上。我将如何定位进程(apk)并读/写它的内存?我似乎在任何地方都找不到这个 - 有很多关于 Windows 的教程,一些通过越狱的 iOS 教程,但没有关于 android 的教程。这个 apk 主要是由我的朋友(它叫做 Egg, Inc.)编写的,他很清楚我正在破解他的应用程序以供个人使用这一事实,他对此表示同意。如果有人只是点燃火花,或者至少告诉我 C# 是否适合这种情况或我的选择是什么,那将不胜感激!提前致谢。

【问题讨论】:

    标签: android c++ reverse-engineering


    【解决方案1】:

    在运行时?你不会的。您被明确禁止这样做。允许应用程序执行此操作是一个巨大的安全漏洞,因此它们在任何现代操作系统上都会被阻止。如果您的朋友写了这个,请他进行更改或要求他提供源代码以直接修改应用程序。

    在编译时?您可以解压缩 apk(apk 只是一个 zip 文件)并反编译字节码。然后你可以编辑它,重新编译,用你自己的密钥签名,然后安装它。

    (旁注:android 是基于 linux 的。Dll 仅适用于 Windows。linux 等价物是一个 .so 文件。但是,仅将一个文件放在某个路径中不会有任何作用。)

    【讨论】:

    • 你刚刚让我上了赛道!我已经多次尝试您的第二个选项,使用 apktool 作为我的反编译器,但代码是用复杂的、几乎毫无意义的字节码 - smali 编写的。但是,我确实找到了包含应用内货币值对象的类。在 java 中每次单击我的新 awt 类按钮对象时,我将其值设置为 1,000。我将它放在一个名为 .so 的文件中,并作为“DLL”注入放置在 apk 文件夹中。感谢您的帮助,我应该朝着正确的方向前进! @Gabe Sechan
    • 别介意 .so 不起作用,你必须通过终端命令来完成。
    猜你喜欢
    • 2021-12-15
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 2021-06-04
    • 2011-12-04
    相关资源
    最近更新 更多