IA-32에는 여러가지 레지스터가 존재한다.그래서 이번 포스팅에서는 앞으로 자주 사용하게 될 레지스터들인, Basic program execution registers에 대해서 알아보자. Basic program execution registers은 다음과 같이 크게 4가지로 더 나눌 수 있다. General Purpose RegistersSegment RegisterEFLAGSInstruction Pointer 먼저 범용 레지스터(General Purpose Registers)에 대해서 알아보도록 하자.범용 레지스터는 이름대로 범용적으로 사용되는 레지스터로,상수나 주소를 저장할 때나 특정 레지스터를 조작할 때 사용한다.각 레지스터가 32bit의 크기를 갖는다.EAX (Accumulator for ope..
자료를 저장하는 단위에는, BYTE, WORD, DWORD 등의 단위가 있다.자료를 저장할 때는, 바이트 단위로 저장하는 순서가 있다. 이번 포스팅에서는 Byte Ordering에 대해서 공부할 것이다.이름에서 알 수 있듯이, 바이트 오더링은 바이트의 순서를 말한다.그리고 바이트 오더링에는 크게 두 가지의 종류가 있는데,그게 바로 리틀 엔디언(little endian)과 빅 엔디언(big endian)이다. 먼저 빅 엔디언에 대해서 설명을 하자면, 빅 엔디언은 바이트를 정순으로 표기하는것이다.즉, 왼쪽에서 오른쪽으로 표기하는 것을 말한다.반대로, 리틀 엔디언은 바이트를 역순으로 표기하는 방법이다.오른쪽에서 왼쪽으로 표기하는것을 말한다. 다음 예제를 한번 확인해보자. 우리가 0x13572468이라는 DWO..
나는 원래 해킹쪽을 많이 공부 하지 않았는데, 근래에 기회가 되어 다양한 문제를 풀게 되었다. 그래서 갑자기(?) 흥미가 생겨 리버싱 공부를 시작하게 되었다. 그래서 풀어보자.. Abex Crack Me 0x01 !! (내가 니 하드 디스트가 씨디 롬이라고 생각하도록 만들어바) (에... 이건 씨디 롬 드라이브가 아니자나!!) 위의 프로그램을 실행시켜 보면 뭔가 내 하드 디스크가 CD-Rom으로 인식되게 만들어야겠다는 생각이 들 것이다. 올리 디버거로 한번 열어보자. (올리 디버거 설치법은 나중에 포스팅 해보려고 노력해보겠다.) 그러면 놀라울정도로 심플한 소스코드가 나온다. 간단히 분석을 해보자면 00401000 ~ 0040100E : 메세지 띄우기 00401013 ~ 00401018 : 내 하드디스크 ..
이번 포스트에서는 다양한 청크에 대해 알아보자. 청크의 종류는 중요 청크랑 보조 청크로 나누어진다.중요 청크는 맨 앞글자가 대문자이며, 보조 청크는 맨 앞글자가 소문자이기 때문에 쉽게 구분할 수 있다. 중요 청크에는 IHDR, IDAT, PLET, IEND 청크들이 있으며, 모든 PNG 파일에는 IHDR 청크와 IDAT 청크 IEND 청크가 들어있다. 청크의 이름의 맨 앞글자로 청크의 종류를 구분할 수 있다. IHDR 청크는 "Image Header"의 약자로 PNG 파일의 기본 정보를 담고있는 청크이며, 시그니처 바로 뒤에 붙는다. IHDR 청크에는 가로, 세로, 비트 깊이, 색 타입, 압축 메소드, 필터링 메소드, 인터레이스 메소드에 대한 정보가 담겨있다. Width와 Height는 이름에서 알 수 ..
일단, 첫 포스팅을 동아리 과제로 쓰게 되었다. PNG 파일구조에 대해 공부하게 된 이유는 간단하다. ASCII 아트를 만들고 싶었다.뭐.. 하다보니깐 결국 PNG 파일 구조가 보고서의 주 내용이 되었지만, 나름 공부한 것에 대해 만족하는중이다. 참고로 이 포스팅들은 주관적이나, 조사한 내용을 바탕으로 이루어져있다. 오타와 잘못된 정보 지적은 환영한다.그럼 거두절미하고 바로 본론으로 넘어가겠다. 일단 PNG 파일 구조는 파일 시그니처와, 다양한 청크들의 집합으로 이루어져있다. 파일 시그니쳐는 "이 다음부터 나오는 데이터는 어떤 포맷(형식)을 따른다" 라는 것을 알려준다. 즉, 이 파일은 ~하게 해석해야 한다는 것을 알려주는 것이다. 파일 시그니쳐는 8byte로 이루어져 있으며, 파일 포맷마다 모두 다르다..