吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3680|回复: 20
收起左侧

[CTF] 记解一道bugku的逆向题

  [复制链接]
Panel 发表于 2022-2-20 12:46
本帖最后由 2367765883 于 2022-2-20 12:51 编辑

bugku一道逆向题目分析

1.查看题目,得到的信息只有点击一万下,以及和和ce工具有关,先下载下来

image-20220220112316695.png

2.下载下来是一个exe,先查壳看看程序信息

image-20220220112423131.png

vb写的无壳

3.运行一遍程序,看看流程

image-20220220112522139.png

image-20220220112532636.png

好家伙,要我点击一万次按钮才给我flag,不可能!整活!

4.分析:作者说点击一万次有flag,那我们可以猜想有两种可能,第一种:当按钮按下时程序会检测此时一个计数器变量的值是否大于一万,如果大于一万则显示flag。第二种:当按钮按下时程序会检测此时一个计数器变量的值是否等于一万,如果等于一万则显示flag。那我们依次验证我们的猜想。

猜想一:当按钮按下时程序会检测此时一个计数器变量的值是否大于一万,如果大于一万则显示flag
①看到窗中左上角的数字随着按下按钮次数的增加而增加,作者又提及ce,这不得不逼我想起ce工具对数值变化的敏感啊。
②那我们就打开ce进行内存搜索变化的数值,因为我们看到窗口左上脚的数值是一个整数,那我们就使用精确数字、四字节类型搜索

image-20220220113628820.png

③好家伙,首次扫描以后就只有300多的结果,那岂不是再变化几次数值就直接拿捏了吗?那我们接着通过按下按钮增加数值来继续搜索,为了增加搜索速度我们多按几次多增加点数值,这样可以排除一些偶合数据

image-20220220113955883.png

!!!!既然数据不在了,我以为是哪里失误了我又用同样的方法重复了几次,发现结果是一样的(正如作者说的那句话,不好用的ce,怀疑是他写的坑),那此时说明肯定这个数据不是四字节类型,为了提高数据查找效率,我决定换一种方法搜索.
④这次我才用未知的初始值、所有数据类型进行搜索

image-20220220114435311.png

⑤为了再次误入歧途,我不采用数值的增加或减少来跟踪数据,而是用变化与没变化来进行跟踪,经过几次数据的变与不变跟踪得到了29个数据,那我们先加入列表进行数值更拍筛选数值(这里我不建议二分法筛选,这样可以降低程序的奔溃率)

image-20220220115342768.png

⑥加入列表以后我们点击数值字段先把数据按照数值大小进行排序,通常这种4.5555.....E带e的数值我们可以先不用考虑,因为这大小就和我们寻找的很离谱

image-20220220115431959.png

那我们就先找一些看起来是整数的数值进行筛选,运气比较好,第一个数值就筛选到了窗口左上角的变量

image-20220220120038222.png

⑦通过看这个数值,发现这个数值的单位1并不是窗口左上角显示的数值的单位一,那我们先不管,先随便改个大的数值去让窗口的数值超过一万就可以验证我们的猜想一了

image-20220220120427735.png

改了一个500800单位发现窗口的值变为了25004了,但是没有跳出flag的提示,我按下按钮多次也没有,那我们的猜想一验证失败了,我们验证猜想二。
猜想二:当按钮按下时程序会检测此时一个计数器变量的值是否等于一万,如果等于一万则显示flag。

⑧又猜想一的最后一步我们可以算出内存中的数值的多少单位等于窗口数值的多少单位,说干就干

image-20220220120845013.png

经过简单一算得到内存中的数值200单位等于窗口数值的1单位

⑨那我们改个窗口数值的9999个单位,也就是更改内存的数值等于200x9999

好家伙,一改完按下按钮还就弹出来了,同时也验证了我们的猜想二对了

image-20220220121149716.png

⑩F5这个数值(找出是什么访问了这个地址)

image-20220220122207624.png
image-20220220122239554.png

点开以后显示空白的,因为此时这个数据没有改变所以也不会有访问和改写的记录,我们再按下几次按钮就一定有了

image-20220220122431603.png
image-20220220122528651.png

十一.我们选择第二个(fstp和pop指令功能一样),点击显示反汇编程序

image-20220220122815635.png

此时我们上下浏览便可以找到信息框的提示,我把这个flag提交以后发现不对,仔细一看我觉得这个更像是base64加密的字符串,于是我再进行了base64解密,发现也不对,我又试了很多常见的加密方式解密,但是都不对,无奈之下我点开了writeup才知道居然是base58加密,表示以前没接触过,但是通过base58解密以后便得到了flag,提交显示正确

image-20220220122907934.png
image-20220220123330333.png

十二.再附上一个base58的介绍以及与base64的区别,也算是学习到了新的一种加密方式Base58和Base64的区别 - 简书 (jianshu.com)

免费评分

参与人数 8吾爱币 +11 热心值 +8 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
SC303 + 1 谢谢@Thanks!
简忘 + 1 + 1 谢谢@Thanks!
Rammsteincccp + 1 热心回复!
开心的一逼 + 1 + 1 热心回复!
zcchk135820 + 1 热心回复!
yyb414 + 1 + 1 热心回复!
zjtaigame + 1 + 1 我很赞同!

查看全部评分

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

 楼主| Panel 发表于 2022-2-22 14:32
错别字请见谅
云出无心 发表于 2022-2-20 14:45
m16139 发表于 2022-2-20 14:28
yyb414 发表于 2022-2-20 14:50
,大佬!学习了
w2z0w20 发表于 2022-2-20 14:59
仰望大佬,向大佬学习
wqs0987 发表于 2022-2-20 15:20
感谢大佬的无私分享
212lb 发表于 2022-2-20 19:55
bucuo   hen  喜欢
头像被屏蔽
heng179 发表于 2022-2-20 20:25
提示: 作者被禁止或删除 内容自动屏蔽
MisS 发表于 2022-2-20 21:32
感谢楼主分享
linhzye 发表于 2022-2-21 14:53
感谢大佬的无私分享不错,向大佬仰望
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-12-25 02:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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