목록Windows (15)
둘둘리둘둘리둘둘리둘둘리둘둘리둘
root@Kali-Linux:/home/flag# ltrace ./nos__libc_start_main(0x40050c, 1, 0x7fffd6006a28, 0x400540, 0x400530 printf("hello") = 5hello+++ exited (status 0) +++ __libc_start_main에 첫번째 인자가 main함수의 주소 root@Kali-Linux:/home/flag# objdump -f ./nos ./nos: file format elf64-x86-64architecture: i386:x86-64, flags 0x00000112:EXEC_P, HAS_SYMS, D_PAGEDstart address 0x0000000000400400 root@Kali-Linux:/home/flag..
SUB - 빼기, 연산결과 0-> ZF 1 IMUL - 부호 있는 곱셈, 부호 비트를 제외하고 연산 후 부호를 붙임 CMP - op1,2를 비교, 같으면 ZF = 1 TEST ; Logical Compare - 두 피연산자를 AND연산하여 결과가 0이면 ZF가 1로 세트 됨, 보통 값이 있는지 없는지를 확인할때 사용ex) if( a ) REP ; Repeat - ECX가 0이 될때까지 반복, 시작시 ECX-1 REPNE ; Repeat until not equal - ZF가 1로 세트되거나 ECX가 0이 될때까지 반복, 시작시 ECX-1, 보통 SCAS와 같이 쓰임 SCAS ; Scan string - AL 또는 AX 또는 EAX와 EDI가 가리키는 메모리 내용 비교후 같으면 ZF = 1, 비교한만큼 E..
FAT의 저장방식파일 내용 리스트는 File Entry (FAT#1)에 있고 파일 이름과 내용의 위치,MAC등은 Root directory에 있다. Root directory를 현재의 '새볼륨 (E :)'이라고 생각하면 이해가 쉬울것 같다.Root directory는 Root directory의 내용만 포함하고있고, 그 하위폴더는 하위폴더의 파일 내용을 저장하는 내용을 가진다. 실습환경: XP, FAT32 1GB 파티션 Windows7이나 XP나 FAT의 저장방식은 동일하고, Reserved area의 크기만 다르다HDD의 내용을 쉽게 변경 할 수 없는 Windows7대신 XP를 이용하여 실습함... 1. FAT#1(Directory entry)Reversed Area의 크기를 확인 하여 PBR에서 그만..
FAT32 구조 FAT32 Boot Record 구조 실제 테스트 환경의 PBR영역 2048섹터의 PBR, PBR의 위치는 Partition table entry(링크)를 참조해당 테스트 환경은 Windows7의 2GB FAT32포맷 파티 1. Jump boot codeJump boot code영역의 기계어코드 EB 58 90을 IDA로 연 결과 'jmp short near ptr 5Ah'Jump boot code가 끝나는 부분에서 5A 이동한 곳 부터 Boot code가 시작(EB 58 90이 JMP(EB) 58인것 같기도함, JMP결과가 BPB가 끝나는 부분과 일치)해당 볼륨을 이용해서 부팅할 일이 없다면 어떤값이 와도 무방함.BPB: BIOS Parameter Block, FAT32구조에서 Jump..
볼륨 부트 레코드: 파티션되지 않은 기억 장치의 첫 섹터 또는 파티션된 기억 장치의 개별 파티션의 첫 섹터를 말한다. 파티션 또는 해당 장치에 설치된 운영 체제나 독립형 프로그램을 불러오는 코드를 포함할 수도 있다. 부트 섹터를 사용하려면, 2바이트 16진수 0xAA55 (부트 섹터 서명)가 섹터 맨 끝에 존재해야 한다. 그렇지 않은 경우에는 바이오스나 MBR 코드는 오류 메시지를 보고하고 운영 체제의 부트스트랩 과정을 중단한다.출처 : 위키백과(http://ko.wikipedia.org/wiki/%EB%B6%80%ED%8A%B8_%EC%84%B9%ED%84%B0) VBR(Volume Boot Record)또는 PBR(Partition Boot Record)라고 한다.이 VBR의 시작주소(Partitio..