摘要:附件给了个可执行文件和一个加密文件,还给了个readme告诉你加密文件就是用可执行文件加密的 可执行文件逆出来是这样的: 是的,输入一个文件,给每个字节异或一个随机数再输出来…… 由于加密的是png,前8位是固定文件头,那或许可以破解伪随机数 很自然的想法是爆破,但是时间戳太大了,枚举时间比较长 不
阅读全文
摘要:这题表面上是一个裸rsa题,给了n,e和c,但实际上n不能分解 但是题目给了个服务器,允许你输入密文,然后告诉你对应的明文的奇偶性 这题我没想出来,看题解提示了两次才做出来,就直接说解法了: 知道m的奇偶性是没什么卵用的,但是如果知道2*m的奇偶性就很有用了 由于m<n,所以如果2*m<n,那么2*
阅读全文
摘要:看了题解才会,这题很有趣 涉及到的技巧:ida里ctrl+x可以追溯变量/函数的调用 ida进去之后能看见一个da♂rk galaxy 网上有一篇题解说得很好,这个东西在程序主体里没用过,那就看看它还在哪里出现了 一路追溯,可以看到这样一个东西 不知道这个函数是咋运行的,我猜可能是程序启动的时候加载
阅读全文
摘要:这题其实不难,但是掉了几个坑(萌新还是缺乏经验啊) 坑1: 下载下来的压缩包里居然还是个压缩包。。 还对着包含着一堆\x00的数据处理的半天,看见了key.pub和flag.b64但是没想到居然是套娃包 坑2: 解压完后,key.pub打开是个这 BEGIN PUBLIC KEY ME0wDQYJK
阅读全文
摘要:IDA反汇编的结果: 看上去确实挺草的,一堆goto和奇怪的函数,再加上题目名为迷宫,感觉很害怕 不过其实goto的结构并不混乱,函数也很简单 四个函数总共有两个功能:++x<8和x-->0 四个goto其实是每次执行完函数之后就直接跳到指定位置,把函数返回值保存下来 那么相应的,可以把v6和v9改
阅读全文
摘要:做题技巧: O linux下的指令:strings,支持查找二进制文件中的所有可见字符 此外还有搜索字串等功能 O 一个奇怪的套路== md5网站可能帮你解出两次md5加密的结果,而程序里只加密了一次,那么flag就是把解两次之后的再md5一次==b O 有些题目解出的flag不是原始flag,可能
阅读全文
摘要:技不如人甘拜下风 我本来以为我水平提升很多了,结果就是个弟弟 只过了3题,手里卡了两题过不去,签到题做太晚,其他题看都没看 rank300,认识的人里没有比我还低的 赛后分析,手里卡的两题都是会做的,只不过做的方法不对,跑偏了,导致很难做对 题都会做啊,是水平不够吗??? 大概还是水平太低吧 没有条
阅读全文
摘要:我们都知道'\n'是换行,那么'\r'是什么东西呢 为了理解'\r',就要说到历史上曾经出现过的一个东西: 打字机 打字机在换行的时候,不是像今天这样一敲回车就完事了,而是必须先换行,再把印字的那个东西顶到最开头去 事实上,'\n'就是让光标换行,而'\r'就是把光标顶到开头 为什么我专门开了一篇文
阅读全文
摘要:konge太强了无限orzzzzzzzzzzzzzzzzzzz O python import 只会在运行时目录找,因此如果 import 子包,然后子包又 import 子包的子包,就会找不到 子包必须 from . import 孙子包 O 如果用'r'读入文件,那么'\r'会被自动去掉 应该用
阅读全文
摘要:原题: 翻译: 给你一个点权无根树,要你切掉k-1条边把它切成k个子树,要求切完后子树的点权和的最大值最小 一看最大值最小,那必然是二分 问题转化为给你一个值,问你能否把这个树切成不多于k个子树,且每个子树点权和不超过给的值 贪心1: 叶子一定选 贪心2: 如果某个点的子树全能装得下,那一定一把梭
阅读全文
摘要:原题: 题意: 给你两个n*m的矩阵,在每个矩阵中,元素的值都是1-n*m且互不相同 问你这两个矩阵的最大公共子矩阵有多大 首先可以想到由于每个值在一个矩阵只出现一次,因此两个矩阵之间建立了一个映射关系 接着考虑在和子矩阵有关的方面,这个关系有什么性质 可以发现,某个相等子矩阵中每一个元素的偏移量一
阅读全文