본문 바로가기

S-DEV

(41)
Anit-Virus - 0 • Anit-Virus 제품군은 무엇인가? - File System Scanning - 치료? 격리? ⇒ 컴퓨터의 바이러스 등의 악성코드를 탐지하고 방어하기 위한 유틸리티 소프트웨어이다. *악성코드 : 정책을 위반하는 프로그램이다. * 정책이란 운영체제 → 컴퓨터를 운영하기 위한 정책을 프로그래밍한 소프트웨어이다. • 하드웨어 구조와 OS, 컴파일러 관계(HW Arch, OS, Compiler와 함께 발전하는 Anti-Virus 시스템) - Turing Machine (메모리 기반의 컴퓨터) > 규칙표에 따라 테이프 스트립의 기호를 조작하는 추상기계를 설명하는 계산의 수학적 모델이다. > 모델의 단순성에도 불구하고 모든 컴퓨터 알고리즘을 구현할 수 있다. > Turing Machine은 컴퓨터가 수행하는..
로그파일로 데이터베이스 생성 • 로그로 데이터베이스 생서 * 구조체 배열을 반드시 이용할 것!!! • 로그 데이터 데이터 베이스에는 user 와 password 정보만 저장할 것이다. • 구조체 배열 struct success { char username[100]; char password[100]; }; struct error { char e_username[100]; char e_password[100]; }; success 와 error 구조체를 만들어 username, password를 저장할 배열을 생성한다. • 로그 파일 열기 fp = fopen("C:\\Users\\user\\Desktop\\c과제\\c\\log.txt", "r"); if (fp == NULL) { fprintf(stderr, "파일 없음"); exit..
중첩 구조체를 이용한 로그인 프로그램 • 중첩 구조체를 이용하여 로그인 프로그램 코드 작성 10-02. 중첩 구조체 - C 언어 (wikidocs.net) 참고하였다. 작성한 코드 분석 • 메인 함수 int main() { int num = 0; //메인 화면 구성 printf("1. 로그인\n"); printf("2. 회원가입\n"); printf("3. 종료\n"); printf("번호 선택: "); scanf("%d", &num); //스위치문을 사용해 3가지 기능 실행 switch (num) { case 1: login(); break; case 2: join(); break; default: printf("로그인 프로그램 종료\n"); break; } } • 로그인 기능 int login() { char username[21]; c..
Socket 보호되어 있는 글입니다.
정규 표현식 구현 코드 ∙ 정규 표현식 문자열의 일정한 패턴을 표현하는 일종의 형식 언어이다. 즉, 프로그램을 작성할 때는 특성상 일정한 규칙을 가진 텍스트 문자열을 사용하는 경우가 많은데 이럴때 특정 문자 조합을 찾기 위한 패턴이다. ∙ 정규화 코드 작성 주어진 정규화 표현식을 해석해 보면 ^(?=.*[A-Z]).+$ 은 최소한 한개이 상의 문자가 있어야하고, 반드시 대문자가 포함이 되어있어야한다. 즉, 대문자가 포함이 되는 코드를 작성하면 된다. #include #include #include int main() { char str[10]; // 사용자로부터 입력받을 문자열을 저장할 배열 int res = 0; // 사용자로부터 문자열 입력 받기 printf("문자열을 입력하세요: "); fgets(str, sizeof(s..
간단한 Flask 웹 서버 • Flask 파이썬 기반으로 작성된 마이크로 웹 프로임워크이다. 간단한 웹 사이트, 간단한 API 서버를 만들 수 있다. from flask import Flask, request #웹 프레임워크 모듈 로드 app = Flask(__name__) # app 변수에 Flask 모듈을 선언 @app.route("/hcm",methods={"GET","POST"}) def hcm(): print(request) return "hcm", 200 if __name__=="__main__": #메인 함수이며, 파이썬 내장 함수 => __name__ 에 의해 시작 app.run(debug=True,host="0.0.0.0",port=8081) - 실습 1 import requests # Header headers ..
pyautogui 사용하기 • Pyautogui 라이브러리 마우스와 키보드 제어를 도와주는 라이브러리이다. > 설치 명령어 : pip install pyautogui • 실습(계산기 숫자 위치 찾는 코드 작성) # 계산기에서 숫자 5 위치 찾는 코드(숫자5 캡처해서 저장해야함) # 주의 : 계산기가 화면에 보이게 떠있어야함 import pyautogui res = pyautogui.locateOnScreen("5.png") print(res)
Command Injection • OS Command Injection - 웹 서비스 기능에 따라 가끔 시스템 명령어를 사용하는 경우가 있다. 예를 들어 현제 서버의 업로드 디렉터리를 조회하는 경우 ls 명령어를 이용하여 결과 값을 웹 페이지에 출력하는 경우가 있다. 만약 시스템 함수의 인자 값을 사용자가 입력하거나 조작할 수 있다면 공격자는 자신이 원하는 시스템 명령을 수행 시키는게 OS Command Injection 공격이다. 메타 문자 설명 && 명령어 연속 실행(앞 명령어에 오류가 없어야 실행이 가능) || 명령어 연속 실행(앞 명령어에 오류가 나야 실행 가능) ; 명령어 구분자(앞 명령어 에러와 상관없이 실행 가능) %0a 개행 문자 • Secure Coding - 꼭 필요한게 아니라면 시스템 함수 사용 금지이며, 만약 필..