BUUCTF RE WP36-38 [FlareOn4]IgniteMe、[MRCTF2020]Xor、[MRCTF2020]hello_world_go

17 篇文章 4 订阅
8 篇文章 6 订阅

36.[FlareOn4]IgniteMe
得到的 flag 请包上 flag{} 提交。

在这里插入图片描述
其中,txt文档的内容为:Hint:本题解出相应字符串后请用flag{}包裹,形如:flag{123456@flare-on.com}

IDA打开,搜索字符串,跟进,交叉引用。
直接反编译,发现
在这里插入图片描述
那就不看这里了
在这里插入图片描述
直接看sub_4010F0和sub_401050
首先看sub_4010F0()函数
在这里插入图片描述

就是将输入的\n和\r给去掉,那么加密函数就应该在sub_401050中了
在这里插入图片描述
最后是判断byte_403180是否与byte_403000相同,后者已给出,导出
在这里插入图片描述
这里需要确定v4的值,查看汇编(sub_401000)
在这里插入图片描述
静态确定:
能够确定,v4的值是存在ax寄存器里的,将80070057h存入eax和edx,然后,然后是丢弃了高16位数据(eax跟edx是32位)将ax与dx(ax跟dx是16位)异或。所以此时ax与dx的值是0057h
其中,rol是循环左移(不舍弃),shr是每位右移, 高位补 0,低位舍弃
0057h即1010111,首先进行异或,因为相同,所以ax的值为0
此时eax为80070000h(10000000000001110000000000000000b)
eax左移4位:00000000011100000000000000001000b
ax右移1位:0000000000000100b
所以此时c的值为100b即4(c是char占用16字节)

动态调试:
在这里插入图片描述在这里插入图片描述
然后就没什么了,写脚本即可

enc=[0x0D,0x26,0x49, 0x45, 0x2A, 0x17, 0x78, 0x44, 0x2B, 0x6C, 0x5D,0x5E, 0x45, 0x12, 0x2F, 0x17, 0x2B, 0x44, 0x6F, 0x6E, 0x56, 0x9,0x5F, 0x45, 0x47, 0x73, 0x26, 0x0A, 0x0D, 0x13, 0x17, 0x48, 0x42,0x1, 0x40, 0x4D, 0x0C, 0x2, 0x69]
flag=""
L=len(enc)-1
for i in range(len(enc)):
    if i==0:
       enc[L-i]= enc[L-i]^4
    enc[L-i-1] = enc[L-i-1]^enc[L-i]
    flag+=chr(enc[L-i])
print("flag{"+flag[::-1]+"}")

flag{R_y0u_H0t_3n0ugH_t0_1gn1t3@flare-on.com}

37.[MRCTF2020]Xor
得到的 flag 请包上 flag{} 提交。
感谢天璇战队供题。
天璇战队平台:http://ctf.merak.codes/。

IDA打开,搜字符串,找到flag字样,题目是xor,所以肯定需要异或,但是F5不了…
在这里插入图片描述
其中此函数有个判断
在这里插入图片描述
正好之前框起来的长度就是27,而且判读过之后也确实需要用到
在这里插入图片描述
在这里插入图片描述
inc是自增,那就可以直接写脚本了

enc = [77,  83,  65,  87,  66, 126,  70,  88,  90,  58, 74,  58,  96, 116,  81,  74,  34,  78,  64,  32, 98, 112, 100, 100, 125,  56, 103]
flag = ""
for i in range(len(enc)):
    flag += chr(enc[i]^i)
print(flag)

flag{@_R3@1ly_E2_R3verse!}

38.[MRCTF2020]hello_world_go
得到的 flag 请包上 flag{} 提交。
感谢天璇战队供题。
天璇战队平台:http://ctf.merak.codes/

未加壳的ELF,IDA64打开
搜索字符串发现一串像base64的字符串,尝试解码,发现不行。
搜索flag,发现有很多flag字样,但是在里面呈现的是一列一列的,觉得有点难看,决定用winhex查看,然后
在这里插入图片描述
尝试提交,过了…

flag{hello_world_gogogo}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值