首页/安卓逆向/ 安卓逆向流量银行TCP加密方式算法分析

安卓逆向流量银行TCP加密方式算法分析

作者:神奇   分类:安卓逆向   时间:2018-04-30 18:37:31  标签:


需要用到工具 ,APKIDE        改之理
然后抓包什么就不说了
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:}
温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

评论:

发表评论:

code