분류 전체보기 (12) 썸네일형 리스트형 Code is unreachable Pylance vscode에서 파이썬 코드를 작성하던 도중 분명 수정을 했는데 똑같은 부분이 계속 에러가 나서 이상해서 살펴보니 위의 else문 뒤로 Code is unreachable Pylance 라는 문구로 코드가 잡히지 않는 에러? 같은 것이 떠서 변경사항이 적용되지 않았던 것이었다.https://stackoverflow.com/questions/68789213/i-am-getting-an-error-code-is-unreachable-pylance-what-that-mean-or-am-i-doing i am getting an error "Code is unreachable Pylance" what that mean or am i doing any mistake in my code?def percent(mar.. [Dreamhack] return_address_overwrite https://dreamhack.io/wargame/challenges/351 Return Address OverwriteDescription Exploit Tech: Return Address Overwrite에서 실습하는 문제입니다.dreamhack.io 강의내용과 숫자까지 완전히 똑같은 문제라 어떻게 풀어야 할지는 강의에 다 나와있다. 스택프레임이 어디까지 확장되어있는지만 disassemble을 통해서 확인한 후 saved rbp 즉 sfp까지 포함해서 덮어쓰면 된다. 다만 이걸 바이트코드 형태로 넘겨줘야하는데, shell_basic에서 했던 pwntools을 통해 넘겨주면 된다.#!/usr/bin/env python3from pwn import *context.arch="amd64"p=remote.. [Dreamhack] shell_basic 문제풀이 https://dreamhack.io/wargame/challenges/410 shell_basicDescription 입력한 셸코드를 실행하는 프로그램이 서비스로 등록되어 작동하고 있습니다. main 함수가 아닌 다른 함수들은 execve, execveat 시스템 콜을 사용하지 못하도록 하며, 풀이와 관련이 없는dreamhack.ioshellcraft라는 파이썬 툴을 사용하면 쉽게 할 수있다는데, 우선 직접 쉘코드를 짜보는 식으로 진행했다.main 함수를 살펴보면 execve 시스템콜은 막혀있고read(0, shellcode, 0x1000);을 통해 STDIN을 나타태는 0을 통해 사용자에게 인풋을 받아서 그걸 쉘코드로 인식하는구나. 라고 알 수 있다.execve를 사용하지 못하기 때문에 orw 쉘코드.. [어셈블리어] 데이터 전달 방식 *intel 문법의 기준으로 작성된 글입니다.0x68732f6e69622f 라는 문자열을 rdi 레지스터에 전달하고 싶다고 하자.보통은 mov rdi, 0x68732f6e69622f를 떠올릴것이다. 나도 직관적으로 그렇게 적곤했다. 그러나 다른 레퍼런스에서는mov rax, 0x68732f6e69622fpush raxmov rid, rsp의 형태로 작성하는 것을 볼 수 있었다. 왜 한 줄로 끝낼 수 있는 것을 굳이 스택 포인터를 통해 넘겨줄까?차이는 문자열을 직접 레지스터[rdi]에 전달하냐 아니면 주소를 통해 전달하냐이다. 결론은 주소를 통해서 전달하는 것이 훨씬 더 안정적이다.예제인 문자열은 8바이트를 넘지 않아 데이터 전달 중에 잘려서 부분만 전달되거나 하지 않는다. 하지만 8바이트 이상의 데이터인 .. MakeFile이란? 정의부터 문법까지 배경 지식리눅스의 make 명령어를 이해하려면, 기본적인 compilation system을 이해하고 있어야 한다. 시스템 프로그래밍 과목을 수강하면 배웠을 것이라 생각하고 간단하게 백그라운드를 설명하겠다.우리가 흔히 알고 있다. main.c 라는 파일을 작성하면 그 파일이 우리가 아는 프로그램으로 작동되기까지 여러 과정들이 존재한다.[1] main.c (source code) > [2] main.s (assembly file) > [3] main.o (object file) > [4] main.out (executable file)제너럴하게 [1]~[3]의 과정을 컴파일이라고 하고, 오브젝트 파일이 생성되면, 그 파일들을 묶는 [4]의 링킹과정을 통해서 최종 실행파일이 생성된다. MakeFile 정의M.. [Troubleshooting] vscode ros2 include error ROS2 official documentation에서 제공하는 demo 코드를 vscode를 통해서 실습하려는 과정에서#include "rclcpp/rclcpp.hpp"#include "std_msgs/msg/string.hpp"헤더 파일을 불러오는 부분에서 includePath erorr가 떴다. C/C++ Configurations 설정에서 Include path 설정에서 ros 경로를 추가해주면 해결가능하다.${workspaceFolder}/**/opt/ros/foxy/include/**/usr/include/eigen32,3번째 라인 추가. foxy라고 되어있는 경우에 해당되는 ros version을 써주면 된다. [환경 설정] 아나콘다 환경으로 CUDA 환경 구축하기 w/ PyTorch 코랩의 한계를 마주치고, 로컬에서 딥러닝 환경을 구축할 필요성을 느끼게 되었다.Google Colab이 예전보다 많이 런타임 세션이 줄어들었다고 풍문으로만 들었는데, 직접 경험해보니 이제 코랩에서는 못하겠구나라는 생각이 들었다. 그래서 실습실 컴퓨터를 이용하여 직접 환경을 구축하기로 마음먹었다.콘다 가상환경을 이용하여 프레임워크를 구축하면 좋다고 들어서 콘다 위에 빌드한다. 만약 콘다를 사용하지 않고 로컬에서 구축하게 된다면 1. 자기 컴퓨터 스펙에 맞는 CUDA 버전을 확인 2. 사용하고자하는 라이브러리-ex: pytorch, tensorflow등에 맞는 버전의 CUDA로 크로스 체크 후 설치 3. cuDNN도 마찬가지의 스텝에 따라 설치. 이와 같은 스텝을 밟아야 하므로 복잡해진다.하지만 아나콘다 환.. [Web Server 구축] Docker를 사용해서 웹서버 구축하기 with 공유기 DDNS 기능 2024-1 오픈소스 과목 과제로 개인 홈페이지를 만드는 것을 진행하고 있다. 깃헙에서 제공하는 서버를 사용하면 편하지만 가산점(^^)이라는 존재가 있어서 자체적으로 구축하고 싶어졌다. 맥을 사용하는 입장에서 Apache가 내장되어 있기 때문에 바로 로컬에서 웹서버를 구축할 수 있겠지만, 뭔가 로컬에 구축하면 설정이 꼬이거나 여러 보안적 측면도 고려하게 되어서 도커를 사용해서 구축하기로 결심했다. 구축하는 과정은 꽤 간단하다. 1. 간단한 웹 서버 구축 1-1. 기본적인 Dockerfile # Use Apache HTTP Server official image FROM httpd:2.4 # Copy local web files into the container COPY ./ /usr/local/apach.. 이전 1 2 다음