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