首页
社区
课程
招聘
[求助]“爱加密”加固原理
发表于: 2014-2-9 16:41 35933

[求助]“爱加密”加固原理

2014-2-9 16:41
35933
前段时间听说有一个APK加密网站,可以帮开发商将APK程序自动加密,遂上去试了一下。

加密后的APK将原程序的dex(java代码)加密后放在了assest目录下(aijiami.dat),并新增两个so:libexec.so,libexemainc.so,AndroidManifest.xml中将入口Application修改为爱加密的Application,在OnCreate调用so的init和load方法完成原程序运行的目的。相当于在原始dex执行前加了一个loader,这个loader运行时解密dex后启动。

加密后APK中java部分(dex)解密后只有两个类:
public class NativeApplication
{
  static
  {
    System.loadLibrary("exec");
    System.loadLibrary("execmain");
  }

  public static native boolean load(Application paramApplication, String paramString);

  public static native boolean run(Application paramApplication, String paramString);

  public static native boolean runAll(Application paramApplication, String paramString);
}

public class SuperApplication extends Application
{
  protected void attachBaseContext(Context paramContext)
  {
    super.attachBaseContext(paramContext);
    NativeApplication.load(this, "com.oxygenant.tools");
  }

  public void onCreate()
  {
    NativeApplication.run(this, "android.app.Application");
    super.onCreate();
  }
}

原以为是简单通过DexClassLoader 实现的,后仔细研究测试了一下发现不是那么简单:
1、经测试通过DexClassLoader,原程序将来无法找到应用的资源(layout、drawable),并且Service和Receiver也失效了;
2、libexec.so+libexecmain.so加起来有500kb左右(看来还是有不少代码)

很好奇爱加密是如何加载dex的,且能够保证原dex中资源、Service、Receiver均可用,有那位大大了解的么,指点一下。

附加密前后的apk文件,加密网站地址:www.ijiami.cn

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 158
活跃值: (196)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
ijiami.dat 应该是加密的dex 或者odex 迁移阵子研究过,感觉这玩意还不如某加固
2014-2-10 09:24
0
雪    币: 269
活跃值: (25)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
楼主你需要一个IDA~
2014-2-10 11:46
0
雪    币: 259
活跃值: (3623)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
给棒棒加固差不多  关键代码你还没发现
2014-2-11 20:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
能稍微提示一下么?我是看了梆梆的一篇文章才关注dexclassloader,实际测试了一下,载入的jar没有资源和素材不会有问题,但凡涉及引用原apk资源,素材,广播的时候就无力,可是梆梆和爱加密都可以解决这类问题。
2014-2-28 22:50
0
雪    币: 105
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
也对dexclassloader能够加载资源、广播比较好奇,希望能有高手出来指点。。
2014-3-11 15:00
0
雪    币: 78
活跃值: (1958)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
http://blog.csdn.net/androidsecurity/article/details/8892635
2014-3-19 10:48
0
雪    币: 4
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我实现了,我、加我的QQ296089727
2015-6-4 00:24
0
雪    币: 310
活跃值: (159)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
9
楼上是收费服务,给你先脱完,然后找你收费。
2015-6-20 00:58
0
雪    币: 267
活跃值: (318)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
LZ你搞定了这个问题吗
2015-6-23 16:14
0
雪    币: 53
活跃值: (234)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
大概就是 通过加载data/app/xx.apk,并且解密加载原dex,替换加载的apk的cookie为解密后的dex,就可以运行了
2015-8-18 19:26
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
给通付盾加密还差不多 关键代码你还没看到
2015-8-19 09:28
0
游客
登录 | 注册 方可回帖
返回
//