吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8878|回复: 97
收起左侧

[原创] [入门级]一个64位软件的验证分析及逆向过程

  [复制链接]
Hou 发表于 2024-4-3 17:14
本帖最后由 Hou 于 2024-4-3 18:58 编辑

前言

本来是一个小单子,被逃单的恶心到了,那么就做成教程分享给大家
软件64位无壳,有多种逆向方法及思路,本文概述了整个逆向过程,适合初阶入门
软件来源于逃单者,练手请在虚拟机内进行!!!
样本:https://www.lanzoul.com/iBM3H1tr4dwh

初步分析

首先是查壳,可以看到查壳结果是64位无壳的C++软件
1.png
打开软件可以看到两种验证方式,一种是机器码验证,一种是QQ号验证,未见有卡密验证
2.png

按惯例丢进火绒剑分析下网络情况,发现是443端口的Https交互
3.png

综合软件的结构及网络情况,机器码验证/QQ号验证+Https交互
那么软件很可能属于弱逻辑的验证,访问了一些接口或页面就能判断是否授权的机器
时应有破解思路:
1.山寨接口
2.山寨封包
3.硬改机器码
4.修改跳转

网络分析

先从网络分析入手,软件拖进x64dbg后,分别在socket、send、recv等常用的网络函数下断点,然后运行
会发现一个都没断下来,那么就应该是用了WSAsocket、WSAsend、WSArecv,我们在这些WSA网络函数也分别下断点
如期,断点被触发,一边F9执行一边观察堆栈信息,可以看到大量Gitee的字眼
4.png

此时应该猜测Https交互的是否就是Gitee?用cmd Ping一下Gitee.com进行实验
5.png

域名跟IP确实对上了,当然还有更快捷的方法,就是开局直接把IP丢进百度搜一下有没有相关信息,或者直接抓包。
既然软件所有网络交互都是与Gitee有关,那么就知道验证的数据就是放在Gitee里了
思路整理

此时应该重新调整思路,将目标转移Gitee的网站上,分析软件使用了Gitee什么页面的数据来交互验证
如果你不知道Gitee是干什么用的,那你应该知道Github吧,一个存放源码或者文件的地方
至于软件访问了Gitee什么内容或者执行了什么操作,就要继续进行分析
软件分析

接着上面的分析思路,这里就可以掏出CE来搜索软件有没有相关Gitee的信息,为啥不直接用dbg的搜索?因为用过的都知道不好使
CE直接搜索gitee.com,发现有一条相关信息,跳转到该地址内存区域查看,可以看到一个重要信息
打开这个网站后,竟然就直接明文看到所有授权数据
6.png
因此可以大致的猜测到软件的验证思路:
      打开软件-->访问授权数据页面-->校验本机机器码/QQ是否登记-->授权成功/失败
按照软件的验证思路,那么拿下授权就有多种方法:
  • 授权页面替换
  • 替换机器码
  • 修改跳转逻辑 (就是我们说的爆破了,教程很多,这里就不分析了)
方法1:授权页面替换

页面替换方法最为简单,在Gitee建立相同的页面,替换掉软件的原地址即可。
需要注意的是:与原地址保持相同的地址长度
比如原地址为:www.baidu.com/helloword/test
你的地址应为:   www.baidu.com/123456789/1234
避免了长度溢出或不足,可以省下不少功夫
方法2:机器码替换

要生成机器码,那么软件必须要先读取机器的信息在获取电脑硬件信息的常用API都下个断看看,注意软件是64位程序,64位大多采用utf8编码,API应优先使用带W结尾的。
GetAdaptersInfo
GetVolumeInformation
GetComputerName
获取机器码时,在GetVolumeInformation被断下来,直接返回上一层继续单步
可以看到在000000014005F987处的call,根据GetVolumeInformation数据生成了一个机器码
000000014005F987 | E8 0417FAFF              | call    自动.140001090         
7.png
由于逃单者提供了一台授权的机器,0x967BEFD2


8.png
这里直接将该授权作为机器码返回值。
9.png
替换后,直接进入软件。

10.png
最后

至此教程已经结束,由于此教程仅作交流学习及思路分享,所以教程不会提供成品,而且我也不知道软件的具体作用,只是鼓励大家多动手。
软件漏洞及相关洩漏的机器码已经提交给作者进行修复。

免费评分

参与人数 25威望 +2 吾爱币 +124 热心值 +24 收起 理由
gjdir + 1 + 1 谢谢@Thanks!
Xavier无名 + 1 + 1 我很赞同!
moriv4 + 1 + 1 我很赞同!
ForCifer + 1 + 1 我很赞同!
zzyzy + 1 + 1 谢谢@Thanks!
SioErt + 1 + 1 鼓励转贴优秀软件安全工具和文档!
soyiC + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
你们看我屌吗 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yixi + 1 + 1 谢谢@Thanks!
shadock + 1 + 1 感谢楼主,我努力学中
yp17792351859 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ielnaf + 1 + 1 谢谢@Thanks!
fengbolee + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
0x5f3759df + 1 + 1 感谢分享
yyxqf + 1 + 1 我很赞同!
xiaoweng + 1 + 1 我很赞同!
X1a0 + 1 + 1 用心讨论,共获提升!
Cave + 1 + 1 热心回复!
hgfty1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
lixiaofu2357 + 1 + 1 用心讨论,共获提升!
lingyun011 + 1 + 1 热心回复!
iTMZhang + 1 + 1 用心讨论,共获提升!
allspark + 1 + 1 用心讨论,共获提升!
爱飞的猫 + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Issacclark1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| Hou 发表于 2024-4-6 14:19
Light紫星 发表于 2024-4-6 13:07
替换机器码那一步,是直接改的内存还是Patch的源程序啊

替换机器码无法直接Patch源程序,最简单的方法就是在机器码生成call里直接,mov rax,机器码地址 ret
homehome 发表于 2024-4-3 18:22
FDL 发表于 2024-4-3 18:42
xhonker 发表于 2024-4-3 21:23
感谢分享
THEYX 发表于 2024-4-4 00:08
感谢楼主提供的逆向教程
jatmtd 发表于 2024-4-4 08:46
感谢楼主分享
jin6220 发表于 2024-4-4 09:55
楼主厉害,看下私信,请教一下。
wapjltb 发表于 2024-4-4 10:25
不错,学习了。
abcdef4 发表于 2024-4-4 10:44
写的很好!
Lty20000423 发表于 2024-4-4 10:57
教程不会提供成品,那就好好学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 15:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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