【BUUCTF】PWN-刷题记录-warmup_csaw_2016
题目信息 解题步骤 和上一题基本一样 123456789101112int __fastcall main(int a1, char **a2, char **a3){ char s[64]; // [rsp+0h] [rbp-80h] BYREF _BYTE v5[64]; // [rsp+40h] [rbp-40h] BYREF write(1, "-Warm Up-\n", 0xAu); write(1, "WOW:", 4u); sprintf(s, "%p\n", sub_40060D); // sub_40060D中,调用system cat了flag write(1, s, 9u); write(1, ">", 1u); return gets(v5);} 1234int sub_40060D(){ return system("cat flag.txt");} v5 是输入缓冲区:gets(v5),...
【BUUCTF】PWN-刷题记录-rip
题目信息 解题步骤 程序是amd64、小端程序,GOT表在运行时仍然可写,存在GOT覆盖风险,没有栈保护,栈可执行、程序基地址固定 使用ida进行分析: 上述代码中,我们注意: 12char s[15]; // [rsp+1h] [rbp-Fh]gets(s, argv); s 数组大小为 15 字节,位于栈上。 使用了 危险函数 gets():它会无限读取输入直到换行,完全不检查缓冲区边界。 gets(s) 会把你输入的所有字节写到栈上:先写入 s(15字节),接着覆盖 saved rbp(8字节),再覆盖 return address(8字节),后面跟着你继续写的字节都会保存在 return address 之后的栈上(函数返回时 ret 从栈上弹出的就是我们写入的返回地址)。 s 距离 rbp 仅 0xF = 15 字节,而 rbp 上方 8 字节是 返回地址(return address)。 因此,输入超过 15 + 8 = 23 字节 即可覆盖返回地址。 程序还有一个fun函数,调用了system函数,地址为0x401186 程序的system函数,地址为0...
【BUUCTF】PWN-刷题记录-test_your_nc
题目信息 解题步骤 nc 连接后,可以直接执行命令,在此我们执行ls后看到了flag文件 cat flag 即可获得flag
【LeetCode】力扣刷题记录-正则表达式匹配
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s 的,而不是部分字符串。 示例 1: 123输入:s = "aa", p = "a"输出:false解释:"a" 无法匹配 "aa" 整个字符串。 示例 2: 123输入:s = "aa", p = "a*"输出:true解释:因为 '*' 代表可以匹配零个或多个前面的那一个元素, 在这里前面的元素就是 'a'。因此,字符串 "aa" 可被视为 'a' 重复了一次。 示例 3: 123输入:s = "ab", p = ".*"输出:true解释:".*" 表示...
【LeetCode】力扣刷题记录-回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文,而 123 不是。 示例 1: 12输入:x = 121输出:true 示例 2: 123输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 123输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个回文数。 提示: -231 <= x <= 231 - 1 进阶:你能不将整数转为字符串来解决这个问题吗? 123456789101112131415161718192021class Solution: def isPalindrome(self, x: int) -> bool: # 负数不是回文数 if x < 0: return False # 单个数字是回文数 ...
【LeetCode】力扣刷题记录-字符串转换整数 (atoi)
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数。 函数 myAtoi(string s) 的算法如下: 空格: 读入字符串并丢弃无用的前导空格(" ") 符号: 检查下一个字符(假设还未到字符末尾)为 '-' 还是 '+'。如果两者都不存在,则假定结果为正。 转换: 通过跳过前置零来读取该整数,直到遇到非数字字符或到达字符串的结尾。如果没有读取数字,则结果为0。 舍入: 如果整数数超过 32 位有符号整数范围 [−231, 231 − 1] ,需要截断这个整数,使其保持在这个范围内。具体来说,小于 −231 的整数应该被舍入为 −231 ,大于 231 − 1 的整数应该被舍入为 231 − 1 。 返回整数作为最终结果。 示例 1: 输入: s = “42” 输出: 42 解释:加粗的字符串为已经读入的字符,插入符号是当前读取的字符。 1234567带下划线线的字符是所读的内容,插入符号是当前读入位置。第 1 步:"42"(当前没有读入字符,因为没有...
【LeetCode】力扣刷题记录-整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 1: 12输入:x = 123输出:321 示例 2: 12输入:x = -123输出:-321 示例 3: 12输入:x = 120输出:21 示例 4: 12输入:x = 0输出:0 提示: -231 <= x <= 231 - 1 有人跟我说,你直接用[::-1]不就好了?但是我们想想,如果x = -123,[::-1]的结果是什么?是不是321-?,那么如果是1230,是不是变成了0123? 所以… 1234567891011121314151617181920212223242526272829class Solution: def reverse(self, x: int) -> int: # 处理符号,记录是否为负数 sign = -1 if x < 0 else 1 ...
【LeetCode】力扣刷题记录-Z字形变换
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下: 123P A H NA P L S I I GY I R 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。 请你实现这个将字符串进行指定行数变换的函数: 1string convert(string s, int numRows); 示例 1: 12输入:s = "PAYPALISHIRING", numRows = 3输出:"PAHNAPLSIIGYIR" 示例 2: 1234567输入:s = "PAYPALISHIRING", numRows = 4输出:"PINALSIGYAHRPI"解释:P I NA L S I GY A H RP I 示例 3: 12输入:s = "...
2024御网杯 线下半决赛 Misc WriteUp
前言本文章编写为2024御网杯高职组线下半决赛WriteUp,线下半决赛抽签号为B12,一点之前一直是第一,赛后听到很多大佬说没工具,大部分自己都是线上的工具,线下没网。但是,线下也有相应的解法,问题不大。 Miscsimple_analysis 这道题看上去好像什么都没有,但是其实在Windows 11的记事本打开会看到特殊字符: 直接0宽度隐写秒了,签到题难度。工具地址:https://330k.github.io/misc_tools/unicode_steganography.html 但是此时问题出现了,我们常用的0宽都是线上在线使用的,怎么办呢? 您看这是什么呢?https://gitcode.com/open-source-toolkit/fe9fb/overview kitty附件是一个xlsx文件 但是打开提示报错 我们尝试使用010 Editor看看 发现是压缩包,文件头为我们熟悉的50 4B 03 04 14 00 继续解压,得到了kitty.xml 为了避免上当受骗,我们还是来看下010 果然,小骗子!! 从文件头看出来,这是一个PNG文...
【LeetCode】力扣刷题记录-连续出现的数字
表:Logs 12345678+-------------+---------+| Column Name | Type |+-------------+---------+| id | int || num | varchar |+-------------+---------+在 SQL 中,id 是该表的主键。id 是一个自增列。 找出所有至少连续出现三次的数字。 返回的结果表中的数据可以按 任意顺序 排列。 结果格式如下面的例子所示: 示例 1: 123456789101112131415161718192021输入:Logs 表:+----+-----+| id | num |+----+-----+| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 || 5 | 1 || 6 | 2 || 7 | 2 |+----+-----+输出:Result 表:+-----------------+| ConsecutiveNums |+-----------------...












