본문 바로가기

반응형

Programming

(77)
C/Symbolic Execution/KLEE Tutorials 1-2 Anaylsis # 대상 파일 : ~/klee_src/examples/get_sign/get_sign.c 기호실행을 할 수 있게 해주는 가상 엔진입니다.소스코드와 함께 헤더파일이 전처리되어 소스를 감싼 후 기호 실행할 변수를 지정하는 klee_make_symbolic() 함수를 이용해 기호실행을 합니다.klee_make_symbolic()은 소스 내의 지정할 변수의 주소값, 기호로 다룰 크기, 그 변수를 부를 이름 이렇게 3가지를 인자값으로 사용합니다. - Bllvm 바이너리 생성하는 방법clang -I [전처리할 헤더 위치] -emit-llvm -c -g [소스 위치]-I는 컴파일러가 klee/klee.h 파일을 찾을 수 있게 하는 옵션이고,-g는 디버그 정보를 바이트 코드에 포함시키는 옵셥입니다.최적화를 시키려면 -..
Android/Fiddler를 이용한 프록시 구성 - 총 세가지 측면의 설정으로 나눌 수 있습니다. 첫째는 프록시 서버 호스트가 될 PC, 둘째는 피들러, 셋째는 안드로이드 device입니다.- 피들러 설정과 device설정은 검색하면 많이 나오지만, host 설정에서 방화벽을 허용해주는 것은 언급하지 않아 많이 해맸습니다.- 피들러가 자동적으로 방화벽 승인 요청을 할 것 같았지만 하지않아 많이 돌아돌아 해결했던 문제입니다. # 피들러 설정- Tools > HTTPS 탭에서, Capture HTTPS CONNECTs 체크와 Decrypt HTTPS traffic 체크.- Tools > Connections 탭에서, Allow remote computers to connect 체크하고 listen port 기억 / 기본 8888 # Device 설정- W..
Programming/SoftwareArchitecture/디자인 패턴 - 기본 출처 : 코드, 패턴 그리고 소프트웨어(지은이 포인트) - https://wikidocs.net/book/55 # 디자인 패턴 - 방식을 통해 소프트웨어 설계에서 얻은 세세한 경험들을 기록해 놓도록 하는 것패턴 "어떤 상황의 문제에 대한 해법"패턴의 4가지 요소이름 (pattern name) " 한 두단어로 설계 문제와 해법을 서술"설계 어휘를 늘리는 일추상화된 설계 가능설계 의도 표현개발자 간의 의사소통 도움문제 (problem)"언제 패턴을 사용하는 가를 서술하며 해결할 문제와 그 배경을 설명"설계의 세밀한 문제해법 (solution)"설계를 구성하는 요소들과 그 요소들 간의 관계 책임 그리고 협력 관계를 서술"패턴은 다양한 경우에 적용할 수 있는 템플릿(template)이기 떄문에, 구체적인 설계나..
C/리눅스 어셈블리 프로그래밍 - 1 기초적인 리눅스 어셈블리 프로그래밍몇가지 예제와 기본적인 주석과 매크로 사용법만 적었습니다. >>> return 0;1234567891011segment .text global _start_start: mov eax, 1 mov ebx, 0 int 0x80 segment .data segment .bss cs >>> db의 데이터 print123456789101112131415161718192021222324252627segment .text global _start_start: ; \n mov eax, 4 mov ebx, 1 mov ecx, init mov edx, 1 int 0x80 ; print mov eax, 4 mov ebx, 1 mov ecx, my ; mov edx, 10 ; 글자(9) + ..
C/Linux/디렉토리 정보 검색 디렉토리 정보 검색- 디렉토리 열기 : opendir(3)성공하면 열린 디렉토리를 가리키는 DIR 포인터를 리턴- 디렉토리 닫기 : closedir(3)- 디렉토리 정보 읽기 : readdir(3)디렉토리의 내용을 한 번에 하나씩 읽어옴디렉토리 열고 정보 읽기12345678910111213141516171819202122#include #include #include int main(void) { DIR *dp; struct dirent *dent; if ((dp = opendir("hanbit")) == NULL) { perror("opendir : hanbit"); exit(1); } while ((dent = readdir(dp))) { printf("Name : %s ", dent->d_name)..
C/Linux/디렉토리 관련 함수 디렉토리 관련 함수- 디렉토리 생성 : mkdir(2)path에 지정한 디렉토리를 mode 권한에 따라 생성한다.- 디렉토리 삭제 : rmdir(2) - 디렉토리명 변경 : rename(2) 디렉토리 생성/삭제/이름 변경12345678910111213141516171819202122232425262728#include #include #include #include int main(void) { if (mkdir("han", 0755) == -1) { perror("han"); exit(1); } if (mkdir("bit", 0755) == -1) { perror("bit"); exit(1); } if (rename("han", "hanbit") == -1) { perror("hanbit"); exit..
C/Linux/심볼릭 링크 정보 검색 심볼릭 링크 정보 검색- 심볼릭 링크 정보 검색 : lstat(2)lstat : 심볼릭 링크 자체의 파일 정보 검색심볼릭 링크를 stat 함수로 검색하면 원본 파일에 대한 정보가 검색된다.- 심볼릭 링크의 내용 읽기 : readlink(2)심볼릭 링크의 데이터 블록에 저장된 내용 읽기- 원본 파일의 경로 읽기 : realpath(3)심볼릭 링크가 가리키는 원본 파일의 실제 경로명 출력lstatFunc 함수 사용 하기12345678910111213141516171819202122232425#include #include #include #include int main(void) { struct stat buf; printf("1. stat : unix.txt ---\n"); stat("unix.txt", ..
C/Linux/링크 파일 생성 링크 파일 생성- 이미 있는 파일이나 디렉토리에 접근할 수 있는 새로운 이름- 같은 파일/디렉토리지만 여러 이름으로 접근할 수 있게 한다- 하드링크 : 기존 파일과 동일한 inode 사용, inode에 저장된 링크 개수 증가- 심볼릭 링크 : 기존 파일에 접근하는 다른 파일 생성(다른 inode 사용) - 하드링크 생성 : link(2)두 경로는 같은 파일시스템에 존재해야 함>> CentOS 파일 시스템 변경됨 :XFScat /etc/fstab link 함수 사용1234567891011121314#include #include #include #include int main(void) { struct stat buf; stat("unix.txt", &buf); printf("Before Link Coun..

반응형