apk 变得可调试 debuggable=true

admin 2024年12月3日13:08:49评论44 views字数 2523阅读8分24秒阅读模式

在对apk进行分析时,有时候我们需要对apk进行调试。

介绍

android:debuggable="true" 的作用

在 Android 开发中,android:debuggable="true" 是 AndroidManifest.xml 文件中 <application> 标签的一个属性,用于指定应用程序是否可以以调试模式运行。以下是它的作用和注意事项:

apk 变得可调试 debuggable=true

声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢

apk 变得可调试 debuggable=true

作用

  1. 允许调试

    • 设置 android:debuggable="true" 后,应用程序可以通过调试工具(如 Android Studio 的调试器或 adb 调试)附加调试进程。

    • 开发者可以实时查看变量、调用栈和其他调试信息。

  2. 增强日志输出

    • 在调试模式下,应用程序可能会输出更多的日志信息,方便排查问题。

  3. 启用调试专用工具

    • 一些调试工具(如 Stetho、LeakCanary)需要该属性为 true 才能正常工作。

默认行为

  • 当使用 debug 构建buildTypes.debug)时,android:debuggable 默认值为 true

  • 当使用 release 构建buildTypes.release)时,android:debuggable 默认值为 false

安全注意事项

  1. 禁止在生产环境中设置为 true

    • 如果在发布的应用中保留 android:debuggable="true",可能会暴露敏感信息(如日志、API 密钥)。

    • 攻击者可以通过反向调试工具(如 Frida)轻松调试和修改应用的运行时行为。

  2. 检查打包设置

    • 在发布之前,确保使用 release 构建并验证 android:debuggable 被设置为 false

  3. 代码审查

    • 在代码审查过程中检查是否有手动设置 android:debuggable 属性的情况。

让apk变可调试

https://xdaforums.com/t/cant-edited-build-prop.4555745/

android 14之后改了判定机制,原来的ro.debuggable属性已经没用了,新的全局调试条件改成了ro.build.type=eng或者ro.build.type=userdebug并且persist.debug.dalvik.vm.jdwp.enabled=1

LSPosed 插件 XAppDebug

toggle app debuggable

https://github.com/Palatis/XAppDebug

我 小米 MIUI14 android13 没成功

刷安卓镜像的时候刷入userdebug版本

userdebug 版本的安卓系统,默认有 root 权限,ro.debuggabl=1 即所有apk都可以调试。

ro.debuggable设置为1

注意 修改ro.debuggable=1,可能导致某些系统不能启动,需要重新刷 img

手动设置

让apk变可调试 https://blog.csdn.net/qq_30496695/article/details/80425676

关闭 selinux

XXX:/ # getenforce   //获取当前SELinux状态
Enforcing
XXX:/ # setenforce 0 //临时关闭SELinux状态
XXX:/ # getenforce //获取SELinux状态
Permissive
XXX:/ # setenforce 1 //永久开启SELinux状态
XXX:/ # getenforce
Enforcing
XXX:/ #

https://blog.csdn.net/tkwxty/article/details/103938287

注意点:

  • 上述的方法是临时关闭SELinux,机器重启以后还是会恢复的

  • 上述命令一定要在Root模式下运行,且必须是终端没有对setenforce进行限制,否则会报如下的错误

apk 变得可调试 debuggable=true

getprop ro.debuggable
setprop ro.debuggable 1

目前android13 高版本会报错

apk 变得可调试 debuggable=true

工具 mprop

https://blog.csdn.net/qq_42403906/article/details/126446369

https://github.com/wpvsyou/mprop

修改Android prop工具,copy对应cup型号的脚本文件至设备内存中,运行./mprop [某个prop的key] [希望修改后的value]

七年前的项目,对高版本android可能不支持。

apk 变得可调试 debuggable=true

个人测试,MIUI14 android13 不成功

使用:

adb push mprop /data/local/tmp # 将下载好的 mprop 工具放入 /data/local/tmp 当中
adb shell
su
cat default.prop | grep debug # 查看default.prop里面的配置值,此处是 0
getprop ro.debuggable # 获取ro.debuggable 此处应该是 0
cd /data/local/tmp
chmod 777 mprop # 修改权限
./mprop ro.debuggable 1 # 修改 ro.debuggable 1 的值为 1
cat default.prop | grep debug # 查看default.prop里面的配置值,此处是应该还是 0
getprop ro.debuggable # 获取 ro.debuggable 此处应该是 1

修改完成后,执行命令adb shell getprop | findstr debuggable查看手机的ro.debuggable参数值。

提示:[ro.debuggable]: [1] 即成功。

使发布的Android应用程序可调试

反编译-修改-重打包

适合没有壳的apk,如果有壳,apk反编译可能出错。需要脱壳,然后修改着apk入口,比较麻烦。

https://gist.github.com/nstarke/615ca3603fdded8aee47fab6f4917826

原文始发于微信公众号(进击的HACK):apk 变得可调试 debuggable=true

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月3日13:08:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   apk 变得可调试 debuggable=truehttps://cn-sec.com/archives/3452864.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息