开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 7329|回复: 3
收起左侧

[技术专题] Engintime系列逆向分析(1)--协yi分析

[复制链接]
结帖率:100% (1/1)
发表于 2020-8-30 22:36:19 | 显示全部楼层 |阅读模式   山东省烟台市
Engintime系列逆向分析(1)--求大佬打赏

前言
近日发现Engintime的那套软件更新了,转移到了 CodeCode,以前老版本记得分析过,就是个真demo,这回新版本看它的描述并不是demo,遂打算分析一番。
环境部署
我选择从 Engintime OS Lab 开始分析,实际上他一系列的几款区别并不大并且都没有加壳。
首先,祭出分析工具。
由于此软件是 32位软件,本文使用了动态分析工具 Ollydbg。
寻找突破口
运行软件,寻找突破口,看到形如 登录失败:用户名或密码错误。
这就是一个天然存在的突破口,只要目标软件没有使用一些奇怪的异步框架就能很快定位到关键点

  

OD 附加之,通过查找UNICODE字符串,定位之。
从上图中,可以得知以下内容
  • 软件使用了 cpprestsdk 库
  • 此处是 请求返回的结果处理
  • 结果包应该是一个 状态码为 200 并且 body 部分是一个json
    其格式为 {"access_token":""}
为什么不尝试爆破?
一般来说,带网络验证的程序,其程序内部可能存在一些全局数据需要初始化 例如 版本号,标题,加解密key等,
如果简单的爆破可能导致这些数据不能被初始化而导致未知错误。
在本软件中,协议相对简单,从协议出发更为合理。
协议分析
此时祭出协议调试套装 Proxifier + Fiddler 4。
为何要使用 Proxifier?
在 cpprestsdk 库中,可以选择代理模式和非代理模式,若只用 Fiddler 4 作为系统代理,在本软件中是抓不到数据包的。
简单配置 Proxifier Fiddler 4
再次登录,会获得如下数剧


根据之前的分析,需要重新构造一个数据包返回,其构造如下

HTTP/1.1 200

Content-Type: application/json; charset=utf-8

Connection: close



{"access_token": ""}
[url=][/url]
使用 Fiddler 4 的 AutoResponder 功能对包进行替换




token.txt 中就是上面的返回内容,再次点击登录


同时在 Fiddler 4 中能的到一请求地址为 https://www.codecode.net/api/v4/clientauthorizedcode
继续使用 OD 查找 登录失败:获取授权失败



这里就不贴全了,其逻辑和之前第一个包的逻辑类似。
中间有个稍微特别一点的。



得到json格式之后,先不管其内容具体意义,构造 Response 如下

HTTP/1.1 200

Content-Type: application/json; charset=utf-8

Connection: close



{

"message":"0",

"number" : 0,

"ban_count":0,

"email":"",

"name":"",

"username":"",

"inforId":"",

"inforContent":"",

"threedeskey":[0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5],

"auth_state":true

}
[url=][/url]
故技重施,在登录成功之后,出现了加载页面,然后程序就退出了。




到此为止了么?
真是山穷水尽了。
山穷水尽
此时崩溃的原因可能有很多,
  • json 内容错误
  • 是软件自身bug
  • ...
如果是json内容错误还好说,要是软件本身有bug,可就难受了。
那就先假设是软件bug,他有一系列软件,不可能全都有bug,换一个试一下。
柳暗花明
改装 Engintime CP Lab
运行之,


成功打开了。
剩下的几个都测了一下,有的能打开有的打不开。
不可能这些全部都存在bug,
那么就需要回到json内容错误继续分析了。
总结
通过字符打开突破口,通过Response替换,成功运行该系列的部分软件。
下一篇中,我将继续分析 json内容错误。




评分

参与人数 1好评 +1 精币 +5 收起 理由
冰点 + 1 + 5 奉上小小红包希望笑纳

查看全部评分


结帖率:75% (3/4)
发表于 2020-11-4 20:07:31 | 显示全部楼层   四川省成都市
感谢了 学习到了
回复 支持 反对

使用道具 举报

发表于 2020-9-27 14:30:36 | 显示全部楼层   吉林省长春市
学到!!
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
 楼主| 发表于 2020-8-30 22:51:30 | 显示全部楼层   山东省烟台市
求大佬打赏
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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