吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5068|回复: 36
收起左侧

[CTF] 【MISC-快乐游戏题】用52的方式来解决抓猫游戏

  [复制链接]
HzHappy 发表于 2021-3-22 21:04
原始题目地址:https://adworld.xctf.org.cn/task/answer?type=misc&id=5554
这是一道UNCTF的misc签到题,下载的压缩包里是一个应用程序,据说“玩游戏就能得到flag”。
在随便把玩了一会儿后,迫于时间的想法我实在没有动力继续耗下去。但是游戏失败时有个提示。
猫逃跑了!.png

一个弹框?我首先想到的是以前学习VB6的时候经常用到的MessageBox函数,而win32中有一个功能相似的API函数,叫作MessageBoxA。

32位.png
拖入DIE查壳,32位的可执行程序,没有壳。
直接拖入IDA中,选中“Import”寻找程序的导入表,然后排序并定位到MessageBoxA函数。
1.png
然后,我一开始的想法是在这个API上下断,查找到底是什么函数在试图调用这个API。
一开始界面没显示的时候,就会断在这里一次,不管它。
第二次就是游戏失败的时候,断在了这里。
1.png

这里是一个函数的入口,因此当前的ESP指向了MessageBoxA执行完后要执行的下一条语句,“sub_405810+DD”。
从这条语句往上追码,然后我看到了一个“信息”的offset,我有预感这就是重要函数。

1.png
然后我就去让IDA把所有进入该函数的父函数都列出来。
1.png
然后我一个个地找到调用该函数的父函数进行调试,具体方法是在“sub_405810+DD”的这一条语句下断,然后找到调用sub_405810函数的地方,从参数传递链起点处设置为EIP,然后执行,看结果。
以下为了方便我把sub_405810函数重命名为MessageBox。

第一个函数是sub_40485C,我找到该函数后把0x40485F设置为EIP。(红条为EIP点)
1.png
然后把我屏幕黑了3秒还告诉我只黑我三秒,由此可见这应该是一个反调试函数。

第二个函数是sub_403E5D,这个函数的汇编太长,转成伪代码后发现是一大堆数学计算,然后我在函数的最底下发现了调用MessageBox函数的可读部分。
1.png
“游戏结束”,说不定也有赢的游戏结束呢?

结果让我大失所望,特别是里面还有反调试函数,我直接就认为这个函数就是为了反调试而设计的。
第三个函数是sub_402ADD,汇编代码实在是太长了,转成伪代码后发现了几个关键字。
1.png
既然这里有了“恭喜你”的字样,那么说不定我要的flag就在这里?

然后往上找到了一大串MessageBox函数。。。

1.png
如此频繁地调用,调用的参数又全是数字,然后看数字很像是ASCII编码。我有一个大胆的想法!

[Python] 纯文本查看 复制代码
a = [85,78,67,84,70,123,99,55,56,51,57,49,48,53,53,48,100,101,51,57,56,49,54,100, 49,100,101,48,102,49,48,51,98,48,97,101,51,50,125]
for i in a:
    print(chr(i), end='')

flag:UNCTF{c783910550de39816d1de0f103b0ae32}
网络上的WP大多都是给了一个答案就省事了,我去看XCTF的WP也是只给了一个答案,这次自己逆向把它搞定了,也可以说自己“会做”这道题了。

免费评分

参与人数 13吾爱币 +18 热心值 +11 收起 理由
努力加载中 + 1 + 1 热心回复!
Shunbaba + 1 + 1 我很赞同!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
你的君子 + 1 + 1 热心回复!
A991792045 + 1 + 1 热心回复!
登徒子道友 + 1 + 1 据报道:近期论坛出现大批“猎猫”人员,技术熟练,猎法高超!请广大坛友认.
Zimin + 1 + 1 谢谢@Thanks!
aa778883 + 1 技术贴,学习一下,谢谢分享
jjdisco + 1 用心讨论,共获提升!
lyl610abc + 1 + 1 萌新前来学习
guojig95 + 1 热心回复!
Abstinent + 1 + 1 我跟着教程来复现一下。
Levio + 1 + 1 我很赞同!

查看全部评分

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

lyl610abc 发表于 2021-3-23 14:06
像这种没有加壳的程序,可以先通过OD直接查找对应的字符串,然后再上IDA定位到对应的函数
a.png
采用动态调试和静态调试相结合的方式效率更高
Abstinent 发表于 2021-3-23 01:35
复现成功啦!!!
1.png
嘿嘿我用的matlab:
QQ截图20210323013346.png
ASCII对照表:
ASCII.png
vethenc 发表于 2021-3-22 21:31
简简单单。 发表于 2021-3-22 22:12
感谢分享,这几天都在玩猫啊
Mr.Raindrop 发表于 2021-3-22 22:18
厉害,学习学习
tan567421 发表于 2021-3-22 23:07
厉害学习学习了 ```
lumos_ 发表于 2021-3-22 23:46
感谢分享 学习了
mr_66 发表于 2021-3-23 08:26
感谢分享
Mdr 发表于 2021-3-23 08:26
好。支持楼主
whngomj 发表于 2021-3-23 08:39
感谢分享 学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-5-17 01:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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