본문 바로가기

2013/07

리버싱의 기초 정리 지금부터 이루어지는 포스팅은 IA-32 Processor Architecture 기반입니다. 1.레지스터 - CPU 내부에 있는 8,16,32Bit 고속 저장소를 말하며 일반적으로 사용하고 있는 메모리 보다 데이터를 훨씬 빨리 Read ,Write 할 수 있음. ㆍ범용 레지스터 (General-Purpose Register) : 8개EAX, EBX, ECX, EDX, ESI, EDI레지스터는 우리 마음대로 쓸 수 있는 레지스터이다.EAX : Accumulator Register. 곱셈, 나눗셈 명령에 쓰임.EBX : Base Register.ECX : Counter Register. 루프 카운터로 쓰임.EDX : Data Register.ESI : Source Index. 고속의 메모리 복사에 쓰임.ED.. 더보기
MBR 덤프해서 16비트 어셈블리 코드로 보는방법 MBR 덤프해서 ASSEMBLY 코드로 보는방법 1. HxD 다운 / NASM 다운 HxDhttp://mh-nexus.de/en/downloads.php?product=HxD NASMhttp://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D 2. HxD로 MBR Binary 덤프HxD 설치 후 DISK 아이콘 선택디스크 중에서 물리 디스크 - MBR 분석할 물리 디스크를 선택 후 수락읽어보면 0000:0000부터 섹터 0만큼(512BYTE)가 MBR 영역이므로 해당 영역만 복사해서 새 파일로 만듬.새 파일 - 붙여넣기로 512바이트 영역 생성다른 이름으로 저장 - mbr.bin설치된 nasm 폴더내의 ndisasm.exe로 바이너리 이미지를 16비트 어셈블리로 변경ndis.. 더보기
MBR (Master Boot Record) 정리 MBR은 저장매체의 첫 번째 섹터(LBA 0)에 위치하는 512 바이트 크기의 영역이다. 다음 그림은 MBR의 기본적인 구조를 보여준다. 처음 446 바이트는 부트 코드(boot code) 영역, 64 바이트는 파티션 테이블(partition table), 마지막 2 바이트는 시그니처(signature)를 나타낸다. 운영체제가 부팅될 때 POST(Power On Self-Test) 과정을 마친 후 저장매체의 첫 번째 섹터를 호출되는데 이때 해당 부트 코드가 수행된다. 부트 코드의 주 역할은 파티션 테이블에서 부팅 가능한 파티션을 찾아 해당 파티션의 부트 섹터(boot sector)를 호출해주는 역할을 한다. 만약, 부팅 가능한 파티션이 없을 경우에는 미리 정의된 에러 메시지를 출력한다.다음 표는 MBR .. 더보기