海豚模拟器安卓端口修改

逆向工程 安卓 字符串 局部变量 二进制编辑
2021-06-29 03:19:12

我正在修改适用于 androidDolphin Emulator Alpha,但我在处理smali代码中的字符串时遇到了一些问题我遇到问题的值是dolphin-emu,它是包含模拟器数据和文件的文件夹的名称。到目前为止,我已经找到了两个包含字符串的文件,assets文件夹中的一个配置文件和一个 smali 脚本。问题是,即使将两个字符串都更改为Dolphin Emulator,文件夹仍然生成为dolphin-emu. 我已经在应用程序中搜索了对该字符串的任何其他引用,但找不到更多。如果我替换了代表它的字符串,如何使用此名称生成文件夹?

我正在使用APK Editor Pro来修改应用程序,这是我几乎一直使用的方法。多年来,我一直在修改 android 应用程序,并修改了数百个应用程序,但这一个让我真的很难过。我使用了多年来开发的所有方法来追捕它,但没有任何效果。使用内置搜索功能,我搜索了这些字符串以查看它是否被“拆分”或什至隐藏:

"dolphin-emu"
"dolphin
"/dolphin
emu"
emu/"
"DOLPHIN-EMU"
ect...

没有其他问题,该应用程序没有被混淆或保护,而且我找不到任何其他可能保留我正在尝试修改的字符串的东西。最初这只是简单地更改值,但现在我只想弄清楚这是如何发生的。即使在修改 APK 后卸载然后重新安装也不起作用,我认为应用程序数据文件夹中的设置文件可能会“记住”文件夹的存储位置。我以前从未在应用程序中定位和修改字符串时遇到过这么多麻烦。

1个回答

在对 APK 进行了更多挖掘之后,我找到了处理模拟器 fylesystem 的方法。它是libmain.so二进制的。因为它是由这个文件处理的,所以修改它几乎是不可能的,这是因为.so文件类似于windiws.dll二进制文件并且经过签名。由于修改文件并不是一个真正的选项,更改模拟器文件系统的唯一替代答案是从源代码重新构建它

这些值是使用十六进制编辑器定位的。

这是我在 Android 应用程序中发现类似内容的第一个实例。通常修改文件路径可以通过反编译修改DEX. 因此,查看.so二进制文件是最后查看的地方。