学海 OSS 存储相关分析
有个群友说他在研究学海平板,应该就是初高中里智慧课堂那种了,之前也有耳闻,但是因为没实际接触过所以没有研究。从群友发的截图来看,东西很简单,所以纯当练手了
已知学海平台的东西存在一个阿里云 OSS 里,这点在 com.xh.xhcore.common.oss.OssConfig
里就能看到
关键在那几个预定义的变量里,可以直接看到有 Key 什么的,但是这个 Key 是加密的,还好同时也能看到解密的部分
从最后的 sign 方法调用可以看出,str2 和 3 大概就是账号和密码了,阿里云把这叫做 AccessKeyId 和 AccessKeySecret,而 str2 和 3 都分别调用了几个 RSA 解密方法得到,继续跟踪到 RSAUtil
通过 import 的包可以看出来这个 RSA 属于比较正经的那种 RSA,不是叫 RSA 的名不干 RSA 事的幌子。那么直接把这个类扒出来当作工具类就好了 (这个类 import 了一些 Android 的包,一般情况下 IDEA 里调不了,所以为了偷懒我就直接用 Android Project 了)
回到 OssConfig 类里,看看解密部分,可以看到 privateDecrypt 有两个参数,一个是上面的变量,还有两个通过 getAccessKeyEncrypted()
和 getSecretKeyEncrypted()
方法获取,继续跟踪这两个方法
找到了这两个方法的定义,但这个类里面并没有明文,而是直接返回了 this 里的两个变量,继续找 AliyunOssConfig 方法的引用
在 com.xuehai.launcher.common.base.XHAppConfig
找到了引用,两个参数就是对应 accessKeyEncrypted
和 secretKeyEncrypted
的了
最后就成功获取到了这四个参数了
accessKeyEncrypted = JPzDSOCCN47N2-VVgSdP10hb2lj3M5VozdqciZ...
secretKeyEncrypted = 0RDGsN-5AaQU3psAzK2_AdKyXsg7M4k93FNPgWS...
akPrivateKey = MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE73Anwh...
skPrivateKey = MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdEAAo...
在 Android Project 里把代码照搬过来,然后打一个 Log 就行了
最后当然要补一张截图