[ Network ] 네트워크의 발전과정
·
Archive/ETC
Network? : 지역적으로 분산된 위치에서 컴퓨터 시스템 간에 데이터 통신을 하기 위한 하드웨어 및 소프트웨어들의 집합 Network의 역사 * 유선통신 - 1800년경 볼타가 최초로 전지 발명 - 전선을 통해 신호를 보내는 방법을 연구 - 사무엘 모스 : 모스부호. 전기의 단부호와 장부호 및 이들 간의 간격으로 점과 대시 전송. - 1844년 5월 24일 금요일 전송한 첫번째 공식 메시지 전송 - 알렉산더 그레이엄 벨 : 1876년 음성을 전달할 수 있는 전화기 개발 - 미국 특허청에 전화를 특허로 등록 - 이후 AT&T (미국의 통신회사)로 발전 * 무선통신 - 제임스 클럭 맥스웰 - 맥스웰방정식(전자기방정식)을 도출하여 전자기파의 존재를 증명 - 전자기파의 전파속도가 광속도와 같고 횡파라는 사실..
[ Assemble ] 어셈블리어 출력, add 연산, imul 연산실습
·
Archive/Hacking
어셈블러는 SASM을 이용했다. 실습을 하기 위해 새로운 프로젝트 파일을 하나 생성해보겠다. ctrl+n 키를 눌러 새 파일을 생성한다. 파일을 새로 생성하면 나와 같이 뜨지 않을 수도 있다. 그렇지만 공통적으로 section .text 밑에 코드를 쓰고, global CMAIN CMAIN: 와 같은 (다른 언어에서의 main()과 같은 존재) 문자 밑에서부터 프로그래밍을 할것이다. 안에 기본적으로 xor 과 ret 이라는 연산이 보인다. xor 연산은 둘이 같으면 0, 다르면 1 을 반환해주는 연산자이고 ret 은 C 에서의 return 과 같다. main 마지막 부분에 return 0; 를 해주는 것이라 이해하면 쉽다. 어셈블리어에서는 레지스터라는 개념이 빠질 수 없다. 다음 포스팅은 우리가 어셈블리..
[ Assemble ] 어셈블리어 개요 & SASM 설치
·
Archive/Hacking
어셈블리어란? 어셈블리어란 C나 JAVA 와 같은 사용자와 가까운 고급언어보다 기계어와 더 가까운 언어이다. 기계어와 명령어가 1:1로 대응하고, 이 기계어는 CPU 종류에 따라 달라지기 때문에 호환성이 없는 언어이다. 주로 임베디드나 커널 프로그래밍 등에 쓰인다. 어셈블리어의 특징 동일한 종류의 프로레서만 실행된다. 프로세서에 대한 사전지식이 필요하다. 메모리나 입출력장치, 레지스터 등의 구성요소를 직접 다룰 수 있다. 컴퓨터에서 실행하는 과정등을 이해하기 쉽다. 고급언어의 특징 프로세서 종류 상관X -> CPU의 종류가 달라도 코드에 지장없다. 프로세서에 대한 사전 지식이 필요없다. 문법이 비교적 간단하고 이해하기 쉽다. 코드 양이 적고 디버깅이 용이하다. 컴파일러 VS 어셈블러 - 컴파일러 고급언어..
[ Bee-Box ] 기타 Injection - OS 커맨드 injection
·
Archive/Hacking
OS command Injection? OS 커맨드 인젝션이란 취약한 변수로 시스템 명령어를 주입하여 서버 운영체제에 접근하는 공격입니다. 보통 웹 페이지에서 서버의 시스템 쉘을 호출할 때 관리자가 의도한 명령어가 아닌 다른 명령어를 주입하여 서버의 정보를 알아냅니다. 여기서, 쉘이라는 개념이 익숙하지 않으신 분들을 위해 잠시 쉘을 간단하게만 설명하고 가겠습니다. Shell? 쉘이란 사용자에게 입력받은 명령어를 기계어로 번역하여 커널에게 전달하는 명령어 해석기입니다. 커널과 사용자를 이어주는 일종의 매개체라고도 볼 수 있습니다. OS 커맨드 인젝션은 공격자가 취약한 변수에 악의적인 코드나 명령어를 삽입하면 서버가 악의적인 코드를 실행하거나 명령어를 입력한 결과를 출력하는 흐름으로 진행됩니다. OS com..