buuctf
文章平均质量分 73
chneft
当你坚持着每天都做一件事,无论大小,到最后成败不是最重要的,光是回头看看就会给人足够的获得感和快乐。当然,前提是坚持,有解的难题,再难都怕坚持。
展开
-
[WUSTCTF2020]level3
回想一下自己在纠结这道题算法是否出现问题时,想了很久却找不到思路,却一直没有想过是编码表可能出现了问题,为什么会这样呢,我相信很多人也会和我一样。究其原因,我们在分析程序时一般都是从main函数开始分析,却忽略了在main函数运行前,程序还会运行start函数进行初始化,而LookAtYou这个函数正是start函数中运行的_init_array段对于这部分的知识我暂时没有太多了解,等深入了之后再写篇博客专门说一下我的理解。原创 2022-12-30 18:01:15 · 306 阅读 · 1 评论 -
[ACTF新生赛2020]usualCrypt
sub_401000()将byte_40E0AA数组和byte_40E0A0数组的第6到15位元素作替换,双击任意一个数组可以发现其实byte_40E0AA是byte_40E0A0数组中从第11位元素开始截取的一部分。双击byte_40E0E4可以看到byte的元素(需要注意的是7Ah也是这个数组的一部分,选中这一部分元素按a将其转换为一个整体)再回到main函数,接下来是判断v5是否和byte_40E0E4相等,若不相等则报错,相等则继续向下执行。[ACTF新生赛2020]usualCrypt。原创 2022-12-02 18:35:51 · 196 阅读 · 0 评论 -
[MRCTF2020]Transform
熟悉的思路,查壳分析一路走。原创 2022-12-01 21:57:23 · 207 阅读 · 0 评论 -
[SUCTF2019]SignIn
_gmpz_powm(mpz_t rop, const mpz_t base, const mpz_t exp, const mpz_t mod)表示将base的exp次方除以mod的模赋值给rop。其中__gmpz_init_set_str(mpz_t rop, const char *str, int base)表示将str字符串以base指定的进制传入给rop。__gmpz_cmp()为比较函数,相等则返回值为0,不相等则不为0。接着写脚本,利用gmpy2模块求e的逆元d,反推出m的值即可。原创 2022-12-01 20:13:15 · 282 阅读 · 0 评论 -
[WUSTCTF2020]level1
下载文件得到两个文件,一个无后缀的level1和一个output的txt文件,推测level1应该是可执行文件打开output看看。原创 2022-11-30 17:31:25 · 494 阅读 · 1 评论 -
[2019红帽杯]easyRE
这道题脑洞挺大的,我觉得更多是考验做题经验,考察解题人的思维,按照常规思路可能根本想不到去找一段不知道在哪被调用的数据,只能说是做的题多了,自然也就有把握了。原创 2022-11-29 19:13:08 · 160 阅读 · 0 评论 -
[GUET-CTF2019]re
从中可以看出v4是一个数组,那就把v4的定义修改一下,把它改成变量名为key,长度为32的数组,操作如下(y修改变量类型,n修改变量名)需要注意的是16号和17号元素顺序是倒过来的,在看伪代码的时候要注意到,同时还能发现key[6]是未知的。得到一个没有后缀的文件,拖进die里看一下,发现是upx压缩壳,直接用upx命令行工具进行解压缩就好。脱完壳后的文件再拖进die里分析,可知是linux平台的elf文件,直接放ida里分析。在网上看了别人的wp,得出以下的解决思路。查看这个字符串的交叉引用。原创 2022-11-29 16:01:35 · 928 阅读 · 0 评论 -
BUUCTF CrackRTF
这道题考察的知识点挺多挺杂的,对windows api的了解和掌握程度,对杂凑函数的熟悉程度,对文件打开关闭函数的掌握程度,当然,还有python写脚本的能力。是一道很经典的题。原创 2022-11-08 10:28:52 · 476 阅读 · 6 评论 -
BUUCTF Mysterious
通过题目简介和下载得到的文件格式分析,该题需要对该文件进行逆向分析。原创 2022-10-13 13:32:12 · 1966 阅读 · 8 评论 -
BUUCTF reverse2
flag是去flag的地址,&flag+i有没有觉得和数组有些相似了(flag[i]),这个推理是没有错的,这里把flag当作首地址,每次循环地址加1,外边套一个*号,取这个地址保存的数据,这样是不是就明白了,如果这个值是‘i’或者‘r’,就把它改成1,这样就变成了{hack1ng_fo1_fun},原创 2022-10-02 20:34:53 · 251 阅读 · 0 评论 -
BUUCTF reverse1
然后是一个字符串比较函数strncmp,他有三个参数,最后一个参数是比较的字符数,而strcmp是两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇"\0"为止。原创 2022-10-02 19:49:58 · 208 阅读 · 0 评论 -
BUUCTF easyre
IDA分为32位和64位,32位版本用来打开32位软件,64位用来打开64位软件(具体为什么不太清楚,可能是因为32位和64位对应的寄存器有所改变吧)看到一个文件首先得知道它有没有壳,所谓加壳就是改变该程序的入口,使cs:ip指向另外一段代码,执行完额外的代码后再回到程序本来的入口,这样反编译软件就不能轻易进行反编译。’右边的注释显示了貌似是真的flag,为了知其所以然,我不直接将它视为答案,双击aFlagThisIsAEas,看看这个变量对应的内存空间到底存放了什么。原创 2022-10-02 18:26:28 · 2385 阅读 · 1 评论