study 59

x64 어셈블리 언어 - 주요 명령어 정리 (1)

데이터 이동 mov dst, src : src에 들어있는 값을 dst에 대입 mov rdi, rsi rsi의 값을 rdi에 대입 mov QWORD PTR[rdi], rsi rsi의 값을 rdi가 가리키는 주소에 대입 mov QWORD PTR[rdi+8*rcx], rsi rsi의 값을 rdi+8*rcx가 가리키는 주소에 대입 lea dst, src : src의 유효 주소(Effective Address, EA)를 dst에 저장 lea rsi, [rbx+8*rcx] rbx+8*rcx 를 rsi에 대입 퀴즈! [Register] rbx = 0x401A40 ================================= [Memory] 0x401a40 | 0x0000000012345678 0x401a48 | 0x0..

study/보안 2023.09.08

윈도우 메모리 구조

섹션 윈도우의 PE 파일은 PE 헤더와 1개 이상의 섹션으로 구성되어 있음 섹션: 유사한 용도로 사용되는 데이터가 모여있는 영역 .text: PE의 코드가 적혀있음 .data: PE가 실행중에 참조하는 데이터가 적혀있음 PE 헤더에 저장되는 섹션에 관한 데이터 섹션의 이름 섹션의 크기 섹션이 로드될 주소의 오프셋 섹션의 속성과 권한 .text 실행 가능한 기계 코드가 위치하는 영역 읽기/실행 권한 부여 (프로그램이 동작하려면 실행할 수 있어야함) 쓰기 권한은 제거함 -> 공격자가 악의적인 코드 삽입 가능 ex) 정수 31337을 반환하는 main 함수가 컴파일 되면 554889e5b8697a00005dc3라는 기계코드로 변환되는데, 이 코드가 세그먼트에 위치하게 됨 int main() { return 3..

study/보안 2023.09.07

정적분석 vs 동적분석

정적 분석 프로그램을 실행시키지 않고 분석하는 방법 [장점] 프로그램의 전체 구조를 파악하기 쉬움 구성된 함수, 함수간의 호출관계, 사용된 API, 포함된 문자열 등을 종합적으로 살펴볼 수 있음 분석 환경의 제약에서도 비교적 자유로움 안드로이드의 apk 파일을 소프트웨어 사용하지 않고도 분석 가능 바이러스와 악성 프로그램의 위협으로부터 안전함 바이러스를 동적 분석한다면 실행한 컴퓨터가 감염될 수 있음 정적 분석은 프로그램을 실행하지 않으므로 감염이 되지 않음 [단점] 난독화(Obfuscation)가 적용되면 분석이 매우 어려워짐 난독화가 적용되면 코드가 변형되어 실행흐름을 파악하기가 어려워짐 해제(Deobfuscation)하기 위한 여러 연구가 진행되고 있지만, 여전히 난독화 서비스들을 모두 무력하하는 ..

study/보안 2023.09.07

Computer Architecture 컴퓨터 구조

컴퓨터 구조와 명령어 집합 구조 컴퓨터 구조 컴퓨터가 효율적으로 작동할 수 있도록 HW 및 SW의 기능을 고안하고, 이들을 구성하는 방법을 말함 컴퓨터의 기능 구조에 대한 설계, 명령어 집합 구조, 마이크로 아키텍처, 기타 하드웨어 및 컴퓨팅 방법에 대한 설계 등 포함 ‘컴퓨터의 기능 구조에 대한 설계’ : 컴퓨터가 연산을 효율적으로 하기 위해 어떤 기능들이 컴퓨터에 필요한지 고민하고 설계하는 분야 폰노이만 구조, 하버드 구조, 수정된 하버드 구조 명령어 집합 구조 : CPU의 명령어에 대한 설계 → CPU가 처리해야하는 명령어를 설계하는 분야 ARM, MIPS, AVR, 인텔 X86 및 x86-64 마이크로 아키텍처 : CPU의 하드웨어적 설계 → 정의된 명령어 집합을 효율적으로 처리할 수 있도록, C..

study/보안 2023.09.07

논문 읽는 법

first pass: general idea about the paper 첫번째 읽기: 논문에 대한 전반적인 내용의 틀을 이해함 second pass: grasp the paper's content, but not its details 두번째 읽기: 논문의 내용을 대략 이해함 third pass: understand the paper in depth 세번째 읽기: 논문을 심도있게 이해함 First pass - 첫번째 읽기 첫번째 읽기는 빠르게 논문을 스캔하여 어떤 내용인지를 파악하는 것이다. 5분에서 10분정도 걸릴것이다. 1. 천천히 제목, 요약과 서론을 읽어본다. 2. 각 섹션과 부섹션의 제목을 읽어본다. 나머지는 읽지 않는다. 3. 결론을 읽어본다. 4. 참고..

study/논문 2023.09.07

[ECOPS 백엔드 스터디] 파이썬 가상환경 및 장고 설치

4월 16일에 두번째 미팅을 진행했다. 이번 미팅에서는 서로의 깃헙을 공유하고 깃헙 스터디 진행상황을 공유했다. 나는 파이썬 가상환경 및 장고 설치하는 것을 설명해주고 팀원들은 다 같이 따라하는 시간을 가졌다. 파이썬 가상환경 및 장고 설치 1. 파일 디렉토리 만들기 mkdir (--프로젝트 디렉토리 이름--) 2. 해당 폴더 들어가서 가상환경 설치하기 python -m venv myvenv (--가상환경 이름, 보통 venv나 myvenv 등 많이 씀--) cd myvenv 3. bin 폴더 들어가서 실행 cd bin source ./activate 4. bash 창에 활성화된 가상환경 명이 나온 상태로 장고를 설치해줌 // (myvenv) ~~~ -> 이런식으로 뜰거임 pip install djang..

study/개발 2023.05.31

[ECOPS 백엔드 스터디] 장고 및 깃헙 강의 추천

2023년 4월부터 이화여자대학교 소속 사이버보안 동아리 ECOPS에서 WEB TF 백엔드 리드 개발자를 맡게 되었다! 아직 정식 이캅스 웹페이지 개발 들어가기 전까지 시간이 좀 남아서 팀원들과 먼저 스터디를 진행하기로 했다. 나는 이때까지 몇개의 프로젝트를 진행하면서 장고로 백엔드 개발을 해본 경험이 있었는데 대부분의 팀원들은 경험이 아예 없는 친구들이 대다수여서 일단 깃헙에 대해서 설명하고 스터디 진행 방식을 정하고 스터디에 도움이 될 만한 사이트들을 정리해서 알려줬다. Django를 위한 초보자 가이드: 이 튜토리얼은 Django를 이용하여 웹 어플리케이션을 만드는 단계별 가이드입니다. 개발 환경 설정부터 완성된 어플리케이션 배포까지 모두 다루며, 데이터베이스 통합, 사용자 인증 처리 및 부트스트랩..

study/개발 2023.05.31

GitHub에 Nuget Package 배포하기 - 2

본격적으로 패키지를 배포해봅시다 ​ .csproj 수정 ​ 게시할 패키지의 *.csproj 파일에 아래와 같이 프로퍼티를 추가합니다. (패키지 더블 클릭하면 생김) netstandard2.0 [PACKAGE_NANE] 1.0.0 [AUTHOR] [COMPANY] https://github.com/[OWNER]/[REPOSITORY] 그리고 팁을 주자면 이거는 직접 수정하는 것 보다 패키지를 우클릭하면 속성창에서 손쉽게 설정이 가능하다!! ​ 이거는 내가 새로 만들고 있는 누겟 패키지인데, 이걸로 한번 설정을 해보자!! 지금 보면 아무 설정도 안건드린건데, 여기서 한번 속성을 건드려보자!! (Nullable은 왜인지 모르게 .NET 6 부터 자꾸 nullable 경고가 뜨길래 그냥 disable로 수정하면..

study/github 2023.05.31
728x90