[문제풀이] reversing.kr - Adventure Wargames/reversing.kr2017. 7. 7. 12:51
이 문제는 이전에 MetroApp 문제의 업그레이드 버전이라고 보면 될 것 같다.
게임으로 동작되는 터라 낯선 부동소수점 연산을 눈에 익히는 과정과 객체를 분석하는 과정에 애를 먹었다.
낯선 어셈블리 명령어를 보니 문제가 더욱 더 어려워보였다.
하지만 막상 문제를 풀었을 때는 핵심을 놓치고 주변 것들에 너무 신경을 쓰고 있었구나 라는 느낌을 받았다.
그럼 문제풀이를 시작해보겠다.
우선 ReadMe.txt 파일을 먼저 열어보았다.
해당 파일을 보았을 때 두개의 플래그가 존재하고 이를 결합한 뒤 md5 해시 함수를 적용하면 되겠구나 싶었다. 물론 정답은 소문자로 입력하고..!!
이후 애플리케이션을 동작시켜 보았다.
짠 ~ 저 네모난 주인공이 빨간 악마를 총으로 쏴 죽이는 게임이다.
이를 보았을 때 뭐를 어떻게 해야 답을 맞출까 고민을 했다. 게임 난이도는 엄청나게 어렵다.
활성화되어 있는 악마만 죽일 수 있고 속도도 다양하고 움직이는 방향도 다르다.
쩜쩜쩜.. 마음을 가다듬고 문제를 분석했다.
저기에 보이는 빨간 박스에 존재하는 게 첫번째 조건이다. 0xDDB 수만큼 악마를 죽이면 된다. 그래도 이건 양호하다.
두번째 조건은 0x31159cd 마리를 잡아야 한다. - - ;
순간 별의별 생각을 다했다. 악마를 일렬로 내려오게 할까? 모든 악마를 활성화 시켜볼까? 등등..
결국 걍 알아서 죽이게끔 만들어서 동작시켰다.
흠흠.. 게임할 땐 엄청 빨리 내려오던 악마들이 너무 천천히 내려왔다. 물론 속도는 동일하겠지만 스코어가 올라가는걸 보고 있자니 가슴이 답답했다. 약 1시간? 가량 돌리다보니 첫번째 플래그를 얻을 수 있었다.
1초에 한마리씩이라고 가정했을 때의 속도랑 거의 유사했다.
이후 고민을 했다.
0x31159cd 마리는 약 51468749 초가 걸리고... 이는 857812분이 걸리고.. 이는 14296시간이 걸리고.. 이는 595일이 걸린다. 이 문제를 풀기 위해 약 2년이 안되는 시간을 컴퓨터만 켜놓고 요놈만 바라보고 있을 것인지.. 다른 해결책을 찾을 것인지..!!
결국 다른 해결책을 찾았다. !
걍 정답 로직을 구현해서 돌려버렸당. 그러니 뭐 금방 답이 나왔따 ! 냠냠
이제 CRC 문제들만 남았넹.. 아직 머릿속에 그림이 안그려지는디 어떻게 접근해야 할랑가~
'Wargames > reversing.kr' 카테고리의 다른 글
[문제풀이] reversing.kr - WindowsKernel (0) | 2017.07.24 |
---|---|
[문제풀이] reversing.kr - CRC1 (2) | 2017.07.07 |
[문제풀이] reversing.kr - CustomShell (0) | 2017.07.07 |
[문제풀이] reversing.kr - MetroApp (0) | 2017.07.07 |
[문제풀이] reversing.kr - Flash Encrypt (0) | 2017.07.07 |