(메모리 보호 기법) SSP +Canary (prologue) / DEP
SSP : Stack Smashing Protector (link ) 로컬 변수 위치 재배치 로컬 변수 전에 포인터 배치 stack canary 삽입 disable 컴파일 옵션에 다음을 지정한다. -fno-stack-protector stack boundary (정렬) 설정 컴파일 옵션 -mpreferred-stack-boun...
SSP : Stack Smashing Protector (link ) 로컬 변수 위치 재배치 로컬 변수 전에 포인터 배치 stack canary 삽입 disable 컴파일 옵션에 다음을 지정한다. -fno-stack-protector stack boundary (정렬) 설정 컴파일 옵션 -mpreferred-stack-boun...
ASM : Addition, Subtract, and Multiplication 웹페이지 접속 start 이미지 가져오기 정답 추론 정답 입력 팝업 안뜨면 정답인것. 정답이면 학습 데이터에 (라벨, 데이터) 쌍 추가하고 다음 문제 이미지 가져오기…반복 오답이면 모은 학습 데이터를 바탕으로 학습…반복 데이터셋을 어떻게 정의할지가 문제인데. 1. 그냥...
Note ) subprocess로 실행하는 바이너리가 출력→입력대기 순서로 진행할 때, read() -> write()를 주었는데도 제대로 동작하지 않는 경우가 있다. 이는 실행하는 바이너리 자체에서 입력 대기 하기 전에 출력을 파이썬으로 보내주어야 하는데, 입력 대기가 끝난 이후에 파이썬으로 출력 내용을 보내기 때문에 발생하는 현상으로 보인다...
with 파일 open, read는 이런식으로 사용한다. with open("foo.txt", "w") as f: while True: line = f.readline() if not line: break print(line) auto close를 위해 with를 사용하는게 좋다. with를 빠져나오면서 자동으로 close한다. 파일에서 ...
os.getcwd() # working directory == python command를 실행한 path os.path.dirname(os.path.abspath(\_\_file\_\_)) # 현재 파일이 위치한 directory 디렉토리의 파일을 얻는 방법은 os.listdir()과 glob.glob() 두 가지가 있다. 3.4 부터 path...
아무래도, 파이썬에서는 filter, map, reduce 보단 list comprehension을 사용하는게 더 pythonic하다는 의견이 주류인 것 같다. https://www.artima.com/weblogs/viewpost.jsp?thread=98196 [python] Comprehension, Generator / iterator VS it...
List Comprehension 확실히 일반 for문 보다 속도 우위가 있다. [python] 프로파일링(profiling) reduce 사용한 코드와 비교해서 더 깔끔한 것으로 선택하면 될 듯. map filter도 마찬가지 보통 reduce를 사용해야 하는 경우라면 list comprehension이 더 깔끔한 경우가 많기는 하...
https://github.com/umbum/Python/blob/master/exploit/0ctf_babyheap.py Fill에서 Size를 지정할 때, chunk의 size보다 크게 지정할 수 있기 때문에 다음 chunk의 fd를 덮어 쓸 수 있고, 이를 이용해 원하는 곳에 chunk를 만들어 반환하도록 할 수 있다. ( fastbin ...
clue read()에서 변수 크기보다 큰 10byte를 받는다. -가 들어가 음수가 될 수 있다. 10byte를 받지만, 1byte만 비교한다. ==> 첫 번째 byte가 0xff를 초과하도록 만들 수 있다. babyheap: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV)...
상속, 인터페이스, 트레이트의 차이 상속과 나머지 두 관계의 가장 큰 차이점은, 인터페이스와 트레이트는 기능 단위 라는 것이다. 그래서 클래스 사이에 연관 관계가 없어도 기능 단위의 공통점을 가지도록 할 수 있다. abstract 추상 클래스를 사용하려면 extends를 사용해야 하므로, 상속 계층에 연결된다. 추상 클래스는 반드시 하나 이상의 추상...