전체 글 (48) 썸네일형 리스트형 시스템보안^^...공부기록 : 어셈블리어, pwntools 사용법, 시스템해킹 풀기 전 사전지식~~~~😇 아무것도 모르는데 시스템 보안 수업 듣고 후회하며 작성하는 공부 기록...! 📚시스템보안을 위한 사전지식..? 1. 시스템의 구조 로더의 입장에서 바라본 세그먼트!! bss를 데이터 영역이라고 볼 수 도 있음 일단 따로 씀 세그먼트는 코드, 데이터, bss, stack, heap 으로 나뉨 Text segment : 코드가 올라감 ㄹㅇ 코드 Data segment: 초기화 된 전역변수들 BSS : 초기화 되지않은 전역변수들 stack : 함수, 지역변수들 ***스택은 밑으로 자라남! (높은 주소에서 낮은 주소로 자란다는 뜻, 스택에서 가장 많은 취약점이 발견됨) heap : 동적할당되는 변수들 참고자료 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=t.. [Born2beroot] born2beroot 개념 ✅ virtual machine 이란? 1. 하이퍼바이저 type1 (native 혹은 bare-metal이라고도 함) : 어떤 소프트웨어도 담겨있지 않은 하드웨어 위에 하이퍼바이저 , host os가 없음. 하이퍼바이저가 os에 종속되지 않고 다수의 os를 관리 2. 하이퍼바이저 type2 (호스트형가상화, 이게 우리가 쓰는 virtualBox) : 일반적으로 사용하는 방식임. host os위에 하이퍼바이저 그 위에 guest os를 돌리는 방식 https://pearlluck.tistory.com/121 https://gmldbd94.tistory.com/117 ✅ debian vs centOS 1. debian - 배포는 느리지만 안정성 높음 - 온라인 커뮤니티에서 개발한 리눅스 배포판 - 개인 데.. [Born2beroot] 리눅스 sudo 설치 및 설정하기, secure path 설정하기, 그룹 추가하기 ✅ sudo 설치 및 설정 1. 루트계정으로 전환 su 2. sudo 패키지 설치 apt install sudo 3. id가 user인 사용자 추가 adduser user 4. id가 user인 기존 사용자를 sudo 그룹에 추가 adduser user sudo 5. 사용자 셸에 로그인 후 다음 명령으로 사용자에게 권한 부여되었나 확인 sudo -v https://documentation.arcserve.com/Arcserve-UDP/available/7.0/KOR/Bookshelf_Files/HTML/UDPLUG/Content/AgentforLinuxUserGuide/udpl_config_sudo_debian.htm ✅ /etc/sudoers 파일 설정 sudo는 잠시 다른 계정의 권한을 빌려옴. v.. [알고리즘 이론] 정렬(선택정렬, 삽입정렬, 퀵정렬, 계수정렬) (2) 1편은 아래 링크로! https://jyoonit.tistory.com/30 [알고리즘 이론] 정렬(선택정렬, 삽입정렬, 퀵정렬, 계수정렬) ⚡️ 선택정렬 데이터가 무작위로 있을 때, 이중 가장 작은 데이터를 맨 앞에 있는 데이터와 바꾸고, 그다음 작은 데이터를 선택해 앞에서 두번째 데이터와 바꾸고 ... (반복) #선택정렬 arr = list(m jyoonit.tistory.com ✅ 예제 : 위에서 아래로 수열이 주어짐. 수열을 역순으로 정렬하기. 💡내 풀이 n = int(input()) arr = [] for i in range(n): arr.append(int(input())) arr = sorted(arr, reverse = True) for i in range(n - 1): print(arr[.. 토스페이스 토스 이모티콘 사용하기👻 토스에서 이모지 폰트가 나왔어요! '토스페이스'라고 합니다!!! https://toss.im/tossface#create-emoji 토스의 이모지 폰트, 토스페이스 3,600개의 새로운 표정을 만나보세요. toss.im 너무 귀엽쥬??ㅎㅎㅎ 캐릭터도 만들 수 있어요 화난 병아리//ㅋㅋㅋㅋㅋㅋ 무료 폰트를 다운받아서 사용할 수 있답니당~~ 맥에서만 적용가능하다니 아쉽네요..ㅜㅜ [알고리즘 이론] 정렬(선택정렬, 삽입정렬, 퀵정렬, 계수정렬) ⚡️ 선택정렬 데이터가 무작위로 있을 때, 이중 가장 작은 데이터를 맨 앞에 있는 데이터와 바꾸고, 그다음 작은 데이터를 선택해 앞에서 두번째 데이터와 바꾸고 ... (반복) #선택정렬 arr = list(map(int, input().split())) for i in range(len(arr)): min_index = i for j in range(i + 1, len(arr)): if arr[j] < arr[min_index] : min_index = j arr[i], arr[min_index] = arr[min_index], arr[i] #swap print(arr) ➰선택정렬의 시간복잡도 = O(n^2) ⚡️ 삽입정렬 2번째 원소부터 정렬시작. 자신의 앞 인덱스 숫자에 자기 자신보다 작은 수가 있으.. [알고리즘 이론] DFS, BFS (2) 1편은 아래 링크로! https://jyoonit.tistory.com/28 [알고리즘 이론] DFS, BFS (1) 🌀 그래프 🌀 프로그래밍에서 그래프는 크게 2가지로 나타낼 수 있음. 1. 인접행렬 : 2차원 배열로 그래프를 표현 2. 인접 리스트 : 리스트로 그래프를 표현 #인접행렬 방식 INF = 999999999 graph = [ [0 jyoonit.tistory.com ✅예제 : 음료수 얼려먹기 n * m 크기의 얼음틀. 0은 구명이 뚫려있는 부분, 1은 칸막이가 존재하는 부분. 구멍이 뚫려있는 부분끼리 상하좌우로 붙어있으면 연결되어 있다고 간주. 얼음 틀의 모양이 주어질 때 만들어지는 얼음의 개수? 💡내 풀이 n, m = map(int, input().split()) icetray = lis.. [알고리즘 이론] DFS, BFS (1) 🌀 그래프 🌀 프로그래밍에서 그래프는 크게 2가지로 나타낼 수 있음. 1. 인접행렬 : 2차원 배열로 그래프를 표현 2. 인접 리스트 : 리스트로 그래프를 표현 #인접행렬 방식 INF = 999999999 graph = [ [0, 7, 5], [7, 0, INF], [5, INF, 0] ] #인접리스트 방식 graph2 = [[] for i in range(3)] #노드 0에 연결된 노드정보 graph2[0].append((1, 7)) graph2[0].append((2, 5)) #노드 1에 연결된 노드정보 graph2[1].append((0,7)) #노드 2.. graph2[2].append((0,5)) 🌀 DFS 🌀 Depth-First-Search, 깊이 우선 탐색 그래프에서 깊은 부분을 먼저 탐색.. 이전 1 2 3 4 5 6 다음 목록 더보기