- 博客(86)
- 收藏
- 关注
原创 Thinkpad T14升级Windows11ver22h2失败问题解决
建议Lenovo能够真正找点工程师解决一下这类问题,别的品牌电脑都没有类似问题,但是找Lenovo中国工程师总是车轱辘话来回说,后来直接让我重置系统安装…那成百上千的环境您能给我重新配吗- -好在最终找到了解决方案,谨以此分享给所有更新失败的Lenovo用户。
2023-04-01 11:21:19
230
原创 [BUUOJ]jarvisoj_fm
checksec为常规保护,进入IDA分析main逻辑内部判断本题应该是格式化字符串漏洞,因此进行gdb调试,下断点在漏洞printf。查找具体存储位置,发现是在第11位开始存储,所以据此构造exp。处,输入一串字符串后在gdb内。
2022-11-07 20:54:10
66
原创 LeetCode 1620.网络信号最好的坐标
模拟题根据题目要求,如果有多个网络信号最好的坐标,则返回网络信号最好的非负坐标,此时 cx>=0且cy>=0。因此结果坐标满足大于0小于x/yMax的条件,所以只需在此范围内遍历每一个可能的坐标,计算其信号强度之和,即可找到符合信号最好的坐标。
2022-11-02 15:15:48
55
原创 LeetCode 481.神奇字符串
本题目应该说难在读题,根据题目描述的意思,s作为一个神奇字符串,他的每一组数都是根据前面的数去判定的,以开头的122之后为例,122之的末尾为2,而s的规则是1和2交替出现,所以后面应当跟着"1",而这一组"1"的数量则由其前面的"2"来决定,所以这一组有两个"1",同理,在这后面跟着的就是一个"2",剩下要做的,就是把这个过程模拟出来求得结果即可。
2022-10-31 21:19:10
38
原创 LeetCode 784.字母大小写全排列
dfs所有情况一把梭,当遇到当前字符是字母时,分别以大小写分别进行下一步dfs,然后将每一次dfs末端的结果保存,最后得到的就是全排列组合。
2022-10-30 23:05:52
106
原创 LeetCode 1773.统计匹配检索规则的物品数量
简单模拟题,需要做的就是按照规则用map把物品名称映射一下,然后再遍历数组中的每个元素,如果符合要求就给结果+1即可,最后输出其中的内容。
2022-10-29 15:25:56
28
原创 LeetCode 907.子数组的最小值之和
本题由于每一项都需要遍历到,所以我们要计算所有可能的排列组合情况,所以这道题我们应该从每个元素分别出发,构建单调栈,找到每个元素左边和右边第一个比他小的元素,在这个区间范围内,我们可以断定任何一个子区间得到的最小值都是当前选定这个元素,所以最终的结果就可以很快的由单调栈记录内容的区间长度乘以当前这个元素值就可以得到当前子区间内的所有子数组相加之和,最终将这些结果分别相加即可得到答案。
2022-10-28 19:52:43
268
原创 LeetCode 862.和至少为k的最短子数组
如果我们找到当前的s[i]满足条件,则说明之后选取的s[i]不管是多少,均没有当前s[i]距离s[j]近,所以在此以后的值均可以丢弃,同理,s[j]之前的值也是如此,因此经过这两轮优化,我们就可以得到一个基本的单调队列。本题前缀和队列并不单调,所以应该算变种单调队列,在计算出单调队列以后还要进行进一步优化,即在如下条件。
2022-10-26 15:38:39
52
原创 LeetCode 934.最短的桥
题目限制了岛的数量肯定为2,所以我们只需要找到两个岛即可,首先通过遍历每一个坐标找到一个岛的点(值为1),接着以这个点开始DFS,找到该岛上所有的点,并将值设为-1,然后以这些点为基础集合,再进行BFS,当找到第一个值为1的点时,BFS的层数就是需要翻转的数目。
2022-10-25 12:22:45
62
原创 [BUUOJ]bjdctf_2020_babystack2
checksec是64位小端序,IDA分析看没找到明显的输入溢出逻辑,但是找到了后门函数,再仔细观察发现数值里面有强制转换,有一部分从int转到了unsigned int,因此可以初步判定为整型溢出,如果我输入-1即可突破长度为10的限制,所以以此下手即可成功修改返回地址,getshell。
2022-10-25 11:25:56
56
原创 [BUUOJ]bjdctf_2020_babyrop
先checksec,64位小端序,MX保护开,其它全关,接着进入IDA分析main函数内很简单,进一步分析后找到关键函数vuln本题没有找到backdoor,所以应该是做基地址泄露然后getshell,整个程序内只有puts函数可以输出内容,因此对puts函数进行修改,先溢出后转到此处,考虑到系统会对堆栈进行平衡,所以我们要修改puts的参数需要先进行一次pop保证堆栈平衡,因此使用ROPgadget先找到符合我们条件的ROPputs_got是puts函数的got表项地址,里面装的是puts的真实地址。使用
2022-10-24 21:02:05
235
原创 [BUUOJ]铁人三项(第五赛区)_2018_rop
checksec看到保护全关,进IDA分析就是很简单的一串逻辑,在第二个函数处看到了明显的溢出,但是题目里面没有直接提供shell相关操作,所以判断本题为ret2libc,题目中给到了write函数,所以考虑使用write函数来泄露关于write参数我找到了如下解释概言之,就是0 stands for stdin and 1 stands for stdout,不一定正确,但是有助于记忆
2022-10-24 21:01:19
768
原创 LeetCode 915.分割数组
模拟题,两遍遍历,因为要保证左侧区间尽可能小,所以就要找到最左面的适合的点,所以第一遍先从最右边开始记录前缀最小的数,之后再从左往右遍历一遍记录当前最大的前缀,同时将当前最大前缀与下一位的最小前缀比较,如果小于下一位的最小前缀则直接输出即可。
2022-10-24 18:37:58
446
原创 Java中使用List的add方法后元素相同问题
部分,考虑到初始化List对象在循环外,List添加的是对象的引用,Test只被new了一次然后不断被赋值,所以最后只能写入最后一个元素,根据我的理解,这一部分应该是编译时候编译器把具体内容放在了实例化全部结束以后以提高运行效率,但是在这里就造成了逻辑性的错误导致最后出现的结果异常(具体原因未知,如果有大佬明白还望不吝赐教),最后将实例化过程放在循环内即可解决问题。在写JavaWeb时,我在后端通过JDBC读取了数据后逐个使用。
2022-10-19 14:39:01
215
原创 LeetCode 1790.仅执行一次字符串交换能否使两个字符串相等
暴力模拟,根据题目思路直接写代码即可,依次遍历字符串的每一位,如果相等则继续,如果不相同则分别储存在记录量flag1,flag2中,如果不同的位置超过两个或者只有一个则返回false,如果不存在不同位置或者不同的位置相同就返回true。
2022-10-11 22:26:05
238
原创 LeetCode 856.括号的分数
一道栈模拟题,可以将()看作栈的运算操作指令,按照规则,每次遇到(时压入一个数字0占位,而遇到)((A)因此可得到一个综合式子,以此为基础即可得解。
2022-10-09 22:53:06
51
原创 [极客大挑战 2019]BabySQL
打开一看,映入眼帘的和之前的那道SQL题目差别不大,上来先试万能密码,发现or用不了,遂再测试其他使用方法。看到这里基本上这一步就稳了,接下来就是试列数,逐个递增尝试,最终在3处注入成功,得到了回显。发现union和select被过滤了,再双写试一下。得到数据库为geek,接着尝试爆处所有的数据库。在这里看到一个ctf的库比较可疑,进行爆破。找到一个flag表,接着爆破其中的字段。再根据字段名flag爆数据。
2022-09-05 12:03:11
905
原创 [ACTF2020 新生赛]Upload
打开题目后发现还是一个上传问题,故猜测和上题解题思路一致,上传一句话木马提示只能上传图片格式,接着用开发者工具进行元素审查。可以看到这里调用了checkFile的js函数进行审查,所以审查元素将这部分删去,这里我直接删去了。测试,上传成功,蚁剑连接即可getshell。
2022-09-05 12:01:35
84
原创 [极客大挑战 2019]Upload
上传成功,接着猜测文件保存的位置,首先猜测路径为upload,那么打开蚁剑尝试一下,连接成功,在根目录下即可找到flag。,上传失败,提示Do not lie me,怀疑是对图片内容有检测,因此在这之前再加上一部分。访问之后是一个文件上传的页面,接着就可以想到上传一句话木马进行控制。接着上传,用bp抓包修改文件类型为。
2022-09-05 12:00:05
53
原创 [极客大挑战 2019]Http
还需要浏览器标识为Syclover,因此再加上。提示只能从本地访问,那么还需要再加上。,终于显示了flag,题目得解。访问,因此传入bp,加上。
2022-09-05 11:59:21
38
原创 [极客大挑战 2019]Knife
再根据题目Knife,明显是要用菜刀来解决,传参就是用Syc,因此打开蚁剑,尝试连接,成功。在根目录下找到了flag,本题得解。
2022-09-05 11:58:29
53
原创 [极客大挑战 2019]LoveSQL
字段数为3时,回显正常,使用union查询回显点位。得到回显点位为2和3,查询数据库相关信息。可以得到如上两个表,接着爆破各个表的字段。两个表均为以上结果,接着爆破各个表的数据。开屏一道SQL注入题目,先试试万能密码。可以看到flag已经找到了,本题得解。md5解密失败,回到注入的思路上。
2022-09-05 11:57:47
60
原创 [GXYCTF2019]Ping Ping Ping
成功,下一步就开始考虑如何看到flag.php里面的内容,首先的问题就是如何绕过空格过滤,这里整理一下常见的空格过滤方法。现在思路清晰了,接下来就是考虑如何显示flag.php的问题了,我们可以尝试使用反引号内联执行的做法,linux下反引号。emm看起来不太友好,看来flag关键词也被过滤了,那就先试试看index.php,使用。得到了一个f语言的回显,很明显空格会被过滤,所以我们尝试去掉空格。,有回显,说明这是命令执行注入了,先用ls看看有什么文件。打开可以看到很明显的提示,传参就是ip=,尝试传入。
2022-09-05 11:56:57
34
原创 [ACTF2020 新生赛]Exec
打开后发现网页是关于执行一个ping指令,经过测试是直接执行的,所以就直接命令执行了。总结一下常见的Linux管道符。
2022-09-05 11:55:56
794
原创 CISCN2022东北赛区复赛Writeup-MapleLeaves
Do1phln b477ery sfc9982 0HB密文中字母跨度在 G-K 间,不禁让人想往 A-F 平移,平移后即为且全部为可打印 ASCII 文本。拖入本地离线 CyberChef 中先使用Base32,再使用Base85 IP method 解密得到 flag分析音频,无有效信息。加之题目体制侧重于文件方向,使用 010 Editor 打开音频文件,在尾部发现类似 Base64 的文本信息,经过两次解密后得到某个东西的密码。初步考虑文件内含压缩包或者音频存在隐写信息。经多个工具尝试过后发现
2022-06-19 12:13:09
1529
8
原创 CISCN2022全国初赛题解WriteUp-MapleLeaves
Do1phln b477ery sfc9982 0HBthinkphp 6.0.12lts 存在反序列化漏洞 https://www.freebuf.com/vuls/321546.html扫描可知 www.zip 存在源码泄露,下载后可知存在反序列化路由 online_crtc_rehash 存在漏洞 https://www.secrss.com/articles/42602 CVE-2022-1292先通过 /getcrt 获取文件名再通过 /proxy 访问 go 服务更改文件名为命令最
2022-06-04 16:28:10
1176
原创 LeetCode 388.文件的最长绝对路径
题目链接思路针对文件路径的特征,一个文件中一定包含.分隔符,以此为依据可以判定当前字符串是否是一个文件,文件系统是一个树形结构的角度来看的话,题中给定的字符串实际上是以一个树形结构前序遍历的序列,连续的\t表示出了当前的深度,而相邻的节点之间以\n进行分割。假设当前的路径为x/y/z,其中x,y,zx,y,zx,y,z的文件名长度为分别为lx,ly,lzl_x, l_y, l_zlx,ly,lz则路径&x, x/y, x/y/z&的长度分别为lx,lx+ly+1,lx+ly+lz
2022-05-19 10:37:33
61
原创 DeepLearning-语义分割数据处理实例
数据集:Pascal VOC2012, 参考材料:动手学深度学习以下示例实现了对数据的预读取,处理等操作import osfrom random import shufflefrom turtle import widthimport torchimport torchvisionfrom d2l import torch as d2lvoc_dir = "./dataset/VOC2012/"# 数据读取def read_voc_images(voc_dir, is_train=Tr
2022-05-19 10:36:33
89
原创 论文总结-语义分割经典模型
语义分割是图像分割中的基本任务,是指对于图像将每个像素都标注上对应的类别,不区分个体。简单地说,我们需要将视觉输入的数据分为不同的语义可解释性类别。若是区分了个体数量,那么就是实例分割。本文主要总结一些较为经典的语义分割模型,慢慢更新,主要是对U-Net、FCN、SegNet、PSPNet、DeepLab v1/v2/v3/v3+进行要点概括,论文的具体解读、链接和源码在每个标题之后。U-Net[论文笔记] U-Net - 知乎 (zhihu.com)U-Net发表于2015年,用于医学细胞分割
2022-05-16 19:45:54
1072
原创 LabelMe2seg无法生成真值图片的问题解决
最近在LabelMe标注好图片之后,使用labelme2seg无法生成真值图片,报错如下:Generating dataset from: roadscene_train\img001.jsonTraceback (most recent call last): File "labelme2voc.py", line 95, in <module> main() File "labelme2voc.py", line 85, in main labelme.utils
2022-05-14 20:23:27
209
2
原创 【每日一题】AcWing 1904. 奶牛慢跑
题目奶牛们又出去锻炼蹄子去了!有 N头奶牛在无限长的单行道上慢跑。每头奶牛在跑道上开始奔跑的位置互不相同,一些奶牛的奔跑速度可能相同,也可能不同。由于跑道是单行道,十分狭窄,奶牛们无法相互超越。当一头速度很快的牛追上另一头牛时,她必须减速至与另一头牛速度相同以免发生碰撞,并成为同一跑步小组的一员。此时,两头牛可以视为在同一点上。最终,再也没有奶牛会撞到(追上)其他奶牛了。约翰想知道在这种情况下,会剩下多少个跑步小组。输入格式第一行包含整数 N接下来 N行,每行包含一头奶牛的初始位置和跑步速度。所有
2022-01-21 22:01:34
460
原创 【每日一题】LeetCode 89.格雷编码
题目n 位格雷码序列 是一个由 2n 个整数组成的序列,其中:每个整数都在范围 [0, 2n - 1] 内(含 0 和 2n - 1)第一个整数是 0一个整数在序列中出现 不超过一次每对 相邻 整数的二进制表示 恰好一位不同 ,且第一个 和 最后一个 整数的二进制表示 恰好一位不同给你一个整数 n ,返回任一有效的 n 位格雷码序列 。示例输入:n = 2输出:[0,1,3,2]解释:[0,1,3,2] 的二进制表示是 [00,01,11,10] 。00 和 01 有一位不同
2022-01-08 21:49:44
3212
原创 【每日一题】LeetCode 1614. 括号的最大嵌套深度
题目如果字符串满足以下条件之一,则可以称之为 有效括号字符串(valid parentheses string,可以简写为 VPS):字符串是一个空字符串 “”,或者是一个不为 “(” 或 “)” 的单字符。字符串可以写为 AB(A 与 B 字符串连接),其中 A 和 B 都是 有效括号字符串 。字符串可以写为 (A),其中 A 是一个 有效括号字符串 。类似地,可以定义任何有效括号字符串 S 的 嵌套深度 depth(S):depth("") = 0depth© = 0,其中 C 是单个字符
2022-01-07 23:18:04
85
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人