吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4912|回复: 2
收起左侧

[Android 原创] 某盾 so 壳分析

[复制链接]
t1ger 发表于 2020-1-4 13:49
本帖最后由 t1ger 于 2020-1-4 14:07 编辑

最近分析某盾的so壳,有点意思。全程字符加密,没有任何可用字符串可以参考。重要函数,加密。
运行时解密,运行完毕,重新加密回去。
样本libnetsecsdk-4.0.7.so,armv7a,
https://jcenter.bintray.com/com/netease/mobsecurity/mobsecLib/4.0.7/可下载
1.节数目IDA打开出错。节数目由 0xff 修改为0x18,可IDA分析

Image.png



2.字符串表字符串表加密:文件偏移file:///C:/Users/storm/AppData/Local/Temp/enhtmlclip/Image(1).png
Image [2].png



XOR 第二字节,可解密
image.png
3.运行中加密的函数

解密操作在init_array中。包括计算真实的jni_onload解密->运行(f_Decrypted() )->还原

Image [3].png





3.5个加密函数
文件视图
Image [4].png
反编译视图:
Image [13].png
函数地址加密XOR0x00000073后;可完全解密后:
Image [6].png
0x5591为真实的JNI_ONLOAD地址,当然,函数是被加过密的。XOR0x58。


4.校验CRC
1.CheckLowByte():0x21+0xb1+0xcc+0x41=0x1df
Image [7].png
2.CRC数据校验
Image [8].png
0x6c3c平分4块计算CRC
会计算CRC,需要过掉CRC检测,后面才能继续。




5.一些数据解密
有TEA解密,解密的数据何用,未分析出来。高手请指教



6.进入真实的Jni_onload
加载so后,就进入真实的jni_onload

sobase + 0x5591
操作:
1.解压数据
2.解密字符串,所有字符串,还是加密的
3.注册native


Image [9].png


7.解压
init_array 。
从load + 0xD36C + 0x10
Image [10].png
A1666000(基址) + 0xC36C + 0X1000 = A167 236C‬

Image [11].png
A1666000 + 0xE000 = A167 4000‬ -> 目的地址


8.注册native
Image [12].png
基址:A1CB2000
解压后数据:
A1D47014 "w410e0e9eb51cc6b0"
A1D47018  "(Ljava/lang/Object;II)Ljava/lang/String"
A1D4701C DCD loc_A1CCC830+1

A1D47020 "w6e685a9adf5af10b"
A1D47024 "(Ljava/lang/Object;DDLjava/lang/String;"...
A1D47028 sub_A1CCC20C+1

A1D4702C "wd92f591f6307ab76"
A1D47030 "(Ljava/lang/Object;[Ljava/lang/String;L"...
A1D47034 sub_A1CCCF10+1

A1D47038 "w1228bcedf6204eeb"
A1D4703C "(Ljava/lang/Object;Ljava/lang/String;)L"...
A1D47040 sub_A1CCBBB4+1

A1D47044 "w3270a03dafee4a0a"
A1D47048 "(Ljava/lang/Object;Ljava/lang/String;)L"...
A1D4704C sub_A1CCBB04+1

A1D47050 "w238jfd9349jdj394"
A1D47054 "(Ljava/lang/Object;[Ljava/lang/String;)"...
A1D47058 sub_A1CCBC64+1

A1D4705C "w101e1ab92f282335"
A1D47060 "(Ljava/lang/Object;Ljava/lang/String;[B"...
A1D47064 sub_A1CCB95C+1

A1D47068 "w230921e1b36f7799"
A1D4706C "(Ljava/lang/Object;[Ljava/lang/String;)"...
A1D47070 sub_A1CCBF38+1

A1D47074 "w5dbd0f6bd72afff7"
A1D47078 "(Ljava/lang/Object;Ljava/lang/String;)["...
A1D4707C sub_A1CCB9D8+1

A1D47080 "w97c82a1471981172"
A1D47084 "(Ljava/lang/Object;Ljava/lang/String;)I"
A1D47088 sub_A1CCBA50+1

A1D4708C "w7aa090cda25562b5"
A1D47090 "(Ljava/lang/Object;)Ljava/lang/String;"
A1D47094 sub_A1CCC510+1


至此,分析完毕。
这个壳,确实很优秀,字符串加密,代码动态加密,运行后解密。
压缩重要代码。静态分析基本没用。

Image [5].png

免费评分

参与人数 4威望 +2 吾爱币 +15 热心值 +4 收起 理由
一曲苍凉、 + 1 + 1 用心讨论,共获提升!
cugarwang + 1 + 1 用心讨论,共获提升!
Symb + 1 + 1 一脸愣逼进来一脸愣逼出去
qtfreet00 + 2 + 12 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

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

2Burhero 发表于 2020-1-13 11:36
感谢分享
一曲苍凉、 发表于 2020-1-31 12:22
楼主,我有个elf头的二进制文件可以帮我看一下嘛,最好教我一下怎么解?如果可以一定好好感谢!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 20:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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