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