Basic 18번 문제입니다.

파일형식을 먼저 보니 딱히 잡아낼건 없는것 같습니다.

디버거를 통해 열어보았습니다.

성공했단즌 Your serial is correct! 라는 문구가 있는 곳으로 이동해보겠습니다.

흠 이번엔 다른문제와 다르게 CMP 명령어가 직접적으로 적혀있진 않았습니다. 하지만 CALL명령어에 보면 IstrcmpiA함수를 불러내는것이 보였습니다 CMP가 비교 명령어니 여기에 뭔가 잇을것같아 BP를 걸어보았습니다.

BP를걸고 실행시켜보았습니다.

NAME는 codeengn이라 문제에 언급하였고 serial은 임의로 넣어보겠습니다.

check를 누르면 함수부분에 제가 입력한값 하나와 다른값 하나가 적힙니다.

저 위에 적힌 값을 한번 똑같이 적어보겠습니다.

저렇게 적어주고 다시한번 check를 눌러보겠습니다.

이렇게 나오며 이제 넘어보면 JE점프문을 통과해서 

성공했다는 메세지가 나오게됩니다!


'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn Basic 20  (0) 2015.08.09
CodeEngn Basic 19  (0) 2015.08.08
CodeEngn Basic 17  (0) 2015.08.05
CodeEngn Basic 16  (0) 2015.08.05
CodeEngn Basic 15  (0) 2015.07.27

1. 해커스쿨 사이트에서 vmware red hat 9.0을 다운받아줍니다.

http://www.hackerschool.org/Sub_Html/HS_Service/VmwareLinux/index.html

2.ftz.iso 이미지 파일을 다운로드 받아야합니다.

(구글링 부탁드립니다 ㅠㅠ)


3.레드햇 9.0을 우선 vmware에서 실행시켜주고cd-rom에 ftz.iso파일을 마운트 해줍니다.


4.그 후 정상적으로 실행되면 ifconfig명령어를 통해 inet________ ip주소를 확인해줍니다.

(id=root , pw = hackerschool)입니다.

5.putty라는 프로그램을 설치하여 Session 메뉴에 아이피 주소를 입력해주고 connection type은 ssh로 체크해줍니다. 그리고 오픈을 눌러주시면 ftz로컬환경이 만들어지게 됩니다.


리버싱을 하기위해 필요한 아주 기본적인 프로그램입니다.

ollydbg download : www.ollydbg.de



Basic 17번 문제입니다.

파일을 열어 네임과 키에 적절한 값을 입력해봅니다.

더많은 문자를 입력하라... 문제에서는 한글자만 입력하면 된다했는데 뭔가 문제가 생긴 모양입니다.

문제의 그 문구로 가보겠습니다.

여기를 보면 CMP명령어에 3글자 가 되어야 하게끔 되어있었습니다. 손봐주면 될것같습니다.

한글자로 바꿨습니다.

이제 성공을 말해줄 문구가 필요합니다.딱히 뭔가가 잘 보이지않아서

파일을 새로 덤프하고

실행시켜보았습니다. 그래서 한글자니까 하나하나 대입을 하니 성공하게되었습니다.

너무 노가다로 푼 점이 조금 아쉬운 문제였습니다. 시간이나면 다시한번 풀어봐야할 문제였던것같습니다.


'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn Basic 19  (0) 2015.08.08
CodeEngn Basic 18  (0) 2015.08.08
CodeEngn Basic 16  (0) 2015.08.05
CodeEngn Basic 15  (0) 2015.07.27
CodeEngn Basic 14  (0) 2015.07.27


Basic 16번의 문제입니다.

파일을 열어보니 위와 같은 창이 나왔습니다.

파일의 정보를 보니 패킹되어있진 않은것 같고 C++로 코딩되어있는것같습니다.


디버거를 통해 열어보았습니다.

우선 성공했다는 Good job!이 있는 문자열로 이동해 보겠습니다.

이부분에 보면 CMP를 통해 비교를 한 후 성공한지 실패한지 점프문을 통해 이동시켜버리는 부분이 있습니다.

점프문은 아주 아주 멀리로 가버리는군요 Good job!과는 거리가 멉니다.

여기에 bp를 걸고 실행시켜보겠습니다.

파일을 실행시킨것과 같은 창이 나오는데 이름은 codeengn이고 패스워드는 아무거나 임의로 입력해줍니다.

그러면 비교를 하는데 eax값은 우리가 입력한 값이니 다른값이 정답이 되겠습니다.

10진수로 변환해서 입력하면

Good Job!

'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn Basic 18  (0) 2015.08.08
CodeEngn Basic 17  (0) 2015.08.05
CodeEngn Basic 15  (0) 2015.07.27
CodeEngn Basic 14  (0) 2015.07.27
CodeEngn Basic 13  (0) 2015.07.26


Basic 15번 문제입니다.

우선 파일을 실행시켰을때의 모습입니다. 임의로 넣어봤더니 Try Again!이라는 메세지가 나왔습니다.

패킹되어있진 않은것 같습니다.

디버거를 통해 열어보겠습니다.

텍스트를 보니 성공했다는 메세지가 보입니다. 여기로 가보겠습니다.

성공했다는 메세지와 실패했다는 메세지 위에보면 CMP(비교)하는 명령어가 있습니다. 계속해서 비슷한 문제군요 BP를걸어 F9실행을 시킵니다.

그러면 이렇게 파일을 실행할때와 똑같이 나오는데 다시한번 임의로 입력을하고 Check it!을 해보겠습니다.

그러면 아래와같이 16진수의 숫자가 나옵니다.

이것을 변환하면 시리얼 키가 되겠습니다.


'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn Basic 17  (0) 2015.08.05
CodeEngn Basic 16  (0) 2015.08.05
CodeEngn Basic 14  (0) 2015.07.27
CodeEngn Basic 13  (0) 2015.07.26
CodeEngn Basic 12  (0) 2015.07.26


Basic 14번 문제입니다.

패킹되어있는 파일입니다. 디버거로 열어보니

POPAD를 찾아 점프문으로 점프해보겠습니다.

본래 코드가 나왔습니다.

텍스트를 검색해보면 성공했다는 문구가 나옵니다 그곳으로 이동해보겠습니다.

성공했다는 문구와 실패했다는 문구 위에보면 CMP(비교)를 하여 성공한지 실패한지 보여주고있습니다. 여기에 BP를걸어보겠습니다.

그리고 F9해보면 파일을 실행했을때의 상황이 됩니다. 

여기에 위와같이 입력합니다.

그리고 체크하면 다음과같은 상황이 벌어지는데 CMP로 EAX와 ESI를 비교한다 하였으니 EAX를 10진수로 바꿔보면 12345가 됩니다. 그렇다면 ESI를 10진수로 바꾸면 시리얼 넘버가 되겠습니다.


'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn Basic 16  (0) 2015.08.05
CodeEngn Basic 15  (0) 2015.07.27
CodeEngn Basic 13  (0) 2015.07.26
CodeEngn Basic 12  (0) 2015.07.26
CodeEngn Basic 11  (0) 2015.07.20


COC발표 자료[김호준].pptx

리버싱을 하고 얼마 안된 시기에 발표를 하였기때문에 미숙한 발표가 되었던것 같습니다 ㅠㅠ

+ Recent posts