当前位置: 首页 > 后端技术 > Python

破解七信宝app的token算法-token分析(三)

时间:2023-03-25 23:24:40 Python

前两篇分析app的抓包和逆向:七信宝app的token算法破解-抓包分析(一)七信宝app的token算法破解-逆向部分(2))这部分将静态分析令牌,这很容易完成。通过idea的全局搜索,直接搜索“token”即可找到token所在的位置,如上图所示。找到了,进去看看,这个在MessageUtil类里面,可以看MessageUtil的具体方法:具体代码就不贴了,分析了一下,发现编译c后的so文件用的是ndk,有点难度,先不管这个,继续分析。静态{System.loadLibrary("加密库");有这个returnb.a(str);该类中的方法,是具体的算法分析。/*重命名来源:原因:与根包名冲突*/publicstaticStringf1288a="CryptoTool_KEY";publicstaticStringb="CryptoTool_IV";publicstaticStringc=MessageUtil.getKey();publicstaticStringd=MessageUtil.getIV();privatestaticfinalStringe="AES/CBC/PKCS5Padding";私人静态字节[]f=a.a(c);privatestaticSecretKeySpecg=newSecretKeySpec({},"AES");私有静态密码h;publicstaticStringa(Stringstr){try{if(h==null){f=a.a(c);g=newSecretKeySpec(f,"AES");h=Cipher.getInstance(e);h.init(1,g,newIvParameterSpec(a.a(d)));}byte[]bytes=str.getBytes("UTF-8");byte[]bArr=newbyte[h.getOutputSize(bytes.length)];h.doFinal(bArr,h.update(bytes,0,bytes.length,bArr,0));返回Base64.encodeToString(bArr,2);}catch(Exceptione2){e2.printStackTrace();返回空值;}}看到token是用AES加密的,具体的key和offset可以在encrypt-lib中找到。移动?这里可以使用frida和xposed的hooks进行提取,下一篇将提取frida的hooks。