parallel-comparator-200 school-ctf-winter-2015
https://github.com/ctfs/write-ups-2015/tree/master/school-ctf-winter-2015/reverse/parallel-comparator-200
linux平台,mark,以后解决。
给出了源代码,关键在于checking函数返回0
void * checking(void *arg) {
char *result = malloc(sizeof(char));
char *argument = (char *)arg;
*result = (argument[0]+argument[1]) ^ argument[2];
return result;
}
另一点是
while ((initialization_number = random()) >= 64);
int first_letter;
first_letter = (initialization_number % 26) + 97;
initialization_number 其实是个固定值,调试时可得到
wp:
differences = [0, 9, -9, -1, 13, -13, -4, -11, -9, -1, -7, 6, -13, 13, 3, 9, -13, -11, 6, -7]
first_letter = 108
print (''.join([chr(first_letter+differences[i]) for i in range(len(differences))]))
lucky_hacker_you_are
来源:oschina
链接:https://my.oschina.net/u/4278523/blog/3392932