분류 전체보기 189

V8(d8) 빌드 및 gdb를 이용한 디버깅 방법

타겟 빌드V8 빌드 도구(depot_tools) 다운ninja나 관련된 모든 빌드 도구들이 depot_tools에 들어있다.git clone https://chromium.googlesource.com/chromium/tools/depot_tools.gitexport PATH=$PATH:$(pwd)/depot_toolsV8 소스코드 다운fetch v8cd v8# 특정 CVE가 수정되기 전의 특정 커밋으로 이동 (예: 2024년 3월 중순)git checkout 28877c5520gclient sync V8 빌드 (d8 쉘 생성)./tools/dev/gm.py x64.debug./tools/dev/gm.py x64.release V8 실행./out.gn/x64.release/d8 *.js# 혹은./out..

Configuration 2026.02.23

[MCP] IDA pro MCP with Github copilot using VScode Setting

https://github.com/mrexodia/ida-pro-mcp GitHub - mrexodia/ida-pro-mcp: AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP.AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP. - mrexodia/ida-pro-mcpgithub.com중요반드시 Python 3.11 이상 버전을 사용해야한다ida-pro-mcp 설치 후 파이썬 연결 잘 되어야 ida pro Edit->Plugins->MCP에 뜬다(IDA Pro 재부팅 ..

공부한다는 것은 고작 의사소통을 위함이다

다른 분야의 논문을 보거나 내가 잘 모르는 학술 문서 같은 것들을 보면대체 이게 무슨 말인지 모르겠다... 하는 경우가 많다. 이때 이 말이 무슨 뜻인지 모른다는 것은 크게1) 모르는 단어가 많다2) 단어는 알지만 그 안에 담긴 논리를 이해하기 어렵다로 생각할 수 있는데대체로 2)인 경우는 많이 없다. 예를 들어서 '중앙 은행의 금리가 낮아질수록 투자가 활발해질 수 있다.' 와 같은 문장이 무슨말인지 모르겠어도 '은행에서 이자를 조금만 주면 그 돈을 꺼내서 주식이나 부동산 사는게 낫다.' 라는 문장이 무슨 뜻인지 이해를 못하는 경우는 많이 없다는 것이다. (당연히 못할 수도 있다.) 그러니까 문장에 담긴 전문적인 단어를 풀어서 서술하면 그 문장이 담고있는 아이디어 자체는 이해하기 어려운 경우가 많이 없다..

일기 2025.10.23

인간은 프로그램을 완벽하게 이해할 수 있을까?

모든 프로그램은 인간이 만든다. 그렇다면 당연히 인간은 모든 프로그램의 동작을 이해할 수 있을까? 당연히 그렇다고 생각할 수 있다.'지들이 하나부터 열까지 만들어 놓고 모르겠다고?' 프로그램의 동작을 완벽하게 이해하는 건 사실억울하지만 아직까지 인류가 해결하지못한 과제다. 대체 왜 인간이 만들어 놓은 프로그램을인간이 이해할 수 없다는 걸까?1. 추상화(Abstractaion)1과 2를 더해보자.어떻게 더할 수 있을까?그냥 1과 2를 더하면 된다. 그럼 3이니까고결하다.이 답변은 고결하다.매우 고차원적이고 신성한 답변이다.영락없이 당신은 만물의 영장이자상당한 수준의 지능을 가진 ‘인간’임을여과없이 증명하는 답변이다.다시 질문을 해보겠다.1과 2를 어떻게 물리적 실체로 표현하고 1과 2는 어디에 저장 해두었..

카테고리 없음 2025.08.29

인간은 프로그램의 동작을 완벽하게 이해할 수 있을까 (1)

들어가며모든 프로그램은 인간이 만든다. 그렇다면 당연히 인간은 모든 프로그램의 동작을 이해할 수 있을까? 당연히 그렇다고 생각할 수 있다.'지들이 하나부터 열까지 만들어 놓고 모르겠다고?' 애초에 세밀한 인간의 지시없이는프로그램이 실행조차 되지않기 때문이다. 프로그램의 동작을 완벽하게 이해하는 건 사실억울하지만 아직까지 인류가 해결하지못한 과제다. 대체 왜 인간이 만들어 놓은 프로그램을인간이 이해할 수 없다는 걸까?1. 추상화(Abstractaion)인간이 이해하기위한 프로그래밍 언어 - 프로그래밍 언어의 계층(level)1과 2를 더해보자.어떻게 더할 수 있을까?그냥 1과 2를 더하면 된다. 그럼 3이니까1 + 2??=> 3!고결하다.이 답변은 고결하다.매우 고차원적이고 신성한 답변이다.영락없이 당신..

공부/JUN STUDY 2025.08.12

Ubuntu Vmware Disk 공간 늘리기

1단계: VMware에서 가상 디스크 크기 늘리기VM 종료Ubuntu 가상 머신이 실행 중이라면 완전히 종료시킵니다. (Suspend 상태 안 됨)VM 설정 열기VMware Workstation → 해당 VM 선택 → "Edit virtual machine settings"Hard Disk 선택왼쪽 목록에서 "Hard Disk (SCSI)" 선택"Expand" 클릭오른쪽에 있는 "Utilities" → "Expand..." 클릭새 디스크 크기 입력원하는 크기(MB/GB 단위)로 입력 (예: 기존 20GB → 40GB)확인 후 저장"Expand" 누르면 물리적인 디스크 크기 확장됨→ 그러나 Ubuntu 안에서는 아직 이 변경사항이 반영되지 않음2단계: Ubuntu 내부에서 파티션과 파일시스템 확장Ubunt..

파이썬에서 스크립트 기준 경로로 설정하는 법

1. __file__현재 실행 중인 스크립트의 경로를 나타냄 (파일명까지 포함).2. os.path.abspath(__file__)__file__의 절대 경로를 반환함. (예: /home/user/project/script.py)3. os.path.dirname(...)디렉토리 경로만 분리함. (예: /home/user/project)SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) 모든 경로를 SCRIPT_DIR 기준으로 작성하면 다음처럼 안전하고 유연해짐 이후에 해당 경로를 기준으로 상대경로를 아래와 같이 설정해서 사용해주면 됨os.path.join(SCRIPT_DIR, "logs/norm_symbols") 이 방식은 어떤 경로에서 실행해도 항상 스크..

certbot 사용하여 https 인증받기

0. 일단 http(80) 포트 끄기1. 발급 받기2. 경로 확인해서 .pem 파일들 서버 프로그램에 먹이기3. 재발급 0. 라이브러리 설치 및 관련 포트 끄기1. certbot 설치 (Ubuntu 기준)sudo apt updatesudo apt install certbot python3-certbot-nginx2. Nginx 일시 중지 (도커 컨테이너 멈춤)docker-compose stop nginx(도커 아닌경우) 로컬에서 Nginx종료Problem binding to port 80: Could not bind to IPv4 or IPv6. 오류 떴을때# process 확인sudo lsof -i :80# nginx 중지sudo systemctl stop nginx# nginx 재시작sudo syst..

카테고리 없음 2025.05.14