谈谈移动应用加固 - LBE.pdfVIP

  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文档。上传文档
查看更多
谈谈移动应用加固 - LBE

谈谈移动应用加固 张勇LBE安全大师 为什么需要加固 • Android应用主要以Java语言编写,混淆作用有限 • Android为开源系统,逆向和反编译工具非常成熟 • Android系统淡化进程概念,基于消息和事件触发 运行的机制使得插入恶意代码甚至无需接触字节码 • Root后可利用ptrace API或修改system image实现 动态注入 首先,让我们看看主流的应用加固提供商… • 代码加壳 –classes.dex整包加密方案 •将原始classes.dex加密后单独保存,使用壳加载器 替换原始classes.dex •运行时解密classes.dex •梆梆,爱加密,百度,通付盾 –classes.dex字节码变形方案 •对原始classes.dex进行预处理,隐藏关键方法的字 节码 •腾讯,360 –虚拟机方案 •将关键部分代码编译为专用虚拟机代码,于专用虚拟 机中执行 •部分厂商正在研发中 • 防篡改 –记录加固后APK 内文件hash值,在运行时比对 – (部分)记录加固前APK 的签名信息,要求加固后 使用相同签名重新签名 –记录加固前AndroidManifest.xml文件内容,在运行 时比对,防止二次打包,添加权限等 • 运行时 –classes.dex整包加密方案 •壳Application会首先运行 –在壳Application 的构造函数, attachBaseContext 或onCreate 中,执行脱壳操作 –解密Dex文件并将其加载至内存中 –反射LoadedApk.mApplication, LoadedApk.mClassLoader, ActivityThread.mInitialApplication, ActivityThread.mAllApplications等值,将其重新 指向目标Application和ClassLoader。确保系统 稍后构造组件时能正确的加载到目标类 –最后,将控制权交回目标Application • 运行时 –classes.dex字节码变形方案 •相对简单,无需反射修改 •在Application加载之前首先加载解密代码,重新连 接加密后的class和method •解密后,将控制权交还至目标Application • 运行时 –Ptrace保护 •多进程相互ptrace防止ptrace attach或者memory dump –GC, SignalCatcher线程怎么办? –/proc/[pid]/mem仍然可读 •会轮询/proc/[pid]/status 以确保TracerPid为0 –影响性能,电池在哭泣 –Android进程从zygote fork而来,直接ptrace zygote 即可绕过所有ptrace保护 • 梆梆加固分析 –加密原始classes.dex并放置于 assets/bangcle_classes.jar 内 –修改AndroidManifest.xml ,替换Application对象 –对AndroidManifest.xml 中声明的所有Receiver, Service和ContentProvider构造对应的Stub implementation –运行时首先在内存中解密bangcle_classes.jar,然后 使用custom classloader将其加载至内存并跳转至其 中代码运行 –未保护资源文件和so文件 –运行时会启动2个辅助进程实现anti-ptrace • 梆梆加固脱壳思路 –Classes.dex并未在加固时执行预

文档评论(0)

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

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

1亿VIP精品文档

相关文档