[XCTF-Reverse] 64 2019_CISCN_初赛_easy_go

go写的题,go语言个人认为很讨厌,所以函数全静态编译删除符号。说是为了不同平台版本上兼容,实际上如果有bug的话会很难处理。

起点都不知道在哪。从hex里搜flag啥的

00000000004CEE90: .rodata:00000000004CEE90 (ea at start-of-line=4CEE90)	 66 6C 61 67 20 79 6F 75  20 69 6E 70 75 74 20 69  flag you input i	

然后找调用它的位置(这不是串的起点,要找到起点)

.rodata:00000000004CEE7D unk_4CEE7D Congratulation the flag you input is correct

再往上找调用处

.rodata:00000000004E1140 off_4E1140      dq offset unk_4CEE7D
.text:0000000000495393 loc_495393:                             ; CODE XREF: sub_495150+1CC↑j
.text:0000000000495393                 mov     [rsp+100h+var_100], rdx
.text:0000000000495397                 mov     [rsp+100h+var_F8], rcx
.text:000000000049539C                 mov     [rsp+100h+var_F0], rbx
.text:00000000004953A1                 call    sub_4023F0
.text:00000000004953A6                 cmp     byte ptr [rsp+100h+var_E8], 0
.text:00000000004953AB                 jz      loc_49531E
.text:00000000004953B1                 xorps   xmm0, xmm0
.text:00000000004953B4                 movups  [rsp+100h+var_48], xmm0
.text:00000000004953BC                 lea     rax, unk_4A6D00
.text:00000000004953C3                 mov     qword ptr [rsp+100h+var_48], rax
.text:00000000004953CB                 lea     rax, off_4E1140        <-----引用在这里
.text:00000000004953D2                 mov     qword ptr [rsp+100h+var_48+8], rax
.text:00000000004953DA                 nop
.text:00000000004953DB                 mov     rax, cs:qword_572B18
.text:00000000004953E2                 lea     rcx, off_4E28A0
.text:00000000004953E9                 mov     [rsp+100h+var_100], rcx
.text:00000000004953ED                 mov     [rsp+100h+var_F8], rax
.text:00000000004953F2                 lea     rax, [rsp+100h+var_48]
.text:00000000004953FA                 mov     [rsp+100h+var_F0], rax
.text:00000000004953FF                 mov     [rsp+100h+var_E8], 1
.text:0000000000495408                 mov     [rsp+100h+var_E0], 1
.text:0000000000495411                 call    sub_4886B0
.text:0000000000495416                 jmp     loc_495383

这是输出正确信息的部分,再向前查判断对错的部分

.text:000000000049530D loc_49530D:                             ; CODE XREF: sub_495150+36A↓j
.text:000000000049530D                 mov     rax, [rsp+100h+var_60]
.text:0000000000495315                 mov     rcx, [rax]
.text:0000000000495318                 cmp     [rax+8], rbx <------在这里判断对错,然后跳转
.text:000000000049531C                 jz      short loc_495393
.text:000000000049531E
.text:000000000049531E loc_49531E:                             ; CODE XREF: sub_495150+25B↓j
.text:000000000049531E                 xorps   xmm0, xmm0
.text:0000000000495321                 movups  [rsp+100h+var_58], xmm0
.text:0000000000495329                 lea     rax, unk_4A6D00
.text:0000000000495330                 mov     qword ptr [rsp+100h+var_58], rax
.text:0000000000495338                 lea     rax, off_4E1150
.text:000000000049533F                 mov     qword ptr [rsp+100h+var_58+8], rax
.text:0000000000495347                 nop
.text:0000000000495348                 mov     rax, cs:qword_572B18
.text:000000000049534F                 lea     rcx, off_4E28A0
.text:0000000000495356                 mov     [rsp+100h+var_100], rcx
.text:000000000049535A                 mov     [rsp+100h+var_F8], rax
.text:000000000049535F                 lea     rax, [rsp+100h+var_58]
.text:0000000000495367                 mov     [rsp+100h+var_F0], rax
.text:000000000049536C                 mov     [rsp+100h+var_E8], 1
.text:0000000000495375                 mov     [rsp+100h+var_E0], 1
.text:000000000049537E                 call    sub_4886B0
.text:0000000000495383
.text:0000000000495383 loc_495383:                             ; CODE XREF: sub_495150+2C6↓j
.text:0000000000495383                 mov     rbp, [rsp+100h+var_8]
.text:000000000049538B                 add     rsp, 100h
.text:0000000000495392                 retn
.text:0000000000495393 ; ---------------------------------------------------------------------------
.text:0000000000495393
.text:0000000000495393 loc_495393:                             ; CODE XREF: sub_495150+1CC↑j

在495318 下断点,随便输入个值,然后观察断点情况,这里直接显示了正确的flag

