문제
리버싱 문제로 유니티로 만든 게임 파일을 제공해주었고, 게임 내에서 비행기를 몰고 맵 끝까지 도달하면 플래그를 획득하는 방식
풀이
문제 파일은 요렇게 생겼고 유니티 리버싱에 필요한 Assembly-CSharp.dll 파일은 제공되지 않았음

피지컬에 자신이 있어서 맵 끝까지 가보려고 했지만, 일정 시간이 경과하면 유도 미사일이 비행기를 격추시켜 게임 파일 변조 없이 끝까지 가는건 불가능했다 ㅎ…ㅎ;;

유니티 리버싱은 처음이라 검색해보던 중 Il2CppDumper라는 툴을 이용하면 게임 오브젝트들을 제어하는데 이용되는 Assembly-CSharp.dll 파일을 추출가능하다는 정보를 얻었다.
툴을 설치하고 바이너리 파일을 지정해주면 Assembly-CSharp.dll 파일을 추출할 수 있었다.


ILSpy를 이용해 Assembly-CSharp.dll 파일을 열면 디컴파일된 코드를 볼 수 있으니 프리다를 이용해 게임 파일을 변조하면 끝!

충돌 데미지와 미사일 스폰을 False로 변경하는 코드를 작성해서 플래그를 획득했다.


CTF대회에서 처음 풀어본 리버싱 문제인데 게임 리버싱 문제라서 특히 더 재밌게 풀었던것 같다.
이제 리버싱 문제도 틈틈히 풀어봐야겠다 재밌네 ㅎㅎ