首页
社区
课程
招聘
[原创][CTF]DASCTF六月部分逆向题
发表于: 2020-6-26 22:08 8448

[原创][CTF]DASCTF六月部分逆向题

2020-6-26 22:08
8448

64位elf文件加了upx壳,脱壳后载入ida中发现伪代码不好看,就直接看汇编。就三个检查函数。


chk1:可以看到,只要知道栈中rbp-20h的内容即可。这里直接看或者动调都简单。


chk2:与ch1同理。



chk3:与上同理。

最后将得到的数据结合起来即可:c92bb6a5a6c3009124566d882d4bc7ee

64位elf文件,载入ida中看一下,知道是迷宫题,所以目标是明确的。

可以知道刚开始列和行都是0,下面找迷宫图。先随便看一个操作函数。

查看byte_400AE0:把数据提取出来。

用C语言将图打印出来。

由于0和O不易区别,自己把0换成了1。最后从1绕过O走到#即可。jkkjjhjjkjjkkkuukukkuuhhhuukkkk 再md5加密一下。

没看见题目的提示,在找密码的时候所有情况试的。。。

32位PE文件,首先打开看了下, 提示输入一个密码,然后验证。ida中看看。

接着看下面:

用限制条件写爆破试试:

可以看到,情况是不唯一的,不然开始就会是Nep了。先接着往下看看:

开始找重写的sub_403000()函数。先得到key[14]的所有情况:

因为是成对的,将之前的得到的不唯一的key,指定位置换成这3对字符。然后载入OD,依次试一下,发现当Ox与oX都会报错,而_h正常执行。得到此时的程序状态后dump出来。

将dump出的文件,载入ida看一下重写的函数的功能。

因为没看题目提示,使用之前找key[14]的办法,所有情况解出后看key怎么顺眼。最后得到:Nep{mircle_and_maho_is_not_free}

其实题目给了格式的提示。。。

再记录下ida中v35[i] = ......语句的地址,进入OD中下断点,然后输入正确的key,得到最终flag:

64位elf文件,运行看一下,直接让输入flag然后验证。

还是载入ida:

进入v4 = sub_55FE07F79864(a4, (__int64)&v8):

接着看下面:

上面标黄的是整个题的关键函数,进入:

ida动调提取出数据表:

最后exp:


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2020-8-21 09:35 被BIX编辑 ,原因:
上传的附件:
收藏
免费 7
支持
分享
最新回复 (7)
雪    币: 3072
活跃值: (20)
能力值: ( LV1,RANK:40 )
在线值:
发帖
回帖
粉丝
2
学习一下
2020-6-26 22:20
0
雪    币: 72
活跃值: (300)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
师傅,怎么使用od dump下文件来呢
2020-6-27 15:49
0
雪    币: 344
活跃值: (922)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
BIX
4
mb_ndvyyoyx 师傅,怎么使用od dump下文件来呢

用一个插件OllyDump,直接使用默认选项跟着提示dump出就好了。

最后于 2020-6-28 08:52 被BIX编辑 ,原因:
2020-6-27 16:19
0
雪    币: 503
活跃值: (2204)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
5
师傅 题目能传一下吗?
2020-6-29 11:11
0
雪    币: 344
活跃值: (922)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
BIX
6
Zard_ 师傅 题目能传一下吗?[em_63]
2020-6-29 15:01
0
雪    币: 106
活跃值: (115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你好,请问第一个程序用gdb-peda时没有符号表怎么找到断点?(抱歉新手调试技术比较菜)
2020-7-8 23:12
0
雪    币: 106
活跃值: (115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8

突然意识哪里出错。刚来看雪还不知道怎么删回复,打扰了

最后于 2020-7-9 01:47 被tygq13编辑 ,原因: 问题解决
2020-7-8 23:18
0
游客
登录 | 注册 方可回帖
返回
//