andoridapk反逆向解决方案

andoridapk反逆向解决方案

ID:8802230

大小:467.55 KB

页数:11页

时间:2018-04-08

andoridapk反逆向解决方案_第1页
andoridapk反逆向解决方案_第2页
andoridapk反逆向解决方案_第3页
andoridapk反逆向解决方案_第4页
andoridapk反逆向解决方案_第5页
资源描述:

《andoridapk反逆向解决方案》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、AndoridAPK反逆向解决方案:梆梆加固原理探寻2013-06-2709:33Jack_Jia看雪安全论坛字号:T

2、T梆梆是一个面向Android开发者的应用保护解决方案,它可以有效的阻止AndroidAPK包被逆向工程破解,从而保护开发者的利益,防治打包党。那么它到底是如何实现这一效果的呢,梆梆的解决方案真的无懈可击吗?来看网友对其技术实现的分析。AD:2013云计算架构师峰会课程资料下载一、序言目前Android市场充斥着大量的盗版软件,开发者的官方应用被“打包党”们恶意篡改。如何使程序代码免受盗版篡改就成了开发者面临的头等大事,今天我们将分析一个不错的解决方案---梆梆加固(http

3、://www.secneo.com/appProtect/)。通过对App进行加固保护。梆梆可以有效防止移动应用在运营推广过程中被破解、盗版、二次打包、注入、反编译等破坏,保障程序的安全性、稳定性,对移动应用的整体逻辑结构进行保护,保证了移动应用的用户体验。二、梆梆加固逆向分析过程首先我们通过对APK加固前后文件结构的比较,来了解梆梆加固对APK文件所做的处理。为了使分析过程足够简单,我新建一个最简单的测试程序,并上传到梆梆加固,整个加固过程大概需要4天的时间才可以完成,这是一个漫长的等待过程。该测试程序包含了Activity、Service、ContentProvider、Broadcast

4、Recevier四大组件、Application、普通类、Jni调用等7类对象,目的就是全面的了解梆梆的加固效果。1、apk加固前后静态文件结构及动态运行时对比分析(1)加固前后静态文件结构变化(左为加固前,右为加固后)加固后apk新增以下文件:assetsmeta-datamanifest.mf//APK文件列表SHA1-Digestassetsmeta-datarsa.pub//RSA公钥信息assetsmeta-datarsa.sig//数字签名文件assetsclasses.jar//已加密原classes.dex文件assetscom.example.hellojni

5、//ARM平台二进制可执行文件assetscom.example.hellojni.x86//x86功能同上libsarmeabilibsecexe.so//ARM平台共享库文件libsx86libsecexe.so//x86功能同上加固后修改文件:AndroidMainfest.xml//(如果应用配置有Application信息,则该文件加固前后相同,如果应用未配置Application信息,则该文件加固前后不相同,梆梆会配置Application信息为自己实现类)classes.dex对classes.dex进行反编译,观察代码树结构变化:(左为加固前,右为加固后)(2)加固前

6、后动态运行时变化运行原程序,系统仅创建一个相关进程,但是加固的程序,系统会为其同时创建三个相关程序进程:进程启动顺序:597进程创建605进程,605进程又创建了607进程通过查看maps文件获取597进程映射文件信息通过map文件可以看出,597进程为主进程,android各组件在该进程中运行。605和607进程并无与apk文件相关文件信息,通过cmdline查看启动参数:初步怀疑该进程为assetscom.example.hellojni可执行文件运行结果。2、梆梆加固保护效果分析我们通过逆向分析加固后的app,来看看梆梆加固对app的保护效果。程序代码的第一执行点是Applicatio

7、n对象,首先查看TestApplication类对象。程序的Util类完成大部分的java层逻辑,ACall类主要完成对libsecexe.soJNI的调用:查看libsecexe.so文件导出函数,发现所有函数名都经过加密处理,与我们平时jni调用产生的函数名并不同。平时jni产生的函数名应该为这样格式Java_com_secapk_wrapper_ACall_{函数名}抗静态分析:Util类通过MyClassLoader完成对加密classes.jar的动态加载,内存中解密classes.jar,完成动态加载。jni方法对应so函数名的混淆。抗动态调试:当使用IDA动态调试该程序时,程序无

8、法建立连接调试。梆梆加固可以有效常用的逆向分析方法。三、梆梆加固技术实现关键点猜想(1)如何使DexClassLoader动态加载组件具有生命周期?根据APK文件是否在AndroidManifest.xml配置Applicaiton信息,梆梆加固会做不同的处理:通过上传Applicaiton不同配置的APK文件,我们发现:当APK配置有Applicaition信息时,梆梆加固重写Applicati

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。