吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4074|回复: 18
收起左侧

[CTF] 【2022】春节解题领红包之二——新手向

[复制链接]
梦旅意中人 发表于 2022-2-16 15:17
本帖最后由 梦旅意中人 于 2023-1-24 17:42 编辑
工具在论坛的爱盘里均可下载

​        吾爱专用虚拟机2.0

​        IDA7.5

查壳

拖入PEID查壳发现未加壳直接进行下一步(可以看出程序由C/C++使用VC++6.0编写)

image-20220216115611442        

动态追溯

获取信息

首先我们先打开我们的程序,随意输入字符串,看看有什么提示信息(此处我输入123456),提示Error, please try again,记住这句话,待会我们会用到

pic (2).png

OD动态跟踪

拖入OD

pic (3).png

此时程序暂停,我们点击图中所示按钮或按F9使程序继续运行,出现我们熟悉的页面

image-20220216122044829

此时最小化窗口,右键依次选择中文搜索引擎—>智能搜索

image-20220216122313102

找到我们的的字符串窗口,按CTRL+F搜索我们之前找的 "Error, please try again"

pic (6).png

双击这一行内容,回到我们的主界面,可以看到我们当前行的上面有一个向下的je跳转,在往上看可以看到 cmp eax,0x17,这需要我们有一点点的汇编知识,cmp eax寄存器和0x17的值是否相等,而0x17为16进制数字,即0x17 = 1 * 16+7  = 23,由此我们不难知道最终password的长度为23。

image-20220216122919755

我们在cmp和je这两行下断点(双击汇编代码前区域或按F2),使用测试数据"11111111111111111111111",此时看到断点处停下,和我们的预想的一致,如果仔细观察,可以发现最终的答案已经在我们的右下角出现

image-20220216124923555

那么到这里就已经差不多结束了,当然我们可以一路F8,看到我们熟悉的Success,不过不要着急,我们发现有一个jnz的跳转,jnz上有一个test eax,eax,再往上发现一个call函数,这里便是解题的关键了,我们再call函数处打上断点,这次我们按F7进入函数内一探究竟

image-20220216125638786

进入函内部,我们继续一路F8,然后又看到我们熟悉的password了,我们输入的"11111111111111111111111"与"2022HappyNewYear52PoJie"进行cmps(字符串比较操作)

image-20220216125549370

继续一路F8,从call函数出来后,使用test eax,eax 此时我们的eax值为FFFFFFFF,即-1,而jnz需要为0才能进入Success,因此答案与我们之前分析的一致

image-20220216131927248

验证答案

pic (12).png

静态分析

我们再使用IDA分析一下我们的程序

拖入IDA,点击OK

image-20220216132611872

在主界面我们可以使用右键拖动窗口,或使用滚轮缩放画面大小,可以看IDA使程序执行的过程看起来更加清晰,我们很容易能看到需要函数的执行走向,快速定位函数地址

image-20220216140743099

有时候可能也会收获一些意外的惊喜,比如将鼠标悬停在这个HappyNewYear!上再滑动鼠标滚轮,我们可以得到一个tips:Congratulations,there is a tip: flag length is 0001 0111,这也许是官方给我们埋的彩蛋

image-20220216140911144

我们点击HappyNewYear!字符串后,可以顺势找到源头

image-20220216141238836

不过这种方法似乎太欧皇了,不是谁都可以这么容易找到的,我们可以按 shift+F12 快捷键调出字符串窗口,然后同样可以找到对应的字符串,双击后也可以到达上图的位置。

image-20220216142420174

这句话的意思是,祝贺,这是一个提示,flag的长度为23,为什么是23呢,0001 0111为二进制字符串,0001 0111 = 1 2^4+0+1 2^2 + 1 * 2 ^ 1 + 1 = 23, 还不太熟悉的同学可以通过百度二进制数转十进制来补补课(注:OD里面的字符串搜索也可以看到这个tip)

既然知道长度为23了, 我们便可以直奔主题了,打开我们的主界面,发现关于Success的函数判断模块

image-20220216152113168.png

我们可以按 F5 将汇编转为伪C语言代码,出现弹窗点击OK即可,分析不难发现我们的Success与否,与这个sub_402B70函数的返回值有关,可能有人觉得看不懂,没关系,且听我细细分析。

