吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5342|回复: 15
收起左侧

[原创] 新手向安恒6月赛——RE你快乐吗WP

[复制链接]
Li1y 发表于 2019-7-25 15:15
本帖最后由 chenrunlin1 于 2019-7-25 17:06 编辑

在别的论坛做到了,写了个WP给学校CTF新人看的,顺便请各位大佬指点一下
题是安恒6月赛的题
1、查壳,无壳,直接打开后什么也没有显示,只能输入

1.png
2、IDA开撸,shift+F12查找字符串,发现you win,双击后进入rdata段(资源数据段),点击you win左边的str,按X查看调用,双击转到对应函数,按F5查看伪代码
3、在开头发现了OllyDbg,x64dbg等字符串,估计是反调试,不用管它,往下看,分析如图,可知我们需要输入26位整数
2.png
4、下面接着是switch,但是只有1234这四个分支,说明我们需要输入的整数只能是1234这四个数,但是对应的各种++--看不明白,暂时放一边,往下看
5、程序在最后用*(_DWORD)&asc_140003350这个数组里面的数值去比较1和99来判断胜利失败,胜利之后将输入的1234转化为ZF#R输出为flag,我们双击进入*(_DWORD)&asc_140003350,但是并没有发现99,而且我这个IDA给出的判断是这个数组是char类型的,只有两个元素???由此判断此处IDA的反汇编代码不正确,需要自己修改
6、点击asc_140003350按D键将这个数组变成dword类型后,右键选择Array,在Array size里面强大的IDA给出了数组元素个数的所有可能性,我们选择最大值57,之后按H键将16进制转化为10进制,我们终于看到了99出现了,但是数组大小到底是多少还是不能确定,只能靠猜测,或者在写脚本时候把者57个数值全放到数组里,能出flag就行
3.png 4.png
7、但是26位由1234组成的数一共有26^4=456976个可能性,python最多支持20个循环嵌套,所以我采用C++爆破。。。我估计神威太湖之光能秒解,反正我用笔记本跑了10分钟没出结果就放弃了
8、那么到底该怎么做?其实这是一个7*7的迷宫题,如图
5.png
将数组里面从8到63(16进制的99)按7*7排列,只要从8走到63就成了,1234对应上下左右,分析如图
222.png 333.png
9、输入2 4 4 1 4 4 4 2 2 2 2 3 3 1 3 3 3 2 2 4 4 2 4 4 4 4        
flag{#FFRFFF####ZZRZZZ##FF#FFFF}
111.png
esrever.zip (5.54 KB, 下载次数: 15)

免费评分

参与人数 5威望 +1 吾爱币 +12 热心值 +5 收起 理由
Hmily + 1 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
光头鸠摩智 + 1 + 1 谢谢@Thanks!
CrazyNut + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
莫学长 + 1 + 1 热心回复!
朱朱你堕落了 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

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

佚丶名 发表于 2019-7-25 15:16
支持楼主一波
hyacinth1231 发表于 2019-7-25 15:45
y521775876 发表于 2019-7-25 15:53
张志峰 发表于 2019-7-25 16:05
支持支持 大哥好
奶咖呀 发表于 2019-7-25 17:00
支持一波,加油。
gink 发表于 2019-7-25 23:26
迷宫题,这个反调试里竟然还有windbg。。。。
snatch2null 发表于 2019-7-26 09:37
感谢分享,学习一波
安雅痴 发表于 2019-7-26 09:45
看不懂,好难啊
shelly1314 发表于 2019-7-26 10:02
厉害了,学习一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 00:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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