开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 16973|回复: 35
收起左侧

[技术专题] 触手TV安卓APP sign 加密分析

[复制链接]
结帖率:75% (3/4)
发表于 2017-8-27 10:44:39 | 显示全部楼层 |阅读模式   山东省聊城市
本帖最后由 小七烤地瓜 于 2017-8-27 11:50 编辑

                                                                        触手TV安卓APP sign 加密分析



视频版教程版链接在下面............

废话不多少 先上抓包数据:
1.png
登录数据:
POST https://api.chushou.tv/api/chushou-login.htm? HTTP/1.1
User-Agent: Android ChushouTV/3.1.2.11628
Content-Type: application/x-www-form-urlencoded
Content-Length: 264
Host: api.chushou.tv
Connection: Keep-Alive
Accept-Encoding: gzip

username=15845454545&password=25f9e794323b453885f5181f1b624d0b&imei=865166021513968&_t=1503798306999&_fromView=1&_fromPos=7&_appSource=209&_appVersion=3.1.2.11628&_identifier=1201806294&_imei=865166021513968&_appkey=CSAndroid&_sign=edbe71fa3258d690fdeacf6f1e697f9b

返回数据:
HTTP/1.1 200 OK
Server: openresty
Date: Sun, 27 Aug 2017 01:45:07 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 62
Connection: keep-alive

{"code":1100,"message":"该手机号尚未注册","data":null}


数据分析:
username=15845454545   账号
password=25f9e794323b453885f5181f1b624d0b   密码 加密后的 但是他只是个单纯的密码进行的MD5
imei=865166021513968  设备号
_t=1503798306999   时间戳
_fromView=1   不知道啥东西 经多次抓包为固定值 不用管
_fromPos=7     不知道啥东西 经多次抓包为固定值 不用管
_appSource=209     不知道啥东西 经多次抓包为固定值 不用管
_appVersion=3.1.2.11628    APK版本号
_identifier=1201806294      不知道啥东西 经多次抓包为固定值 不用管
_imei=865166021513968   设备号
_appkey=CSAndroid     知道是啥 但是不知道干嘛用的
_sign=edbe71fa3258d690fdeacf6f1e697f9b  签名校验
我们搞的就是这个sign 他不对你登陆不上的
包知道了  加密参数名知道了  那就开始分析APK
JEB 加载分析  搜索_sign
2.png

查看第一个sign 查看代码发现
3.png
很幸运 我们第一次 一下就找到关键加密点了 什么?你问我怎么知道这里就是加密的?开玩笑  这么隐秘的事情能告诉你蛮
我们来分析翻译一下这段代码  从头看 PS:普通装逼已经不行了 我要发大招了....
  1.         v2.a("_appSource", com.kascend.chushou.h.b.a(v6));
  2.         v1.a("_appSource", com.kascend.chushou.h.b.a(v6));
  3.         v2.a("_appVersion", tv.chushou.zues.utils.a.c(com.kascend.chushou.b.d));
  4.         v1.a("_appVersion", tv.chushou.zues.utils.a.c(com.kascend.chushou.b.d));
  5.         v2.a("_identifier", com.kascend.chushou.h.d.a().i);
  6.         v1.a("_identifier", com.kascend.chushou.h.d.a().i);
  7.         if(!j.a(ChuShouTVApp.IMEI)) {
  8.             v2.a("_imei", ChuShouTVApp.IMEI);
  9.             v1.a("_imei", ChuShouTVApp.IMEI);
  10.         }

  11.         if(!j.a(this.i)) {
  12.             v2.a("token", this.i);
  13.             v1.a("token", this.i);
  14.         }

  15.         v2.a("_appkey", "CSAndroid");
  16.         v1.a("_appkey", "CSAndroid");
  17.         String v0_1 = v1.a();
  18.         String v1_1 = tv.chushou.zues.a.b("HAL$#%^RTYDFGdktsf_)(*^%[        DISCUZ_CODE_0        ]quot; + v0_1);
  19.         v2.a("_sign", v1_1);
  20.         if((f.a()) && !arg8.contains("chat/get.htm")) {
  21.             f.b("MyHttpMgr", "URL = " + arg8 + v0_1 + "&" + "_sign" + "=" + v1_1);
  22.         }

  23.         return v2.a();
  24.     }
复制代码
为什么说这里是加密的地方呢 不是没有道理的 稍微懂点变成的人都看得懂 这里是他登录包的一个获取 最后经过了拼接
        v2.a("_appSource", com.kascend.chushou.h.b.a(v6));
v1.a("_appSource", com.kascend.chushou.h.b.a(v6));
v2.a("_appVersion", tv.chushou.zues.utils.a.c(com.kascend.chushou.b.d));
v1.a("_appVersion", tv.chushou.zues.utils.a.c(com.kascend.chushou.b.d));
v2.a("_identifier", com.kascend.chushou.h.d.a().i);
v1.a("_identifier", com.kascend.chushou.h.d.a().i);
if(!j.a(ChuShouTVApp.IMEI)) {
v2.a("_imei", ChuShouTVApp.IMEI);
v1.a("_imei", ChuShouTVApp.IMEI);
}

if(!j.a(this.i)) {
v2.a("token", this.i);
v1.a("token", this.i);
}

v2.a("_appkey", "CSAndroid");
v1.a("_appkey", "CSAndroid");
这一整串  都是设置参数名+获取对应的参数值因为都是相同的操作 就不一一介绍了
v1.a  v2.a  这个a方法 就是  正则表达式吧  那么这个里面方法应该就是正则操作
4.png
重点我们分析代码为:
String v0_1 = v1.a();
        String v1_1 = tv.chushou.zues.a.b("HAL$#%^RTYDFGdktsf_)(*^%$" + v0_1);
        v2.a("_sign", v1_1);

