安全矩阵

 找回密码
 立即注册
搜索
查看: 2617|回复: 0

逆向某江app算法分析

[复制链接]

221

主题

233

帖子

792

积分

高级会员

Rank: 4

积分
792
发表于 2021-9-10 08:06:08 | 显示全部楼层 |阅读模式
逆向某江app算法分析 (qq.com)
逆向某江app算法分析web安全工具库 web安全工具库
微信号 websec-tools
功能介绍 将一些好用的web安全工具和自己的学习笔记分享给大家。。。
1周前
收录于话题
以下文章来源于逆向有你 ,作者yushao
正在上传…重新上传取消​
逆向有你.
分享一些Android逆向,PC逆向及游戏辅助等相关学习笔记。。。

之乎者也吧
#安卓逆向#算法分析

视频号
一、抓包分析
1、数据包
  1. GET  http://m.api.zt.jsw.com.cn/v2/member?password=a123456&clientid=1&device_id=010067028741939&ip=1.1.1.1&system_name=android&sign=e96e177e2b9ed89680ac754916333527&siteid=10001&time=1630198142862&type=android&account=15836353612&modules=cloudlogin%3A1 HTTP/1.1
  2. Content-Length: 0
  3. Host: m.api.zt.jsw.com.cn
  4. Connection: Keep-Alive
  5. Accept-Encoding: gzip
复制代码
​ 2、分析参数,只有sign是密文

二、将app拖进jeb分析
1、搜索关键词"sign"

2、tab键转换成java代码,需要查看b.a方法

  1. public RequestParams a(RequestParams params, Context context) {
  2.         params.put("device_id", PhoneInfoUtils.getDeviceId(context));
  3.         params.put("clientid", "1");
  4.         params.put("ip", AppUtil.getLocalIP());
  5.         long timestamp = System.currentTimeMillis();
  6.         params.put("siteid", "10001");
  7.         params.put("system_name", "android");
  8.         params.put("type", "android");
  9.         params.put("sign", b.a(params.getURLHashMap(), timestamp + ""));
  10.         params.put("time", timestamp + "");
  11.         return params;
  12.     }
复制代码
3、双击进入b.a方法,倒着看,v4是最终结果,v9_2是第一次md5,v6是第二次md5,v9_1是md5的参数
  1. public static String a(HashMap arg14, String time) {
  2.         LinkedHashMap sortParams = new LinkedHashMap();
  3.         Object[] key_arr = arg14.keySet().toArray();
  4.         Arrays.sort(key_arr);
  5.         int v10;
  6.         for(v10 = 0; v10 < key_arr.length; v10 = (((int)v9)) + 1) {
  7.             Object key = key_arr[v10];
  8.             try {
  9.                 String v12 = key.toString();
  10.                 String v9 = URLEncoder.encode(((String)arg14.get(key)).toString(), "UTF-8");
  11.                 sortParams.put(v12, v9);
  12.             }
  13.             catch(UnsupportedEncodingException e) {
  14.                 e.printStackTrace();
  15.             }
  16.         }
  17.         StringBuilder result = new StringBuilder();
  18.         for(Object v1: sortParams.entrySet()) {
  19.             Map.Entry entry = (Map.Entry)v1;
  20.             if(result.length() > 0) {
  21.                 result.append("&");
  22.             }
  23.             result.append(((String)entry.getKey()));
  24.             result.append("=");
  25.             result.append(((String)entry.getValue()));
  26.         }
  27.         String v9_1 = result.toString().replace("*", "%2A").replace("%7E", "~").replace("+",  "%20");
  28.         crack.log(v9_1);
  29.         String v6 = MD5.md5(v9_1);
  30.         crack.log(v6);
  31.         String v9_2 = v6 + "1fa50ba25ed527f3fd1eb9467686f2bb" + time;
  32.         crack.log(v9_2);
  33.         String v4 = MD5.md5(v9_2);
  34.         crack.log(v4);
  35.         return v4;
  36.     }
复制代码

4、在上面三处处下断

5、动态调试,触发断点

           

v9=account=15836353612&clientid=1&device_id=010067028741939&ip=1.1.1.1&modules=cloudlogin%3A1&password=a123456789&siteid=10001&system_name=android&type=android



           

V6=585179fa211c64189ef1cfb45b8b5e52

6、v6是v9的md5值

7、第二个

           

v9=2db65aefd5f993ee290b7b709edc8f46+1fa50ba25ed527f3fd1eb9467686f2bb+1630223825602,再进行一次md5加密,记得去了+,这里只是让大家看清楚

​​

​​
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2025-4-22 15:57 , Processed in 0.014872 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表