Android So动态调试之反jdb附加的解决大法.pdfVIP

Android So动态调试之反jdb附加的解决大法.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android So动态调试之反jdb附加的解决大法

今天国庆的第六天,西安淅淅沥沥小雨下个不停,索性卧在床上不 如品一杯西湖龙井,更新一篇博客,一来帮助需要之人;二来加深自 己的理解。 问题篇: 在上一篇中讲到了关于Android so 的动态调试,没看的可以点这里: 点击打开链接; 我自认为写的还是挺全的,在上文中我们说到关于最后一步jdb 附加 调试时,很多时候都会出现附加不上的问题,使人很闹心。。。于是 这一篇就是专门关于这个问题进行展开的。解决这个问题方法有很多, 我是按照自己认为的优良答案顺序展开的,都是借鉴网上的各路大神 而总结的。 解决篇: 根据android 的官方文档,如果调试一个APK,必须满足以下两个条 件中的任何一个: 1.APK 的AndroidManifest.xml 文件中的Application 标签包含 android:debuggable=true; 2./default.prop 中的ro.debuggable 的值为1; 方法一: 在已经root 的手机安装Xposed 框架和xinstaller 插件 目的:就是利用Xposed 的HOOK 插件xinstaller 开启系统中所有应 用的调试功能。 使用方法: 第一步:下载Xposed 框架,并激活,再下载xinstaller 插件安装; 第二步:开启模块,点击xinstall 插件设置专家模式,进入其他设 置,开启调试应用,最后在xposed 中激活重启,OK !! 关于框架和xinstaller 插件会放在附件中。 方法二: 修改android:debuggable=true 用AK 反编译以后在AndroidManifest.xml 文件中的Application 标 签中加入android:debuggable=true;然后回编译。 这个方法虽然简单,但是问题多,比如: 第一:有的反编译,签名验证等等。 第二:如果说软件已经爱加密或加壳了,修改XML 几乎是不可能的, 因为改了也不能回包 于是引入了方法三. 方法三: 如果我们在真机,则可以修改根目录下的default.prop 文件,将里 面的ro.debuggable =1。 第一: 从Google 官方网站下载到boot.img; 第二: 使用工具(abootimg,gunzip, cpio)把boot.img 完全解 开,获取到default.prop; 第三: 修改default.prop; 第四: 把修改后的文件重新打包成boot_new.img; 第五: 使用fastboot 工具把boot_new.img 刷入设备(fastboot flash boot boot_new.img); 优点是可以永远调试,不再担心此问题; 缺点是我没有Nexus 5 手机 ,这个问题很严肃;于是引出了方法 四。 方法四: 我们没有谷歌的亲儿子,但是我们有神器的小工具。 首先我们看到如图所示ro.debuggable=0; init 进程会解析这个default.prop 文件,然后把这些属性信息解析 到内存中,给所有app 进行访问使用,所以在init 进程的内存块中 是存在这些属性值的,那么这时候我们可以利用进程注入技术,我们 可以使用ptrace 注入到init 进程,然后修改内存中的这些属性值, 只要init 进程不重启的话,那么这些属性值就会起效。当然这个工 具已经写好,我会放在后main 附件中。 解决方法: 第一步:拷贝mprop 到/data/ 目录下; 第二步:./mprop ro.debuggable 1; 第三步:getprop ro.debuggable; (查看此时ro.debuggable 在内存 中的值) 第四步:stop;start(重启adbd 进程); 注意: 我们在上面的第三步的时候查看好像没有改过来,分析原因为: 该工具是通过ptrace 修改init 进程中的内存,然而4.X 系统强制开 启了selinux;因此这个时候我们需要设置Selinux 的状态.需要个 APK,会放在后面的附件中。 BY:雪一梦 2016.10.06

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档