반응형

전체 글 805

Assembly 05. 비디오, 키보드 처리 인터럽트

INT (Interrupt) 명령어는 대부분 입력, 출력을 다룬다. 화면처리를 위한 INT 10H 기능과 입출력처리를 위한 INT 21H 기능에 대해서 살펴보자. (INT 10H는 INT 21H보다 조금더 low수준) INT 10H와 같이 낮은 수준의 연산은 BIOS에게 제어를 직접 전달한다. BIOS : Basic input output system. 그에 반해, INT 21H는 제어를 DOS에 먼저 전달하여, 더 복잡한 연산을 용이하게 하는 서비스를 제공한다. DOS에서 부가적인 고급 수준의 처리를 수행한 뒤 BIOS에게 제어를 넘김으로써, 좀더 고급수준의 서비스를 제공한다. 1. INT 10 기능 1-1 AH : 02H 커서설정 1-2 AH : 06H 화면스크롤 2. INT 21H 기능 2-1 02..

Assembly 04. 변수 Swap 프로그램

1.레지스터를 이용한 Swap 프로그램 2.Stack을 이용한 Swap 프로그램 CHAR1 = 'a' 라는 변수와 CHAR2 = 'b' 라는 변수를 생성하고, CHAR1,CHAR2를 차례대로 실행하는 OUTPUT 프로시저를 만들었습니다. 1.레지스터를 이용한 Swap 프로그램 PAGE 60,132 TITLE A04ASM2 (EXE) MOVE AND ADD OPERATION ; ------------------------------------------------------------------------- .MODEL SMALL .STACK 64 .DATA ;DEFINE DATA CHAR1 DW 'a' ;변수 1 CHAR2 DW 'b' ;변수 2 ; ------------------------------..

Assembly 02. 어셈블리 기본 구조 및 변수

.SMALL 모델로 프로그래밍 합니다. " ; " 로 주석문을 사용합니다. PAGE 60,132 TITLE A04ASM2 (EXE) MOVE AND ADD OPERATION ; ------------------------------------------------------------------------- .MODEL SMALL .STACK 64 .DATA ;DEFINE DATA ;이곳에 변수를 선언합니다. ;ex) DIGIT DB 값 ;ex) ARR DB 21 DUP(' ') ;배열 선언 등등 ; ----------------------------------------------------------------------- .CODE ;코드 세그먼트의 시작입니다. MAIN PROC FAR MOV AX..

Assembly 01. IBM assembler MASM 설치

/* * http://sosal.tistory.com/ * made by so_Sal */ IBM 계열 PC Assembley programming 입니다. 어셈블러를 공부하기 전에, 어셈블러를 설치하겠습니다. 위 파일과 에디트 플러스가 필요합니다. 1. 프로그램을 적당한 폴더에 설치한다. 2. 에디트플러스를 다운받고 도구 -> 사용자도구 구성을 누른다. 3. Obj파일을 만들 버튼을 다음과 같이 구성한다. 4. EXE 파일을 만들 버튼을 다음과 같이 구성한다. 5. 새로운 문서를 만들고 파일이름.asm 으로 저장한다. 6. 첫 번째 버튼 눌러 Obj 파일을 생성한다. 파일 이름 입력 후 다음과 같은 메시지가 나오면 성공!!! 7. 두 번째 버튼을 눌러 exe 파일을 위와 동일한 방법으로 생성한다.

Gera _ Stack #1

/* * http://sosal.tistory.com/ * made by so_Sal */ 취약점이라 하기 뭣한~?! 음, 아주 간단한 문제입니다. /* stack1.c * * specially crafted to feed your brain by gera */ int main() { int cookie; char buf[80]; printf("buf: %08x cookie: %08x\n", &buf, &cookie); gets(buf); if (cookie == 0x41424344) printf("you win!\n"); } buf[80] 배열을 overflow 시켜서, cookie 변수의 value를 \x41424344로 바꿔주면 되겠습니다. [sosal@localhost gera]$ (perl -e..

Gera's InsecureProgramming

/* * http://sosal.tistory.com/ * made by so_Sal */ http://community.corest.com/~gera/InsecureProgramming/ 사이트를 소개하겠습니다. 보안에 취약한 프로그램 코드를 소개하고, 그 취약한점을 확인(?) 하면서.. 시스템해킹을 연습하는 아주 재밌는 사이트입니다. ㅎㅎ Here you can find a collection of exercises that will help you teach yourself the art of insecure programs exploitation. It's not complete, but it's minted to open your mind. The idea is NOT to use any hum..

Linux :: Strace - 시스템콜과 신호 추적

strace는 system-call Tracer를 의미하는 말로, strace에 의해 추적되는 프로세스의 시스템콜, 신호를 모두 화면에 출력한다. (시스템콜 ex : read,write,exit,lstat,ipc,fork.... 대부분 표준 C 라이브러리 내에 함수로 존재) strace 프로그램은 ptrace라는 시스템콜을 사용하여 자식 프로세스가 어떤 시스템 콜을 호출하는지 감시하고, 호출하는 시스템 콜에 대해 화면에 출력한다. :: 시스템콜 실패시 strace를 이용하면 어떤 시스템콜이 실패하였는지 쉽게 알아낼 수 있다. :: 예외처리를 해준다면 더욱 쉽게 알아낼 수 있을 것이다. 일단 strace 유틸리티로 추적해볼 프로그램을 만들어보자. /* * gcc scall.c -o scall * 굵게 표시..

Linux/Linux_technic 2010.03.04
반응형