BUUCTF reverse 看心情写

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

[NewStarCTF 2023 公开赛道]SMC

应该是自修改代码。首先点在被修改的代码开头位置,输入以下代码去除加密。然后按C-P定义为函数。

key = [17, 34, 51, 68, 0, 0, 0, 0]
begin = here()
for i in range(39):
    addr = begin + i
    code = ida_bytes.get_byte(addr)
    # 使用取模运算确保索引不越界
    code = code ^ key[(i % len(key))&3]
    # 将整数转换为字节对象
    ida_bytes.patch_bytes(addr, bytes([code]))

可以看到实现了一个很简单的 加密

a=[
  124, 130, 117, 123, 111,  71,  97,  87,  83,  37, 
   71,  83,  37, 132, 106,  39, 104,  39, 103, 106, 
  125, 132, 123,  53,  53,  72,  37, 123, 126, 106, 
   51, 113]
flag=''
for i in  a:
    flag+=chr((i-5)^0x11)
print(flag)

[NewStarCTF 2023 公开赛道]EzPE

PE头损坏了。

exe文件修复:

1.前四行找个标准的,拿来复制

2.前四行最后四字节,指向入口的偏移。入口是PE字符串,后四节应该是文件头到入口的偏移量。

进入后它的加密还是比较简单,推演一下过程得到结果。

a=[10,  12,   4,  31,  38, 108,  67,  45,  60,  12, 
   84,  76,  36,  37,  17,   6,   5,  58, 124,  81, 
   56,  26,   3,  13,   1,  54,  31,  18,  38,   4, 
  104,  93,  63,  45,  55,  42, 125]
flag=''
for i in range(len(a)-2,-1,-1):
    a[i] = a[i+1]^i^a[i]
    flag+=chr(a[i])
print(flag[::-1])

[NewStarCTF 公开赛赛道]EzTea 

实际上是Tea加密的一个变种。根据WP:
NewStarCTF 公开赛 2022 RE WP - Only-xiaoxiao - 博客园

写的。 

[DASCTF NOV X联合出题人2022年度积分榜争夺赛!]babytea

第一个参数经过动调发现是32.

和上面的EzTea一样的思路。

看汇编代码  还有异常处理,见下面。
DASCTF-NOVX联合出题人2022年度积分榜争夺赛

自买自夸一下:后面更新到这里了
一道EzTea,很有价值的题目 | wlmt666的博客

 

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值