[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的博客

2097

被折叠的 条评论
为什么被折叠?



