리버싱

    [CodEngn]Basic RCE_Level 02 문제풀이

    [CodEngn]Basic RCE_Level 02 문제풀이

    Level 01에 이어 Level 02문제를 풀어 보겠습니다. 패스워드를 찾으라는 문제인 것 같다. 파일을 실행해 보면 다음과 같은 메시지창이 뜬다. 해당 파일이 16bit 환경이라는 것 같다. 그리고 CS:0591 같은 문자들이 보기이도 한다. '닫기'를 누르면 프로그램이 종료되고, '무시'를 누르면 프로그램이 아무런 동작을 하지 않는다. 일단 올리디버그로 뜯어보자. 올리디버그 조차 에러를 뿜어내며 실행되지 않는다. 황당할 수 있지만, 올리디버그가 안되면 HxD를 이용해서 바이너리값을 확인해 보자. 바이너리 값을 확인하다보면 특별한 문자들을 확인 할 수 있다. 비밀번호가 틀렸을 때와, 맞았을때 나타나는 메시지 구문 같다. you did it! 이라는 메시지 뒤에 Crackme#1 문자와 JK3FjZh라..

    [Reversing.kr]Easy Crack

    [Reversing.kr]Easy Crack

    Easy Crack 파일을 다운받아 실행시켜 보면 입력창과 확인버튼이 있다. 아무 내용을 넣고 확인을 누르면 "Incorrect Password"라는 경고창이 뜬다. 해당 파일을 분석해서 Password가 뭔지 찾아내면 될 것 같다. 분석※ OllyDbg프로그램에 대한 기본 단축키와 디스어셈블리 언어를 기본적으로 알고있다는 가정하에 진행합니다. 처음 디버거에 붙이면 401188주소에서 시작된다. 한줄 한줄씩 분석해서 내려가자. 401251주소에서 401000주소부분을 콜하는 것을 볼 수 있다. 해당 라인을 실행(단축키 : F8) 시키면 아까와 같이 입력창이 뜬다.그러면 401000주소 부분에 입력창을 뜨게 하는 명령이 있다는 것을 추측할 수 있다.해당 주소로 가보자. 401000주소부터 하나씩 분석해가며..

    리버싱, 레지스터(Register)

    리버싱, 레지스터(Register)

    레지스터(Register) 범용 레지스터 CPU는 연산, 처리도 하지만, 레지스터라는 곳에 저장도 한다. 범용 레지스터란, 이름처럼 범용적으로 사용되는 레지스터들을 의미한다.즉, CPU가 필요할 때 쓰는 레지스터라고 생각하면 된다.보통은 상수/주소값 등을 저장할 때 주로 사용되며, 특정 어셈블러 명령어에서는특정 레지스터를 조작하여 값을 저장 및 사용하기도 한다. EAX, EBX, ECX, EDX 주로 산술 연산(ADD, SUB, XOR, OR 등...) 명령어에서 상수/변수 값의 저장 용도로 사용 된다.추가적으로 ECX와 EAX는 특수한 용도로 사용되기도 한다. EBP, ESP, ESI, EDI 주로 메모리 주소를 저장하는 포인터 용도로 사용된다.ESP는 Stack 메모리 주소를 가리킨다. (PUSH, ..

    리버싱(Reversing)이란?

    리버싱(Reversing)이란?

    리버싱(Reversing) 리버싱(Reversing)은 리버스 엔지니어링(Reverse Engineering)이라고 한다. 소프트웨어 공학의 한 분야로, 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어 내는 일을 말한다. 이것은 시스템을 이해하여 적절히 변경하는 소프트웨어 유지보수 과정의 일부이다. [네이버 지식백과] 예를들어 exe파일이 생성되는 과정을 한번 보면, 제일 먼저 프로그래머가 1. 소스코드를 작성 2. 컴파일(Compile)3. 링킹(Linking)4. exe파일 생성이러한 순서로 진행 되게 된다. 앞서 사전적 의미와 같이 이렇게 만들어진 exe파일을 거꾸로 분석하면서 기계어와 1:1대응되는 어셈블리어, 좀 더 깊게는 원시코드를 알아내는 것이 리버스 엔지니어..

    [CodeEngn]Basic RCE_Level 01 문제풀이

    [CodeEngn]Basic RCE_Level 01 문제풀이

    http://codeengn.com/challenges/ 위 링크(코드엔진) 사이트에서 제공하는 abex문제를 풀어보겠습니다. 분석. Level 01에 파일은 다운로드 하여 실행시켜보면 아래와 같은 알림창이 뜹니다. "Make me think your HD is a CD-Rom."이라는 문구가 출력되는데. 처음에는 무슨 뜻인지 몰랐으나, 뒤에 CD-Rom을 보고나서 HD가 HDD(Hard Disk)를 말하는 건가? 라는 생각을 했습니다. "확인"버튼을 클릭하면 아래와 같은 알림창이 뜹니다. "Nah... This is not a CD-ROM Drive!" 라고 뜨면서 Error창이 뜹니다.첫번째 알림창 내용으로 추측해보면, 자신의 HDD를 CD-ROM으로 인식하게끔 변경 시키라는것 같습니다. OllDbg..