본문 바로가기

reversing

Crackers For Freedom CrackMe v2.0 보호되어 있는 글입니다. 더보기
Stack, Calling Conventions 스택은 프로그래밍을 한다면 누구나 들었을 말입니다. 스택은 LIFO (Last In First Out)입니다. 즉, 나중에 들어온 값이 먼저 나간다라는 말이죠. 스택에 넣을때는 PUSH라고 하며, 빼낼때는 POP이라고 합니다. 그리고 스택은 항상 "높은주소에서 낮은주소로 자랍니다." 즉, "거꾸로 자란다."라는 말이죠.이 이유는 다른 영역에 침범하지 않기 위해서 그렇습니다. 먼저 간단히 해당 영역이 어떤 역할을 하는지 알아보도록 하겠습니다. Text 영역 : 컴파일 된 프로그램 소스가 기계어 형태로 있는 영역입니다.Data 영역: 프로그램에서 초기화 된 데이터들이 위치합니다.BSS 영역: 초기화되지 않은 변수들이 위치해있고, 항상 0으로 초기화 됩니다.Stack 영역: 지역변수가 위치합니다.Heap 영역.. 더보기
Back To User Mode Back To User Mode는 특정 이벤트를 일어나기 전에 설정해두고 Call 명령이 일어난 바로 다음 위치를 잡을 수 있습니다. UPX Unpacking에서 사용했던 파일로 Back To User Mode에 대해서 알아보도록 하겠습니다. Back To User Mode 는 다음과 같이 사용합니다. 1. 분석하고자 하는 프로그램을 올리디버거로 실행합니다.2. F9를 눌러 실행시킵니다.3. F12를 눌러 프로그램을 일시정시 상태로 둡니다.4. Alt + F9를 눌으면 Back To User Mode가 설정됩니다.5. 프로그램에서 이벤트가 발생합니다. (메시지창 출력)6. 올리디버거가 해당 부분에 커서가 이동됩니다. 1. 실행하기 2. 임의의 시리얼을 입력후 메시지 창을 띄웁니다. 3. 올리디버거로 돌아.. 더보기
UPX Unpacking OllyDump.dll 파일을 Plugin 폴더에 넣어주세요~ 해당 파일을 먼저 실행해 봅니다. Check the Serial 버튼과 Leave this CrackMe 버튼이 있습니다. 임의의 값을 넣고 Check 버튼을 눌러보도록 하겠습니다. 임의의 시리얼로 k3y6reak를 입력했더니 오른쪽 메시지 창처럼 올바른 시리얼이 아니라고 합니다. 그렇다면 먼저 PEID로 해당 파일을 분석해보도록 하겠습니다. UPX로 패킹 되어있다는 정보를 알 수 있습니다. 올리디버거로 해당 파일을 분석해보면, UPX 패킹이 되어있다는 것을 알 수 있습니다. UPX 패킹인지 알 수 있는 방법은 PEID로 확인하거나 어셈블리어가 마지막에 JMP가 나오게 되고 어디론가 점프한다는 것으로 알 수 있습니다. 브레이크 포인트를 걸어둔.. 더보기
데이터 타입, 피연산자 타입, 어셈블리 언어 어셈블리 언어를 외우려고 하지말자. 계속 분석을 하다보면 대부분 나오는 것만 나오게 된다.처음 시작한다면, 한두번 읽고 넘어가는 것을 추천합니다. 다 외울 수 있으면 좋겠지만...ㅋㅋㅋㅋ 사람머리인지라.. - 데이터 타입 타입 설명 BYTE 8비트 부호 없는 정수 SBYTE 8비트 부호 있는 정수 WORD 16비트 부호 없는 정수 SWORD 16비트 부호 있는 정수 DWORD 32비트 부호 없는 정수 SDWORD 32비트 부호 있는 정수 FWORD 48비트 정수 QWORD 64비트 정수 TBYTE 80비트 정수 - 피연산자 (Operand) 타입 피연산자 설명 r8 8비트 범용 레지스터 r16 16비트 범용 레지스터 r32 32비트 범용 레지스터 Reg 임의의 범용 레지스터 Sreg 16비트 세그먼트 레.. 더보기
CPU 레지스터 CPU 레지스터에는 범용 레지스터, 명령 포인터, 세그먼트 레지스터, 플래그 레지스터, 부통소수점 데이터 레지스터 이렇게 총 5개가 있습니다. ※ CPU 레지스터를 외울려고 하지 말자. 그때 그때 확인하는 정도로도 충분하다고 생각된다. 단순히 변수가 변경된다고 생각해도 충분하다고 생각된다. - 범용 레지스터 EAX (Extended Accumulator Register)더하기, 빼기, 곱셈과 나눗셈 명령에서 자동으로 사용되고 함수의 리턴값이 저장되는 용도.가장 많이 쓰이는 변수라고 생각하면 된다. 사칙연산에 사용되고, return 100, return 0을 하면 반환하는 것처럼 EAX에 100, 0이 입력된다고 생각하면 된다. EBX (Extended Base Register)ESI나 EDI와 결합하여 .. 더보기
abexcm1 풀이 보호되어 있는 글입니다. 더보기
OllyDBG 다운로드 및 설정방법 올리디버거는 http://ollydbg.de 에서 다운로드 받을 수 있습니다. 최근 올리디버거가 x64 환경에서도 작동되도록 버전이 출시가 되었습니다. 사실 아직 써보지는 않아서 잘 작동하는지는 모르겠습니다.하지만 저는 XP 32bit 환경에서 리버싱을 공부하기 때문에 Odbg110.zip 파일을 받도록 하겠습니다. 압축을 풀면 다음과 같은 파일들이 생성됩니다. 해당 파일을 받아서 압축을 풀어서 odbg110 폴더에 넣어줍니다.UDD 폴더와 Plugin 폴더를 생성합니다. OLLYDBG.EXE 를 실행합니다. 상단의 Options - Appearance를 클릭합니다. Directories를 선택하면 UDD path와 Plugin path가 나옵니다.아까 UDD와 Plugin 폴더를 만들었던 경로로 잡아줍.. 더보기
VMWARE 및 Windows 설치하기 리버싱 포스팅을 다시 시작합니다.! 물론 저번 블로그에서 작성했던 것보단 더 쉽게 작성하려고 합니다. 올해 많은 공부를 해야겠어요 ㅜ 준비물- VMware- Windows xp sp3.iso ※ 해당 파일 공유는 절대 하지 않습니다. - VMware 설치하기 VMware 파일을 클릭합니다. Typical을 눌러주세요!! VMware를 실행할때 마다 업데이트 체크를 할 것인지 물어보는 것 입니다.저는 해제 했습니다. 이 부분은 VMware의 도움말을 확인 할 건지 체크하는 부분입니다. 저는 해제 했습니다. 저는 바탕화면에 아이콘만 생성하도록 했습니다. 올바른 라이센스 키를 입력해주세요. 설치 완료!!! - Windows XP SP3.iso 설치 먼저 VMware를 실행합니다. 왼쪽 상단의 Workstati.. 더보기