某人之家登陆逆向分析,初学者记录!
本帖最后由 loveqq520 于 2024-4-4 23:23 编辑自学逆向,第一次发帖,有不妥的话欢迎大佬指出
样本:5Yac5Lq65LmL5a62(小米商城下载)
工具:Eclipse (4.30.0)、JEB 4.20.0、Fiddler、MT管理器
一、初窥门径
打开fiddler,配置好代{过}{滤}理抓包,在app里选择账号密码登录,抓到如下包
可以看到抓到了登录包,点进去发现账号是明文,密码被加密了,再抓一次试试看
第二次使用相同密码发现再抓包发现密码的密文改变了,刚开始猜测是不是加了时间戳,后来发现是rsa加密,且是RSA/ECB/PKCS1Padding模式,由于填充,所以密文不一样,并查阅了资料,链接:https://blog.csdn.net/guyongqiangx/article/details/74930951
二、崭露头角
使用MT管理器提取apk,发现未加固,扔进JEB反编译根据技巧搜“password”搜索到好几个结果,一个个点进去看,发现可疑点
转化为java查看
看到这,我大致就觉得应该就是rsa加密了,这里正是登陆的Url,跟踪函数进去
三、渐入佳境
发现了key,可以看出是公钥,跟踪进去StrUtil类看看
可以看到了加密模式,这里就是将密码和公钥一起加密
自己练手就写了一下java自己实现一下
package com.frank;
import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.spec.X509EncodedKeySpec;
import java.util.Base64;
import javax.crypto.Cipher;
public class RSA {
public static String str_pubK = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7qPCn9w81CW7I9dbc+0YReFNEkiP/x7nTs5lAw+hLXmLsxNZtE/2kFN2XK3jcFOw6TSq/EbGhC9CD51q6n1B4AyfId+aGgB52ejRUrxvK+JOEWJrzXCbIOZg0QLfai+tFkmTi5jK91mQpX2di6xhiMk18gwnBmmNQQrSlEr1YgwIDAQAB";
public static String data = "a12345678";
public static PublicKey getPublicKey(String key) throws Exception {
byte[] arr_b = Base64.getDecoder().decode(key);
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(arr_b);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PublicKey publicKey= keyFactory.generatePublic(keySpec);
return publicKey;
}
public static byte[] encryptByPublicKey(String data, PublicKey publicKey) throws Exception {
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(1, publicKey);
return cipher.doFinal(data.getBytes());
}
public static void main(String[] args) throws Exception {
byte[] arr_b = encryptByPublicKey(data, getPublicKey(str_pubK));
System.out.println(Base64.getEncoder().encodeToString(arr_b));
}
}
由于每次加密都是随机的,又获取不到私钥解密,所以加密过程中有没有动过其他手脚未知
JIeJaitt 发表于 2024-4-9 19:21
算法助手是什么?大佬能指个路吗?我也是逆向新手
看我课程第九集 正己 发表于 2024-4-5 18:55
像这种原生加密,直接算法助手通杀
感谢正己大佬!哈哈哈,我是觉得初学的话最好不要上来就通杀,不然可能把自己都杀斯了,我马上还要发一篇帖子,自吐脚本通杀的,马上完稿了:Dweeqw 感谢楼主分享,支持一下! 感谢分享,学习好方法 学习学习 学习了。 像这种原生加密,直接算法助手通杀{:301_997:} 8楼开始排队感谢{:1_918:}
你这已经超出很多初学者了,利害了。 我突然感觉自己还不如初学者{:1_907:} 只要公钥没啥问题,RSA加密出来的结果 再怎么变都是有效的 相信我就行