jeb动态调试(无壳)
apk地址:http://s.downcc.com/search/pc/%E4%BB%8A%E6%97%A5%E9%95%87%E6%B1%9F_all_time.html
所需工具:httpdebugger,也可以是filder,charles等模拟器手机抓包工具
jeb动态调试软件
雷电模拟器(此模拟器不验证apk签名)其他模拟器没试过
apk查壳工具
点击登录抓取登录接口,get请求中只有sign签名是需要解密的
下面来进行解密sign
利用查壳工具检查其是否有壳
该apk未加壳,直接拖到jeb中进行调试
该方法即为上图中右键-》解析后的java代码,可以看出sign值为调用了b.a()方法后返回的值,在smali代码中调用b->a后将返回结果放在了v3寄存器中
上图中实例了一个v7stringbuilder,然后向里面添加了v6–第一次将v9进行md5后的值,v9–salt值,p1–传入进来的时间戳参数
时间戳我们已经知道,salt值是常量固定的,因此我们只需要打断点查看第一次进行md5的时候v9的值
v9:account=18328036051&clientid=1&device_id=865166025490148&ip=172.16.1.15&modules=cloudlogin%3A1&password=123456&siteid=10001&system_name=android&type=android
到此计算sign需要的值我们已经都知道了
1.对这个参数(account=18328036051&clientid=1&device_id=865166025490148&ip=172.16.1.15&modules=cloudlogin%3A1&password=123456&siteid=10001&system_name=android&type=android)进行md5得到一个md5值我们假设为a
2.在其后面加上salt和时间戳就是
a+salt+时间戳,salt和时间戳上面已经说明了
3.对a+salt+时间戳再进行md5就是我们要的sign值了