SalRyeoJuSeYo
close
프로필 로고

SalRyeoJuSeYo

    • 카테고리 (95)
      • Web Application (6)
        • 필기 (5)
        • 실습 (1)
      • Information Security (8)
        • 사이버범죄심리학 (1)
        • 정보보안개론 (2)
        • 암호학 (3)
      • Android (12)
        • 필기 (6)
        • 실습 (6)
      • System & Reversing (17)
        • 필기 (13)
        • 실습 (4)
      • IoT(사물인터넷) (2)
        • 필기 (2)
        • 실습 (0)
      • Digital Forensic (43)
        • 필기 (9)
        • Anti Forensic (1)
        • Dreamhack (9)
        • CTF (16)
        • 기타정보 (3)
        • 디지털포렌식전문가2급 (3)
      • Programming (2)
        • 다인 프로젝트 (2)
        • 개인 프로젝트 (0)
      • Computer Engineering (1)
        • 자료구조 (1)
  • mode_edit_outline글작성
  • settings환경설정
  • 홈
  • 태그
  • 방명록
728x90
Tmux 설치 및 주요 사용법

Tmux 설치 및 주요 사용법

Tmux 설치터미널 화면을 분할해서 사용하고자 할 때 흔히 'Terminal multiplexe' 종류의 소프트웨어를 사용하게 되는데, 오늘 다루고자 하는 'tmux'가 그의 대표격이다. tmux는 각 운영체제의 패키지 관리자를 이용해 사용할 수 있으며 이 게시글에서는 유닉스/리눅스 기반 환경 기준으로 서술하였다. sudo apt-get install tmux 설치가 완료된 후, 실행하고자 할 때는 그냥 tmux 명령만 입력하면 된다. Tmux 주요 사용법tmux //세션 생성 tmux new -s tmux new-session -s // 이름을 지정하여 세션 생성 [Ctrl] + b, $ // 세션 이름 수정 [Ctrl] + b, d // 세션 detach tmux ls // 세션 리스트보기 tmux ..

  • format_list_bulleted System & Reversing/필기
  • · 2023. 4. 4.
  • textsms
pwndbg 설치 및 사용 방법

pwndbg 설치 및 사용 방법

PWNDBG 설치 seKUrity에서는 pwndbg랑 tmux가 이미 설치된 서버에서 실습을 했지만 나중을 위해 설치 방법부터 알아보겠다. 🖇️https://github.com/pwndbg/pwndbg GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made Easy Exploit Development and Reverse Engineering with GDB Made Easy - GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB Made Easy github.com git clone [URL] [DIRECTORY] git clo..

  • format_list_bulleted System & Reversing/필기
  • · 2023. 4. 3.
  • textsms
