攻防世界Reverse解题(一)


介绍:记录解题过程

1.insanity(winhex打开,搜索字符串flag)

题目描述:菜鸡觉得前面的题目太难了,来个简单的缓一下
题目场景: 暂无
题目附件: 附件1

  • 下载附件1 得到一个无后缀文件
  • 用winhex打开,搜索字符串flag
    在这里插入图片描述
  • 得到flag
9447{This_is_a_flag}

2.python-trade(反编译pyc文件,逆向加密算法)

题目描述:菜鸡和菜猫进行了一场Py交易
题目场景: 暂无
题目附件: 附件1

  • 下载附件1 得到一个pyc文件
    pyc文件反编译
    Easy Python Decompiler反编译工具,pyc文件反编译得到:
# Embedded file name: 1.py
import base64


def encode(message):
    s = ''
    for i in message:
        x = ord(i) ^ 32
        x = x + 16
        s += chr(x)

    return base64.b64encode(s)


correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
flag = ''
print('Input flag:')
flag = input()
if encode(flag) == correct:
    print('correct')
else:
    print('wrong')
  • 逆向算法得到flag:
import base64

def uncode(message):
    s = base64.b64decode(message)
    b = ''
    for x in s:
        x = x - 16
        x = x ^ 32
        b += chr(x)
    return b

correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
print('flag:', uncode(correct))
flag: nctf{
   d3c0mpil1n9_PyC}

3.re1(开始学习逆向工程)

题目描述:菜鸡开始学习逆向工程,首先是最简单的题目
题目场景: 暂无
题目附件: 附件1

下载附件1 得到一个exe文件

方法一:直接搜flag

  • Notepad打开直接搜flag

在这里插入图片描述

DUTCTF{We1c0met0DUTCTF}

方法二:

F5反编译

int __cdecl main(int argc, const char **argv, const char **envp)
{
   
  int v3; // eax
  __m128i v5; // [esp+0h] [ebp-44h] BYREF
  __int64 v6; // [esp+10h] [ebp-34h]
  int v7; // [esp+18h] [ebp-2Ch]
  __int16 v8; // [esp+1Ch] [ebp-28h]
  char v9[32]; // [esp+20h] [ebp-24h] BYREF

  v5 = _mm_loadu_si128((const __m128i *)&xmmword_413E34);
  v7 = 0;
  v6 = 0x7D465443545544i64;
  v8 = 0;
  printf("欢迎来到DUTCTF呦\n");
  printf("这是一道很可爱很简单的逆向题呦\n");
  printf("输入flag吧:");
  scanf("%s", v9);
  v3 = strcmp(v5.m128i_i8, v9);
  if ( v3 )
    v3 = v3 < 0 ? -1 : 1;
  if ( v3 )
    printf(aFlag_0);
  else
    printf(aFlagGet);
  system("pause");
  return 0;
}

由逻辑可知:
用户输入v9与v5比较,同则输出flag,所以flag在v5,跟踪v5

在这里插入图片描述

  • 发现一串十六进制字符串,按R将其转化成字符串:
0tem0c1eW{FTCTUD
}FTCTUD
  • flag出现,但要注意在x86处理器中字符是按照小端序储存的,即低位字节存入低地址,高位字节存入高地址
  • 所以正确的flag应为
DUTCTF{We1c0met0DUTCTF}

4.game

题目描述:菜鸡最近迷上了玩游戏,但它总是赢不了,你可以帮他获胜吗
题目场景: 暂无
题目附件: 附件1

  • 下载附件1 得到一个exe文件,是一个小游戏
                     |------------/ --------△--------|
                     |------------/ --------○--------|
                     |------------/ --------◇--------|
                     |------------/ --------□--------|
|--------------------|------------/ --------☆--------|
|                    |------------/ --------▽--------|
|                    |------------/ -----( ̄▽ ̄
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值