XCTF 3rd-GCTF-2017 hackme

一.查壳的老生常谈了。。2分的题目就不多bb了。
二.。elf文件,拖入ida,直接查找字符串,找到对应的函数
XCTF 3rd-GCTF-2017 hackme_第1张图片
三.直接分析:
在这里插入图片描述

这里讲道理我当时很懵逼,因为进去这个函数后,发现伪码非常复杂,这里困了挺久了,看了wp才知道,这玩意
应该是一个随机数,在021中,同时代码还提到了22这个数字,猜测是flag对应的长度,所以应该是这里
然后才能猜测到的,然后这里又有个坑,循环只有10次,肯定是无法得到完整的flag的,所以在脚本中,要凑满22个。

四.
代码:

by=[0x5F, 0xF2, 0x5E, 0x8B, 0x4E, 0x0E, 0xA3, 0xAA, 0xC7, 0x93, 0x81, 0x3D, 0x5F, 0x74, 0xA3, 0x09, 0x91, 0x2B, 0x49, 0x28, 0x93, 0x67, 0x00]
flag=""
for i in range(22):
    v9=0
    v8=0
    v4=i+1
    v6=by[i]
    while v8<v4:
        v8+=1
        v9=v9*1828812941+12345

    flag+=chr((v9^v6)&0xff) //起到一个保险作用,这样就不会超过0xff
print(flag)

你可能感兴趣的:(XCTF)