전체 글 58

컴파일러 작동 원리

소개컴파일러란 무엇일까? 프로그래밍을 해 본 사람이라면 여러 가지 언어로 코드를 작성한 후, run 버튼을 누르거나 혹은 직접 명령어를 입력하여 실행시켜본 경험이 있을 것이다. 텍스트 파일 형태의 소스 파일(source file)이 실행 파일 형태로 변화하는 과정이 궁금했던 사람 또한 많을 것이다(내가 그렇다). 그리하여 그 과정 中 컴파일러가 하는 일에 대해 알아볼 것이다.다시 본 질문으로 들어와서, 컴파일러란 무엇일까? 컴파일러는 단순히 번역기 이자 텍스트 처리 프로그램(text processor)라고 생각해도 무관하다. 앞서 스포했듯 텍스트 파일 형태의 소스 파일(source file)을 CPU가 직접 실행할 수 있는 실행 파일 형태로 번역해 주는 역할을 한다. 위 그림1 을 보면 이해가 쉬울 것이..

Race Condition

Race Condition 이란? 상황 하나를 가정해보자. num이라는 하나의 메모리에 5를 넣고, Process1은 해당 메모리에 1 더하기, Process2는 1 빼기를 진행 한다. 만일 두 프로세스가 동시에 num 메모리에 접근한다면 결과가 어떻게 될까? 5라는 값을 1더하고 1빼면 결과적으로 그대로 일 것 같다. 하지만 IMG1의 아래쪽을 보면 알 수 있듯이, num이 항상 5라고 확정지을 수는 없다. 위 상황을 Race Condition이라 한다. Race Conditon은 둘 이상의 프로세스가 공통 자원에 동시에 접근할때 발생하는 현상이다. 'race'의 의미대로 한정된 자원을 두고 서로 사용하려고 경쟁하는 상황이다. 공유 메모리를 쓰는 프로세스끼리는 이러한 Race Condition이 발생할..

사이버 공격: 국가의 적은 내가 될 수 있다

도서명 : 사이버전의 모든 것 작가명 : 박동휘 기간 : 2023/03/05 ~ 2023/03/07 출판사 : 플래닛미디어 2005년 에스토니아 정부는 법적으로 유효한 인터넷 기반 총선거를 시행한 최초의 국가였다. 인구의 절반 이상이 인터넷 뱅킹을 사용하고, 온라인을 통해 언제든 99% 이상의 공공 서비스를 이용할 수 있는 IT 강국이었다. 이러한 에스토니아를 국제적으로 'E-stonia'로 부를 지경이었다. 사이버 의존도가 남달리 높았던 에스토니아를 향한 2007년 러시아의 전면적 사이버 공격은 대재앙으로 다가왔다. 정부의 주요 웹사이트는 위·변조 공격을 받아 심하게 훼손당했고, 주요 인사들의 이메일 보관함은 스팸과 피싱 메일로 넘쳐났다. 정부 기관, 언론기관, ISP(인터넷 서비스 제공 회사), 학교..

독서 📚 2024.03.19

2023 PortSwigger Top 10 웹 해킹 기술

https://portswigger.net/research/top-10-web-hacking-techniques-of-2023 Top 10 web hacking techniques of 2023 Welcome to the Top 10 Web Hacking Techniques of 2023, the 17th edition of our annual community-powered effort to identify the most innovative must-read web security research published in the last year portswigger.net 웹 보안 분야 최고의 툴 Burp Suite로 유명한 PortSwigger 에서 지난달 19일 '2023 Top 10 웹 해킹 기..

나를 위한 PowerShell(7) : WMI 클래스 활용

오브젝트에 관한 내용을 모른다면 이해하기 어렵다. 이전 포스트를 보고 오는 것을 추천한다. 2024.03.01 - [programming ⌨/파워쉘 PowerShell] - 나를 위한 PowerShell(6) : Object 다루기 나를 위한 PowerShell(6) : Object 다루기 PowerShell은 객체 지향형 모델이다. 객체 지향형 모델은 여러 독립적인 부품들의 조합, 즉 객체들의 유기적인 결합으로 이루어진 모델이다. 사용자의 측면에서 아래 "Windows PowerShell in Action"의 저자 kortsec1n4mationm.tistory.com 이번 포스팅에서는 WMI(Windows Management Instrumentation)에 대해 알아볼것이다 WMI는 Windows 기반..

나를 위한 PowerShell(6) : Object 다루기