image-20220216143019450

点击这个sub_402B70函数,进入函数内部,发现最终返回一个result,这个值是我们需要重点关注的,再往上可以看到memcmp函数赋值给result,而它是用于比较字符前 v7 值是否相等,我们可以给他打上断点看看它做了什么,选择Local Windows debugger,在行号前点击出现断点,我们运行程序

image-20220216143948920

输入我们的测试字符串"11111111111111111111111",回车,如果与我的界面不同, 按下F5即可

image-20220216144233016

鼠标悬停在v9,a4,v3分别看到 "11111111111111111111111","2022HappyNewYear52PoJie”,“0x17”,这三个都是老演员了,我们记住这个v4,它是这个函数的第四个参数,继续F8可知result值为-1,虽然对result进行取反操作,但C语言中bool类型除0之外皆为true,因此返回了-1,回到我们的sub_402B70中,发现我们的v4对应了上面变量v7的值,我们打上断点,运行

image-20220216145826166

双击v7变量,按住鼠标左键选择到这个0的前面停止

image-20220216150250300

右键图中操作或按 A 将字符数组转为字符串

image-20220216150420087

获得password

image-20220216150608197

验证答案,没得问题。

以上内容均是通过学习论坛内外相关知识所得,所以大家没有解出来的话不用灰心,可以照我的步骤走一遍,体验一下解题的快乐。新的一年祝各位坛友身体健康,学习进步,工作顺利,万事如意,希望吾爱论坛越来越好!

我好懒,还有第三题的过程没写,抽空再写吧。

第三题已更新,详见:【2022】春节解题领红包之三——新手向 ( https://www.52pojie.cn/thread-1588987-1-1.html )

免费评分

参与人数 4威望 +1 吾爱币 +24 热心值 +4 收起 理由
lax123 + 1 + 1 我很赞同!
此用户无法显示 + 2 + 1 帖子又能看见了,楼主费心了
月下夜影 + 1 + 1 谢谢@Thanks!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

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

 楼主| 梦旅意中人 发表于 2022-2-16 17:18
TickDown 发表于 2022-2-16 16:59
哎 膜拜一下 像我这种差生就是瞎猫式的 觉得既然说是送分题 那肯定时明文的 就直接在dbg里列出了所有字串  ...

哈哈哈哈哈,其实我也是那样过来的,19做初级题的时候磕磕绊绊,猜都不会猜,后来阴差阳错的获得了答案。不过既然你能做出来也很厉害了,最重要的是这个寻找答案的过程。
 楼主| 梦旅意中人 发表于 2022-2-18 12:28
云在天 发表于 2022-2-18 00:27
你可以试着分析这个key是怎么生成的,就在你觉得头大的那个call里.

好的,感谢大佬提醒,我回头再分析分析。我记得您是第一个提交Windows中级题的人,我当天找到错误的Key提交的时候,然后就发现有人已经做出来完成任务了都,真的是厉害!
TickDown 发表于 2022-2-16 16:59
哎 膜拜一下 像我这种差生就是瞎猫式的 觉得既然说是送分题 那肯定时明文的 就直接在dbg里列出了所有字串 看到哪个字串像flag就验证一下 没想到就验了两下就找到了
兔纸 发表于 2022-2-16 17:48
膜拜大神!!
Meiosis 发表于 2022-2-16 18:43
学习一个。。。
ghostlg 发表于 2022-2-16 18:59
点赞。。。。。。。。。。。。。。。。。
syc_song 发表于 2022-2-16 19:28
写的很详细,学习了
无相孤君 发表于 2022-2-16 19:49
写的详细学习
无相孤君 发表于 2022-2-16 19:50
大佬,怎么在爱盘里面下载自己需要的工具
 楼主| 梦旅意中人 发表于 2022-2-16 22:54
无相孤君 发表于 2022-2-16 19:50
大佬,怎么在爱盘里面下载自己需要的工具

不是大佬哈,你可以点击图中这里的爱盘,然后搜索在第二个界面里搜索就可以,如果你是找吾爱专用的虚拟机的话,在论坛帖子里搜索就可以找到的。
image-20220216224845890

image-20220216224922843

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

本版积分规则

返回列表

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

GMT+8, 2024-11-15 17:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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