开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 51761|回复: 13
收起左侧

[Android逆向] (原创)某app的API接口解密笔记,通过hook获取so层AES密钥

[复制链接]
结帖率:55% (6/11)
发表于 2019-11-18 22:48:12 | 显示全部楼层 |阅读模式   云南省丽江市
本帖最后由 q532373 于 2019-11-18 22:50 编辑

某app的API接口解密笔记
一次解密,给刚开始接触逆向的新人点经验
话不多说,先上封包:

POST https://api.c8521.com/api HTTP/1.1
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.1.1;redmi 3s Build/LMY47I)
Host: api.c8521.com
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 445
payload=CEHDOmG4lcviYZnCskdZzQ%3D%3D.UwcncrX7zZcJVxehkKCij0gHTeQKWLwZ6XfItcalvDFmPcihmnZrkrxpQF%2B43d9U9pa1L6pqeylM%0AgjAvlwH0%2Bwf29Lo5%2BbPX4yv0Cl%2BZx%2BjTHE%2Foo02gFbBqdgYbfIdiYN8F1%2F5x9P42p7bFGnVxilOS%0AiwREH3epLnzJBtOEEBBtKJrHGF8fr%2Bc7E%2BJKILrLujBVVXgJzVMZrmga%2FC9k8u4sevfM4RFUQbDc%0AOoPKpWrV7SPN1hs1FiczQ%2FUv72ANArtvhqN0f7HzAxsaPPwvzVeXA3Chwcv89zQqM1%2BZobBScSQO%0Ai0pKoGtWzbOfK5Yj3iSq6qk8LnGMJ5uohqCR4d5fwMF7OfCZPDDK%2Boi397U%3D%0A&
因为是对称加密,看这个样子,应该是属于AESDES这类的
看了下dex大小,应该是没加固的,dex拖到dex2jar里面去


再把jar拖进gui


成功得到源码

接下来就是定位加密的地方,通过提交数据的参数,查找关键词

找到关键地方

提交参数是两段base64编码过的数据

第一段:
payload=CEHDOmG4lcviYZnCskdZzQ%3D%3D
中间是点分隔开的
第二段
UwcncrX7zZcJVxehkKCij0gHTeQKWLwZ6XfItcalvDFmPcihmnZrkrxpQF%2B43d9U9pa1L6pqeylM%0AgjAvlwH0%2Bwf29Lo5%2BbPX4yv0Cl%2BZx%2BjTHE%2Foo02gFbBqdgYbfIdiYN8F1%2F5x9P42p7bFGnVxilOS%0AiwREH3epLnzJBtOEEBBtKJrHGF8fr%2Bc7E%2BJKILrLujBVVXgJzVMZrmga%2FC9k8u4sevfM4RFUQbDc%0AOoPKpWrV7SPN1hs1FiczQ%2FUv72ANArtvhqN0f7HzAxsaPPwvzVeXA3Chwcv89zQqM1%2BZobBScSQO%0Ai0pKoGtWzbOfK5Yj3iSq6qk8LnGMJ5uohqCR4d5fwMF7OfCZPDDK%2Boi397U%3D%0A&
我们先分析这段源码,看看第一段怎么生成的

点前面的参数是localObject1 byte[] 类型的,是由com.ilulutv.lulu.other.h.a.a()这个方法生成的

点进去,看来是随机生成的一个16字节


然后在看到这里调用的这个方法


点进去是一个base64编码



再来看第二段参数


localObject2是调用这个方法com.ilulutv.lulu.other.h.a.c生成的

点进去


果不其然是一个AES加密,第一个传进来的参数是key,第二个是iv,第三个是原文。


Iv是刚才随机生成的一个16字节


第一个参数调用的方法再去看看密钥的生成方式:


Get再进去


到这里可以看出来,是调用了so层,看来这个APP是把密钥计算方法放在了so层,通过传入参数返回计算好的密钥。

分析so太麻烦(因为不会,小声bb),这里就直接hook AES加密那个函数得到密钥了,


打开AndroidStudio,开始编写hook


填入包名,类名,方法名,传入参数类型就行了


把生成的apk装到模拟器,再激活xp模块,打开app以后,去日志查看




这样子解密就完成了,好像这个app有很多对密钥,用在不同的地方,就不一一分析了,希望对刚开始学习逆向的新人有所帮助,最后说一句:支持开源!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 3好评 +2 精币 +13 收起 理由
二毛2021 + 1 + 2 感谢分享,很给力!~
紫旭 + 1 + 10 思路清晰,好帖没人看系列。
cctv88884321 + 1 新技能已get√

查看全部评分

签到天数: 5 天

发表于 2021-11-12 17:52:02 | 显示全部楼层   湖北省武汉市
感谢分享,很给力
回复 支持 反对

使用道具 举报

签到天数: 5 天

发表于 2021-11-10 18:47:09 | 显示全部楼层   湖北省武汉市
感谢分享,很给力!
回复 支持 反对

使用道具 举报

结帖率:62% (8/13)
发表于 2021-10-22 04:47:59 | 显示全部楼层   江苏省宿迁市
大佬,你Q加不上啊,想找你帮忙
回复 支持 反对

使用道具 举报

结帖率:62% (8/13)
发表于 2021-10-22 04:47:27 | 显示全部楼层   江苏省宿迁市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)
发表于 2021-10-8 11:20:47 | 显示全部楼层   福建省漳州市
好厉害的样子。。。
回复 支持 反对

使用道具 举报

结帖率:86% (31/36)

签到天数: 17 天

发表于 2021-3-18 03:24:26 | 显示全部楼层   广东省潮州市
哥们,能够弄个pdd改头像的吗?有偿
回复 支持 反对

使用道具 举报

发表于 2020-9-19 04:42:16 | 显示全部楼层   湖北省武汉市
前面的分析很到位
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 8 天

发表于 2020-6-9 23:36:47 | 显示全部楼层   湖北省宜昌市
优秀呢,老板
回复 支持 反对

使用道具 举报

结帖率:86% (6/7)

签到天数: 6 天

发表于 2020-6-6 10:40:42 | 显示全部楼层   湖南省长沙市
厉害啊啊 啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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