본문 바로가기

전체 글847

main() 호출과정 1. fork()를 통해 process 복사2. execve() system call -> sys_execve() 호출 (User mode -> Kernel mode)3. do_execve() 동작 4. open_exec()로 file 정보를 읽어 적합한 binary handler 호출5. flush_old_exec()가 기존 프로세스 정보를 삭제하고 현재의 프로세스를 "current"로 설정함6. 새로운 프로세스에 사용할 Memory Layout 설정7. 동적링커를 로딩하여 elf포맷이면 load_elf_interp()가 동작하여 /lib/ld_linux.so.2를 로딩8. start_thread()로 elf_interpreter 실행9. sys_execve() 종료 (Kernel mode -> Use.. 2015. 10. 5.
2013 pctf ropasaurusrex 공격 시나리오 1. write 함수를 이용하여 write@got 주소 leak 2. write와 system함수의 거리를 이용하여 system 함수 주소 유추 3. read@plt를 이용하여 bss섹션에 /bin/sh 쓰기 4. read@plt를 이용하여 write@got에 system함수를 overwrite 5. overwrite한 write@got를 이용하여 system함수 호출 6. 명령 실행 [exploit code] from socket import * from struct import * p = lambda x:pack(" 2015. 9. 23.
Codeshell 보호되어 있는 글 입니다. 2015. 8. 10.
YetAnotherSQL 보호되어 있는 글 입니다. 2015. 8. 7.
flag 보호되어 있는 글 입니다. 2015. 8. 6.
C언어 연결리스트를 활용 #include #include typedef struct Node {int data;struct Node *link;}NODE; void print_all();void insert_node(int n);void delete_node(int n);NODE *head = NULL; main(){insert_node(4);insert_node(3);insert_node(1);insert_node(5);insert_node(2);print_all();puts("2삭제");delete_node(2);print_all();} void print_all() {NODE *p = head;while(p != NULL) {printf("%d -> ", p->data);p = p->link;}printf("NULL\n").. 2015. 7. 22.