[picoCTF] No way out

Monitor In Secure☃️·2024년 3월 14일

wargame_rev

목록 보기
2/11

워게임에 실제 게임이 나왔다..!

한번 게임을 진행해보았지만, 위 사진 위치까지 가보면 어느 키나 도구를 이용해도 깃발에 가까이 갈 수가 없다.
이를 통해 관련 조건을 해제하거나 변경하는 방향으로 문제를 해결해봐야한다고 유추할 수 있다.

주어진 파일에는 굉장히 많은 자료들이 들어가있어서 제목명으로 한번 유추해보았다.

위 캡처본에 있는 자료 목록 중 'Assembly-CSharp.dll' 이라는 파일을 확인했다..! 리버싱 관련 문제이기 때문에 이 자료가 의심스럽다고 판단하여 한번 살펴보려고 한다. 대표적인 리버싱 프로그램인 'ida' 프로그램으로 살펴봤는데 딱히 건질만한 것은 보이지 않았다.

이런 류의 리버싱 문제를 처음이라 구글링해봤는데, 'dnSpy' 프로그램을 이용해서 코드를 변경하면 된다고 한다.

[일부 코드]

if (Input.GetButton("Jump") && this.canMove && this.characterController.isGrounded && !this.isClimbing)
{
this.moveDirection.y = this.jumpSpeed;
}
else
{
this.moveDirection.y = y;
}

위 코드는 점프하는 것에 대해 적혀진 코드이다.
점프 규칙) 점프를 하게 되면 움직일 수 있고(this.canMove) , 땅에 있어야하며(this.characterController.isGrounded) 올라가지 못하게 된다(!this.isClimbing).

때문에 깃발에까지 접근해야 플래그를 얻을 수 있기 때문에 점프를 하기 위해 땅에 머무르는 조건을 제거하여 공중으로 뛰어올라 플래그를 얻도록 한다.

[Reference]
https://medium.com/@niceselol/picoctf-no-way-out-acb05df92b22

0개의 댓글