吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 35147|回复: 39
收起左侧

[Android 脱壳] Android分析破解-秒脱360加固大法

  [复制链接]
lucifer2046 发表于 2017-9-29 17:38
转:http://blog.csdn.net/qq_21051503/article/details/51322505
Android相比iOS,安全问题往往比较突出,各种漏洞和破解层出不穷。对破解方法的了解,能在开发中进行预防,加强应用的安全性。本系列文章会对Android应用的破解和保护两方面做个探讨,给开发的同学一些借鉴。Andoid开发的同学可能会遇到需要做竞品分析的情况,APK加固常常会成为分析的障碍。360渠道做为Android应用分发的最大渠道,很多apk都使用了360加固。本文就来聊聊如何过掉这个坑。360加固后的apk,在arm设备上首先会将assets目录下的libjiagu.so拷贝到files目录下,然后通过libjiagu.so动态解密并加载原始dex


要对apk脱壳,首先要分析libjiagu.so实现。而该so做了二进制加壳。那么现在首先要做的事就是先把so的壳给脱了。通过010Editor查看libjiagu.so结构可知,其init_proc和init_array都无实质功能,真正的解密放在JNI_OnLoad里面。




JNI_OnLoad函数里有非常多的垃圾跳转指令干扰分析,后面还会有动态解密的函数运行,如果检测到调试器,会把动态函数置成非法代码,使程序CRASH












1b0c404这个位置就会跑飞。这样分析比较累人。换个思路,对一些关键函数进行hook,进行hook log分析Hook dlopen和dlsym LOG打印出libjiagu.so的加载基址和大小


可以看到JNI_OnLoad的地址还是在libjiasu.so内存范围内的Hook RegisterNatives函数,打印如下LOG


这个LOG可以看到RegisterNatives有被调用,注册了一个interface7函数,函数地址是51e2f211,仔细看这个地址发现,这个地址已经是thumb指令集了,跟libjiagu.so使用的arm指令集不太相符,而且可以看到函数地址已经超出了libjiagu.so内存范围了.libjiagu.so的基址是51b3b000,大小是46000,最大内存地址是51B81000那么,基本可以确定,它在内存中加载了另一个so从/proc/%pid%/maps里找到函数地址所在的内存块,把周围连续的内存一起dump出来在这片内存里找到如下一块内存


这其实就是elf heaer了,不过一些elf结构信息已经被抹掉了。除了基本的结构信息还缺失如下三个数据:0x20 e_shoff0x30 e_shnum0x32 e_shtrndx接下来的工作就是对这个残缺的内存进行修复了,通过分析上面三个数据,dlopen其实都没有用到,其值对elf运行没有影响。经过修复后的文件可以替换掉原来的libjiagu.so,重新签名后使apk正常运行,用于IDA动态调试分析。下面是经过修复后的libjiagu.so用ida分析的流程图片段




360在dex加载的时候,并没有调用dvmDexFileOpenPartial,而是自实现了此函数的功能,因此直接在这个函数上下断点是不能脱壳的。它的实现方式基本是照抄了bionic源码




如上面源码所示,使用dex所在内存的时候都会使用memcmp校验MAGIC是否为dex,所以只要hook memcmp,然后在过滤函数里校验是否为dex,然后dump出来即是原始的dex。把hook框架搭好,实现如下的memcmp过滤函数,就可自动将原始dex dump下来。


前面的都搞定后,整个脱壳过程就可以自动化了。APK启动瞬间即会自动脱壳。点击启动APK,会输出如下LOG



LOG里的第3个dmp即为原始dex,已经自动写入到指定目录。该脱壳器可应用于目前所有360加固,只需指定APK包名即可在启动时秒脱

免费评分

参与人数 14吾爱币 +13 热心值 +13 收起 理由
shock-c + 1 + 1 热心回复!
审判者压缩 + 1 + 1 热心回复!
530393321 + 1 谢谢@Thanks!
rainlee + 1 + 1 谢谢@Thanks!
卖血上网 + 1 + 1 热心回复!
sunnylds7 + 1 + 1 用心讨论,共获提升!
MistyRain + 1 + 1 看不懂,但是知道很厉害~
dsgvsn + 1 + 1 我很赞同!
456vv + 1 + 1 我很赞同!
52破解☆ + 1 + 1 热心回复!
xuanle6 + 1 + 1 谢谢@Thanks!
95535916 + 1 + 1 谢谢@Thanks!
WYWZ + 1 谢谢@Thanks!
NeverSettle + 1 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

烟雨破解 发表于 2017-9-30 10:12
又看见这样没用文章,都没有修复oncreate算哪门子脱壳啊,这样的东西很早就有人发了,居然还有人一而再再而三的发个不停,
vipqsl 发表于 2019-12-14 17:11
烟雨破解 发表于 2017-9-30 10:12
又看见这样没用文章,都没有修复oncreate算哪门子脱壳啊,这样的东西很早就有人发了,居然还有人一而再再而 ...

不见你发文,请闭嘴
NeverSettle 发表于 2017-9-29 17:48
gdcjg 发表于 2017-9-29 17:48
学习了,谢谢!
NeverSettle 发表于 2017-9-29 17:49
深度好文,分析的很透彻.
Sean1994 发表于 2017-9-29 17:49
我就想问怎么Hook RegisterNatives函数
轻描淡写9714 发表于 2017-9-29 18:04
大佬膜拜一下
tujinfeng 发表于 2017-9-29 18:06
谢谢楼主分享
181842 发表于 2017-9-29 18:25
用心讨论,共获提升!
头像被屏蔽
花开彼岸 发表于 2017-9-29 18:47
提示: 作者被禁止或删除 内容自动屏蔽
mrdou 发表于 2017-9-29 20:01 来自手机
学习。。。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-26 09:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表