Logging and Context

Logging

Logging is a very useful feature of pwntools that lets you know where in your code you've gotten up to, and you can log in different ways for different types of data.

log.info(text)

>>> log.info('Binary Base is at 0x400000')
[*] Binary Base is at 0x400000

log.success(text)

>>> log.success('ASLR bypassed! Libc base is at 0xf7653000')
[+] ASLR bypassed! Libc base is at 0xf7653000

log.error(text)

>>> log.success('The payload is too long')
[-] The payload is too long

Context

context is a 'global' variable in pwntools that allows you to set certain values once and all future functions automatically use that data.

context.arch = 'i386'
context.os = 'linux'
context.endian = 'little'
context.bits = 64

Now every time you generate shellcode or use the p64() and u64() functions it will be specifically designed to use the context variables, meaning it will just work. The power of pwntools.

If you think that's a lot of setup, make it even simpler.

context.binary = './vulnerable_binary'

This enables you to do a lot more things as well - for example, if you run

p = process()

it will automatically use the context binary and you will not have to specify it again.

Last updated