这么多年写过很多 APP ,也研究过很多别的 APP
安卓 APP 通过抓包和反编译很容易获取 REST API 调用机制,有什么方法可以尽量避免吗(包括服务端)?
1,通常都是把 method 和请求参数 hash 或者 rsa 后发送到服务器比较,比如 :
method+p1+v1+p2+v2+p3+v3
Hash 或者 RSA 后发送到服务器进行验证
2,Hash 的话,可以稍微增加一点难度,本地自定义一个乱序字典,来进行请求参数排序,比如 : 字典是[3,1,2],那么 method+p3+v3+p1+v1+p2+v2
3 ,但通常还是 RSA ,这里就涉及到公钥保存的问题
最简单的储存字符串或者文件,只要反编译后很容易就找到了;
见过比较复杂一点的(某国外著名社交软件),存在一张图片里,程序读几个固定点的 rgb 值来拼成 key ;
也有复杂一点的,把 key 或者 rsa 加密过程写在 so 里面(这个就多了,比如 163 系),但是这样一样可以通过 load so 文件来进行调用
基本上遇到过的都是在这个范畴内,难度有高低,但是都能破解。大家还有更好的想法吗?

