[C++] 유한체 연산 & 다항식 연산 (S-box 구현 원리) 포스팅 썸네일 이미지

암호학 (Cryptology)/code

[C++] 유한체 연산 & 다항식 연산 (S-box 구현 원리)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 12..

2021.09.14 게시됨

Dreamhack(reversing) rev-basic-3 포스팅 썸네일 이미지

리버스 엔지니어링 (Reversing)/Wargame

Dreamhack(reversing) rev-basic-3

개인적으로 Dreamhack의 reversing 문제의 basic 파트 부분의 앞부분은 쉽다고 생각한다. 하지만 3번은 입문자에게 쉬운 난이도가 아니어서 풀어볼 것이다. x64디버거로 실행시키면 input 값을 받는다. IDA를 이용하면 main 부분을 좀 더 직관적으로 알아볼 수 있다. main 함수를 확인해보자. 디스어셈블 하면 친숙한 그림이 보일 것이다. Input 값을 v4에 저장하고 v4 값을 sub_140001000 함수에 실행해서 나오 값이 참이라면 Correct를 거짓이라면 Wrong을 출력한다. 그럼 이제 sub_140001000 함수를 살펴보자 0x18 = 24 번의 반복을 실행하는데, byte_140003000의 배열에 원소를 하나씩 비교하는 것 같다. 즉 함수(아규먼트1)로 실행하면..

2021.09.12 게시됨

ROP(Return Oriented Programming)를 이용한 시스템 해킹 포스팅 썸네일 이미지

시스템 해킹 (Pwnable)/Archive

ROP(Return Oriented Programming)를 이용한 시스템 해킹

이 게시글은 Protostar stack7 문제를 다룰 것이다. x86 기반의 문제 파일이 필요하다 디버깅을 해서 system()의 주소, /bin/sh의 주소를 확인한다 패턴을 이용해서 스택의 첫 요소까지의 값(패딩 값)을 확인한다. 위의 Invalid $PC address : 0x41414a41 부분이 걸린 부분이다. 따라서 해당 값 0x41414a41 을 복사해서 patter offset 0x41414a41 를 입력하면 된다. 위의 내용들로 페이로드를 구성하면, 아래 처럼 작성할 수 있을 것이다. 하지만 이 방법으로 쉘을 얻을 수 없다. sys의 주소가 ret에 들어가서 조건문에 막히기 때문 즉 ret에 system()의 주소가 아니라, ret 명령어가 있는 곳을 넣는다. ret -> ret 주소 ..

2021.09.12 게시됨

Protostar - Stack 7 (쉘 코드 + 버퍼 오버플로우 + RTL) 포스팅 썸네일 이미지

시스템 해킹 (Pwnable)/Wargame

Protostar - Stack 7 (쉘 코드 + 버퍼 오버플로우 + RTL)

stack7.c 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #include #include #include #include char *getpath() { char buffer[64]; unsigned int ret; printf("input path please: "); fflush(stdout); gets(buffer); ret = __builtin_return_address(0); if((ret & 0xb0000000) == 0xb0000000) { printf("bzzzt (%p)\n", ret); _exit(1); } printf("got path %s\n", buffer); return strdup..

2021.09.12 게시됨

우분투(Ubuntu)에서 도커(Docker) 설치 포스팅 썸네일 이미지

프로젝트 (Project)/Cuckoo Sandbox를 이용한 악성코드 다중 동적분석 기능 개발

우분투(Ubuntu)에서 도커(Docker) 설치

도커(Docker)는 프로그램들을 컨테이너 안에 배치하는 일들을 자동화시키는 오픈 소스 프로젝트이다. 아래 명령어들을 한 줄씩 입력해 설치한다. sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" sudo apt update apt-cache policy docker-c..

2021.09.05 게시됨

반응형