[----------------------------------registers-----------------------------------]
RAX: 0xc0000641d0 --> 0xc000080030 ("flag{1234}")
RBX: 0x2a ('*')
RCX: 0xc000080030 ("flag{1234}")
RDX: 0xc00007c060 ("flag{92094daf-33c9-431e-a85a-8bfbd5df98ad}")
RSI: 0xc00007c060 ("flag{92094daf-33c9-431e-a85a-8bfbd5df98ad}")
RDI: 0x38 ('8')
RBP: 0xc000074f88 --> 0xc000074f90 --> 0x429b1c (mov    eax,DWORD PTR [rip+0x16478e]        # 0x58e2b0)
RSP: 0xc000074e90 --> 0xc000078580 ("6789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345", '\377' <repeats 45 times>, "\005\377\377:;<=>?")
RIP: 0x495318 (cmp    QWORD PTR [rax+0x8],rbx)
R8 : 0x0 
R9 : 0x0 
R10: 0x2a ('*')
R11: 0x2a ('*')
R12: 0xc00007c060 ("flag{92094daf-33c9-431e-a85a-8bfbd5df98ad}")
R13: 0xc000078580 ("6789_-abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012345", '\377' <repeats 45 times>, "\005\377\377:;<=>?")
R14: 0x2a ('*')
R15: 0x40 ('@')


#flag{92094daf-33c9-431e-a85a-8bfbd5df98ad}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: pure_color xctf是一个CTF比赛平台,致力于举办和推广网络安全竞赛。 pure_color xctf的目标是为安全爱好者和专业人士提供一个学习、切磋和交流的平台。这个平台上举办的比赛覆盖了各种网络安全领域,包括但不限于网络攻防、密码学、逆向工程等。通过参与这些比赛,参赛者可以提升自己的技能,了解最新的安全威胁和攻击技术,锻炼解决问题的能力。 pure_color xctf的比赛模式多样,可以是个人或团队参与。参赛者需要在限定的时间内完成一系列的题目,这些题目可能包含漏洞分析、编程挑战、数据分析等。比赛过程中,参赛者需要运用各种技术手段,如渗透测试、代码审计、漏洞利用等,解决题目的要求。参赛者不仅需要具备网络安全相关的知识,还需要具备良好的团队合作和解决问题的能力。 此外,pure_color xctf也为参赛者提供了一个交流平台。比赛期间,参赛者可以在平台上与其他选手交流经验、讨论解题思路。参赛者也可以通过竞赛结果来评估自己的能力,并与其他选手进行切磋比拼。 总之,pure_color xctf是一个举办网络安全竞赛的平台,旨在为安全爱好者和专业人士提供学习和交流的机会,促进网络安全技术的发展。 ### 回答2: pure_color xctf 是一项竞技性的网络安全挑战赛。XCCTF 是全球知名的网络安全竞赛组织之一,而 pure_color 是该竞赛组织内的一项赛事。该赛事旨在提升参赛者的网络安全技能和知识,让他们在一个仿真的网络环境中进行攻防对抗。 在 pure_color xctf 中,参赛队伍将根据题目要求进行网络攻击和防御。这些题目有不同的难度级别,并涵盖了各种不同的网络安全技术和攻击类型。参赛队伍将需要利用他们的知识和技能,像真实的黑客一样去攻击系统漏洞,获取目标系统内的敏感信息或是直接控制目标系统。同时,他们也需要通过搭建防御策略和系统来保护自己的系统免受攻击。 pure_color xctf 不仅仅是一个交流学习的平台,也是一个展示能力的舞台。优胜的参赛队伍将会被邀请参加更高级别的网络安全竞赛和会议,进一步提升他们的技能并扩展职业网络。此外,pure_color xctf 也为参赛者提供了一个找到职业机会的平台,很多安全公司和组织会在赛事期间招聘优秀的选手。 总而言之,pure_color xctf 是一个有挑战性的网络安全竞赛,旨在通过攻击和防御对抗提升参赛者的技能,并为他们提供职业发展和展示的机会。同时,这个赛事也在促进网络安全领域的交流和合作,为提升整个网络安全行业的水平做出贡献。 ### 回答3: pure_color xctf 是一个CTF(Capture The Flag,夺旗赛)竞赛平台。CTF是一种网络安全竞赛,旨在让参赛者通过解决一系列的密码学、逆向工程、漏洞利用等问题来获取旗标,比赛者可以通过这些旗标来获取积分并竞争排名。 pure_color xctf 平台是一个为CTF竞赛提供的一个在线环境,类似于一个实验室,用于举办CTF比赛。在这个平台上,参赛者可以注册账号并加入已经发布的CTF赛事中。赛事中的题目被分为不同的难度级别,涵盖了各种安全领域的知识。参赛者需要通过解决题目中的任务来获取旗标,并将其提交到平台上进行验证。在比赛结束后,将根据参赛者解决的题目数量、用时、积分等因素来计算最终排名,并颁发奖励给获胜者。 pure_color xctf 提供了逼真的仿真环境,使得参赛者能够在一个安全的网络环境下进行实时的攻防演练。平台上的题目多样化且具有挑战性,旨在让参赛者将所学的理论知识应用到实际场景中去,并培养解决问题和团队合作的能力。同时,pure_color xctf 还为参赛者提供了交流平台,方便他们在比赛过程中与其他参赛者交流经验、技巧以及解题思路。 总之,pure_color xctf 是一个提供CTF竞赛平台的在线环境,旨在鼓励参赛者在安全领域中深入学习和实践,并通过解决各种挑战赛题目来提升技能和知识水平。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值