首页
社区
课程
招聘
[原创]阿里早期加固代码还原4.4-6.0
发表于: 2017-1-6 22:59 21030

[原创]阿里早期加固代码还原4.4-6.0

2017-1-6 22:59
21030
收藏
免费 3
支持
分享
最新回复 (43)
雪    币: 53
活跃值: (106)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
26
能支持多dex吗
2017-2-9 16:28
0
雪    币: 24
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
感谢分享
2017-2-12 16:58
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28
感谢分享
2017-2-17 17:55
0
雪    币: 25
活跃值: (1111)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
29

跟了一下,发现7.0以上,DexFile中多了两个参数, 6.0是 private static Object openDexFile(String sourceName, String outputName, int flags) 7.0以后是 private static Object openDexFile(String sourceName, String outputName, int flags,ClassLoader loader, DexPathList.Element[] elements)

2017-3-1 15:49
0
雪    币: 25
活跃值: (1111)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
30
而且传参时,loader和elements传进去的应该是有实际意义的值,暂时还不知道怎么处理
2017-3-1 15:51
0
雪    币: 187
活跃值: (112)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
31
留名收藏
2017-3-2 11:38
0
雪    币: 25
活跃值: (1111)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
32

楼主我在你代码的基础上添加了几行代码测试可以运行在7.0+机器上 

if(sdk_int>22&&sdk_int<24)
{
        mCookie = (*env)->GetFieldID(env, myDexFile, "mCookie", "Ljava/lang/Object;");
        myOpenDexFile=(*env)->GetStaticMethodID(env, myDexFile, "openDexFile", "(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/Object;");
}
else if(sdk_int>=24){
  //7.0+ openDexFile稍有不同
        mCookie = (*env)->GetFieldID(env, myDexFile, "mCookie", "Ljava/lang/Object;");
  myOpenDexFile=(*env)->GetStaticMethodID(env, myDexFile, "openDexFile", "(Ljava/lang/String;Ljava/lang/String;ILjava/lang/ClassLoader;[Ldalvik/system/DexPathList$Element;)Ljava/lang/Object;");
}
if(sdk_int>22&&sdk_int<24)
{
        art_MarCookie=(*env)->CallStaticObjectMethod(env, myDexFile, myOpenDexFile, inPath,0,0);
        LOGI("----MarCookie:%p",art_MarCookie);
}else if(sdk_int>=24){
   //7.0+此处需要5个参数
   jclass ApplicationClass = (*env)->GetObjectClass(env,new_ctx);
          jmethodID getClassLoader = (*env)->GetMethodID(env,ApplicationClass, "getClassLoader", "()Ljava/lang/ClassLoader;");
        jobject classLoader = (*env)->CallObjectMethod(env,new_ctx, getClassLoader);
        art_MarCookie=(*env)->CallStaticObjectMethod(env, myDexFile, myOpenDexFile, inPath,0,0,classLoader,0);
}

 new_ctx是attachBaseContext上的context

2017-3-7 16:44
0
雪    币: 3712
活跃值: (1401)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
33
谢谢分享,下载研究一番
2017-3-10 14:53
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
谢谢分享mark下
2017-3-15 17:02
0
雪    币: 991
活跃值: (195)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
35
谢谢分享
2017-5-24 16:09
0
雪    币: 36
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
36
mark
2017-5-24 21:27
0
雪    币: 729
活跃值: (1306)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
37
赞赞赞
2017-8-2 08:56
0
雪    币: 729
活跃值: (1306)
能力值: ( LV9,RANK:160 )
在线值:
发帖
回帖
粉丝
38
赞赞赞
2017-8-2 08:56
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
阿里就是天真
2017-8-2 09:29
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
40
发现,跑步起来
2017-9-1 17:09
0
雪    币: 3542
活跃值: (239)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
41
编译成功,启动后闪退出错了,求解(dex是否替换成功?)
04-09  09:53:58.419:  I/info(4487):  compare:  i=0  item=0x1e100049
04-09  09:53:58.419:  I/info(4487):  replace:  find  same  replace
04-09  09:53:58.469:  D/dalvikvm(4487):  JIT  code  cache  reset  in  0  ms  (0  bytes  2/0)
04-09  09:53:58.469:  D/dalvikvm(4487):  GC_FOR_ALLOC  freed  293K,  3%  free  17423K/17940K,  paused  13ms,  total  13ms
04-09  09:53:58.489:  I/dalvikvm-heap(4487):  Grow  heap  (frag  case)  to  26.603MB  for  9830416-byte  allocation
04-09  09:53:58.499:  D/dalvikvm(4487):  GC_FOR_ALLOC  freed  1K,  2%  free  27022K/27544K,  paused  11ms,  total  11ms
04-09  09:53:58.549:  D/AndroidRuntime(4487):  Shutting  down  VM
04-09  09:53:58.549:  W/dalvikvm(4487):  threadid=1:  thread  exiting  with  uncaught  exception  (group=0x41fadba8)
04-09  09:53:58.559:  E/AndroidRuntime(4487):  FATAL  EXCEPTION:  main
04-09  09:53:58.559:  E/AndroidRuntime(4487):  Process:  com.example.unpack,  PID:  4487
04-09  09:53:58.559:  E/AndroidRuntime(4487):  java.lang.RuntimeException:  Unable  to  start  activity  ComponentInfo{com.example.unpack/com.ali.tg.testapp.MainActivity}:  java.lang.NullPointerException
2017-12-7 17:27
0
雪    币: 3542
活跃值: (239)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
42
需要用样本的资源替换掉工程的资源,ok!
2017-12-8 17:38
0
雪    币: 1449
活跃值: (128)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
43
最近一直在学习dex加固的原理,看到这个复原一代壳真是太感谢大神了。。。  成功运行了出来,学习加固思路去了
2018-4-9 15:46
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
66666666
2019-10-29 14:16
0
游客
登录 | 注册 方可回帖
返回
//