BugkuCTF-Reverse题不好用的ce

解题

方法一

下载程序,运行一下:
在这里插入图片描述
点确定,有会弹出一个新的窗口:
在这里插入图片描述
点击Command按钮,左上角的数字就会增加,大概是要我们点击一万次:
在这里插入图片描述PEiD查加壳:
在这里插入图片描述
并没有加壳,是MFC编程的小软件。所以我们用IDA打开,是没法查看伪代码的:
在这里插入图片描述
查看字符串也没有找到有用的信息,只有一个标题的From1:
在这里插入图片描述
直接用OD打开,动态调试:
在这里插入图片描述
MFC程序停在统一的外层入口处7770A9E0,直接Ctrl+G或者点击断点跳转到我们内层程序:
在这里插入图片描述
右键->查找->所有参考文本:
在这里插入图片描述
其实上面的DeZmqMUhRcP8NgJgzLPdXa就是加密后的flag,有人直接就知道它是flag了,但我开始没注意到,我是看到之前按我们运行程序的时候看到的字符串“点击一万次有flag”,点击它查看一下:
在这里插入图片描述
单步调试,发现程序调用了msvbvm60.rtcMsgBox(调用一个消息框):
在这里插入图片描述
运行了这行汇编之后就会显示这个框:
在这里插入图片描述
点击确定之后,就到了这一行代码:
在这里插入图片描述
再往下就是返回msvbvm60.66051D33的程序领空:
在这里插入图片描述
返回到msvbvm60.66051D33里调用工程4模块的函数:
在这里插入图片描述
之后就是在msvbvm60模块里逐层的返回、交叉调用:
在这里插入图片描述
最终再回到最里层的函数:
在这里插入图片描述
它再调用工程4模块的函数:
在这里插入图片描述
这个函数再跳转到比较点击次数最终输出函数,00401880:jmp 工程4.00401C80:
在这里插入图片描述
往下到00401E21:test ah,0x40; 判断点击的次数,决定跳转的方向,测试ah的第7位(0100 0000)是否为1。ah的第7位是1,则说明它已经计数到了一万次,则test的结果是1,ZF标志位置0,不跳转,输出flag;否则ah的第7位不是1,则说明它还没有计数到了一万次,则test的结果是0,ZF标志位置1,跳转,不输出flag。
00401E24:je short 工程4.00401E97; 跳转,不输出flag。JE看零标志位,zf = 1则JE跳转,ZF = 0则JE不跳
在这里插入图片描述
所以我们只要在这修改标志位ZF、修改0x40的大小或者修改JE等多类方法阻止程序的跳转,让它正常输出flag即可:
在这里插入图片描述
我们直接把ZF标志位修改成0,让程序不跳转输出flag:
在这里插入图片描述
DeZmqMUhRcP8NgJgzLPdXa明显是加密后的flag,为Base58
Base58在线解码的网站:http://www.metools.info/code/c74.html:
在这里插入图片描述
得到flag:flag{c1icktimes}

方法二:
这道题其实挺简单的,首先运行程序,搜一下字符串:
在这里插入图片描述
定位到“ghjljzlkaslkkndnl”这里,为什么不定位到“点击一万次有flag”呢,因为他是程序一开始的消息框,后面触发的按钮事件才是主程序。
在这里插入图片描述
接下来我们只能一个一个试了,在主程序里的各个跳转都下断,然后运行一下程序,看看那个跳转了,哪一个就是关键跳咯:
在这里插入图片描述
最后我们定位到了这个je,把它改为jnz,成功弹窗:
在这里插入图片描述
这里需要注意以下一下,这一串字符串是base58加密的
在这里插入图片描述
成功拿到flag:flag{c1icktimes}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正视SD-WAN

SD-WAN热火朝天,突然之间涌现无数SD-WAN企业,SD-WAN的蓝海似乎一夜之间变红了在2012年,VMWare以12.6亿美金收购SDN初创Nicira,而Juniper则收购了仅仅成立两天的初创公司Contrail System,随后Cisco收购Tail-f和Insieme……

Python int函数 - Python零基础入门教程

目录 一.int 函数介绍二.int 函数使用三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.int 函数介绍 int 在 Python 中实际上是一个变量类型,表示整形,但是实际上一样的可以充当函数使用,也是 Pyth…

BugkuCTF-Reverse题逆向入门

此题相比于逆向题,更像杂项题 010editor打开一看发现是图片的base64编码

Cloud一分钟 |百度遭北京信管局行政处罚;双11计算能力超100万核;腾讯回应高管被抓系谣言...

Hello,everyone:11月14日早,星期三,新的一天祝大家工作愉快!CSDN一分钟新闻时间:百度遭北京信管局行政处罚 进入电信业务不良名单相关部门表示:”后续相关公司如果再犯,应当有更严厉…

Python eval 函数 - Python零基础入门教程

