- 博客(5)
- 收藏
- 关注
原创 buu刷题
case1是将f1,f2两个字串拼接起来,想必就是flag,查看f1:GXY{do_not_,f2为空,那么就需要f2解出来,接着看下面程序,case4是将s = 0x7F666F6067756369LL的值赋给了f2,case5就是对f2的一个处理。后面四个字符,就是base64加密的那几个,可以看到第三第四字符已经是WP了,说明,WP1在前,jMp在后,,将他们拼接在一起,得到,UJWP1jMp。是将是将,v4 = ak1w,v5 = V1Ax,两个字符串base64加密。
2023-07-30 18:30:42
184
1
原创 buuctf reverse 刷题
这个题的大致思路是输入了一个Str(即flag,我们需要逆着将Str还原出来)进行一系列转换,最终变成ldest,然后与str2进行比较是否相同,相同则是flag,所以我们要知道进行了哪些操作(如上图),即Str2(如下图)sub_4110BE这个函数对Str1进行了base64编码所以将得到的字符串进行解码。得到的字符串用flag{}包上就是最中的结果了.用脚本进行异或(关键点:两次异或还是它本身)脱壳后拖进32位IDA查看关键字符串。拖进64位IDA,查看关键字符串。老规矩pe查壳,无壳,64位。
2023-04-15 21:09:21
140
1
原创 csapp lab1
可以通过对x取相反数来判断这个整数是否为补码最大值(在补码表示中,一个数的相反数等于它按位取反再加一)如果是最大补码数,它按位取反再加一(只有最低位相同)再与它本身进行异或(相同为0,不同为1)所以结果应该为11111110(假设是8位2进制的数)再取反为00000001(即为1)表示x为最大补码数。对于x,y,只能有两种&组合,x&y和~x & ~y,如果是 ~x&y,或者是 ~y&x,都是行不通,要么都取反,要么都不取,多次尝试 ~(x & y)&~(~x&~y)可以实现异或。(x^(~x+1))
2023-04-12 22:48:22
367
1
原创 buuctf reverse
主要是下面的strncmp函数,注释在图中;继续向上分析是关于str2的,用快捷键R将ascll转换,如果str2中有 ‘o’ 就将它换成 0,点击一个str2进去发现。str2这个字符串是{hello_world}将str2中的‘o’换成0就是最终的flag。拖进64位IDA里,shift+f12,查看关键词。右键点击交叉引用列表,点击ok,然后f5查看伪代码。将flag中的 ' i ' 和‘ r ’换成1即可。这道题与reverse1类似。用查壳工具查壳,64位无壳。跟reverse1步骤一样。
2023-04-03 22:14:23
278
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人