MoeCTF2023 junk_code
考察花指令的移除
方法:
找到花指令 u ctrl+N 回到函数开始处 按p就可以F5反编译了
以这道题为例:
IDA打开
点开sub_45A9A0:
查看loc_4605D0
在00460612处 按U 然后ctrl+N
变成90(nop)
然后回到loc_4605D0按P
F5反编译
就可以看到正常的函数了
sub_459EBF同理
我们知道flag长度为36
这两个函数就是分别对前18位和后18位进行变换check
分别对应逆即可
exp:
aH = [0x68, 0x6A, 0x60, 0x5E, 0x6F, 0x61, 0x76, 0x74, 0x2B, 0x70, 0x5A, 0x6D, 0x60, 0x68, 0x2B, 0x71, 0x2E, 0x5F]
Str1 = [0x39, 0x12, 0x0E, 0x55, 0x39, 0x0C, 0x13, 0x08, 0x0D, 0x39, 0x05, 0x56, 0x02, 0x55, 0x47, 0x47, 0x47, 0x1B]
Str2 = []
v7 = []
for c in aH:
v7.append(c+5)
for c in v7:
print(chr(c),end='')
for c in Str1:
Str2.append(c^0x66)
for c in Str2:
print(chr(c),end='')