Profile

머리정리하는곳

c2w2m2

Pwntools 기본적인 사용법 - 4

쓸거 다써서 안쓰렸는데, 요즘 쓰는게 늘어나서 좀더 써본당



FmtStr

refer : http://python3-pwntools.readthedocs.io/en/latest/fmtstr.html


주 사용법은


fmt =FmtStr( argv )


꼴로 사용한다.


argv 에는 execute_fmt, offset, padlen, numbwritten 이 들어간다. 다 쓰이니까 알아두자.

  • execute_fmt : payload를 보낼때 쓰는 함수를 지정한다.   
  • offset : AAAA %p %p 같은거 했을때 몇번째 %p 에서 나오는지 
  • padlen : 패딩 필요할때 패딩 길이
  • numbwritten : 몇글자 먼저 써있는지
def send_pay(pay):
p.sendline(pay)

fmt = FmtStr(execute_fmt=send_pay, offset=11, padlen=4, numbwritten=10000)

같은 꼴로 선언한다.

그 후

fmt.write( dest, src )

꼴로, 어따가 뭐쓸건지 지정한다.


그 후,


fmt.execute_writes()


로 실행한다


SROP

refer : http://python3-pwntools.readthedocs.io/en/latest/rop/srop.html


주 사용법은


frame =SigreturnFrame( argv )


꼴로 사용한다.


argv 에는 arch가 들어간다. 그냥 아키텍쳐고, 선언하기전에 context.clear(arch='amd64') 써도 된다.


그리고 걍 

frame.eip = 0xdeadbeef

frame.esp = 12341234


꼴로 레지스터 설정해주고


bytes(frame) 해서 페이로드 보내주면 된다(grin)





'Analysis' 카테고리의 다른 글

Automatic Exploit Generation  (1) 2018.01.08
Arm 아키텍쳐  (0) 2018.01.06
HTTP 프로토콜 구조  (0) 2017.12.11
syscall 을 이용한 rop  (3) 2017.11.06
Pwntools 기본적인 사용법 - 3  (1) 2017.10.20