분류 전체보기

LOB Level 1. int main(int argc, char *argv[]) { char buffer[256]; if(argc < 2) { printf("argv error\n"); exit(0); } strcpy(buffer, argv[1]); printf("%s\n", buffer); } buffer로 256을 입력 받고, argc가 2개 미만이면, 오류를 출력하고 프로그램을 종료한다. argc가 2개 이상이면, buffer에 argv[1] 인자를 복사 시킨다. 일단 ftz에서 배웠듯이 strcpy가 나왔으니 BOF인 거 같다. if 문이 있듯이 크기의 값에 따라 정해진다. 또한 256byte 이상의 값을 넣으면, buffer의 크기를 넘어 SFP와 RET 값을 덮어 씌워 BOF를 일으킨다. 일..
· #Tip
LiveOverFlow part 4. 출처. https://www.youtube.com/watchv=6jSKldt7Eqs&list=PLhixgUqwRTjxglIswKp9mpkfPNfHkzyeN&index=5 part 4는 CPU가 어떻게 작동을 하는지, 그리고 어셈블리어에 대한 소개. CPU Registers, 산술적인 소개, 움직임, 등 CPU에 대해 전반적인 설명을 하고 있고, 스택에서의 PUSH and POP이 나와있다. IP = introduction Pointer. pc = program counter.Sp, Esp, Rsp =Stack pointer. 이렇게 직접 자세하게 설명해준다. 솔직히 놀랐다... 캐시 및 메모리 언급도 해주고, 공유된 캐시의 멀티 코어 시스템에서도 언급. 이런 식으로 ..
function foo() { if(counter gcc를 이용한다는 내용도 있고, C언어와는 구별되는 파이썬만의 특징을 설명하는 내용도 있다. 아래와 같이 C vs python 느낌으로 각 코드만의 특징을 잘 비교하고 있기도 하고, 그리고 다른 건 간단한 예시를 통해 설명을 해주고 있는데, main은 위의 이미지이다. CF) 짧은 영상 길이에 비해 내용이 되게 좋은 거 같다. 자막이 없는 거 빼고는......
· #Tip
LiveOverFlow part 2. 출처.https://www.youtube.com/watchv=JGoUaCmMNpE&index=3&list=PLhixgUqwRTjxglIswKp9mpkfPNfHkzyeN part 2는 한마디로 C언어에 대한 내용. 간단히 소개하되, 다 해석하지는 않겠다. part2는 vim editor을 설치 방법, 경로 환경 변수, 명령 행에서의 변수들. gcc를 이용한 C 프로그램 컴파일 내용. PATH는 즉, 경로는 파일의 위치를 알려주는 주소. 다시 말해 파일의 위치를 알려주는 문장.인터넷으로 비유하자면 URL에 해당. 경로는 루트 디렉터리로부터 적으며, 각 디렉터리는 /기호로 구분.CF) .는 자신을 ..는 부모 디렉터리를 뜻. Env는 unix계열 운영 체제용 쉘 명령어. ..
LiveOverFlow part 1. 출처.https://www.youtube.com/watchv=navuBR4aJSs&index=2&list=PLhixgUqwRTjxglIswKp9mpkfPNfHkzyeN part1은 linux의 소개 ====> 설치 및 터미널에 대해 간략하게 나와 있다. 이렇게 영상 처음에 목차를 소개해줘서 너무 좋았다. linux 작동 시스템에 대한 소개이고, vm에서 linux 설치. 그리고 명령어들....ex) ls, cd, mkdir, touch, man; sudo, 등에 관한 설명이 있다. prerequisite은 전제 조건이라는 뜻인데, 딱히 한 것이 없기에 None일 수 밖에 없다. redhat,kali linux, arch linux, ubuntu, vmware을 소개하..
· #Tip
LiveOverFlow part 0. 출처https://www.youtube.com/watchv=iyAyN3GFM7A&index=1&list=PLhixgUqwRTjxglIswKp9mpkfPNfHkzyeN 아는 사람들이야 많겠지만, 정말 많이 도움될 거 같아서 소개해본다. Youtube에 비록 영어지만, LiveOverFlow Binary Hacking이란 것을 알게 되어서 보게 되었다.영어라서 좀 난감하긴 했지만, 정말 많은 내용들을 쉽게 설명해놔서 동영상을 보게 되었다. part 0은, 즉 bin0x00은 Channel introduction and Backstory 라고 해서 Hacking에 관한 전반적인 의미랑, CTF, Overflow 등을 소개하고 있다.아무래도 1강이라고 하기에는, 워낙 내용이..
R0pbaby 문제 풀이. 이 문제는 데프콘 2015에서 출제되었던 ROP 문제이다.64-bit ELF 파일을 제공하고, system 함수를 사용하는 문제. 주요 사항 ===========1. 64-bit ELF 파일. ====- system 함수의 인자를 담는 레지스터는 rdi.- 데이터를 저장하는 기본 단위는 8byte.2. 실행 환경에 있는 libc.so.6를 가져다 쓴다.3. Binary 실행 중 system 함수가 있는 곳의 주소를 알려준다.- Libc 파일 안에서의, system 함수와 다른 gadget간의 offset를 먼저 구한다.- Binary 실행 중의 system 함수 주소를 기준으로, 구한 offset을 이용하여 다른 gadget들이 있는 곳의 주소를 알아낸다.- Binary에 PI..
Level20 풀이. pw = 'we are just regular guys' 드디어 마지막 20번이다. 일단 문제 접근을 위해 hint를 본다. 짧다....................................... 좋다. 일단 c언어 소스 코드가 존재한다. 한 줄씩 해석해보면 int argc, char **argv는 프로그램 실행과 동시에 사용자 입력 받는다. char bleh[80] 문자형 bleh 변수에 80byte 만큼의 크기를 할당. setreuid(3101, 3101) 다음 단계의 권한이다. fgets(bleh,79,stdin) fgets 함수로 bleh 변수에 79byte 만큼의 사용자 입력을 받는다. printf(bleh) bleh 변수에 저장된 값 출력된다. fgets 함수로 문자열..
Allblackk
'분류 전체보기' 카테고리의 글 목록 (43 Page)