1.在模拟器上安装app,使用Charles抓包;
2.在接口数据中上传参数包含uuid date,这个是切入点,非常关键。使用dex2jar-2.0工具反编译dex文件得到jar文件;
3.搜索uuid,找到接口上传参数加密位置;
4.可以看到代码是这样的
paramContext = BaseRequestBuilder.buildAESData(paramContext, paramRequestCfgBean);
((j.a)localObject).b("data", v.k(paramContext.data)); ((j.a)localObject).b("uuid", paramContext.uuid);
这就是上传加密的算法,大致就是将json试用AES加密,ASE加密后一般是16进制或者是base64;顺藤摸瓜找到加密算法;
分析得出是AES加密 ecb模式 填充 ZeroBytePadding AES/ECB/ZeroBytePadding ecb模式不需要iv只需要key 结果是bast64 ;
总结:一般能抓包并且能反编译看到代码的被破解就很简单,基本是也是在防抓包和加壳这两个方面上对app进行防护,防抓包和加固技术不断增强,只有不断学习提升自己的技术;
|