본문 바로가기

Write Up

HackIM 2016 Reversing - ZorroPub


100점짜리 맨 먼저 푼 문제입니다. 64비트 바이너리고, IDA로 뜯어서 보면 

처음에 루프를 돌 카운트를 입력하고 루프를 돌면서 다시 값을 입력하는데 그 값들은 모두 seed와 xor하는데 쓰입니다. 그리고 그 seed는 

srand로 rand값에 쓰이게 됩니다. 그리고 rand로 나온 값들의 md5해시를 구하여 비교하고, 맞다면 flag를 출력해줍니다. 따라서 파이썬으로 브루트포싱을 돌려주면 md5에 맞는 seed를 구할 수 있습니다. 

위 소스를 파이썬으로 돌려주면 플래그를 얻을 수 있습니다.



Key : nullcon{nu11c0n_s4yz_x0r1n6_1s_4m4z1ng}