String v0_1 = v1.a();  一个文本型的 v0_1 被赋值为v1.a();
那么 v1.a(); 是什么他是在哪被赋值的呢?
注意看上面 我贴出的代码 是不是 v1.a  那么这个a 你可以 认为成增加附加数据的意思 然后这个方法里面又利用正则处理完数据 又返回来了
也就是说这个v1.a  之一在增加数据 另一方面我们从他增加的参数名来看 他很有可能是拼接的加密数据的明文
是不是呢 我们继续看下一句代码
String v1_1 = tv.chushou.zues.a.b("HAL$#%^RTYDFGdktsf_)(*^%$" + v0_1);
又声明了个 v1_1 的变量  经过  tv.chushou.zues.a.b  方法执行 赋值给了v1_1  并且传递了一个参数
5.png

传递了什么参数?
"HAL$#%^RTYDFGdktsf_)(*^%$" + v0_1        HAL$#%^RTYDFGdktsf_)(*^%$  这个字符串加上 v0_1
然后 v2.a("_sign", v1_1); 又经过a  方法 传递进去一个参数名和参数值 参数值就是  tv.chushou.zues.a.b("HAL$#%^RTYDFGdktsf_)(*^%$" + v0_1);  这一段的执行结果
注意 参数名和我们抓到的包是一样的  那么这时候我们需要知道一点  就是这个 v0_1   最终是什么数据?它拼接后是什么样子呢
等会调试下断电 看看  现在看看 v.chushou.zues.a.b 方法
6.png
继续跟踪我们来到了这里
public static String b(String arg1) {
        return a.a(arg1, new String[0]).toString();
    }

一个 为b 的静态方法 传递了一个 arg1参数 又调用 a.a 方法转换成 string类型  然后返回了数据
继续跟踪 来到这里
7.png

这里有个MD5  我们从抓包就可以看出来 就是个MD5加密 没什么稀奇的 那么这里就是他的加密核心了
你可以调用jar  从这里获取他的类 包名等  等等!什么? 一个MD5 你就要调用jar?  至于么?  额...... 还真不至于
又跟到加密代码了  没需要继续分析了  这时候我们下段点 来看看这个 v1_1  是个什么东西

8.png

下断点 附加模拟器点击登录 端在这里
读取v0 的数据 输出为:
9.png

appSource=209&_appVersion=3.1.2.11628&_appkey=CSAndroid&_fromPos=7&_fromView=1&_identifier=1201806294&_imei=865166021513968&_t=1503801131981&imei=865166021513968&password=25f9e794323b453885f5181f1b624d0b&username=15845454545
这一串就是之前v1 一直在拼接的数据 那么他就是我们加密的铭文了么? 是 !  但是还有一个别忘了 HAL$#%^RTYDFGdktsf_)(*^%$
继续单步走 发现
10.png

这时候明文 和密文 都出现了  
明文:
HAL$#%^RTYDFGdktsf_)(*^%$&_appSource=209&_appVersion=3.1.2.11628&_appkey=CSAndroid&_fromPos=7&_fromView=1&_identifier=1201806294&_imei=865166021513968&_t=1503801131981&imei=865166021513968&password=25f9e794323b453885f5181f1b624d0b&username=15845454545
密文:
38f8e561f6bb7b23e64b1a6ac6db65b0

我们知道他是MD5  那么我们来试验一下吧
11.png

  
经过试验对比我们发现 他们是对应的  进一步确定  我们看登录包的sign
12.png

ok  完全一样 那么这个加密我们也就分析完毕了
好了 此次装逼~ 啊不对 是分析结束.......



触手TV安卓APP sign 加密分析【视频版】
http://bbs.125.la/forum.php?mod=viewthread&tid=14060992
(出处: 精易论坛)



评分

参与人数 5好评 +5 精币 +128 收起 理由
自强不息 + 1 + 4 很好很强悍,坚持下去哦~
郑雨 + 1 新技能已get√
鐵憨憨 + 1 + 1 球阀JEB!!!!
兔子君 + 1 + 120 感谢分享,很给力!~
城南花已开 + 1 + 3 感谢发布原创作品,精易因你更精彩!

查看全部评分


本帖被以下淘专辑推荐:

发表于 2020-4-18 09:07:55 | 显示全部楼层   广东省湛江市
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2018-8-17 13:19:47 | 显示全部楼层   河北省邢台市
66666666666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 4 天

发表于 2018-6-26 22:53:31 | 显示全部楼层   广东省梅州市
最新的APP不知道为啥抓不出包 不知道是不是我的问题
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)
发表于 2018-6-3 23:44:17 | 显示全部楼层   北京市北京市
太高深了。。。。。
回复 支持 反对

使用道具 举报

发表于 2017-12-21 10:19:50 | 显示全部楼层   山东省烟台市
6666,牛逼
回复 支持 反对

使用道具 举报

发表于 2017-12-4 13:41:17 | 显示全部楼层   重庆市重庆市
大发发斯蒂芬都是发送到发送到
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2017-11-27 17:59:52 | 显示全部楼层   广东省深圳市

感谢楼主的分享。。。。
回复 支持 反对

使用道具 举报

结帖率:74% (23/31)

签到天数: 9 天

发表于 2017-11-17 11:48:47 | 显示全部楼层   四川省成都市
看懂了,关键是还要断点看一下,才能知道具体原因
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)
发表于 2017-11-4 15:27:01 | 显示全部楼层   四川省绵阳市
感谢分享!!!
回复 支持 反对

使用道具 举报

发表于 2017-10-30 20:51:27 | 显示全部楼层   四川省达州市
这种教程 像我这样的最需要,感谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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