2.1【欢乐向】逆向刷题被虐哭日常记录

2.1【欢乐向】逆向刷题被虐哭日常记录

前面好多题之前做了也没记录,懒得整了,直接从剩下的几个开始:

Getit

这一段是解密的关键,后面的是把flag写入文档又给删了。

其实可以修改程序逻辑让他别删,但是我不会

?

逆着来推一边,不会写py,用c写个。

?

?

?不应当,我大概是忘了加括号。

?

???我觉得我的没啥问题,去网上查了查相关的:

?

?

?

在IDA里没看到有S,咱也不知道咋回事。

?

?

?

?

?

no-strings-attached

直接扔IDA瞅瞅:

?

?

挨个函数筛,筛出最后一个有、东西。

?

?

?

?

有个叫decrypt的函数,看起来像是加密函数,去gdb里下个断点看看。

?

?

r运行,n单步走。

?

?

?

中间那一大坨大概是没设置好,现学gdb怎么用先不管了。

查内存找字符串,

加密好的东西放进了寄存器eax里:

?

?

?

翻翻寄存器里的东西,找到第一个0x00结尾的是字符串的结尾。

?

?

x:就是用来查看内存中数值的,后面的200代表查看多少个,wx代表是以word字节查看看,$eax代表的eax寄存器中的值

在这里我们看到0x00000000,这就证明这个字符串结束了,因为,在C中,代表字符串结尾的就是"\0",那么前面的就是经过decrypt函数生成的falg

C:按字符格式显示,把这些十六进制的换成好看一点的。

?

?

?

?

?

?

python-trade:

Pyc文件,网页反编译一下:https://tool.lu/pyc/

?

?

翻译翻译,这堆字母让我们输入一串字符串,然后经过encode函数一系列操作之后和correct比较,正确了就算是输对了flag。

?

那咱们就反其道而行之。

先给他把correct给base64解密了。

?

?

完事了之后在逆着走一遍。

?

?

?

?

?

?

?

?

再次被自己菜哭,我觉得没啥问题咋就不给我过?

又上网查了查,去评论转了一圈,发现有人说可能是base64解码的问题,我用的网页解码,不应该有差才对的,怪事。

补上了几个字符然后过了,正确的是这个:nctf{d3c0mpil1n9_PyC}

?

?

?

?

Maze

题目给的叫迷宫,运行了一下也没啥东西,扔进ida看看:

?

看起来像是四个字符:0oO.

?

其实在IDA里把光标选择ASCII码按R键就可以把ASCII码变成字符了。

?

然后这几个是坐标移动

v9是一个二维数组,用来控制上下和左右这两种方向的。

两种可能:

1.v9代表横向、&v9+1代表竖向

2.v9代表竖向、&v9+1代表横向

反正是诶个试过去了

从左上角到#,经历→↓→→↓↓←↓↓↓→→→→↑↑←←,转换为o0oo00O000oooo..OO

Flag:nctf{o0oo00O000oooo..OO}

好像是南邮的题吧...真厉害。

?

还剩一个比较难搞,明天继续。

原文地址:https://www.cnblogs.com/DorinXL/p/12250344.html

时间: 2024-08-29 17:07:44

2.1【欢乐向】逆向刷题被虐哭日常记录的相关文章

leetcode刷题,总结,记录,备忘 343

leetcode343Integer Break Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get. For example, given n = 2, return 1 (2 = 1 + 1); given n =

软考学习如何刷题

刷题是用最短的时间读懂题目和问题,并且理清思路,短时间接触大量各种题型的方法.不光要把题做会,而且还要把自己会做的题练熟,熟能生巧,对于培养"题感",是很有意义的.具体到备考中的刷题,作者给出几种刷题策略. (1) 计时刷题 把历年考题顺利打乱,随机抽取出15-40道题,进行短时间刷题考试,并记录答题时间.考生刷题时不仅要提高正确率,还要关注做题时间,要求考生快速读题.审题及答题.目的是锻炼速度,提高敏捷能力.计时刷题具有用时短,方便锻炼的特点,参加工作的考生可在工作之余进行刷题,高效

刷题题记

随大流刷题一波,记录一下知识点,持续更新. 时间复杂度:O(1)=一行代码,O(log2n )=2为底的n的对数次运算(23=8 > log28=3),O(n)=n次运算(n次for/while循环),O(nm)=n的m次方次运算(n/m次for/while嵌套循环). 中位数:取一组排序过的数组元素的中间位置的值.当数组长度为奇数:取中间位值>M(长度+1)/2:当数组长度为偶数时:取中间2位均值>(M长度/2+M(长度/2+1)). 字数字数字数字数字数字数字数字数字数字数字数字数字

停课刷题总结-给自己一点鼓励吧

嗯,我已经停了四五天课在家刷BZOJ准备复赛了,感觉压力好大.但是,实际上感觉效率并不高,每天就是7-8题的样子,而且并不是每题都有质量.而且这几天刷下来,我貌似因为刷了太多水题的关系,打字写题的速度变慢了,有一点悠闲没有紧迫感了,要赶快把这个习惯给改掉!今天去学校做题被虐了,竟然一个简单的Hash没有调对[虽然我现在还是不知道为什么会死循环QAQ.]感觉吧,可能因为刷题有点不在状态了.[其实也因为刷题的间隙玩了几盘LOL,游戏这东西QAQ]被虐了,感觉很不爽,有点难受,毕竟我付出了那么多努力,

17年 5月份刷题版

最近才开始做这个刷题版,之前的一些实在是记不起来什么时候写的了,稍微总结一下20号之前的吧. 怎么说呢,先吐槽一下吧,520在家愉快的陪着代码和计蒜客度过了温馨而又愉快的520(计蒜客给我发的短信是这样说的QAQ). 五月份总觉得自己没有学什么新的东西,15号左右学了一下二分图,写了三道题p1321,p1322,p1323,然后在开始学的网络流,然后到现在还在学QAQ(肯定没有尧神学的快啦). 在往前说就是往前翻了一下第二页的题,发现好多模板题和搜索的题都没有写,所以补了一下,不得不说,体验了一

【leetcode刷题笔记】Maximum Depth of Binary Tree

Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 题解:递归,树的高度 = max(左子树高度,右子树高度)+1: 代码如下: 1 /** 2 * Definition for binary tree 3 * public cla

leetcode刷题记录(2)

301. Remove Invalid Parentheses Remove the minimum number of invalid parentheses in order to make the input string valid. Return all possible results. Note: The input string may contain letters other than the parentheses ( and ). Examples: "()())()&q

CTF学习路线指南(附刷题练习网址)

PWN,Reverse:偏重对汇编,逆向的理解: Gypto:偏重对数学,算法的深入学习: Web:偏重对技巧沉淀,快速搜索能力的挑战: Mic:则更为复杂,所有与计算机安全挑战有关的都算在其中 常规做法; A方向:PWN+Reverse+Gypto,随机搭配: B方向:Web+Misc组合: 都要学的内容: Linux基础.计算机组成原理,操作系统原理,网络协议分析: A方向: IDA工具使用(f5插件),逆向工程,密码学,缓冲区溢出等 书籍推荐: <RE for Beginners(逆向工程

编程日志&amp;&amp;刷题日志&amp;&amp;开发日志迁移之碎碎念

Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice. Example: Given nums = [2, 7, 11, 15]