[BUUCTF]REVERSE——[BJDCTF2020]easy
[BJDCTF2020]easy
例行检查,无壳,32位程序

32位ida载入,main函数和字符串理都没有找到有关flag的提示

根据main函数的提示,有关flag的函数应该被藏起来了,在左边的函数列表里一个一个查看,看到quess的函数长得有的像

给了10个数据,每两个数据进行一次变换,变换后长度为50,之后应该是对处理好后的数据进行按位判断,是1输出‘*’,否则输出‘ 空格 ’,估计对处理后的数据转换成了2进制32行到46行的处理数据里有些函数看不大懂,百度后发现是宏定义

所以我们这边对数据的操作是每两个数据为一组,分别取出他们的高字节(前16位)和低字节(后16位)去组成一个新的数,高低位分别为32字节,新的数的高字节是每组的第二个数的高字节+低字节,新数的低字节是每组第一个数的高字节+低字节,注意最后生成的数据的长度是50
拿一组数据说明一下

所以得到的新数的二进制是10001001001111110001111111111110100111111000110001
依次类推可以算出其他4组数据的结果,最后得到的5组数据是
10001001001111110001111111111110100111111000110001
10001010101000010010001000010010100100001000111001
11111111111000011100001000010011111111001000110101
10001100011000010110001000010000100100001000110011
10001100011111110001111110010000100100001111110001
- 最后按位比较一下,是1输入‘*’,否则输出空格,每输出5个字符输出一个空格
exp
a='1000100100111111000111111111111010011111100011000110001010101000010010001000010010100100001000111001111111111110000111000010000100111111110010001101011000110001100001011000100001000010010000100011001110001100011111110001111110010000100100001111110001'
for i in range(250):
if a[i]=='1':
print ('*',end="")
else:
print (' ',end="")
if (i+1)%5==0:
print (' ',end="")
if (i+1)%50==0:
print ('\n',end="")

输出字符HACKIT4FUN
拿去尝试一下发现是flag
flag{HACKIT4FUN}
[BUUCTF]REVERSE——[BJDCTF2020]easy的更多相关文章
- [BUUCTF]REVERSE——[BJDCTF2020]BJD hamburger competition
[BJDCTF2020]BJD hamburger competition 附件 步骤: 例行检查,64位程序,无壳儿 由于unity是用C++开发的,这里就不用IDA了,直接用dnspy看源码 在B ...
- [BUUCTF]REVERSE——[BJDCTF2020]JustRE
[BJDCTF2020]JustRE 附件 步骤: 例行查壳儿,无壳儿,32位程序 32位ida载入,main函数没看懂,shift+f12检索了一下程序里的字符串,发现了一个类似于flag的字符串 ...
- [BJDCTF 2nd]假猪套天下第一 && [BJDCTF2020]Easy MD5
[BJDCTF 2nd]假猪套天下第一 假猪套是一个梗吗? 进入题目,是一个登录界面,输入admin的话会返回错误,登录不成功,其余用户可以正常登陆 以为是注入,简单测试了一下没有什么效果 抓包查看信 ...
- [leetcode] 7. Reverse Integer (easy)
原题 水题 唯一注意的点就是数字溢出 class Solution { public: int reverse(int x) { long long MAX = ((long long)1 <& ...
- BUUCTF | [RoarCTF 2019]Easy Calc
看一下页面源码,发现了提示: calc.php?num=encodeURIComponent($("#content").val()) $("#content" ...
- [BJDCTF2020]Easy MD5
0x00 知识点 password='".md5($pass,true)."' 链接: https://www.jianshu.com/p/12125291f50d ffifdy ...
- [BUUOJ记录] [BJDCTF2020]Easy MD5
各种关于md5的Bypass操作,都是基本操作,考察数组绕过.弱类型比较绕过以及md5($password,true) ByPass 1.利用md5($password,true)实现SQL注入 F1 ...
- [BUUCTF]REVERSE——[ACTF新生赛2020]Oruga
[ACTF新生赛2020]Oruga 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索字符串,根据提示来到关键函数 14行~18行就是让字符串的前5位是 actf{ ,sub_78A( ...
- [BUUCTF]REVERSE——firmware
firmware 附件 步骤: 检查文件没有看出什么,ida载入一堆乱码,看了其他师傅的wp才知道要先binwalk对文件进行提取 120200.squashfs这是一个linux的压缩文件 我们需要 ...
随机推荐
- [loj2049]网络
考虑整体二分,假设二分到区间$[l,r]$,即要对若干个询问,判断这些询问的答案与$mid=\lfloor\frac{l+r}{2}\rfloor$的关系 根据题意,答案$\le mid$等价于重要度 ...
- [atAGC051C]Flipper
对于这一个平面用$a_{x,y}$来表示,即$(x,y)$为黑色则$a_{x,y}=1$,否则$a_{x,y}=0$,之后定义$a$能生成$b$当且仅当$a$能够通过若干次操作后得到$b$ 令$p_{ ...
- html+css第八篇滑动门和可爱的css精灵
滑动门: 滑动门并不是一项全新的技术,它是利用背景图像的可层叠性,并允许他们在彼此之上进行滑动,以创造一些特殊的效果. CSS精灵 CSS Sprites在国内很多人叫CSS精灵,是一种网页图片应用处 ...
- 『与善仁』Appium基础 — 12、Appium的安装详解
目录 (一)Appium server安装 方式一:(桌面方式:推荐) 1.Appium Desktop下载 2.Appium Desktop安装 3.Appium Desktop使用 方式二:(No ...
- Trie树(字典树,单词查找树)详解+题目
什么是字典树? 叫前缀树更容易理解 字典树的样子 Trie又被称为前缀树.字典树,所以当然是一棵树.上面这棵Trie树包含的字符串集合是{in, inn, int, tea, ten, to}.每个节 ...
- c# Quartzs定时器的简单使用
使用背景: 首先想到倒计时,定时任务.大家想到的肯定就是定时器.那么定时器在web和winfrom程序中有着很大的作用.那在服务器端有没有像定时器一样的存在呢. 有了这些需求,我找到了第三方的组件 Q ...
- AtCoder Regular Contest 127 题解
sb atcoder 提前比赛时间/fn/fn/fn--sb atcoder 还我 rating/zk/zk/zk A 签到题,枚举位数 \(+\) 前导 \(1\) 个数然后随便算算贡献即可,时间复 ...
- python11文件读写模块
将文件的打开和关闭,交给上下文管理工具with去实现. def read_file(): """ 读取文件 :return: """ fil ...
- 【Python小试】统计一条核酸序列中频数非0或为2的双核苷酸
概念 双核苷酸由任意2个碱基组成 测试1 dna = "AATGATGAACGAC" #一一列举 dinucleotides = ['AA','AT','AG','AC', 'TA ...
- Spark(一)【spark-3.0安装和入门】
目录 一.Windows安装 1.安装 2.使用 二.Linux安装 Local模式 1.安装 2.使用 yarn模式 1.安装 2.使用 3.spark的历史服务器集成yarn 一.Windows安 ...