360加固保Java2c加固分析

加固前:

加固后:

生成两个so文件:

libjgdtc.so文件为官方dex2c以后的结果;

libjiagu.so为dexVMP以后的so文件;

运行结果:在android 4.4 5.0等会崩溃闪退;

libjiagu.so为早先的dex Vmp 加固,之前分析过,忽略。

接下来分析libjgdtc.so:

静态分析看到:

这里面的重点函数是sub_4DA0函数:

 

 

 

这种API的调用的,没有看到。

但是通过第三方的调用,然后进行HOOK可以看到:

 

可以HOOK到对应的字符串只是返回的每次结果不对!!

可能跟内存的初始化有关,so中的初始化函数没有调用。

 

360在里面运用了大量的混淆处理!

 

通过简单的阅读F5以后的代码:

发现是360把java2c以后的解释反射调用的操作放在了一个函数中。相当于之前VMP的解释器的入口操作一样,然后进行混淆处理,同时对里面的字符串进行加密操作,用的时候进行解密。

动态分析:

总结:

360是把VMP加固与java2c结合加固:

这里为了简单起见第三方调用这个libjgdtc.so这个文件;

eg01:算术

 

 

前后函数猜测为引用管理;算术运算的还比较正常逻辑。

 

 

总结:

1.360会把dexVMP和java2c进行结合。它的java2c依然也是以反射为主的解释,但是它把最后反射的解释函数同类型的定位到一个入口,这样的大的函数的逻辑会比较复杂,这时候采用OLLVM的混淆的优势就会比较大。

2.字符串上加密,用到的时候进行解密;

3.兼容性上很不好,崩溃率比较高!!

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值