然后抓包什么就不说了
url:“http://api.flowbank.sinobyte.cn/ ... eid=516989639561510”
协议图:“ExpiresTime: 20150429022011
tcp: E49124E2B293C31BCECE3A9F9892945E”
sign ,我这里也不说明解密 直接说TCP的。。
1.用改之理反编译 流量银行,,然后直接搜索tcp
了解到,TCP在这里会用"flow_name"来表示,,我们就搜索这个值
接着搜索0x7f07006f
0x7f07006f 然后这个的十进制就是 。2131165295我们在java里面直接找他的十进制 ,就可以找到
public static Map<String, String> a(String paramString)
{
HashMap localHashMap = new HashMap();
String str = bd.a();
localHashMap.put(bd.b().getResources().getString(2131165345), str);
localHashMap.put(bd.b().getResources().getString(2131165295), a(str, paramString));
return localHashMap;
}
bd.b().getResources().getString(2131165295) =tcp 那后面的 a(str, paramString) 就是 tcp的值了。。
然后str =bd.a();
点进去看下,,a的代码。。
public static String a()
{
return new String(new SimpleDateFormat("yyyyMMddhhmmss", Locale.getDefault()).format(new Date()));
}
这个代码返回的是时间的文本格式,,Y代表年,,M月,D日 ,H时 M 分 S秒。也就是我们包里面表示的20150429022011 这个。。
然后 就是那个paramString 可以看到他是传进来的,我们就要看他是从哪里调用的。。搜索Lcom/flowbank/wo/util/a;->a
这样我们就知道 paramString =sign 不懂的可以自己用java代码看下。。
然后我们看 tcp=a(“20150429022011”, “7B5340217C8F0C7B26CE7116B693C94B”);
然后看函数a
public static String a(String paramString1, String paramString2)
{
if (TextUtils.isEmpty(paramString2)) {
return bd.d(paramString1 + paramString2 + a());
}
在看下,a()返回什么值
private static String a()
{
return bd.b().getResources().getString(2131165297);
}
说明 a()返回的是 2131165297这个数值表示的意思,,我们换成 十六进制0x7f070071到改之理搜索 得到。"recharge_num" ,我们在搜索这个代表意思
www.sinobyte.cn
然后在返回上面的。。
tcp=bd.d(“20150429022011”, “7B5340217C8F0C7B26CE7116B693C94B”+ “www.sinobyte.cn”);
然后 bd.d其实就是MD5 ,,有兴趣可以自己去看下代码。
这样我们就找出来TCP的加密内容。。。{:soso_e183:}
发表评论: