我正在制作一个管理应用程序以控制我的主帐户的firebase数据库,所以想象一个2结构的应用程序
MainActivity和AdminActivity。
因此,在MainActivity中,我将拥有一个用于输入密码的edittext,仅当密码与硬编码密码匹配时,用户才能使用意图进入AdminActivity。
所以我的问题是,此应用程序将只与我同在,但万一它被错误使用,有人可以在不使用密码或外部使用某些工具的情况下打开AdminActivity吗?我不想在Firebase上实现登录,因此数据库处于打开状态。
最佳答案
如果有人掌握了APK,则很容易将其反编译。即使使用混淆(Proguard)也不会隐藏硬编码的字符串常量。然后,攻击者可以尝试在应用程序中找到的所有字符串,直到正确获得密码为止。
假设您的AdminActivity
在清单中声明为exported="false"
,那么攻击者就不可能直接启动您的Activity
(例如从另一个应用程序启动)。但是,如果攻击者掌握了APK,则可以将其安装在具有root用户权限的设备上,并执行其所需的任何操作,也可以将设备连接到PC并使用ADB直接启动AdminActivity
。
我现在想不起来还有其他6种成功的“绕过密码”方案,这些问题我现在想不起来。