프로그램을 실행해보면 다음과 같이 4가지 메뉴가 있고 각각 실행해보면 별다른 기능이 존재하지 않는다.

Ida로 해당부분을 보면 다음과같이 case문에 실행화면상에는 보여지지 않는 case 4에 대한 부분에 보인고 실제로 4번을 입력해보면 다음과 같이 hidden메뉴가 등장한다.

 

2번 메뉴를 눌러서 게임을 시작해보면 첫번째 단계에서 어떤 키값을 입력하라고하고 아무거나 입력해보면 2,3,4단계를 건너뛰고 바로 5단계로간다.

첫번째 키값을 계산하는 로직을 보면 간단하다. 4754947549라는 값과 내 입력값을 xor해서 MVYLXYUARJ라는 값이 나오면된다.

계산해보면 다음과 같은 값이 나온다.

해당값 넣어주고 쭉가다보면 안티디버깅함수가 나오는데 간단히 eax바꿔서 우회하면 된다.


다음으로 특정메모리 영역의 값을 C8, 59, 78이라는 값과 비교하는데 이 값에 맞게 해당 메모리영역을 세팅해주면 된다.

다음으로는 레지스트리 값에 대한 검증을 한다. RegOpenKeyEx 함수로 HKEY_CURRENT_USER 영역내에 Hellow라는 키 값이 있는지 검증하고 있다면 RegQueryValueEx란 함수로 해당 키 값내에 hellow_FishWorld란  문자열 값이 있는지 검증한다.

이에맞춰 레지스트리값을 세팅해주면된다.

다음으로는 위에서와 같이 다시한번 특정메모리영역에 대한 값을 검증한다. 0, 0C, 29로 맞춰주면 된다.

다음으로는 안티디버깅 함수를 통해 디버깅여부를 체크하는데 함수호출 후 결과가 저장되는 해당메모리 영역의 값을 0으로 바꿔주면된다.

마지막으로 다시 키값을 계산하는 로직이 나오는데 입력값과 3674231096이라는 값을 xor한 값이 [S[X]DWYJ^가 되면 되고 계산해보면 hellowfish란 값이 나오고 넣어주면 된다.


모든 과정이 끝나면 c라는 파일하나가 생성되는데 헥사에디터로보면 png파일 포맷인것을 알수있다

확장자를 png로 바꿔서 열어보면 다음과 같이 flag가 나온다.


'CTF > Writeup' 카테고리의 다른 글

Plaid CTF 2013 ropasaurusrex Write up  (0) 2018.01.28
Insomni'hack teaser 2018 VulnShop Write up  (0) 2018.01.23
Hack.lu CTF 2013: RoboAuth  (0) 2018.01.20
Sharif University CTF 2016 : SRM  (0) 2018.01.20
In CTF 2017 Challenge100 Write up  (0) 2018.01.20
블로그 이미지

JeonYoungSin

메모 기록용 공간

,