技术实战
文章平均质量分 83
逆向软件开发
这个作者很懒,什么都没留下…
展开
-
安卓逆向基础知识之加解密算法与Hook基础
什么是消息摘要算法?百度百科是这样解释的:消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,可以被解密逆向的只有CRC32算法,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。一般地,把对一个信息的摘要称为该消息的指纹或数字签名。数字签名是保证信息的完整性和不可否认性的方法。数据的完整性是指信宿接收到的消息一定是信源发送的信息,而中间绝无任何更改;信息的不可否认性是指信源不能否认曾经发送过的信息。原创 2024-11-05 11:55:02 · 890 阅读 · 0 评论 -
小红书协议最新算法
当然初始化native函数initializeNative在引入这个类的时候就调用了,本来想直接引入SO构造Retrofit实现获取sign,但是它上下文太强了,根本无法猜测到它到底是什么类型,传入一模一样的值进去。通过抓包发现,它在so里调用了process方法,根本不会让你在外拿到sign,所以它上下文关联和复杂,相比之前的快手、抖音、最右是最麻烦的。需要注意的是,以上接口仅供参考,具体的实现方式和算法设计需要根据业务需求和用户体验等因素来确定。原创 2024-11-05 11:49:02 · 520 阅读 · 0 评论 -
瑞幸咖啡协议算法
这里已经是加密结果赋值了,下面有一堆方法挤在一起的就是读取输入,对输入进行排列。(之前弄得,没图了。)因为没时间分析了,直接unidbg调了就行了,下次有时间的话还原一下算法。sign走的是md5_crypt,具体实现在libcryptDD里,常规md5加密,拼接了一串20长度的字符串,然后四位四位运算.(下面是解密代码)走了AESworks那个加密,然后base64的_变/,+变-。第二个参数分别是2,3代表加密解密。目前是unidbg调了,有空再研究。当时想手撸白盒aes的,。原创 2024-10-24 13:19:53 · 602 阅读 · 0 评论 -
某口算部分算法还原思路
如有侵权,请联系我下架,但是我更希望厂商能在不断对抗中进步学习进步自己的产品。增加混淆,把常规算法(md5)做一些魔改,哪怕魔改几个IV也会有出奇的作用,做一些反trace的检测。发现调用了大量rand,在这里我推测和第三个入参,以及ctf中出现的伪随机数有关系。发现算法直接被还原出来了,但是到这里还没有结束,让我们看看厂商创新的点。前言: 本文仅为了交流学习,提高逆向对抗的水平,更好的防护APP。向上追溯一层堆栈,瞬间清晰明了,之前的几次append也被发现了。看一下调用了哪些函数,找一下线索。原创 2024-10-18 14:51:50 · 780 阅读 · 0 评论 -
抖音无需脱壳抓取软件加密包方法
简单讲一下不脱壳抓取数据包方法,不懂的再问。夜神模拟器 6.6.0.5Xposed.installer(5.11安卓系统)4.42安卓模拟器Xposed框架链接:https://pan.baidu.com/s/1depSSHCy0KYcFZzkPH7aZQ 密码: vmyr5.11安卓模拟器Xposed框架链接:https://pan.baidu.com/s/1erZD4gMk1MQdVklnrmSuLg 密码: s4j4Xserver下载。原创 2024-10-18 14:41:01 · 327 阅读 · 0 评论 -
hook抓包的风控解决方案
抓包应该是我们逆向的第一步,只有先抓到包,才能决定我们是否要进行脱壳、逆向。万一他没有加密、万一数据不是我们想要的那岂不是白忙活了。但是目前很APP都设置了门槛,比如新版的抖音、淘宝、天眼查等挂上代理就直接无数据或者就显示不出你想要的数据。还没有开始就直接结束了,让人懊恼不已。没办法只能上科技与狠活了。原创 2024-10-18 13:46:55 · 1075 阅读 · 0 评论 -
通过xnuspy hook 内核ptrace 函数绕过反调试
由于数据对齐要求,编译器可能会在结构体的末尾添加填充以确保结构体大小是对齐的。因此,整个结构体的大小是 24 字节(4 + 4 + 8 + 4 + 4(填充))。在 64 位系统上,考虑到内存对齐和每个成员的大小,下面是详细的内存布局。在 64 位系统上,指针类型通常是 8 字节并且需要对齐到 8 字节边界。iPhone 7 的 14.1。原创 2024-10-08 19:00:22 · 1083 阅读 · 0 评论 -
某右sign-v2签名算法追踪及逆向还原
可以看到通过传参调用"+[libProtocol sign_data:]"函数来进行签名的 参数又是通过传参调用"+[libProtocol encode_aes:]"得到的。可以看到通过传参调用"+[libProtocol sign_data:]"函数来进行签名的 参数又是通过传参调用"+[libProtocol encode_aes:]"得到的。而request data为[libProtocol encode_aes]加密后的数据 那么具体aes key是如何产生的呢 这个容我日后再做分析。原创 2024-10-07 15:23:07 · 1044 阅读 · 0 评论