본문 바로가기

전체 글

(426)
웹 기초 지식 2 인코딩 - 정보의 형태나 형식을 표준화 , 보안 , 처리속도 향사 , 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 처리 혹은 처리 방식 즉 , 컴퓨터가 이해할 수 있는 형식으로 바꾸어주는 것을 의미 1)ASCII 인코딩- 영문자를 컴퓨터가 해석할 수 있는 숫자로 변환 시켜준다.1byte(8bit) 중 7bit를 이용하여 표현하므로 총 127개의 문자 표현 가능.ASCII코드표는 검색하여 쉽게 찾아볼 수 있다. 2) URL 인코딩- ASCII코드에 없는 영어를 제외한 외국어와 ASCII 코드에서 표현하지 않는 특수문자를 표현하기 위해 사용.- URL인코딩의 특징으로는 코드의 앞에 %문자가 포함된다. 종류 URL 코드 특징 ? %3F 인자(파라미터)를 넘겨줄때 사용 & %26 각각의 인자를 구..
웹 기초 지식 1. WWW - World Wide Web의 약자로 세계규모의 거미집 또는 거미줄 이라는 뜻으로 , 인터넷상의 분산되어 있는 정보들이 연결되어 제공되는 인터넷 서비를 의미한다. - 줄여서 웹(Web) 이라고 칭한다. - WWW는 URL , HTTP , HTML의 구성요소로 이루어져 있다. 2. URL - Uniform Resource Locator 의 약어로 네트워크 상의 자원의 위치를 나타낸다. - Client , Web Server , Web Application , DataBase로 구성되어 있다. ex) http://sports.news.naver.com/sports/index.nhn?category=worldfootball 1 2 3 4 1) Client : 사용중인 프로토콜의 정보이다. 웹 서..
Reverse Engineering 2 EP 디버거가 멈춘 곳은 EP (Entry Point ) 코드로 , HelloWorld.exe의 실행 시작 주소다. 위에서 EP는 4011A0 입니다. 일단 EP 코드에서 눈에 띄는 건 CALL 명령과 그 밑의 JMP 명령이다. 코드윈도우가 총 4가지 칸으로 나눠져있음을 확인할수 있다. 순서대로 Address , Instruction , Disassembled code , comment 이다.Address 프로세스의 가상 메모리 내의 주소 Instruction IA32 (또는 x86) CPU 명령어 Disassembled code OP code를 보기 쉽게 어셈블리 코드로 변환한 코드 comment 디버거에 추가한 주석 EP부분을 해석해보면 " 0040270C 함수를 호출(Call) 한 후 , 00401..
Reverse Engineering (이 글은 나뭇잎을 참고했습니다 . ) 리버스 엔지니어링 ( 역공학 ) 일반적인 의미에서 리버스 엔지니어링 ( Reverse Engineering ) 이라고 하며 기계장치 혹은 시스템의 구조 , 기능 , 동작등을 분석하고 그 원리를 이해하며 단점을 보완하고 새로운 아이디어를 추가하는 일련의 작업이다. 리버싱에는 크게 두가지 분석방법이있다. 1 ) 정적 분석파일의 겉모습을 관찰하여 분석하는 방법으로 정적 분석 단계에서는 파일을 실행하지 않는다. 파일의 종류( EXE , DLL , DOC , ZIP 등 ) , 크기 , 헤더 ( PE )정보 , 내부문자열 , 디버깅 정보등 다양한 내용을 확인하는것이다. 또한 디스어셈블러를 이용하여 내부 코드와 그 구조를 확인하는 것 또한 정적분석의 범주에 들어갈 수 있다. 이..
디버깅 단축키 , 기본 어셈블리어 출발지점 EP(Entry Point) 단축키 ctrl + F2 : 재시작F7 : 명령어를 한줄 한줄 실행하되 안으로 들어감F8 : 명령어를 한줄 한줄 실행하되 자세히 안봄 Ctrl + G : 원하는 주소로 이동; : 주석을 달수 있음F2 : 브레이크 포인트 설정F9 : 브레이크 포인트 까지 실행 * : 나의 위치를 알 수 있음엔터 : 안을 자세히 들어가 볼 수 있다.( F7은 안에 들어가서 실행하는건데 enter는 안을 들여다 보기만 함 ) 마우스 우클릭 > search for > all ref text strings // 모든 문자열을 볼 수 있음. 마우스 우클릭 > search for > all intermodule calls //모든 함수를 볼 수 있음.Ctrl + E : 덤프창 내용 수정시 사용 ..
컴퓨터의 작동 과정 컴퓨터 시스템에서 CPU와 가 장치들은 서로 연결되어 메모리를 공유한다.각각의 장치마다 장치 제어기가 작업을 도와주며 모든 기계들은 동기화되어 적절히 작동된다. 컴퓨터의 부팅 과정- 전원이 켜질 떄 ROM( Read Only Memory )에 저장된 초기 프로그램을 실행한다.- 초기 프로그램은 메모리 , CPU 레지스터 등을 초기화시킨다.- 이후 운영체제를 찾아서 메모리에 적재한다.- 운영체제는 첫번째 프로세스를 즉시 실행한다.- 인터럽트가 발생하면서 CPU가 각종 작업을 처리한다. 인터럽트는 하드웨어와 소프트웨어 모두 CPU에 발생시킬수 있고 일반적으로 입출력 연산이 종료되었을 때 , 예외가 발생했을 때 , 운영체제의 다양한 서비스를 요구할때 등 다양한 이유로 발생할 수 있다. 인터럽트가 발생했을 떄 ..
다양한 시스템 다중 처리 시스템 ( Multiprocessor System ) : CPU가 여러개인 시스템을 의미하며 각각의 CPU들이 아주 밀접하게 통신을 하는 구조를 가지고 있다 . 당연히 성능이 하나의 CPU가 있을 때보다 더 좋으며 하나의 CPU가 고장나더라도속도가 느려질 뿐 시스템은 정상적으로 작동한다. ( 신뢰성 , 처리속도 UP ) 분산 처리 시스템 ( Distributed Processing System ) : 네트워크를 이용해 동시에 작업을 처리하는 시스템으로 각각 CPU들은 메모리를 공유 하지 않는다 , 당연히 적절한 자원 공유로 계산 속도와 신뢰성 증가(ex : 클라이언트 & 서버 시스템 , P2P 시스템 , 클러스터 시스템 ) 실시간 처리 시스템 ( Real-Time System ) : 실시간 처..
시스템의 발전 시스템의 발전에서 주요히 뽑히는 부분은 일괄처리 시스템에서 다중 프로그램 & 시분할 시스템으로의 발전 일괄처리 시스템 ( Batch System ) : 초기 컴퓨터 동작 방식으로써 물리적으로 콘솔에서 수행을 하던 방식에 사용하던 시스템.초기 운영체제는 즉시적으로 데이터를 처리 할 수 있는 여건 또한 갖추지 못했다. 일정 시간 동안 수집된 변동 자료를 컴퓨터의 입력 자료로 만들었다가 필요한 시점에 이 자료들을 일괄 입력하여 실행한 후 그 결과를 일괄 출력시켜 주는 방식 다만 , 기계적인 입출력 장치의 속도가 CPU 같은 전자적인 장치의 속도보다 느리기 때문에 CPU가 Idle 상태인 경우가 많음 -> CPU 활용면에서 비효율적 다중프로그래밍 시스템 ( Multi-Programming System ): CP..