CodeEngn Write Up/Basic 20

CodeEngn Basic RCE L10 Write Up

문제:OEP를 구한 후 '등록성공' 으로 가는 분기점의 OPCODE를 구하시오. 정답인증은 OEP + OPCODE EX) 00400000EB03 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 먼저 문제 파일을 실행시켜보겠습니다. 이런 창이 뜨는데 아무것도 입력할 수 없습니다. 이제 PEiD로 열어보겠습니다. ASPack이라는 새로운 패커로 패킹되어있는 것을 확인할 수 있습니다. 패킹에 대한 내용은 여기를 참고해주세요. https://brainfreeee.tistory.com/..

CodeEngn Basic RCE L09 Write Up

문제:StolenByte를 구하시오 Ex) 75156A0068352040 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 일단 문제를 실행시켜보겠습니다. 확인을 눌러보겠습니다. 역시나 에러 창이 뜹니다. 이제 PEiD로 열어보겠습니다. UPX로 패킹된 것을 확인할 수 있습니다. 언패킹 도구로 언패킹 해주겠습니다. 이제 Ollydbg로 열어주겠습니다. 그리고 F9를 이용해서 실행시켜보겠습니다. 그랬더니 이런 알 수 없는 창이 뜹니다. 어째서? 이런 일이 일어나는 것일까요? 그 이..

CodeEngn Basic RCE L08 Write Up

문제:OEP를 구하시오 Ex) 00400000 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 일단 문제를 실행시켜보겠습니다. 평범한 계산기 프로그램으로 보입니다. 더 많은 정보를 얻기 위해 PEiD로 열어보겠습니다. UPX로 패킹된 것을 알 수 있습니다. 패킹에 대한 내용은 여기를 참고해주세요. https://brainfreeee.tistory.com/33 패킹(Packing)에 대하여 패킹(Packing)이란? 패킹(Packing)은 실행압축이라는 뜻을 가지고 있습니다. 실..

CodeEngn Basic RCE L07 Write Up

문제:컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 'ß어떤것'으로 변경되는가 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 일단 문제를 실행시켜보겠습니다. 시리얼을 입력하는 칸이 있는데 아무 문자열이나 넣고 Check 버튼을 눌러보겠습니다. 그랬더니 당연하게도 Error!창이 뜹니다. Ollydbg로 열기 전에 PEiD로 열어보겠습니다. 패킹은 되어있지 않고 MASM32와 TASM32라는 어셈블러로 만들어진 프로그램임을 확인할 수 있..

CodeEngn Basic RCE L06 Write Up

문제:Unpack을 한 후 Serial을 찾으시오. 정답인증은 OEP + Serial Ex) 00400000PASSWORD https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 일단 이 프로그램을 실행시켜보겠습니다. 간단하게 시리얼을 입력하는 창이 뜹니다. 여기에 아무 문자열이나 넣고 Check Serial버튼을 누르면... 당연하게도 ERROR가 출력됩니다. 이제 Ollydbg로 열기 전에 PEiD로 열어보도록 하겠습니다. UPX로 패킹되어있는 것을 확인할 수 있습니다. 패킹에 대..

CodeEngn Basic RCE L05 Write Up

문제:이 프로그램의 등록키는 무엇인가 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 문제를 Ollydbg로 열기 전에 실행시켜보겠습니다. 이름과 시리얼을 입력하는 칸이 있습니다. 아무 문자열이나 넣고 "Register now !"버튼을 눌러보겠습니다. 역시나 실패메시지가 출력됩니다. 이제 Ollydbg로 열어보겠습니다. Ollydbg로 열어보니까 이런 메시지가 뜹니다. 간단히 해석해보자면 코드가 압축 또는 암호화되어 결과가 정확하지 않을 수 있다는 뜻입니다. 이런 창이 뜬 이..

CodeEngn Basic RCE L04 Write Up

문제:이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 일단 Ollydbg로 문제를 열어보기 전에 실행시켜보겠습니다. 약 1초에 한 번씩 정상을 출력합니다. 이제 Ollydbg로 이 문제를 열어보겠습니다. F9로 실행시켜보니 정상이 아니라 디버깅 당함이 출력됩니다. 저는 여기서 CodeEngn Basic RCE L01문제가 떠올랐습니다. 그 문제는 GetDriveTypeA라는 함..

CodeEngn Basic RCE L03 Write Up

문제:비주얼베이직에서 스트링 비교함수 이름은? https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 사실 이 문제는 검색으로도 답을 충분히 찾아낼 수 있지만 Ollydbg를 이용한 분석으로 답을 구해보겠습니다. 일단 Ollydbg로 분석하기 전에 프로그램을 실행시켜줍니다. 실행해보면 이렇게 오류가 발생합니다. MSVBVM50.DLL을 다운로드하고 진행하겠습니다. 드디어 실행을 시키면 이런 창이 뜹니다. 확인을 눌러보겠습니다. 패스워드를 입력하는 창이 뜹니다. 아무 문자열이나 넣어보겠..

CodeEngn Basic RCE L02 Write Up

문제:패스워드로 인증하는 실행파일이 손상되어 실행이 안되는 문제가 생겼다. 패스워드가 무엇인지 분석하시오 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 파일이 손상되었다고 합니다. 일단 문제를 실행시켜보겠습니다. 이런 창이 뜨면서 실행이 안 되는 모습입니다. Ollydbg로 열어보겠습니다. Ollydbg로 프로그램을 열려고 하면 에러창이 뜨면서 실행이 안 됩니다. 이 문제는 파일이 손상되어서 실행이 안 되기 때문에 Ollydbg를 이용한 동적 분석을 할 수 없습니다. 그래서 ..

CodeEngn Basic RCE L01 Write Up

문제:HDD를 CD-Rom으로 인식시키기 위해서는 GetDriveTypeA의 리턴값이 무엇이 되어야 하는가 https://ch.codeengn.com/ CodeEngn.com [코드엔진] 코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다. ch.codeengn.com 문제를 다운로드하고 압축을 풀어주었습니다. 파일의 압축을 풀 때 암호는 codeengn입니다. 이제 실행시키면 이런 창이 뜹니다. 확인을 눌러주면 이런 창이 뜹니다. 이제 어느정도 이 문제에 대한 정보를 얻었으니 Ollydbg로 이 문제를 열어보겠습니다. 첫 번째로 MessageBoxA함수를 호출하는데 함수의 이름을 통해서 ..