upx1

这题被加上了upx壳

那就先丢进去脱个壳

发现脱壳失败

用010查看upx壳是否被修改

upx文件头部位置被修改了,尾部也有,对照修回来就行

对于upx的文件结构应该有一些了解,这里是修改了magic头部,改成了UPX?,它本应该是结构体的一部分。应该改回UPX!,

物联网恶意软件中的UPX反拆包技术 - CUJO AI

解包成功之后

进入start函数

这个估计还是静态编译的,没有函数名

重新命名一下

这个看起来就是upx0的plus版

上一题的脚本偷过来用ww

1
2
3
4
5
6
7
8
9
10
11
12
13
data2=[0x00008D68, 0x00009D49, 0x00002A12, 0x0000AB1A, 0x0000CBDC, 0x0000B92B, 0x00002E32, 0x00009F59, 0x0000DDCD, 0x00009D49, 0x0000A90A, 0x00000E70, 0x0000F5CF, 0x00005ED5, 0x00003C03, 0x00007C87, 0x00002672, 0x0000AB1A, 0x00000A50, 0x00005AF5, 0x0000FF9F, 0x00009F59, 0x0000BD0B, 0x000058E5, 0x00003823, 0x0000BF1B, 0x000078A7, 0x0000AB1A, 0x000048C4, 0x0000A90A, 0x00002C22, 0x00009F59, 0x00005CC5, 0x00005ED5, 0x000078A7, 0x00002672, 0x00005695]
flag=''
for a in range(32):
for x in range(32,127):
b=x<<8
for j in range(8):
if b&0x8000 !=0:
b=(2*b)^0x1021
else:
b=2*b
if b&0xffff==data2[a]&0xffff:
flag+=chr(x)
print(flag)