실행파일과 readme를 준다. password를 찾으란다. 실행시켜보니 실행은 되지않고 무슨 파일인지 보니 mac os-x arm 환경에서 만들어진 파일이다.
현재 ARM 환경을 구축해놓은 서버가 없어서 일단 아이다로 보았다.
correct key! 라는 문자열이 있으니 따라가 보았다.
ARM 어셈블리어로 보여지는데 문법을 모른다.
그러나 IDA로 디어셈블링이 되기때문에 문제푸는데 문제는 없어보인다.
처음에 입력을 받고 sub_232c ()함수를 호출한 뒤 입력한값을 어떠한 배열과 비교한다.
당연히 sub_232c() 함수에서 입력한 문자열이 바뀔거라 생각하고 sub_232c() 함수를 분석했다.
sub_232c() 함수를 통해 연산이 끝나고 아래의 배열로 내가 입력한 문자열이 바뀌어야 한다.
반복문을 통해 각종 연산을 한다.
뭐 분석할 필요도 없이 코드도 짧고 연산도 간단해 brute forcing을 하면 될거라 생각했다.
입력값의 범위는 키보드로 입력할수 있는 아스키값들이다.
이 값들중 연산을 거쳐 위의 비교하는 배열과 맞으면 된다.
간단한 코딩을 통해 내가 입력해야 할 값이 나왔다. 비록 원본파일을 실행은 시키지 못하지만 인증하니 성공했다.
문제 이름부터 알수 있듯이 이 문제는 ARM 아키텍처를 이해하고 있는가에 대한 문제이다.
Intel 과 AT&T syntax에만 익숙해 있던 나에게는 공부없이 못풀 문제였지만 고급툴 IDA 통해 쉽게 풀었다.
안드로이드도 ARM 으로 구성되있기 때문에 시간될때 ARM 아키텍처에 대해 공부해야겠다는 필요성을 느꼈다.
'문제 > Reversing.kr' 카테고리의 다른 글
Reversing.kr Ransomware (0) | 2017.01.21 |
---|---|
Reversing.kr x64 Lotto (0) | 2016.10.06 |
Reversing.kr Music Player (0) | 2016.10.04 |
Reversing.kr Position (0) | 2016.09.30 |
Reversing.kr Direct3D FPS (0) | 2016.09.01 |