目录 一.前言二.Python eval 函数简介三.Python eval 函数实战四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.前言 Python 内置函数其实挺多的,其中 input 和 eval 算得上比较特殊,input 属于交互式内置函数&…

BugkuCTF-Reverse题入门逆向多解法

补充:IDA里面十六进制转字符的快捷键:R 方法一 第一步PEID,这里可以看出程序是32位的 查壳:(无壳) 拖进IDA32分析: 先查看伪码:F5 找到main函数 发现有许多 mov 指令,66H 是 ‘f…

从实践出发,腾讯云深入解读云端数据库技术

毋庸置疑,数据已经成为信息化社会最关键的基础元素之一。离开数据的支持,大数据、人工智能等技术就都没有了用武之地,信息化、智能化也就成了空谈。而数据库则是存储和承载数据的重要场所,因此,其重要性不言而喻。随着…

Python input 函数 - Python零基础入门教程

目录 一.前言二.Python input 函数简介三.Python input 函数实战四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.前言 Python 内置函数其实挺多的,其中 input 和 eval 算得上比较特殊,input 属于交互式内置函数…

Python map 函数 - Python零基础入门教程

目录 一.前言二.Python map 函数语法简介三.Python map 函数实战 1.使用 map 函数2.map 函数配合 lambda 匿名函数一起使用 四.Python map 函数效率对比五.Python map 函数总结六.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.前言 截…

马克!程序员必须收藏的 10 类工具库,助你提高效率变大神

对程序员和IT专业10个有用的工具和库橙色的扩音器挂在橙色的墙上”Oleg Laptev在Unsplash网站上写道。每一个行业都有它自己的一些工具。软件行业也不例外。一个好的程序员比其他人更加熟悉那些工具,也能比一般的程序员更善于使用那些工具。但是,有一些工…

BugkuCTF-Reverse题特殊的Base64

知识点 换表的base64特点: 1.出现64个字节的字符串(其实应该叫做表)作为数组取值,并且(经常,不是一定)出现“/”和“”符号 2.作为补位,体现为对3求余(%3) …

Python enumerate 函数 - Python零基础入门教程

目录 一.Python enumerate 函数介绍二.Python enumerate 函数使用 1.Python enumerate 函数案例 12.Python enumerate 函数案例 2 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.Python enumerate 函数介绍 enumerate 函数一般用在…

Cloud一分钟 |亚马逊市值被微软反超;GKE全球大宕机长达19小时;苹果市值跌破9000亿美元...

Hello,everyone:11月15日早,星期四,新的一天祝大家工作愉快!CSDN一分钟新闻时间:云计算要“凉凉”?亚马逊市值被微软反超,巨头云计算支出放缓亚马逊下跌、Alphabet下跌、微软下跌。苹…

BugkuCTF-Reverse题游戏过关多解法

解题流程 下载程序 运行: 翻译为: 玩游戏 n是灯的序列号,m是灯的状态 如果第n个灯的m是1,它就亮,如果不是,它就灭 起初所有的灯都关上了 现在您可以输入n来更改其状态 但是你应该注意一件事,如…

Python any 函数 - Python零基础入门教程

目录 一.Python any 函数简介二.Python any 函数使用三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.Python any 函数简介 Python any 函数语法如下: # !usr/bin/env python # -*- coding:utf-8 _*- """…

10 张有关程序员的趣图,图图扎心

0、没事,我已经全部注释掉了1、好好的现有库你不用,非得造轮子了!2、HR 和程序员都是如何看简历的?3、程序员的灾难曲线图4、用钉钉子解释软件测试5、听说你是 CSS 高手6、客户需求 vs 最终实现7、程序员的 8 种层级↓↓↓8、多线…

CTF-汇编语言归纳

内容更新是由低向高递增的 内容如下: xor rax, rax #xor rax,rax是对rax的清零运算操作 条件跳转(一般配合cmp使用) 下表展示了基于零标志位、进位标志位、溢出标志位、奇偶标志位和符号标志位的跳转。 此表为1) 相等性的比较 无符号数比较 基于无符号数比较的…

Cloud一分钟 |谷歌总裁李佳离职;三星将为5G网络投220亿美元;人人网6000万美元贱卖...

Hello,everyone:11月16日早,星期五CSDN一分钟新闻时间:谷歌总裁李佳离职,未来投入AI与医疗领域 谷歌折损一员大将,不知作何感想。 三星将为5G网络投220亿美…

OD(Ollydbg)简介

ollydbg简介: Ollydbg 通常称作OD,是反汇编工作的常用工具,OD附带了200脱壳脚本和各类插件,功能非常强大,可以过SE,VMP3.0,深受逆向圈内人士的喜爱 OD,是一个反汇编工具,…

Python basestring函数- Python零基础入门教程

目录 一.Python basestring 函数介绍二.Python basestring 函数使用三.Python3 异常: name ‘basestring’ is not defined四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.Python basestring 函数介绍 basestring 函数是 str 和 unic…