开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 3902|回复: 8
收起左侧

[技术专题] 超级课程表APP 主要算法分析

[复制链接]
结帖率:100% (1/1)
发表于 2018-8-24 22:23:46 | 显示全部楼层 |阅读模式   上海市上海市
本帖最后由 小范q 于 2018-8-24 22:26 编辑

PS:APP 提供来源
app 下载 地址:
http://sj.qq.com/myapp/detail.htm?apkName=com.xtuone.android.syllabus

app 提供来源:
https://bbs.125.la/forum.php?mod=viewthread&tid=14221962&highlight=APP

第一步 抓登陆抓包:

  1. POST /V2/StudentSkip/loginCheckV4.action HTTP/1.1
  2. Content-Type: application/x-www-form-urlencoded; charset=UTF-8
  3. Content-Length: 231
  4. Host: 120.55.151.61
  5. Accept-Encoding: gzip
  6. User-Agent: okhttp/3.9.0
  7. Connection: keep-alive

  8. platform=1&password=A030B55C98B7B99C05A93817A0EC2DF1&phoneVersion=22&phoneBrand=oppo&account=77DA29A6AE3DA5102B2D3E83D7F34C1B&versionNumber=9.4.1&phoneModel=oppo+a59m&updateInfo=false&deviceCode=351613308550271&channel=AppTreasure&
复制代码


第二步 分析加密主要参数:

password=A030B55C98B7B99C05A93817A0EC2DF1
account=77DA29A6AE3DA5102B2D3E83D7F34C1B

第三步 反编译逆向找到其主要算法

  1. --------------------------------------------------------------------------------------------------------------------------
  2.     public static RequestResultBO ok(String arg5, String arg6, String arg7) throws CPemissionException, CServerException, CHTTPTimeOut, CNoNetWorkException {
  3.         RequestResultBO v0;
  4.         String v1 = bbd.on(bbd.on(), bax.final);
  5.         Map v2 = bbd.ok();
  6.         try {
  7.             v2.put("account", bui.no(arg5));
  8.         }
  9.         catch(UnsupportedEncodingException v3) {
  10.             v2.put("account", arg5);
  11.         }

  12.         if(!TextUtils.isEmpty(((CharSequence)arg6))) {
  13.             try {
  14.                 v2.put("password", bui.no(arg6));
  15.             }
  16.             catch(UnsupportedEncodingException v3) {
  17.                 v2.put("password", arg6);
  18.             }
  19.         }

  20.         if(!TextUtils.isEmpty(((CharSequence)arg7))) {
  21.             v2.put("vCode", arg7);
  22.         }

  23.         v2.put("deviceCode", bte.if());
  24.         try {
  25.             v0 = bbd.ok(v1, v2);
  26.         }
  27.         catch(CPemissionException v1_1) {
  28.         }
  29.         catch(CTreeholeException v1_2) {
  30.         }

  31.         return v0;
  32.     }
  33. ------------------------------------------------------------------------------------------------------------------
  34.     public static String no(String arg2) throws UnsupportedEncodingException {
  35.         return cba.ok(URLEncoder.encode(arg2, "utf-8"), bui.no());
  36.     }
  37. ------------------------------------------------------------------------------------------------------------------
  38.     public static String ok(String arg4, String arg5) {
  39.         String v0;
  40.         SecretKeySpec v2 = new SecretKeySpec(DigestUtils.md5(arg5), "AES");
  41.         try {
  42.             Cipher v1_1 = Cipher.getInstance("AES");
  43.             v1_1.init(1, ((Key)v2));
  44.             v0 = cbb.ok(v1_1.doFinal(arg4.getBytes("utf-8")));
  45.         }
  46.         catch(Exception v1) {
  47.             bzq.ok(((Throwable)v1));
  48.         }

  49.         return v0;
  50.     }
复制代码

第四步 算法总结

password= AES/ECB/PACK7("Pwd",key)
ps :  pwd = 输入的明文密码
       key = Hex.parse("5EEAE43521AF57CC0F5380EDBA0CA25D");

----------------------------------------------------------------------------------------------
account 加密算法跟password相同

第五步 算法移植

附件下载(js移植)

AES加密.rar

5.57 KB, 下载次数: 21, 下载积分: 精币 -2 枚

点评

录个教程更直观   北京市北京市  发表于 2018-8-27 14:17

评分

参与人数 1精币 +1 收起 理由
zy723 + 1 新技能已get√

查看全部评分


结帖率:32% (6/19)

签到天数: 1 天

发表于 2022-5-17 11:14:06 | 显示全部楼层   贵州省黔东南苗族侗族自治州
收藏收藏,学习下!
回复 支持 反对

使用道具 举报

结帖率:85% (11/13)
发表于 2018-11-11 21:05:15 | 显示全部楼层   广东省佛山市
感谢分享,学习一下
回复 支持 反对

使用道具 举报

结帖率:40% (4/10)

签到天数: 1 天

发表于 2018-9-5 13:39:26 | 显示全部楼层   重庆市重庆市
学习学习了,很不错
回复 支持 反对

使用道具 举报

结帖率:53% (19/36)

签到天数: 1 天

发表于 2018-8-28 09:49:05 | 显示全部楼层   吉林省辽源市
楼主有E的代码吗。。学习学习
回复 支持 反对

使用道具 举报

结帖率:59% (17/29)

签到天数: 4 天

发表于 2018-8-26 14:22:53 | 显示全部楼层   江西省景德镇市
楼主用的是什么逆向工具
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)

签到天数: 1 天

发表于 2018-8-25 00:08:17 | 显示全部楼层   广东省惠州市
Rien 发表于 2018-8-24 22:46
Hex.parse是什么命令?

进行hex解析

评分

参与人数 1精币 +2 收起 理由
小范q + 2 此处应该有鼓励~

查看全部评分

回复 支持 反对

使用道具 举报

结帖率:95% (39/41)
发表于 2018-8-24 22:46:16 | 显示全部楼层   广东省东莞市
Hex.parse是什么命令?
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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