문제 파일이 .swf 이다. 찾아보니 Flash Player에서 열 수 있단다. 열어보니 이렇게 회색 버튼만 뜬다. 버튼을 눌러도 별 이벤트가 뜨지 않는다. 세부 함수나 코드들을 보고 싶어서 구글링을 했더니 디컴파일러가 있는 것을 확인했다. 갑자기 막 화면이 이리저리 바뀌어서 놀랐다. 버튼에 대한 함수 이벤트를 확인해보는게 좋을 것 같다. 스크립트 폴더를 다 뒤져봤는데 뭔가 깨진 것 같은 느낌을 받았다. 그 중에서 온전한 형체를 유지하고 있는 함수를 발견했다. gotoAndPlay(3); 코드를 보니 어떠한 값이랑 1456이 같을 때 함수가 호출된다. 더 있을까? 싶어서 함수명을 검색했다. 아까 플래시 플레이어에서 열었던 버튼이 생각났다. 이 값들을 입력해보면 뭔가 나올 것 같다. 1456을 입력하니 ..
ida로 바로 열었다. 처음부터 바로 내리고 있는데 의심스러운 Congratulation~을 발견했다. 한 번 실행 시켜보자 위에서 확인한 문구가 출력된다. 비밀번호는 ???????이다. 의심가는 함수 호출과 xor 부분에 Bp를 걸며 실행 시켜보았다. 00409200 위치에서 pushad를 한다. 여기서 암호화든 복호화든 연산이 수행되는 것 같다. 위에서 확인한 문구가 출력된다. 비밀번호는 ???????이다. 어셈블리어 코드를 분석하다보니 위 00001000주소부터 어떠한 데이터 값이 저장되는데 여기 부분이 암/복호화 되는 것 같다. 근데 시간 내에 다 하지 못했다.
찾아보니 맥 os 에서 동작하는 바이너리 파일이었다. https://en.wikipedia.org/wiki/Mach-O 마침 맥을 쓰고 있어서 실행해보려 했는데 확장자를 아무리 바꾸고 터미널에서 실행하려 시도했으나 실행되지 않았다. pe 구조를 보니 ios 인 것을 알 수 있었다. 마침 또 아이폰이라.. 실행해볼까 하다가 혹시나하는 위험에 하지 않고 정적 분석을 하기로 했다. 맥 아이다로는 왜 또 안 열리는지 아휴 윈도우 가상머신을 사용했다. correct 부분을 바로 찾았다. 어떻게 동작되는지 코드를 봐야 할 것 같아서 윈도우로 온 김에 처음으로 디컴파일 기능을 사용해봤다. 텍스트 모드로 봤을 때 계속 호출되었던 2224 함수이다. 232C 함수를 호출하고 입력한 키 값의 길이만큼 반복하여 byte_3..
문제가 주어졌다. 3개의 파일이 있다. 먼저 run.exe 파일 패킹 정보를 확인했다. upx로 패킹되어 있는 것을 알 수 있다. run.exe 파일을 언패킹 했다. 왼 : 언 패킹 전 오 : 언패킹 후 미묘한 차이가 있다. 그냥 file이 있길래 먼저 에디터로 열어봤다. 왠지 암호화가 되어있는 것 같다. 전에 풀었던 문제가 이런 비슷한 문제가 있었는데, 정상 파일 시그니처에 리소스를 바꾸는 게 생각났다. exe 파일을 복호화 하라고 했으니 exe 파일인 것 같다. 파일을 exe로 바꾸고 pe 정보를 봤는데 나오지 않았다. 아무래도 시그니처가 암호화 되어있어서 그런 듯 복호화를 해보자 upx 로 run.exe가 패킹되어있었으니 얘도 upx일까 싶다. 우선 세부 함수를 보자. 문자열은 이렇게 필터링 되어있..
바로 아이다로 들어왔다. 메인 함수를 찾았다. 8048434와 8048451을 호출하고, eax값과 1을 비교한다. eax 값과 1을 비교하고 1이 아니라면 804855B를 호출한다. 그럼 만약 eax값이 1이라면 80484F7을 호출한다. 메인함수에서 호출되는 함수인 8048451 내부로 들어왔더니 이렇게 값을 xor한 후 비교하고 있는 것을 볼 수 있다. 첫번째 34 ^ 78 두번째 31 세번째 7c ^ 32 네번째 dd ^ ffffff88 다섯번째 58 ^ 0 1 : x4c 2: x31 3 : x4e 4 : x55 5 : x58 이를 아스키코드로 바꾸면 L1NUX이다. 답일까? 답이다.