我试图在二进制文件中找到一个调用函数,所以我尝试了如下:
mips-mti-linux-gnu-objdump -d myapp.elf> objdump.txt9d003350: 42000828 myfunction 0x1现在,我想在从内存中读取这个函数时,在myapp.bin中识别这个函数。但是,我明白了:28080042。
我试着使用命令:xxd -ps myapp.bin> xxd.txt可以找到:28080042。
有可能这样做吗?
发布于 2016-12-19 18:45:03
这是一个痴呆症冲突。objdump和xxd给出了相同的字节,它们只是使用不同的endianness。
Actual bytes in order:
28 08 00 42
Big endian value:
28 08 00 42
Little endian value:
42 00 08 28xxd -p将按其存在的顺序打印出文件中的各个字节。
objdump正在拆解它,它知道字节属于4组,并将它们解释为小endian。
xxd可以使用-e标志(默认分组为4个字节,使用-g标志来更改每个组的字节数)按小端点顺序打印。但是,这与-p标志不兼容,因为-p标志忽略任何分组。
objdump可以使用-EB标志按大端顺序打印,但这将影响它报告的指令。
https://stackoverflow.com/questions/41227875
复制相似问题