杭电ctf第一周

ezASM

将文件下载之后直接打开然后得到汇编代码直接观察可得是简单异或

 得到上述分析之后写出代码

#include<stdio.h>
#include<string.h>

int main()
{
    char enc[34] =
  {
  74, 69, 67, 79, 71, 89, 99, 113, 111, 125, 107, 81, 125, 107, 79, 82, 18, 80, 
  86, 22, 76, 86, 125, 22, 125, 112, 71, 84, 17, 80, 81, 17, 95, 34
  };
    

    for(int i = 0; i < strlen(enc); i++)
    {
        enc[i] = enc[i]^0x22;
        printf("%c", enc[i]);	
    }

    return 0;
}

hgame{ASM_Is_Imp0rt4nt_4_Rev3rs3}

ezUPX

打开下载文件之后拖入exe,发现有壳,然后是64字节,进行脱壳

下图是脱壳完成后的,拖入ida64

 拖ida64之后进行分析,发现直接异或0x32即可得到flag

 点进入ida进行分析,然后提取数据先*在用shift+e

#include<stdio.h>
#include<string.h>

int main()
{
    char enc[38] =
  {
  100, 123, 118, 115,  96,  73, 101,  93,  69,  19, 
  107,   2,  71, 109,  89,  92,   2,  69, 109,   6, 
  109,  94,   3,  70,  70,  94,   1, 109,   2,  84, 
  109, 103,  98, 106,  19,  79,  50
  };
    

    for(int i = 0; i < strlen(enc); i++)
    {
        enc[i] = enc[i]^0x32;
        printf("%c", enc[i]);	
    }

    return 0;
}

VIDAR{Wow!Y0u_kn0w_4_l1ttl3_0f_UPX!}

 ezIDA

拖入exe发现是64字节然后拖入ida64

可直接得到flag 

 hgame{W3lc0me_T0_Th3_World_of_Rev3rse!}

ezPYC

这是一道python的反汇编题先下载文件发现是.exe

首先,我们先将pyinstxtractor.py工具与我们要反编译的.exe文件放入同一个工作目录下

然后在上面输入cmd 打开终端,输入python pyinstxtractor.py 文件名.exe,回车运行

然后发现下面多了一个文件夹,之后找到了 同名的pyc文件

将pyc文件和pycdc这些放在一个文件夹里然后将pyc文件反汇编为py

同上在上面输入cmd进入终端然后输入pycdc.exe+文件名.pyc,得到python代码

 

分析代码写出c语言代码得到flag 

#include<stdio.h>
#include<string.h>

int main()
{
    char enc[38] = { 
	87,75, 71,69,  83,  121,  83,  125, 117,106,
    108,106,94,  80,  48, 114,  100,  112,  112,  55,
    94, 51,112,  91,  48,  108,119, 97, 115,
    49,112,  112,48,108,100,37,124,2};
    char c[5]={1,2,3,4};
    for(int i = 0; i < strlen(enc); i++)
    {
        enc[i] = enc[i] ^(i%4+1);
        printf("%c", enc[i]);	
    }

    return 0;
}

 VIDAR{Python_R3vers3_1s_1nter3st1ng!}

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值