목록분류 전체보기 (119)
작은 메모장
파이썬이 보안에서 쓰는 곳?- 일단 많이 사용함- 자동화 업무에서 압도적 -> 특히 모의해킹 오픈 도구 80% 이상- 보안 솔루션, 보안 스크립트 자동화 -> 보고서 작성 자동화- 모든 운영체제에서 호환성이 뛰어남- 웹 서비스 – PHP, ASP, NET, JSP/JAVA… -> React, Vue, Flask, DjangoAPI란?사용자들이 원하는 데이터를 인증을 통해 제공하는 일련의 통로쉽게 말해 창구 업무 종사자와 이야기를 한다고 생각하면 편함어떤 데이터를 원하는가?어떤 인증이 필요한가? (인증키, 개인정보 등)얼마나 필요한가?등등을 정해진 함수를 통해 제공하면, 데이터를 전송해 줌 사용 라이브러리>환경은 vsc 기준으로 설명extensions > black formatter ~> set defau..
CloudCloud가 뭐임?클라우드는 줄임말이고, 클라우드 컴퓨팅이 정식명칭기존의 서버는 서비스 제공자가 서버 컴퓨터의 자원관리 및 전력 관리를 계속 해줬어야함전국에 서버를 제공하는 사람이 많으면 이 관리하는 비용이 어마어마하게 들어감이걸 뒤엎고 나온게 클라우드 개념, 쉽게 말해 서버 제공과 관리를 한 회사가 전부 몰아서 하겠다는 아이디어임이러면 서비스를 제공할 업체는 서비스 개발에만 집중하면 되고, 서버 관리를 담당하는 업체는 그것만 집중하면 되는 이점이 있음데이터센터의 구조물리 서버의 일반적인 형태임각각의 서비스 할 업체마다 저기서 일정부분의 서버를 빌려주는 것저 하나의 케이지 안에 대략 40~80개의 랙(납작한 판처럼 생긴 컴퓨터)이 들어감하나의 랙은 하나의 컴퓨터, 즉 하나의 서버고, 이를 서버 ..
이걸 알기 전에..버전 관리 시스템(Version control Revision Control)을 알아야한다동일한 정보에 대한 여러 버전을 관리하는 것공학 및 소프트웨어 개발에서 팀 단위로 개발중인 소스코드 혹은 설계도 같은 디지털 문서를 관리하는데 사용수정판이 하나 나올때마다 숫자, 문자로 이루어진 “버전”이 부여됨버전이 부여된 코드를 보면 누가, 언제 이걸 만들었는지 볼 수 있음이걸 왜 하냐고?이꼴남기존의 버전 관리는 이름 혹은 제목 수정으로 버전 관리를 함문서도 이꼬라진데 코드 버전 관리는 얼마나 힘들겠슴그래서 “내가 이 버전으로 가져오고/되돌리고 싶어”를 빠르게 해주는 프로그램이 필요해진거임이것말고도 쓰는 이유는 많은데,- 뭔가 망해감을 감지했을 때- 예전에 내가 어떻게 코드를 짰는지 보고 싶을 ..
함수 호출규약 (Function calling convention) 함수를 호출하는 호출자(caller)와 호출당하는 피호출자(callee)간 파라미터 전달 및 사용된 스택영역 해제와 관련된 내용을 정의하고 있는 규약 주로 파라미터 전달 방법, 파라미터 전달 순서, 파라미터 전달에 사용된 스택영역 해체 주체에 대한 정의를 포함 IA32/64에서는 함수 호출 시 파라미터와 복귀 주소를 스택에 저장, MIPS, ARM 아키텍처에서는 레지스터에 저장 아키텍처 호출 규약 이름 매개변수 전달방향 매개변수 전달에 사용되는 레지스터 스택영역 해제 주체 IA32 cdecl RTL 없음 호출자 stdcall RTL 없음 피호출자 fastcall RTL ECX, EDX 피호출자 x86-64 MS x64 호출규약 RTL R..
스택공간이란? Stack discipline에 따라 관리되는 메모리 영역 데이터 섹션과는 다르게 실행 파일에 포함되어 있지 않으며, 쓰레드가 생성되면 동적으로 생성됨 스택의 용도 - 기본적으로 Reentrancy를 지원하기 위함 Reentrancy? 이미 호출되어 실행중인 어떤 함수가 리턴하기 전에 다시 호출될 수 있을 때, 그 함수를 Reentrancy가 가능하다고 표현 재귀함수나, 멀티쓰레드 환경에서 여러 쓰레드에 의해 동시에 호출되는 함수 등이 이에 속함 - 실행중인 각각의 함수는 전달될 파라미터, 지역변수, 리턴할 주소 등이 전부 다름 때문에, Reentrancy를 지원하기 위해서는 동시에 실행중인 함수 각각의 상태에 관련된 정보를 별도로 저장해야 함 - 즉, 스택에는 Reentrancy가 일어나..
Intel IA32 Processor Register set 인텔의 32비트 마이크로프로세서에서 사용하는 명령 집합 아키텍처의 레지스터 셋 처음에는 8개의 일반 레지스터와 8개의 실수 레지스터를 지원했으나, 시간이 지나며 다양한 레지스터를 지원 범용 레지스터 산술/논리 연산에 사용되는 피연산자 정보, 주소 계산을 위한 피연산자 정보, 메모리 포인터 정보를 담고 있는 레지스터 EAX 덧셈 혹은 뺄셈 같은 연산의 결과를 저장 EBX ESI, EDI 레지스터와 결합하여 메모리 주소를 저장 ECX 문자열 및 반복실행 포인터 EDX I/O 포인터 ESI 데이터를 조작하거나 복사시, 소스 데이터의 주소를 저장 EDI 데이터를 조작하거나 복사시, 목적지 데이터의 주소를 저장 EBP 스택에 있는 데이터의 포인터 ESP..
PE(Portable Executable)의 기본구조 - 윈도우 운영체제에서 사용되는 EXE, DLL, SYS등의 확장자를 가진 파일 - 동적 라이브러리 정보, API 익스포트 및 임포트 정보, 실행을 위한 코드, 실행에 필요한 리소스 정보 등을 구조화 및 관리하는 방법을 정의 - 실행 과정에서 로더에 의해 가상 메모리 공간에 매핑된 후에도 파일의 레이아웃은 거이 바뀌지 않음 PE 파일은 크게 DOS헤더, PE 헤더, 섹션으로 구성되며, 각각의 공간은 서로 다른 정보를 담고 있음 DOS Header 1) DOS Header - MS-DOS 파일에 대한 호환성을 유지하기 위해 존재, "MZ"로 시작 - 구조체 : IMAGE_DOS_HEADER - 주요 멤버 e_magic: DOS signature로, PE..
가상 주소 공간을 실제 눈으로 확인해보자 xdbg 프로그램을 이용하여 가상주소 공간을 실제로 확인해볼 것임 이건 윈도우 기본 프로그램 중 계산기 프로그램을 디버거로 연 것으로, 여러가지 내용이 담겨 있는 것을 볼 수 있음 조금 더 명확한 확인을 위해, processexplorer프로그램으로 프로세스간 부모-자식 관계를 살펴봄 프로그램을 실행시키면, x64dbg 프로세스 아래에 calc, 계산기 프로그램이 존재하고 있음을 확인 가능 다시 x64dbg를 실행시키면, 상단에 메모리 맵(Memory Map)이라는 탭이 보임 메모리 맵은 로드된 프로그램 이미지의 주소와 DLL 파일이 로드된 주소, 권한 등을 확인할 수 있는 가상 메모리 공간 어떤 주소에 스택이 존재하고, 경로가 위치해있으며, 시작 부분 주소가 어..