当前位置:操作系统 > 安卓/Android >>

Andorid APK反逆向解决方案---梆梆加固原理探寻

一、序言

 


       目前Android市场充斥着大量的盗版软件,开发者的官方应用被“打包党”们恶意篡改。如何使程序代码免受盗版篡改就成了开发者面临的头等大事,今天我们将分析一个不错的解决方案---梆梆加固(http://www.secneo.com/appProtect/)。


       通过对App进行加固保护。梆梆可以有效防止移动应用在运营推广过程中被破解、盗版、二次打包、注入、反编译等破坏,保障程序的安全性、稳定性,对移动应用的整体逻辑结构进行保护,保证了移动应用的用户体验。

 


二、梆梆加固逆向分析过程


 

      首先我们通过对APK加固前后文件结构的比较,来了解梆梆加固对APK文件所做的处理。为了使分析过程足够简单,我新建一个最简单的测试程序,并上传到梆梆加固,整个加固过程大概需要4天的时间才可以完成,这是一个漫长的等待过程。

      该测试程序包含了Activity、Service、ContentProvider、BroadcastRecevier四大组件、Application、普通类、Jni调用等7类对象,目的就是全面的了解梆梆的加固效果。

 


      1、apk加固前后静态文件结构及动态运行时对比分析

 


           (1) 加固前后静态文件结构变化(左为加固前,右为加固后)

 

 

            \


           

 


            加固后apk新增以下文件:

                  assets\meta-data\manifest.mf  //APK文件列表SHA1-Digest

                  assets\meta-data\rsa.pub        //RSA公钥信息

                  assets\meta-data\rsa.sig         //数字签名文件

                  assets\classes.jar                    //已加密原classes.dex文件

                  assets\com.example.hellojni    //ARM平台二进制可执行文件

                  assets\com.example.hellojni.x86  //x86功能同上

                  libs\armeabi\libsecexe.so        //ARM平台共享库文件

                  libs\x86\libsecexe.so               //x86功能同上

            加固后修改文件:

                 AndroidMainfest.xml  //(如果应用配置有Application信息,则该文件加固前后相同,如果应用未配置Application信息,则该文件加固前后不                                                   //相同,梆梆会配置Application信息为自己实现类)

                 classes.dex

 


            对classes.dex进行反编译,观察代码树结构变化:(左为加固前,右为加固后)

 

          \                                           \
                                                                     

         (2)加固前后动态运行时变化

 


                 运行原程序,系统仅创建一个相关进程,但是加固的程序,系统会为其同时创建三个相关程序进程:

                 进程启动顺序:597进程创建605进程,605进程又创建了607进程

 

 

 \


 

                

                通过查看maps文件获取597进程映射文件信息

 

\
          

                  通过map文件可以看出,597进程为主进程,android各组件在该进程中运行。

                  605和607进程并无与apk文件相关文件信息,通过cmdline查看启动参数:

 

 

 

\

\

 

 

 

                  初步怀疑该进程为assets\com.example.hellojni 可执行文件运行结果。

 


     2、梆梆加固保护效果分析

 


          我们通过逆向分析加固后的app,来看看梆梆加固对app的保护效果。

          程序代码的第一执行点是Application对象,首先查看TestApplicati

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,