본문 바로가기
반응형

분류 전체보기167

jQuery란 jQuery란 가장 많이 사용하는 JavaScript라이브러리로써, “write less, do more”을 추구한다. 또한 브라우저에서 동작하는 클라이언트 사이드 JavaScript라이브러리이며 JavaScript 프로그래밍을 단순화한다. 즉 간결한 코드로 많은 동작을 구현한다. jQuery는 문서 객체 모델의 쉽게 접근하여 조작할 수 있게 하며 이벤트 연결을 쉽게 구현할 수 있는 기능을 제공하며 웹문서에서 애니메이션구현과 Ajax개발을 쉽게 할 수 있다. jQuery를 사용하면 웹 표준만으로 플래시와 실버라이트를 사용한 것과 비슷한 효과를 구현할 수 있으며 모바일에서도 작동 가능하다. 또한 브라우저 간의 차이로 발생하는 문제점을 쉽게 해결할 수 있다. jquery를 사용하기 위해서는 jquery 공식.. 2021. 8. 6.
JAVA 개발환경 구축 JAVA란? 일종의 프로그래밍언어로서 처음에는 가전제품용 소형 프로그램을 지원하기 위해 개발되었으나 현재 범용 목적으로 널리 사용되고 있다. 현제 응용소프트웨어의 설치 프로그램, 모바일 게임, 씨뮬레이션 소프트웨어 등 다양한용도에서 쓰이고 있다. JAVA의 특징 플랫폼 독립성 - 자바로 작성된 프로그램은 어떤 운영체제에서도 코드 수정없이 동일하게 동작한다. (자바가상버신 - JVM을 사용하여 프로그램을 개발) JDK(Java Development Kit) 자바 프로그램을 개발하기 위한 개발 도구이다. JDK는 세가지로 구분된다. 1. Java SE(JAVA Standard Edition) 가장 기본적인 클래스 패키지 2. Java EE(Java Enterprise Edition) 대규모 기업 업무용 소프.. 2021. 8. 6.
Buffer Overflow 원리 - 프로그램 구동시의 segment (2) EIP는 main()함수의 시작점을, ESP는 스텍의 맨 꼭대기를 가리킨다. ESP가 스텍의 맨 꼭대기를 가리키는 이유는 피로그램이 수행되면서 수많은 PUSH와 POP 명령을 할 것이기 때문이다. PUSH명령이 ESP가 가리키는 아래 지점에다 데이터를 넣을 것인지는 시스템 구조에 따라 다르다. 마찬가지로 POP명령이 ESP가 가리키는 지점의 데이터를 가져갈 것인지 아니면 ESP가 가리키는 지점 위의 데이터를 가져갈 것인지 역시 다르게 동작한다. ebp를 저장하는 이유는 이전에 수행하던 함수의 데이터를 보존하기 위해서이다. (이것을 base pointer라고도 부른다.) 함수가 시작될 때에는 이렇게 stack pointer와 base pointer를 새로 지정하는데 이러한 과정을 함수 프롤로그 과정이라고 .. 2021. 8. 6.
Buffer Overflow 원리 - 프로그램 구동시의 segment (1) 프로그램이 실행되어 프로세스가 메모리에 적재되고 메모리와 레지스터가 어떻게 동작하는지 알아보기 위하여 간단한 프로그램을 예제로 본다. gcc로 컴파일 해주고 gdb를 통해 disassamble을 해준다. 앞에 붙어 있는 주소는 logical address이다. 이 주소를 자세히 보면 function()함수가 아래에 자리 잡고 main()함수는 위에 자리잡고 있음을 알 수 있다. 위 그림과 같이 segment가 구성되었다. (메모리 주소는 임의로 적었습니다.) 이 프로그램에서는 전역변수를 지정하지 않았기 때문에 data segment에는 링크된 라이브러리의 전역변수 값만 들어있을 것이다. 이 프로그램이 시작되면 EIP 레지스터 즉, CPU가 수행할 명령이 있는 레지스터는 main()함수가 시작되는 코드를 .. 2021. 8. 6.
Buffer Overflow 원리 - 8086CPU 레지스터 구조 REGISTER 레지스터 명령어의 집합과 데이터들의 저장공간 범용 레지스터 논리 연산, 수리연산에 사용되는 피연산자, 주소를 계산하는데 사용되는 피연산자, 그리고 메모리 포인터가 저장되는 레지스터 세그먼트 레지스터 Code segment, Data segment, Stack segment를 가리키는 주소가 들어가 있는 레지스터 플래그 레지스터 프로그램의 현재 상태나 조건 등을 검사흔ㄴ데 사용되는 플래그들이 있는 레지스터 인스트럭션 포인트 다음 수행해야 하는 명령이 있는 메모리 상의 주소가 들어있는 레지스터 1. 범용 레지스터 프로그래머가 임의로 조작할 수 있게 허용되어 있는 레지스터. 일종의 4개의 32bit 변수라고 생각하면된다. 예전의 16bit 시절에는 각 레지스터를 AX, BX, CD, DX.. .. 2021. 8. 6.
Buffer Overflow 원리 - 8086 메모리구조 8086 메모리 구조 시스템이 초기화 되기 시작하면 시스템은 커널을 메모리에 적재시키고 가용 메모리 영역을 확인하게 된다. 기본적인 명령어 집합을 커널에서 찾기 때문에 반드시 저위치에 있어야한다. 기본적으로 커널은 64KByte 영역에 자리잡지만 이를 확장하여 오늘날의 운영체제들은 더 큰 영역을 사용한다. 32bit시스템에서는 한꺼번에 처리할 수 있는 데이터가 32bit단위로 되어 있기 때문에 메모리 영역에 주소를 할당할 수 있는 범위가 0~2^32-1이다. 64bit는 0~2^64-1의 범위를 가진다. 하나의 프로그램이 실행되기 위한 메모리 구조(운영체제는 하나의 프로세스를 실행시키면 이 프로세스를 segment라는 단위로 묶어서 가용 메모리에 저장시킨다. 이 그림과 같이 오늘날 시스템은 멀티태스킹이 .. 2021. 8. 6.
반응형