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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 13624|回复: 21
收起左侧

[Android 原创] 安卓逆向中常见校验与加密算法特征总结

  [复制链接]
xiexie 发表于 2019-4-22 20:11
初学安卓逆向,学习了常见的几种校验与算法,做出一些总结,希望也能带给同为初学的同学一些参考~~

so库加密算法分析步骤:

绝大部分情况下,so下面的加密算法,都是调用openssl里面的加密函数

区分算法的步骤:

1,先区分是哪种类型的算法

2,再识别出是哪种加密算法


算法的类别:

取数据摘要的算法(MD5, SHA*)

对称加密的算法(AES,DES) (核心算法就是各种复杂的位异或)

非对称加密算法(RSA)(私钥,公钥)


算法调用的两种方式:       

1.调用动态库的方式调用——比较容易处理

2.将openssl静态库编译进so里面——比较麻烦


两种调用方式的分析:

如果是第一种方式(动态库调用),那么这些常见的校验与加密算法与java层的类似,都是又明文关键字出现的(MD5,SHA*,AES,DES,RSA)

如果是第二种方式(静态库调用),需要了解各种算法的数据特征来判断。

SHA224的算法是SHA256的一个分支一样的存在,只是常量有区别,采用的是SHA256的算法方法。

SHA384的算法是调用的SHA512的算法方法。


各种加密算法的特征:

取数据摘要的算法(MD5,SHA*) 算法的数据特征:

由三个方法组成:1.初始化        2.运算        3.取结果

常见表现形式如下:

111.jpg

C:/Users/13019/AppData/Local/YNote/data/weixinobU7Vjnw__E7MQYNeQzEcuVebsYU/1218c8a2ba16422fb2593950a6184c7c/69e7064b789f40c18a0f2dd778225617.jpg

进入第一个块(初始化方法),可以看到各种算法的固定常量:

MD5有四个固定常量。SHA1算法又5个固定常量。SHA256算法有8个固定常量。

常见表现形式如下:

222.jpg

C:/Users/13019/AppData/Local/YNote/data/weixinobU7Vjnw__E7MQYNeQzEcuVebsYU/33d24d805b2f419793766b522ae04672/d8c4df484bcc4a9385aa0c58f47ae19b.jpg



RC4算法的特征:

有两个256次循环


AES算法特征:

一般AES的密钥长度是128bit 或 256bit,加密出来的数据是128或256的整倍数。

一般情况下密钥都是16字节。

AES的密钥不需要进行初始化,都是直接传明文密钥进来。

方法内有很多复杂的位异或xor。

验证方法:用 hook取得明文传入的密钥,然后经过算法验证是否为AES算法。

如果是CBC算法的,还会拥有一个16字节的IV


DES算法特征:

密钥长度固定8字节。

密钥需要单独初始化,需要运行一个密钥初始化函数。

会每8字节分段加密。

CBC方式会自带8字节分段加密,ebc方式需要在外面手动分段。


RSA算法特征:

非对称加密算法

密钥需要单独初始化

密钥长度一般很长,存储格式一般为base64文本


ECC算法:

密钥需要单独初始化

密钥的首字节一般为0x04 或者 0x03 ,并且长度是类似这种17或31 这种没有4字节对齐的数据


如果对你有帮助,非常渴望能得到你免费的小心心~~~~~

免费评分

参与人数 13吾爱币 +20 热心值 +12 收起 理由
JosnSon + 1 用心讨论,共获提升!
XhyEax + 1 我很赞同!
dreamlivemeng + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
fanyao1983 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
沐雨红尘 + 1 + 1 用心讨论,共获提升!
dreamer2020 + 1 + 1 谢谢@Thanks!
lijie900 + 1 + 1 谢谢@Thanks!
qtfreet00 + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
bc001 + 1 + 1 谢谢@Thanks!
打字的小强 + 1 + 1 我很赞同!
wxue + 1 + 1 谢谢@Thanks!
lm180180 + 1 + 1 用心讨论,共获提升!
笙若 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

tmhacker 发表于 2019-4-22 21:09
我碰到一个APP里面   加密了 XML 文件的  好像是用了BASE64

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <string name="iptv">ynGubkBALOC9DU3amRX25HP/TM6LOgdZ4NhLntaYFfS7cOB5FntxoSaCkZj/cALhHSZIGPQhXO0A
    </string>
</map>

第一步 解密  后 得到一个
81, 106, -93, -6, 71, 52, -36, 112, 120, 77, -40, 48, -88, 59, -114, -44, 7, -41, 69, -63, 39, 102, -45, -28, 69, 88, 3, 122, 51, -65, -13, 44, 95, -71, -33, 90, 35, -102, 7, 101, -76, 73, -82, 42, 42, -100, -99, 120, -107, -26, -107, 10, -43, 29, 83, 16, -55, 60, -96, -45, 16, -47, -51, 122, -105, -95, -106, 49, -2, -54, -98, 59, 6, 105, -105, -114

在往下没啥思路了
debug_cat 发表于 2019-4-22 22:29
tmhacker 发表于 2019-4-22 21:09
我碰到一个APP里面   加密了 XML 文件的  好像是用了BASE64

base64是一种编码,翻过来一下就好了,如果是base64编码过的字符串,会比原来增长三分之一。你这个怎么越来越长,应该是搞错了吧
LeiSir 发表于 2019-4-22 20:33
风雨辰 发表于 2019-4-22 22:59
来学习一下
头像被屏蔽
yyspawn 发表于 2019-4-23 07:17
提示: 作者被禁止或删除 内容自动屏蔽
无痕软件 发表于 2019-4-23 08:40
更倾向于修改源码,变异算法。
bc001 发表于 2019-4-23 08:58
谢谢楼主分享
Bruce_HD 发表于 2019-4-23 10:05
学习学习了,感谢分享。
wapjltb 发表于 2019-4-23 10:21
学习了,感谢分享!
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-3-29 22:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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