logmein

用IDA载入,找到main函数,按F5查看伪代码

其中sub_4007C0为

sub_4007F0为

经分析可知,flag为经过处理的v7和v8异或所得。v8已经给出,重点在v7的处理上。因为是新手第一次遇到这种情况,在网上查找资料后,得知v7是long long int型,处理方式是等价于将v7转换成十六进制再转换成字符串。注意,处理顺序是从低地址到高地址。
最后,贴出脚本

a = 'harambe'
b = ':"AL_RT^L*.?+6/46'
flag = ''
for i in range(len(b)):
    temp = ord(a[i % 7]) ^ ord(b[i])
    flag += chr(temp)
print(flag)

原文地址:https://www.cnblogs.com/pluie/p/12829081.html