본문 바로가기

Hacking

(dreamhack)string #include #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); setvbuf(stderr, NULL, _IONBF, 0); close(2); dup2(1, 2); signal(SIGALRM, alarm_handler); alarm(60); } void input(char *buf) { printf("Input: "); read(0, buf, 255); } void print(char *buf) { warnx(buf); } int main().. 더보기
fopen함수 분석 fopen함수를 디버깅하며 io_file 구조체 생성 과정을 확인한다. fopen함수 소스코드: https://code.woboq.org/userspace/glibc/libio/genops.c.html#_IO_no_init fopen()이 실행될 경우 내부적으로는 _dl_runtime_resolve_xsavec()에서 fopen()의 실제 함수 주소를 구해 got테이블에 저장하고 해당 함수로 간다. _dl_runtime_resolve_xsavec()에서 _IO_new_fopen()함수로 이동한다. FILE * _IO_new_fopen (const char *filename, const char *mode) { return __fopen_internal (filename, mode, 1); } _IO_ne.. 더보기
(dreamhack) house_of_force 보호되어 있는 글입니다. 더보기
(dreamhack)house_of_spirit #include #include #include #include #include char *ptr[10]; void alarm_handler() { exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(60); } void get_shell() { execve("/bin/sh", NULL, NULL); } int main() { char name[32]; //p64(0)+p64(0x61) int idx, i, size = 0; long addr = 0; initialize(); memset(name, 0, sizeo.. 더보기
원하는 pop ret 가젯 없을 때 pop ret가젯에 원하는 레지스터에 대한 가젯이 없을 경우에 아래 함수 사용 _libc_csu_init 더보기
(rarCTF)boring-flag-checker 보호되어 있는 글입니다. 더보기
Docker error: standard_init_linux.go:228: exec user process caused: no such file or directory standard_init_linux.go:228: exec user process caused: no such file or directory 숫자는 Docker 버전에 따라 다름 window에서 생성한 파일은 window 파일 형식을 사용한다. unix형식의 파일을 사용해야 성공적인 run을 할 수 있다. 해결방법1. Dockerfile파일 뿐만 아니라 빌드에 사용되는 모든 파일을 window형식에서 unix형식으로 변경해준다. (형식을 변경하고 싶은 파일을 notepad++ 프로그램에서 열고 edit->EOL conversion->window를 unix로 변경) 해결방법2. 리눅스에서 vi명렁어로 파일을 생성한다. 그 자체가 unix형식으로 파일이 생성되는 것이다. ->위 방법으로 Dokerfile과.. 더보기
도커 설치 보호되어 있는 글입니다. 더보기