如何从objdump命令输出中快速消除中间列?

问题描述:

从linux中的可执行文件中删除信息时出现问题。该信息如下:如何从objdump命令输出中快速消除中间列?

08048060 <__bss_start-0x100a>: 
8048060: 31 db     xor %ebx,%ebx 
8048062: 53      push %ebx 
8048063: bb 75 a2 45 7e   mov $0x7e45a275,%ebx 
8048068: ff d3     call *%ebx 

有什么办法令切割更快的数据“31. DB 53中的BB 75 A2 7E 45 FF D3”不复制单行然后在每一行remove命令?有时代码太长时,需要多次剪切该列中的所有数据。

+0

列选择模式。你的编辑器是否支持它? (为什么你要拷贝指令字节?) –

+0

我的工作只需要中间列,所以我只想在没有最后一列的任何指令或第一列中的地址的情况下将其剪切掉。 – Anvh

+1

如果是shellcode,可能这个'objdump -d ./progname | grep'[0-9a-f]:'| grep -v'file'| cut -f2 -d:| cut -f1-6 -d' '| tr -s''| tr'\ t'''| sed's/$ // g'| sed's// \\ x/g'| paste -d''-s | sed's/^ /“/'| sed's/$ /”/ g'' –

一个非常非常简单的方法是使用相关的工具objcopy

gcc -c shellcode.s 
objcopy -O binary shellcode.o shellcode.bin 

objcopy把可以用来将目标文件复制任意部分。