일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 실시간로깅
- python3.11 설치
- 지훈현서
- VSCode C++ 표준 버전 수정
- Seccomp bypass
- docker
- pwntools
- c++
- z3 signed 이슈
- pwn
- python3.11 pip
- tool
- add-apt-repository 에러
- Recoverit
- OpenAI 개발
- GEF
- 개발
- std::cerr
- Python.h: No such file or directory
- ppa:deadsnakes/ppa
- vhdx 파일 복구
- DYNAMIC Section
- GDB
- 임베디드 시스템 해킹
- pip 에러 해결
- 리커버릿
- 공유 라이브러리는 왜 항상 같은 순서로 맵핑 될까?
- user or team does not exist.
- Windows 부팅 오류
- wsl2 복구
- Today
- Total
목록Tips (87)
OZ1NG의 뽀나블(Pwnable)
[파이썬 형변환] --------------------------- string -> int int(문자열형 숫자 값, 진수) # 10진수인 경우에는 진수 인자 안넣어도 됨. --------------------------- string -> float float(문자열형 숫자 값, 진수) # 10진수인 경우에는 진수 인자 안넣어도 됨. --------------------------- int,float -> string str(정수형 또는 실수형 값) --------------------------- 10 --> 16 >>> a = 16 >>> hex(a) '0x10' --------------------------- 16 --> 10 >>> a = 0x16 >>> a 22 ---------------..
보호되어 있는 글입니다.
파이썬의 "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 시그널 발생) } http://colorscripter.com/info#e" [python2 예시] 1 2 3 4 5 6 7 def timeout(dummy1 , dummy2): # 더미인자를 주는 이유 : 아래의 signal함수에서 (~~, hello)
One_gadget은 libc 안에 있는 매직 가젯의 offset을 찾아주는 툴이다. 매직 가젯은 libc안에 execve('/bin/sh', ?, ?) 부분이다. Pwnable할 때 system함수로 쉘이 따지지 않을때, execve함수로 pop_rdi, rsi, rdx gadget 들을 하나하나 내가 찾아가면서 쉘을 따거나 house of force등을 통해 got_overwrite를 할 때 이걸 쓰면 손쉽게 쉘을 딸 수 있다. (house of force를 통해 got_overwrite를 하면 다른 함수의 got가 chunk의 헤더나 다른 값으로 같이 덮여져서 제대로 함수 실행이 안될 때가 있다.) 걍 이거 하나면 진짜 겁.나 편하다. [git] https://github.com/david942j/..
libc-database는 이름 그대로 libc를 함수 실제 주소의 하위 3니블을 가지고 libc를 찾아주는 툴이다. 보통이라면 https://libc.blukat.me/?q=puts%3A7e0&l=libc6-i386_2.15-0ubuntu20_amd64에서 찾을 수 있지만, 지금은 502에러가 떠서 이 곳을 이용할 수 없다. 그래서 이 툴을 사용한다. [다운로드] git clone https://github.com/niklasb/libc-database [사용법] 1. ./find [함수명] [하위 3니블] ex) ./find __libc_start_main 740 libc-database 디렉토리 안에 있는 find 바이너리를 이용해서 libc를 찾는다. db 디렉토리에 있는 libc들에서 찾아주는 ..
가끔씩 어셈블리어로 코딩을 할때 div 명령어를 옳게 사용해도 에러가 떠서 프로그램이 그냥 종료되는 경우가 있습니다. 이때 디버깅을 해보면 보통 위와 같이 Integer overflow가 일어났다고 합니다. [Integer overflow가 뜨는 이유] https://stackoverflow.com/questions/5606895/integer-overflow-problem 영알못인 제가 대충 해석한 바로는 edx에 뭔 값이 있으면 어떠한 연산에 의해 edx에 뭔 값이 저장되고, 그 값이 Integer overflow가 되기 때문에 안된다는 것입니다. 아무튼 결론적으로 이 버그를 해결하는 방법은 edx레지스터를 0으로 초기화를 하고 div 명령어를 사용하시면 해결 됩니다.
보호되어 있는 글입니다.