170913 逆向-问鼎杯题库(找flag)

本文记录了一次参加问鼎杯比赛时的逆向分析过程。作者通过IDA反编译程序,发现并解析了对flag的处理函数,涉及字符串异或操作。在遇到按钮不可用的问题时,通过研究内存属性和使用Spy++工具,成功使按钮变为可用,最终获取正确flag。明日计划将继续研究逆向相关问题。
摘要由CSDN通过智能技术生成

1625-5 王子昂 总结《2017年9月13日》 【连续第346天总结】
A. 问鼎杯题库-逆向
B.

找flag

运行后是一个单纯的文本输入框和灰色的GetFlag按钮
拖入IDA反编译,没有main函数,只有start函数
start里没看到什么可以继续往下的内容,直接搜索字符串:
这里写图片描述
一眼看到flag,兴奋地提交
错误OTZ
那看来程序中还有对flag的处理,双击追到内存然后按x查看交叉引用
这里写图片描述

有两处调用,依次查看,发现这个有趣的函数

int sub_401000()
{
  char *v0; // eax@1
  CHAR Text; // [sp+0h] [bp-38h]@1
  char Dst; // [sp+1h] [bp-37h]@1
  char v4; // [sp+Fh] [bp-29h]@1

  Text = 0;
  memset(&Dst, 0, 0x30u);
  strncpy_s(&Text, 0x31u, "flag:{NSCTF_md57e0cad17016b0>?45?f7c>0>4a>1c3a0}", 0x30u);//将flag字符串copy到了Text中
  v0 = &v4;
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值