본문 바로가기
반응형

전체글253

[리버싱] 리틀 엔디언&빅 엔디언 엔디언(Endianness)이란? 컴퓨터의 메모리와 같은 1차원 공간에 여러 개의 연속된 대상을 배열하는 방법이다. 빅 엔디언(Big-endian)과 리틀 엔디언(Little-endian)으로 나눠진다. 빅 엔디언(Big-endian) 최상위 바이트(MSB)부터 차례대로 저장하는 방식이다.장점 디버그를 편하게 해주는 경향이 있다. (사람이 숫자를 읽고 쓰는 방법과 같기 때문) TCP/IP는 16비트와 32비트 정수에서 빅 엔디안 방식을 사용한다. 숫자 비교시, 유리 UNIX에서 사용하는 바이트 오더 리틀 엔디언(Little-endian) 최 하위 바이트(LSB)부터 차례대로 저장하는 방식이다. 장점 메모리에 저장된 값의 하위 바이트들만 사용할 때 별도의 계산이 필요 없다. 수치 계산시, 유리 Intel에.. 2017. 8. 23.
[리버싱] 레지스터에 대해 알아보자 레지스터란? CPU 내부에 존재하는 작은 고속의 메모리이다. 레지스터의 종류 위 레지스터들은 범용레지스터, 인덱스레지스터, 포인터레지스터라고 한다. 32비트 환경에서는 첫 글자가 E(Extended)로 시작한다. 64비트 환경에서는 첫 글자가 R(Register)로 시작하고 32비트의 레지스터를 포함한다. 범용 레지스터 AX(Accumulator) : 연산에 사용 BX(Base) : 메모리 주소 지정 시 사용 CX(Counter) : 반복과 같은 상황에 사용 DX(Data) : EAX와 함께 연산, 부호확장 인덱스 레지스터 SI(Source) : 메모리를 이동 및 비교 시 해당 주소 DI(Destination) : 메모리 이동 및 비교 시 목적지 주소 포인터 레지스터 IP(Instruction) : 다음.. 2017. 8. 23.
[리버싱] 어셈블리어 명령어 어셈블리어 명령어 push : 스택에 저장pop : 스택 가장 상위에 있는 값을 꺼내서 저장mov : 메모리나 레지스터 값을 옮길 때 사용lea : 주소값을 옮길 때 사용inc : 1 증가dec : 1 감소add : 레지스터나 메모리의 값을 덧셈할 때 쓰임sub : 레지스터나 메모리의 값을 뺄셈할 때 쓰임call : 프로시져를 호출한다.※ 프로시져 : 어떤 행동을 수행하기 위한 일련의 작업 순서 (함수라고 생각하면 될 듯)ret : 호출했던 바로 다음 지점으로 이동cmp : 레지스터와 레지스터 값을 비교nop : 아무 동작도 하지 않는다(No Operation)jmp : 특정한 곳으로 분기 unsigned jump(=)je : jump equaljne : jump not equaljz : jump zer.. 2017. 8. 22.
[리버싱] 어셈블리어에 대해 알아보자 어셈블리어(Assembly language)란? - 기계어와 1대1 대응되는 컴퓨터 프로그램의 저급 언어. 어셈블러(Assember)란? - 어셈블리어로 작성된 소스 코드를 기계어로 변환하는 프로그램. 어셈블리어 구조CPU는 2진수로 모든 것을 처리하는데 어셈블리 명령어들도 2진수로 되어 있다. 하지만 2진수로 된 것은 알아보기가 힘들어 mov, add와 같은 형태로 변환하여 보여진다. mov %eax %ebx는 C언어로 보면 ebx = eax의 경우와 같다. eax에 저장된 값을 ebx에 할당한다. 어셈블리어 문법 (Intel vs AT&T) Intel 방식 - 가독성이 뛰어남. - 윈도우 환경에서 구동. - 오퍼랜드 위치 : mov dest, source - 메모리 오퍼랜드 : mov [eax], [.. 2017. 8. 21.
[여행] 캐리비안 베이(예약, 여행후기) 2017-08-19 이틀이 지나서야 포스팅을 하게 되었다.이번 포스팅은 바로 캐리비안 베이!! 2017년의 여름은 끝을 향해 달려가고 있고 나는 그 끝을 물과 함께 하고 싶었다.친한 과 동기들, 선배들과 모두 함께 가고 싶었으나, 시간의 문제로 다같이는 가지 못하게 되었다.그래서 남자 3명!! 에서 같이 캐리비안 베이를 가게 되었다. 이번 포스팅은 사진이 거의 없다.방수팩을 들고 갔어야 했는데, 사실 폰 상태도 말이 아니고 들고 다니면 번거로울 것 같아서 들고 가지 않았다!! 약간 후회는 되지만... 그래도 눈으로 담았으니 괜찮다ㅎㅎ 우선 예약은 인터넷으로 하였다. 캐리비안베이 홈페이지를 들어가보면 오른쪽 상단에 스마트예약이라는 것이 있다. 로그인을 하고 들어가보면 캐리비안베이 예약하기라는 버튼이 있고 .. 2017. 8. 21.
[리버싱] 디버거 조사(OllyDbg) Debug(디버그)란? - 프로그래머가 자신이 만든 프로그램의 오류를 찾고 그것을 해결하는 과정 올리 디버거 (OllyDbg) 올리 디버거는 디버그 하는데 사용되는 프로그램이다. 올리 디버거는 무료, 저용량, 다수의 플러그인 지원등의 장점으로 많은 사람들이 사용하고 있다. 올리 디버거에 대해 알아보자. 처음 화면은 이러하다. 크게 5개의 영역으로 나눠져 있다. [A]부분은 Code Window라고 부른다. disassembling된 코드와 OP코드를 나타내고 있는 Code부분이다. 여기서 프로그램의 흐름을 체크하고 분석한다. 주소, OP코드, 어셈블리어, Comment 순서로 되어 있다. [B]부분은 Register Window라고 부른다. CPU의 레지스터 상태를 나타내는 부분이다. 이부분을 이용해 각.. 2017. 8. 21.
반응형