[CrackMe#4] test.exe 루틴 분석 및 풀이

[CrackMe#4] test.exe 루틴 분석 및 풀이

분기문 왕창의 난제가 등장했다. 일주일이 넘도록 못 풀었던 문제를 드디어 풀어서 기뻤다. crackme 3번 풀이와 마찬가지로 시리얼 값을 입력 받는 것 같은 %S로 이동해보자. F9로 해당 위치까지 한번해 실행시킨 뒤 본격적인 루틴 분석을 했다. 첫번째 test.00401160 함수 호출에서는 비교값(hACKErS)를 넣고 연산을 수행한다. -> 굳이 F7로 들어가지 않아도 됨. 두번째 test.00401160 함수 호출에서는 사용자 입력값(0123456)를 넣고 연산을 수행한다. 슬래시(/)로 구분하여 앞쪽이 비교값(hACKErS)이고 뒤쪽이 사용자 입력값(0123456)이다. 입력값과 비교값을 모두 확인한 후에는 eax와 edx에 각각 비교값과 사용자 입력값을 넣어 위의 연산을 수행한다. 여기서 눈..

  • format_list_bulleted System & Reversing/실습
  • · 2023. 3. 31.
  • textsms
[CrackMe#3] CrackMe3.exe 루틴 분석 및 풀이

[CrackMe#3] CrackMe3.exe 루틴 분석 및 풀이

code 영역 우클릭 > search for > All referenced Text string wrong word!!! 가 있는 걸보니 앞 부분에서 입력값을 검사하는 것 같다. 더블 클릭으로 따라 들어간 뒤 위로 스크롤하다 보면 GetDlgItemTextA 함수가 있는데, 아마도 여기서 키를 가져오는 것 같다. 그렇다면 함수에 브포를 걸고 프로그램을 실행시켜 보았다. 당연하게 입력폼이 뜨고, 아무 문자열이나 넣어서 ok를 누르면 F7을 통해 GetDlgItemTextA로 들어갈 수 있다. 해당 함수에 들어가서 계속 F7, F8을 누르며 따라가다가 다음과 같은 문자열을 발견했다. 4011CA에서는 내가 입력한 값이 stack에 lea 되고, 4011CE에서는 키값으로 보이는 문자열 infinity가 st..

  • format_list_bulleted System & Reversing/실습
  • · 2023. 3. 27.
  • textsms
[Crackme#2] CrackMe2.exe 루틴 분석 및 풀이

[Crackme#2] CrackMe2.exe 루틴 분석 및 풀이

[풀이] code 영역 마우스 우클릭 > search for > All referenced Text string HackFun이라는 아주 수상한 문자열이 보인다. -> 더블클릭 잉? 정말 이게 다였다. infiscap에 HackFun을 입력하면 SEP이란 텍스트로 반환한다. 정말 이게 다인가 싶어 코드을 쭉 확인해보았지만 infiscap 창을 구성하는 요소에 대한 정보 외에는 다른 게 없었다. 어찌저찌... 성공이다...?

  • format_list_bulleted System & Reversing/실습
  • · 2023. 3. 19.
  • textsms

올리디버그(Ollydbg) 설치 및 사용법

보호되어 있는 글입니다.

2023. 3. 16.
BOF(Buffer Overflow) 개요 및 동작 원리

BOF(Buffer Overflow) 개요 및 동작 원리

Buffer Overflow란? 버퍼오버플로우는 단어의 뜻 그대로 버퍼를 넘치게 만드는 것이다. 특정 프로그램에 할당된 버퍼에 엉뚱한 데이터를 넘치도록 집어넣어 공격자가 원하는 코드를 실행 시키는 일종의 해킹 기법이기도 하다. 여기서 말하는 버퍼(Buffer)에는 스택과 힙이 있는데, 이전 발행글 - 메모리 구조에 기술된 스택과 힙의 특징을 익히고 나면 이해가 쉬울 것이다. 프로그램 취약점 측면에서 풀어 설명하자면 다음과 같다. - 메모리 오류로 인해 잘못된 동작을 하는 프로그램 취약점. - 프로세스가 데이터를 버퍼(힙 또는 스택)에 저장할 때 프로그래머가 지정한 곳 바깥에 저장하게 된다. - 벗어난 데이터는 인접 메모리를 덮어쓰게 되어 프로그램 변수와 흐름 제어 데이터가 손상될 수도 있다. - 잘못된 ..

  • format_list_bulleted System & Reversing/필기
  • · 2023. 3. 16.
  • textsms
x86, x64 차이점 및 구분

x86, x64 차이점 및 구분

x86과 x64 레지스터는 보통 운영체제 윈도우의 패키지를 나타낼 때 자주 쓰여 익숙할 것이다. x64는 64비트, x86은 32비트를 의미하며, 두 레지스터의 차이와 구분 방법에 대해 알아본다. [x86과 x64의 차이점] x86(32bit), x64(x86-64/64bit) 1. 레지스터의 처리값 CPU는 I/O 버스를 통해 데이터를 내/외부로 전송한다. 이때 32bit를 지원하는 CPU라면 한 번에 전송하는 데이터의 양이 32bit=1word이며, 64bit를 지원한다면 1word는 64bit가 된다. 2. RAM에서 표현할 수 있는 주소값. 윈도우가 시스템에 장착된 메모리를 사용하기 위해서는 모든 메모리 공간에 대한 주소 정보가 필요하다. 정확한 주소가 있어야만 원하는 위치에 제대로 접근할 수 있..

  • format_list_bulleted System & Reversing/필기
  • · 2023. 3. 16.
  • textsms
[CrackMe#1] Abex' crackme1 풀이

[CrackMe#1] Abex' crackme1 풀이

[풀이 방법 1] - 야매 - 같은 메세지 박스에서 메시지를 불러오는 명령행 확인. - 복사해서, - 붙여넣기, - 진짜 엄청난 꼼수였지만 성공. [풀이 방법 2] - 정석 - 엔트리 포인트를 확인하고 F8을 눌러 GetDriveTypeA 전까지 실행시켜보자. - 코드가 실행되면서 우측 레지스터 값이 바뀌는 걸 알 수 있다. - call 를 실행시켰더니 EAX가 3으로 설정된다. 해당 함수의 return 값은 위와 같다. 3은 flash drive거나 hard disk drive라는 뜻이다. 우리가 띄우고자 하는 메시지 박스는 드라이브가 CD-ROM일 때 실행되므로 리턴값을 5로 바꿔주면 된다. EAX 3 ESI 401000 //F8 - INC ESI EAX 3 ESI 401001 //F8 - DEC E..

  • format_list_bulleted System & Reversing/실습
  • · 2023. 3. 13.
  • textsms
아키텍처의 개념, 종류, 특징(+ CPU 아키텍처)

아키텍처의 개념, 종류, 특징(+ CPU 아키텍처)

[아키텍처(Architecture)] 아키텍처는 시스템의 물리적 또는 기능적 구조를 말한다. 즉, 서비스의 동작 원리를 나타내는 것. 이 포스트에서는 CPU/마이크로 아키텍처에 대해 다룬다. 아키텍처의 설계 과정에는 정책의 변화, 인력 문제 등의 내부 요인 뿐만 아니라 유저의 행동 경향, 소프트웨어의 동향 및 업데이트 현황 등 외부 요인까지 종합적으로 고려해 다양한 변수에 대응할 수 있도록 하는 것이 특징이다. [마이크로 아키텍처(Micro Architecture)] CPU 아키텍처는 핵심적으로 CPU 내에 탑제될 코어들의 위치 또는 캐시메모리 등의 구송요소 배치를 하기 위한 밑바탕이다. 즉, 납땜이 이루어지는 트랜지스터 간의 간격이나, 프로세서 내부의 각 트랜지스터 개수가 늘어나고 CPU 자체의 크기를..

  • format_list_bulleted System & Reversing/필기
  • · 2023. 3. 11.
  • textsms
gcc 컴파일러 (+ .so, .a, .o, .c, 비트 연산 내장 함수)

gcc 컴파일러 (+ .so, .a, .o, .c, 비트 연산 내장 함수)

[GCC의 개념] GCC는 GNU 컴파일러 모음(GNU Compiler Collection)의 약자이다. GNU 프로젝트의 일환으로 개발되어 널리 쓰이고 있는 오픈소스 컴파일러이다. 유닉스/리눅스 계열 플랫폼의 표준(사실상) 컴파일러라고도 볼 수 있다. 더보기 GNU: GNU's not UNIX, 리처드 스톨먼이 각종 자유 소프트웨어들이 작동되고 널리 퍼질 수 있는 생태계를 구축하기 위해 시작한 프로젝트이다. GCC에는 C, C++, Objective-C, Fortran, Ada, Go, D, libstdc++와 같은 라이브러리 언어 등이 포함되어 있다. Minimallist GNU for Windows, 윈도우용 포크. 여러 오픈 소스 프로그램들을 윈도우에서 돌아가게 하는 데 일조한다. MinGW는 M..

  • format_list_bulleted System & Reversing/필기
  • · 2023. 3. 10.
  • textsms
dll 파일이란? (+ lib과의 차이점)

dll 파일이란? (+ lib과의 차이점)

DLL이란? Dynamic Link Library, 동적 링크라고 하며, 실행 파일에서 해당 라이브러리 기능을 사용할 때에만 라이브러리 파일을 참조하여(or 다운로드) 기능을 호출한다. 정적 링크와는 다르게 컴파일 시점에 실행 파일에 함수를 복사하지 않고, 함수의 위치정보만 갖고 해당 함수를 호출할 수 있게 한다. 정적 링크* 더보기 Static Link Library(스태틱 링크, 정적 링크): 컴파일 시점에 라이브러리가 링커에 의해 연결되어 실행 파일의 일부분이 된다. - 리소스를 적게 사용한다. : 한 코드를 여러 프로그램이 동시에 사용하기 때문에 메모리가 절약된다. : 사용되는 디스크 공간을 줄일 수 있다.(정적 링크를 사용할 경우 실행 파일의 크기가 커진다) ㄴ 운영 체제와 프로그램이 더 빠르게..

  • format_list_bulleted System & Reversing/필기
  • · 2023. 3. 10.
  • textsms
어셈블리 핸드레이와 함수 프롤로그/에필로그(+ 스택 프레임)

어셈블리 핸드레이와 함수 프롤로그/에필로그(+ 스택 프레임)

어셈블리 핸드레이란? 어셈블리어를 C언어로 복원시키는 작업을 의미한다. 일반적으로 바이너리를 디버거로 열어보게 되면 바이너리에 대한 어셈블리 코드가 나온다. 이 어셈블리 코드를 그나마 익숙한 C언어 등의 언어로 변환하는 작업이 필요한데, 보통은 IDA의 헥스레이 기능을 사용하나, 완벽한 변환은 지원하지 않으므로 어셈블리 핸드레이에 익숙해져야 한다. 즉, 핸드레이를 하는 과정 자체가 어셈블리 코드를 C언어 등으로 변환하는 작업이기 대문에 변환 과정에서 코드가 어떤 의미를 하는지에 대한 이해는 필수적이다. [핸드레이 TIP] 1. EBP와 ESP를 통한 참조 컴파일러마다 다르기는 하지만 일반적으로 스택에서 전달인자나 변수를 할당할 때 ebp를 기준점으로 잡고 접근하는 경우가 많다. 2. EBP+8 이상의 값..

  • format_list_bulleted System & Reversing/필기
  • · 2023. 3. 10.
  • textsms
메모리 구조 (+ 일반PC, 임베디드 시스템)

메모리 구조 (+ 일반PC, 임베디드 시스템)

메모리란? 작업을 처리하기 위한 기억장치로 물리메모리(RAM), 가상 메모리(SDD, HDD의 swap)이 존재한다. - CPU는 작업을 수행할 때 메인 메모리까지 참조 가능하다. - 각 프로세스는 자신만의 메모리를 할당 받고, 메모리를 사용하여 동작을 수행한다. 더보기 가상 메모리: 필요한 내용만 물리 메모리에 올려 메모리를 관리하는 기법, 요구 페이징 기법을 사용한다. +) 가상 메모리에는 방어적 코드를 포함한 불필요한 코드가 올라간다. 요구 페이징 기법: valid, invalid(유, 무효 비트)로 페이지가 메모리에 존재하는지 확인, 없으면 보조 저장 장치에서 가져온다. 메모리 구조 코드 영역(Text) : 절대 변경되면 안되는 데이터가 저장된다. : 명령문을 포함한 코드에 직접적으로 적혀있는 문..

  • format_list_bulleted System & Reversing/필기
  • · 2023. 3. 10.
  • textsms
어셈블리어의 개요, 기초 문법(+ x86, arm)

어셈블리어의 개요, 기초 문법(+ x86, arm)

[어셈블리어(Assembly Language)] 어셈블리어란 프로그래밍 언어 중 하나로, 기계어와 함께 저급언어(Low-level Langauge)에 속한다. 0과 1로만 이루어진 기계어는 인간의 관점에서 이해하고 다루기 매우 어렵기 때문에 이를 보안하기 위해 개발되었으며, 기계어와 1대1로 대응한다는 특징이 있다. 고급언어와 마찬가지로 컴퓨터가 이해할 수 있도록 번역하는 과정을 거친다는 점에서 고급 언어와 기계어 사이에 있는 '중간 언어'라 불리기도 한다. 어셈블리어가 어렵다고 평가되는 것 중 하나가 CPU가 채택한 명령어셋(ISA)에 따르는 기계어와 1대1 대응을 하기 때문에 어셈블리어 역시 표준 규격화가 되어있지 않다는 것이다. 그 말인 즉슨, 문법 아키텍처와 CPU 아키텍처에 따라, 그리고 어셈블..

  • format_list_bulleted System & Reversing/필기
  • · 2023. 3. 10.
  • textsms
아키텍처의 개념, 종류, 특징(통합본)

아키텍처의 개념, 종류, 특징(통합본)

[아키텍처(Architecture)] 아키텍처는 시스템의 물리적 또는 기능적 구조를 말한다. 즉, 서비스의 동작 원리를 나타내는 것. 대표적으로는 하드웨어 아키텍처와 소프트웨어 아키텍처가 있으며, 아키텍처를 설계하고 관리하는 사람을 아키텍트(Architect)라고 한다. 아키텍처는 과거 다른 의미로 사용되었지만, 오늘날에는 첨단 정보기술을 이용한 정보체계, 소프트웨어 내장형 체계, 지휘 통제 통신체계 등을 구축하는데 적용되고 있다. 특히, 컴퓨터나 네트워크에서의 아키텍처는 프로세스, 전체적인 구조와 논리적 요소들, 그리고 컴퓨터와 운영체계, 네트워크 및 다른 개념 간의 논리적 상호 관계 등을 정의하는 모든 곳에 적용되는 용어라고 할 수 있다. [아키텍처의 특징] 아키텍처는 요구하는 것과 구현하는 것 사이..

  • format_list_bulleted System & Reversing/필기
  • · 2023. 3. 10.
  • textsms
프로그램 언어의 종류(기계어, 저급언어, 고급언어)

프로그램 언어의 종류(기계어, 저급언어, 고급언어)

프로그래밍 언어(Programming Language) 프로그래밍 언어는 컴퓨터에게 명령이나 연산 등 사람이 원하는 작업을 컴퓨터가 수행할 수 있도록 기계와의 의사소통을 지원해주는 언어이다. 즉, 컴퓨터에게 일을 시키기 위한 언어라고 볼 수 있다. 정해진 규칙에 따라 작업을 처리하고, 자료나 프로그램의 복잡한 구조를 구현할 수 있다는 특징이 있다. 또한, 시간의 흐름에 따라 활용이나 개념 등이 바뀔 수 있어 가변적이다. 프로그래밍 언어의 분류 프로그래밍 언어는 크게 저급 언어와 고급 언어 두 가지로 나눌 수 있다. 분류 기준은 보통 '컴퓨터와 인간의 언어 중 어디에 더 근접한가'이고, 컴퓨터가 쓰는 '기계어'에 가까우면 '저급언어', 인간이 쓰는 '자연어'에 가까우면 고급언어이다. 컴퓨터는 기본적으로 기..

  • format_list_bulleted System & Reversing/필기
  • · 2023. 3. 9.
  • textsms
  • «
  • 1
  • »
250x250
공지사항
전체 카테고리
  • 카테고리 (95)
    • Web Application (6)
      • 필기 (5)
      • 실습 (1)
    • Information Security (8)
      • 사이버범죄심리학 (1)
      • 정보보안개론 (2)
      • 암호학 (3)
    • Android (12)
      • 필기 (6)
      • 실습 (6)
    • System & Reversing (17)
      • 필기 (13)
      • 실습 (4)
    • IoT(사물인터넷) (2)
      • 필기 (2)
      • 실습 (0)
    • Digital Forensic (43)
      • 필기 (9)
      • Anti Forensic (1)
      • Dreamhack (9)
      • CTF (16)
      • 기타정보 (3)
      • 디지털포렌식전문가2급 (3)
    • Programming (2)
      • 다인 프로젝트 (2)
      • 개인 프로젝트 (0)
    • Computer Engineering (1)
      • 자료구조 (1)
최근 글
인기 글
최근 댓글
태그
  • #seKUCTF
  • #SeKUrity
  • #건국대학교(글로컬)
  • #고급언어
  • #기계어
  • #사물인터넷
  • #저급언어
  • #IoT보안
  • #IoT해킹
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바