开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 468|回复: 1
打印 上一主题 下一主题
收起左侧

[Android逆向] 记录一次so逆向思路

[复制链接]

结帖率:86% (12/14)
跳转到指定楼层
楼主
发表于 2025-3-29 03:48:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式   重庆市重庆市
请求参数加密了,疑似是rsa
用推理工具(https://125.confly.eu.org/forum.php?mod=viewthread&tid=14845762)推出来的公钥太多了,于是就上手逆向

跟踪发现最终加密在so里面,去so里面扫描了一下,也没有发现rsa公钥,最后发现是登录就返回了公钥(没注意看)。我就在想,那你这个so,不是白弄了嘛。

结果又遇到个问题,登录包下发公钥之后,每个请求的数据都是用rsa加密了,一两个还好,可以用一个手动技巧,找出原文,该替换的替换,但是每个请求都是rsa,原文内容都不一样。rsa知道公钥,也没办法通过抓包得到的密文还原原文。

脑子灵光一闪,你这个公钥加密的我没法解密,我自己弄个公钥我就可以解密了,于是,就用sunny写了一个临时抓包工具。
登录成功,返回的时候,记录下返回内容里的原始公钥,然后替换成自己生成的一个公钥(当然我也有配对的私钥)返回给客服端。
然后每抓到一个后续的包,就用配对的私钥给他解密出来原文,然后再用原始的公钥给他加密替换回去提交给服务器。把解密的内容显示在临时抓包工具上,就可以知道每个请求的原文内容了。
深刻理解了中间人攻击

于是信心慢慢的测试,结果诡异的现象就是解密不了前面的128字节,128字节后面的都能成功解密出原文。(rsa加密长度,超过了密钥长度,就会分多个块加密)

我一度怀疑是不同库的标准啊,rsa加密的一些另类模式啊之类的导致。
用js,c++,python都写了代码解密,结果都是第一个块解密不了,后续都能成功解密。就这个卡了我一整天。

都放弃了,又不死心,最后想了下,还是感觉有可能单独处理过前面128字节,并且应该是在rsa加密之后处理的(理论上,rsa分块加密,每个块都是一样的过程,如果他在之前处理,也能解密出处理之后的内容)
还是又从so下手分析。

中间蓝色的部分,看起来都能理解,上面都有函数名称
红框部分看起来就有点格格不入了。
慢慢查了下,给可疑指令都加上了备注。(顺便总结个经验:只要出现 and,or,shr,shl这种之类的指令,以及一些奇怪的常数,比如截图中的0xFFFFFF80,可能就是你要找的)
然后整体看,前半部分就是计算一个数字,后面部分在一个buff中交换了,0和那个数字,两个位置的字节。

有样学样的跟着交换,也算是搞定了……





本帖子中包含更多资源

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

x

评分

参与人数 1好评 +1 精币 +5 收起 理由
lao3 + 1 + 5 YYDS~!

查看全部评分

结帖率:100% (11/11)

签到天数: 10 天

沙发
发表于 2025-3-29 09:32:06 | 只看该作者   广东省河源市
牛逼啊,大佬
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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