PowerShell은 객체 지향형 모델이다. 객체 지향형 모델은 여러 독립적인 부품들의 조합, 즉 객체들의 유기적인 결합으로 이루어진 모델이다. 사용자의 측면에서 아래 "Windows PowerShell in Action"의 저자 Bruce Payette의 말로 정리될 수 있겠다. 우리는 이미 누군가 정의해놓은 오브젝트들을 사용하고있다 다른 Unix-style shell은 보통 문자 입출력에 기반을 둔 text-based인 반면, PowerShell은 오브젝트를 다룬다. 그리하여 우리가 PowerShell을 통해 스크립트나 함수를 생성할 때면 항상 객체를 주고받는다 이는 다른 도구들과는 다른 PowerShell의 차별점이다. 아무리 도움말 시스템이 강력하더라도 objects에 대한 이해 없이 PowerS..

나를 위한 PowerShell(5) : Pipeline과 출력 형식

Pipeline 두 가지 이상의 구문을 연결하기 위한 방법이 뭐가 있을까? Unix 기반 운영체제 특히 리눅스를 자주 사용해 봤다면 한 번쯤 경험해 봤을 것이다. 바로 Pipeline이다. Pipe는 한쪽(왼쪽)의 출력을 다른 한쪽(오른쪽)의 입력으로 전달하는 기능을 담당한다. PowerShell에서 보통 Get과 Set동사를 조합하여 사용하는데, 그 예제를 따라해보자 예제 Get-Process | Stop-Process 실행 중이던 메모장과 그림판을 모두 종료하려 한다. Get-Process를 통해 프로세스 상태를 확인해 보니 각각 2개씩 켜져 있는 것을 확인했다. Get-Process notepad, mspaint Img2 출력 속 프로세스를 모두 종료시키려면 어떻게 해야 할까? 바로 pipe를 통해..

나를 위한 PowerShell(4) : 개인 설정과 ISE

쉬어가는 느낌으로 PowerShell 개인 설정에 관해 다뤄볼 예정이다. 우리가 PowerShell을 실행하면 가장 먼저 만나는 화면은 Img1과 같을 것이다 지금 내가 사용하는 환경이 보통의 경우와 조금 달라 정확하게 같진 않겠지만 크게 차이는 없다 여기서 개인 설정이라 함은 창 제목이라던지 실행 시 처음으로 출력되는 text와 같은 환경 값을 다룬다 이때 필요한 것이 PowerShell Profile이다. PowerShell Profiles Profile은 PowerShell이 시작될 때 실행되는 스크립트로, Users Documents 폴더의 PS1파일과 함께 실행된다 PS1파일에 관한 내용은 이전 포스팅을 참고하시길 2024.02.26 - [programming ⌨/파워쉘 PowerShell] -..

나를 위한 PowerShell(3) : Execution Policy와 우회

우선 아무 PowerShell 명령이 들어있는 ps1파일을 생성해 보자 New-Item -ItemType File -Path C:\Temp -Name pscript.ps1 ps1파일은 cmd의 batch파일과 같이 PowerShell 명령이 작성된 스크립트 파일이다. 생성되었다면 내용을 입력할 차례다 Add-Content -Path C:\Temp\pscript.ps1 -Value 'Get-Date' 생성한 pscript.ps1 스크립트를 실행해 보자 이 시스템에서 스크립트를 실행할 수 없다는 오류가 뜬다. 오늘 다뤄볼 주제는 바로 이 부분이다. Execution Policy 우선 Execution Policy에 대해 알아야 한다. PowerShell Execution Policy는 PowerShell이 ..

나를 위한 PowerShell(2) : 매개변수의 종류

본 내용은 이전 포스트와 연결됨 2024.02.25 - [programming ⌨/파워쉘 PowerShell] - 나를 위한 PowerShell(1) : 콘솔과 명령 나를 위한 PowerShell(1) : 콘솔과 명령 주변을 보면 윈도 운영체제를 사용하는 사람이 굉장히 많은 것을 알 수 있다. 이러한 환경에서 PowerShell은 자동화 스크립트와 같이 우리 업무의 효율을 높여줄 수 있고, 운영체제의 기능들과 상 kortsec1n4mationm.tistory.com 앞서 같이 해볼 문제가 하나 있다. 메모장 실행 후, PowerShell을 사용하여 이를 종료시켜라 가장 먼저 프로세스와 관련 있는 명령들을 찾아보자 Get-Command -Noun Process Debug, Get, Start, Stop, ..