일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 개발자
- 웹개발
- 인공지능
- system hacking
- 테크트렌드
- geminipro
- CTF
- burp suite
- WebHacking
- web hacking
- 웹해킹 기초
- overthewire
- sql injection bypass
- webhacking.kr
- 사이버보안
- lord of sqlinjection
- 정보보안
- XSS GAME
- SQL Injection
- 프로그래밍
- 코딩
- Wargame
- write up
- Over The Wire
- hackthissite
- web-server
- root me
- pythonprogramming
- 웹해킹
- Bandit
- Today
- Total
목록프로그래밍 (25)
컴맹에서 컴공 그리고 화이트 해커가 되는 그날까지

1. 삽입정렬(insertion sort) : 정의: 주어진 수열에서 맨 앞에 있는 원소가 정렬되어 있다고 하고 2번째 원소부터 정렬된 수열에서 오름차순으로 자기 위치를 찾아간다. Python 외부 루프(for i in range(1, len(arr)):)는 리스트의 첫 번째 원소를 제외한 모든 원소를 순회합니다. 첫 번째 원소는 이미 '정렬된' 부분으로 간주하기 때문입니다. 각 단계에서, key 변수는 현재 정렬되지 않은 부분의 첫 번째 원소를 저장합니다. 내부 루프(while j >=0 and key < arr[j] :)는 key보다 큰 모든 요소를 오른쪽으로 한 칸씩 이동시킵니다. 이 과정은 key를 올바른 위치에 삽입할 공간을 만듭니다. key가 최종적으로 정렬된 부분의 적절한 위치에 삽입됩니다...
시스템 해킹을 하게 되면서 보게될 어셈블리 명령어(Instruction) 중에 많이 보게 되는 명령어를 정리해 보았다. MOV: MOV EAX, 100 EAX에 100을 넣으라는 뜻이다. LEA: LEA EAX, [EAX + 1000]은 EAX에 1000을 넣은 값을 다시 EAX에 삽입하라는 뜻이다. 이처럼 연산을 포함할 수 있다. JMP: 특정 위치로 건너 뛰어 코드를 실행한다. JMP CODE라고 하면 CODE의 위치로 뛰어서 코드가 실행된다. CALL: 함수를 호출했다가 다시 원래 위치로 돌아올 때 사용한다. JMP와 다른 점은 실행한 뒤에 끝나게 되면 RET에 저장하고 다시 원래 상태로 돌아온다는 것이다. NOP: 아무 작업도 하지 않는 명령어. 1Byte의 빈 공간을 차지한다. RET: 현재 함..

클래스(Class): 반복되는 불필요한 소스코드를 최소화하면서 객체 지향 프로그래밍에서 데이터와 관련된 메서드(함수)를 하나의 단위로 묶어 관리할 수 있게 하는 것입니다. 클래스는 객체의 속성(attribute)과 행동(behavior)을 정의합니다. ex) 인스턴스: 클래스로 정의된 객체를 프로그램 상에서 이용할 수 있게 만든 변수입니다. 클래스의 맴버: 클래스 내부에 포함되는 변수입니다. 클래스의 함수: 클래스 내부에 포함되는 함수, 메서드라고 부릅니다. 상속: 다른 클래스의 맴버 변수와 메드를 물려받아 사용하는 기법입니다. 상속을 통해 코드 재사용이 증가하고 코드의 유지 보수가 편리해집니다. 기본 클래스(부모 클래스 또는 슈퍼 클래스)를 상속받아 새로운 클래스(자식 클래스 또는 서브 클래스)를 정의..
number = int(input()) 정수값을 입력 받을 것이다. list = [] 리스트를 만드는 방법 split_information = split_information.split() '.split()' 메서드는 파이썬 문자열을 지정한 구분자를 기준으로 나누는 함수입니다. 문자열을 구분자를 기준으로 분리하여 리스트로 반환합니다. 기본적으로는 공백(스페이스, 탭, 개행)을 구분자로 사용합니다. people.append({"이름" : name, "나이" : age}) people: 리스트 변수, 딕셔너리들을 저장할 리스트입니다. .append(): 리스트 메서드, 괄호 안에 전달된 값을 리스트에 추가합니다. {"이름": name, "나이" : age}: 딕셔너리 리터널. "이름" 키와 name 변수의 ..

함수 문자열 함수 DBMS 함수 사용법 ORACLE SUBSTR SUBSTRB 함수(문자열, 시작위치, 길이) MSSQL SUBSTRING MYSQL SUBSTRING SUBSTR MID 문자, 아스키 코드 변환 함수 DBMS CHAR → ASCII ASCII → CHAR ORACLE ASCII CHR MSSQL ASCII CHAR MYSQL ASCII, ORD CHAR CONCAT을 사용하여 아스키 값을 합쳐서 문자를 만든다 COUNT 함수 SELECT COUNT(COLUMN) FROM [TABLE] 테이블에 있는 레코드 갯수를 구하는 함수 길이 함수 DBMS 함수 ORACLE LENGTH MSSQL LEN MYSQL LENGTH 조건문 DBMS 구문 ORACLE DECODE 함수, CASE WHEN ..
1. 산술 연산자 연산자 의미 우선 순위 표현식 예시 + 더하기 2 피연산자1 + 피연산자2 1 + 2 - 빼기 2 펴인산자1 - 피연산자2 2 - 1 * 곱하기 1 피연산자1 * 피연산자2 5 * 3 / 나누기 1 피연산자1 / 피연산자 2 8 / 2 2. 비교 연산자 연산자 의미 표현식 > 크다 피연산자1 > 피연산자2 >= 크거나 같다 피연산자1 >= 피연산자2
1. CREATE, DROP 구문 CREATE 구문 - 데이터베이스 생성 CREATE DATABASE [DB_NAME]; CREATE DATABASE test_db; CREATE 구문 - 테이블 생성 CREATE TABLE [NAME] ([COLUMN_NAME]) [DATA_TYPE]); CREATE TABLE test_tb (name char(20), age int); DROP 구문 - 데이터베이스/테이블 삭제 DROP [DATABASE/TABLE] [NAME]; DROP TABLE test_tb; 2 INSERT, SELECT, UPDATE, DELETE 구문 ★INSERT 구문 - 데이터 삽입 INSERT INTO [TABLE_NAME] ([COLUMN1]...) VALUES ([DATA1]...)..

여기 암호가 있습니다. 'YT LJY QTXY NX YT KNSI F BFD' 이 암호문 이외의 다른 정보는 아무것도 없습니다. 우리는 이 암호문의 형상을 보고 카이사르 암호문이라고 가정해 봅시다. 카이사르 암호는 평문을 구성하는 모든 문자를 일정 크기만큼 이동하여 만든 암호문이므로, 이 암호문을 해독하기 위해서는 모든 문자를 1부터 26까지 이동시켜 보면 됩니다. 이런 암호 공격 방법을 무차별 대입 공격 또는 전수 조사 공격이라고 하고 영어로는 Brute Force Attack이라고 합니다. 이 코드는 저번 글에서 만든 카이사르 암호 도구 소스코드를 약간 수정한 것입니다. 코드 1.5에서 추가된 부분은 attack(msg)입니다. attack(msg)는 우리가 습득한 암호문을 인자로 받아서 암호문의 각..