2

in pwnlib there is a possibility to search for particular bytes, e.g. as follows for 0x66 byte:

print(next(p.elf.search(b'f')))

which in turn results in the following output:

4195268

Having this value it is possible to examine it as an address in radare2:

pd 1 @ 4195268

        0x004003c4      666c           insb byte [rdi], dx

And it refers properly to a sequence of bytes containing desired 'f' (0x66). However, this is neither a physical address nor a virtual one:

[0x00400520]> ?v 4195268
        0x4003c4
[0x00400520]> ?p 4195268
        0x000003c4

And I couldn't get it from radare2 directly. Instead, searching for bytes in r2 results in reference to virtual address, not to the value returned by ELF class from pwntools.

[0x00400520]> /x 66

0x004003c4 hit10_0 66

So, what is it actually an address of? And how I can get the same value returned by pwntools in radare2?

Thank you!

2

working the whole time with hex values only makes one stupid.

0x4003C4 -> 4195268 (dec)

In radare2 you may access memory given in different numeral systems

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.