Study79 [윈도우즈 보안과 악성코드 기초] PE 파일 구조 PE(Portable Excutable) 파일 PE 파일이란? Win32 기본 파일 형식 exe, scr, sys, dll, ocx 등 Process : EXE +DLL 실행 과정 PE 파일 실행 dll은 더블 클릭해도 실행되지 않음! dll은 exe가 call 해야 실행이 됨 PE 헤더 정보를 메모리에 매핑 실제 프로세스를 위한 메모리 할당 섹션 정보를 메모리에 복사 Import 정보 처리 기준 재배치 처리 실제 프로그램 코드로 분기 https://learn.microsoft.com/ko-kr/windows/win32/debug/pe-format notepad.exe(win7) 구조 notepad.exe -> 보통 C:\Windows\System32에 있음 PEview를 통해 notepad.exe의 구.. 2024. 3. 30. [윈도우즈 보안과 악성코드 기초] 리버싱 이론 실습_crackme#1, #3 abex' crackme #1 abex' crackme #1은? 크랙 연습 공개 프로그램 - Error 메시지 창에서 OK 창이 나오게 해야 됨 디버깅 - EP 확인하기 주석 창을 보면 세 개의 메시지 창이 뜨는 프로그램이란 걸 알 수 있음 장점: 시작 주소와 EP가 동일 (시작하자마자 시작 주소가 나옴) 매우 간단하고 명확하게 작성됨 (stub code가 없음) 교육용 목적이라 그럼 사용 함수 분석 MessageBox: 메시지 창을 띄우는 함수 파라미터: Style → Title → Text → hOwner 총 4개 이 메시지 함수를 띄우기 위해선 위에 4개의 파라미터가 필요한 것 GetDriveTypeA: 드라이브 타입을 가져오는 API 함수 디스크 드라이브가 이동식, 고정식, CD-ROM, RAM .. 2024. 3. 30. [윈도우즈 보안과 악성코드 기초] 문자열 패치 실습 1.hexdump 영역에서 www.reversecore.com → www.swu.com 수정 이뮤니티 디버거에서 메시지 창 제목의 문자열이 보이는 곳으로 이동한다. 해당 주소를 실행 전에 더블 클릭하여 주소를 복사한다. 덤프 창에서 [Ctrl+G] 후, 복사한 주소를 붙여넣기 하고 OK 버튼을 클릭한다. 해당 문자열이 보이는 곳으로 이동했음을 확인할 수 있다. 바꾸려는 문자열 부분을 드래그 후 [Ctrl+E]를 하고, 유니코드를 SWU.COM으로 수정한다. www.swu.com으로 바뀐 것을 확인할 수 있다. 메시지 박스까지 실행하면 메시지 창의 제목이 SWU.COM으로 수정된 것을 확실히 확인할 수 있다. 2. 어셈블리 코드 번지수 수정 덤프 창에서 [Ctrl+G]를 클릭해서 메시지 창 제.. 2024. 3. 23. [윈도우즈 보안과 악성코드 기초] 리버싱 이론 (리틀 엔디안 표기법, Register 이해, assembly 언어) 리틀 엔디안 표기법 바이트 오더링 - 컴퓨터에서메모리에데이터를저장하는방식 - Big Endian(순서대로 표기), Little Endian(역순으로 저장) - Intelx86 CPU(Windows 계열) : 리틀 엔디언 방식 사용 예제코드 Register 이해 CPU, Register, RAM CPU: 80x86 (32bit CPU 레지스터) 범용 레지스터 - 4btye(32bit) 전체 사용시 : EAX - 2byte(16bit) 사용시 : EAX의 하위16bit 부분인 AX - AX : 상위 1byte(8bit)AH + 하위 AL 플래그 레지스터 Zero Flag(ZF): 연산 명령 후에 결과 값이 0인 경우에 1로 설정 Overflow Flag(OF) 부호 있는 수(Signed integer)의 오.. 2024. 3. 23. [Node.js] MongoDB로 CRUD 구현하기 보호되어 있는 글 입니다. 2023. 11. 15. [Node.js] Node.js 실습 - 화면 구성하기 1. Template Engine Template Engine이란? - 공통된 부분을 묶어주는 것 - Node.js에는 EJS, Nunjucks 등의 템플릿 엔진이 존재 2. Template Engine - 확장 Nunjucks 설치 - npm i nunjucks Nunjucks 사용 index.js 수정 import express from 'express'; import path from 'path'; import nunjucks from 'nunjucks'; const __dirname = path.resolve(); const app = express(); // view engine set app.set('view engine', 'html'); // main.html -> main(.html), .. 2023. 11. 8. [Node.js] Node.js 실습 - 서버: Express 1. Express란? Express - 전 세계에서 가장 많이 사용되는 웹 프레임워크, 미들웨어의 연결 - Middleware(미들웨어): 요청과 응답 사이에서 목적에 맞는 일을 수행하는 함수 Express 실습 - index.js 파일 생성 import express from 'express'; const app = express(); // middleware app.listen(3000); - 서버를 구성하는 기본 툴을 작성한것 - 터미널 창에서 코드 실행 2. 서버에서 파일 전송하기 웹 페이지 기획 Express 실습 - index.js에 html 코드 삽입 1. 코드 한 줄을 보낼 때 import express from 'express'; const app = express(); // middl.. 2023. 11. 8. [Node.js] Node.js 실습 - 서버 1. 서버란? 통신규약 (HTTP) - HTTP: 인터넷 상에서 데이터를 주고 받을 때 사용하는 프로토콜 URL - URL : 어디로 데이터를 보내는지 정보를 나타내는 것 DNS - DNS: 도메인 주소를 IP로 변환해주는 서버 2. 서버란? - CJS 서버 만들기 const http = require('http'); // 응답 Head 부분 작성 const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type':'text/plain'}); res.write('Hello node.js'); res.end(); // 응답 끝내기 }); // 서버를 응답 가능 상태로 만들기 server.listen(3000, ()=>{ //.. 2023. 11. 1. [Node.js] Node.js 이해 및 설치 방법 1. Node.js란? Node.js 정의 - Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임 - 서버라기 보다는 자바스크립트가 동작할 수 있는 독립적인 환경으로 이해 (서버라고 이해해도 무관) 웹 브라우저의 동작 과정 - 렌더링 : HTML, CSS, JS가 브러우저의 해석을 통해 화면에 출력되는 과정 - HTML, CSS: 브라우저 내에 있는 렌더링 엔진을 통해서 해석 - JavaScript: 브라우저 내에 있는 자바스크립트 엔진을 통해서 해석 - Chrom V8: 크롬에서 만든 자바스크립트 엔진 - 이를 이용하여 자바스크립트는 독립적으로 실행되고, 속도가 빨라짐 - Node.js가 크롬 V8 엔진으로 개발됨 JavaScript 런타임 - JavaScript: HTML.. 2023. 11. 1. [Cloud Computing] Deployment of Virtual Machines using Vagrant 보호되어 있는 글 입니다. 2023. 10. 15. [Cloud Computing] Responsibility Sharing in Cloud 보호되어 있는 글 입니다. 2023. 10. 15. [MySQL] 섹션5-1. 관계형 데이터베이스 1. 테이블 분리 topic_tables 테이블 이름을 변경했다. 새로운 topic 테이블과 author 테이블을 만들었다. 테이블의 데이터를 입력했다. 2. JOIN on을 이용해 두 개의 테이블을 합칠 것이다. author_id 값과 author의 id 값이 같으면 같은 행에 둔다. topic과 author에 모두 id가 있으므로 topic.id로 토픽 테이블의 id임을 명시해준다. as를 사용하며 테이블의 이름을 바꿔서 볼 수 있다. ㅇ참고 https://www.inflearn.com/course/database-2-mysql-%EA%B0%95%EC%A2%8C/dashboard [무료] DATABASE 1&2 - MySQL - 인프런 | 강의 정보기술의 심장인 데이터베이스에 대한 포괄적인 소개를 담.. 2023. 10. 4. [MySQL] 섹션4. MySQL CRUD CRUD: Create Read Update Delete 1. INSERT 사용할 데이터베이스를 선택 show tables: 테이블 확인 desc [table 이름]: 테이블 구조 확인 INSERT문 이용해서 데이터 삽입 만약 created가 있으면 created에서 NOW()를 하면 현재 시간으로 자동 입력 SELECT문 사용해서 topic에서 가지고 오고 싶은 데이터 선택 위 과정 한 번 더 반복 2. SELECT SELECT * FROME [table 이름]: table에 있는 모든 데이터 출력 데이터 항목을 지정해서 원하는 데이터만 출력 가능 SELECT 뒤에는 column의 목록이 나온다. WHERE를 사용하면 조건을 넣어서 검색 가능 ORDER BY를 사용하면 정렬 순서 변형 가능 현재는 id.. 2023. 9. 27. [MySQL] 섹션3. MySQL 테이블 생성 이 엑셀을 데이터베이스로 만들어 보자. 먼저 mysql에 접속한다. 데이터베이스 사용 명령어를 입력한 후에, 테이블을 생성한다. * NULL / NOT NULL: 값이 반드시 있어야 되는지 * PRIMARY KEY: 중복 방지 참고 인프런 | DATABASE 1&2 - MySQL https://www.inflearn.com/course/database-2-mysql-%EA%B0%95%EC%A2%8C/dashboard [무료] DATABASE 1&2 - MySQL - 인프런 | 강의 정보기술의 심장인 데이터베이스에 대한 포괄적인 소개를 담고 있습니다. 데이터베이스의 본질을 공부하며 가장 대표적인 관계형 데이터베이스인 MYSQL 을 학습해 봅니다., [임베딩 영상] 강좌 www.inflearn.com 2023. 9. 25. [Cloud Computing] Cloud computing security issues and responsibility sharing [Overall View of Cloud Computing Security] 1. security of data at rest 2. security of data in transit 3. authentication of users/ applications/processes 4. robust separation of data belonging to different customers 5. legal and regulatory issues 6. incident response [For securing data at rest] Cryptography tools should be applied For the confidentiality and integrity of data. Redundancy of data .. 2023. 9. 23. 이전 1 2 3 4 5 6 다음