Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- wsl2 복구
- DYNAMIC Section
- c++
- Python.h: No such file or directory
- 실시간로깅
- 지훈현서
- Windows 부팅 오류
- GEF
- pwntools
- GDB
- python3.11 pip
- OpenAI 개발
- VSCode C++ 표준 버전 수정
- python
- python3.11 설치
- 리커버릿
- tool
- std::cerr
- 임베디드 시스템 해킹
- pwn
- z3 signed 이슈
- Python3
- docker
- vmware 반응 속도
- pip 에러 해결
- Recoverit
- 공유 라이브러리는 왜 항상 같은 순서로 맵핑 될까?
- 개발
- vhdx 파일 복구
- Seccomp bypass
Archives
- Today
- Total
OZ1NG의 뽀나블(Pwnable)
[CTF][Python][C언어] 문제 만들때 입력시간 제한 거는 법 본문
파이썬의 "signal"모듈에는 C언어의 alarm함수랑 signal함수와 완전히 같은 기능을 하는 함수가 있다.(이름도 똑같음.)
따라서 그걸 쓰면 된다.
[C언어 예시]
1
2
3
4
5
6
7
8
|
void hello(){
printf("helloooo");
}
void main(){
signal(SIGALRM, hello) // SIGALRM이 발생되면 hello함수를 호출
alarm(3) // 3초 뒤 알람(3초뒤 SIGALRM 시그널 발생)
}
|
[python2 예시]
1
2
3
4
5
6
7
|
def timeout(dummy1 , dummy2): # 더미인자를 주는 이유 : 아래의 signal함수에서 (~~, hello) <-- 와 같이 괄호 없이 사용하면 인자 두개가 지맘대로 들어가기 떄문에 오류(버그)를 피하기 위해 사용
print "[!] Timeout!" # 만약 (~~,hello())와 같이 사용한다면 프로그램은 인자로 받은 함수를 우선순위로 실행하고 그 함수의 리턴값을 인자로 줘야하기 때문에
# 그냥 바로 hello함수가 실행되어 버림. 그래서 그렇게는 하면 안됨.
#### main ####
signal.signal(signal.SIGALRM, timeout) # SIGALRM이 발생되면 hello함수를 호출 #단, 윈도우에서는 SIGALRM이 존재하지 않기 때문에 오류가 남. 리눅스에서는 잘됨.
signal.alarm(3) # 3초 뒤 알람(3초뒤 SIGALRM 시그널 발생)
|
'Tips' 카테고리의 다른 글
[Python] 파이썬 형변환 (0) | 2019.11.22 |
---|---|
[비공개] gdb에서 파이썬 스크립트 입력하는 방법 (0) | 2019.11.22 |
[Tools] One_gadget (0) | 2019.07.28 |
[Tools] libc-database (0) | 2019.07.28 |
[Tips] 어셈블리어 코딩, div 명령어 오류 (0) | 2019.05.16 |
Comments