Articles of 二进制

需要Linux cmd-line应用程序来比较二进制文件,并在第一次不匹配时退出

是否有一个Linux命令行应用程序将比较两个二进制文件,并退出第一次失误? cmp似乎没有退出的select。

ELF程序头虚拟地址和文件偏移量

我知道两者之间的关系: 虚拟地址mod页面alignment==文件偏移mod页面alignment 但有人能告诉我这两个数字在哪个方向计算吗? 根据上述关系计算文件偏移量的虚拟地址,反之亦然? 更新 这里有一些细节:当链接器写ELF文件头时,它设置程序头的虚拟地址和文件偏移量(段) 例如有readelf -l someELFfile的输出readelf -l someELFfile : Elf file type is EXEC (Executable file) Entry point 0x8048094 Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align LOAD 0x000000 0x08048000 0x08048000 0x00154 0x00154 RE 0x1000 LOAD 0x000154 0x08049154 0x08049154 0x00004 0x00004 RW 0x1000 GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW […]

通过串口读写二进制数据

所以我search了一下,也找不到我需要的东西。 我需要帮助通过串口读取和写入二进制数据,并希望您可能有任何build议。 请注意,当我处于这个项目的另一个阶段时,我问了一个类似于这个问题的问题。 以下是程序。 第一个程序打开一个文件“test.jpg”,以二进制模式读取并将结果存储在缓冲区中。 然后closures文件,并且应该通过串口发送该文件。 第二个程序创build一个名为“testout.jpg”的文件,并且应该读取从前一个程序发送的数据。 我有一个预感,我的代码中的问题在于第二个程序。 也许我也需要用fread呢? 我尝试了,但我不知道如何实现一个串口,因为我是相对较新的编程。 非常感谢您的时间。 串行写入: #include <stdio.h> /* Standard input/output definitions */ #include <string.h> /* String function definitions */ #include <unistd.h> /* UNIX standard function definitions */ #include <fcntl.h> /* File control definitions */ #include <errno.h> /* Error number definitions */ #include <termios.h> /* POSIX terminal control definitions […]

如何从Linux中的文本文件中识别二进制文件

linux file命令在识别文件types方面做得非常好,并给出了非常细致的结果。 diff工具能够从文本文件中分辨出二进制文件,产生不同的输出。 有没有办法来告诉二进制文件forms的文本文件? 所有我想要的是一个是/否的答案是否给定的文件是二进制的。 因为很难定义二进制文件,所以我想知道diff是否会尝试基于文本的比较。 澄清这个问题:只要是文本,我不在乎它是ASCII文本还是XML。 另外,我不想区分MP3和JPEG文件,因为它们都是二进制文件。

如何在Linux中将PE(Portable Executable)格式转换为ELF格式

将PE二进制文件转换为ELF二进制文件的最佳工具是什么? 以下是这个问题的一个简短的动机: 假设我有一个简单的C程序。 我编译它使用gcc的Linux(这给ELF),并使用'i586-mingw32msvc-gcc'的Windows(这给了一个PE二进制文件)。 我想分析这两个二进制文件的相似之处,使用Bitblaze的静态分析工具 – 藤( http://bitblaze.cs.berkeley.edu/vine.html ) 现在葡萄藤没有很好的支持PE二进制文件,所以我想转换PE-> ELF,然后进行比较/分析。 由于所有的分析都必须在Linux上运行,所以我更喜欢在Linux上运行的实用程序/工具。 谢谢

gcc编译的二进制文件给“不能执行二进制文件”

我编译这个程序: #include <stdio.h> int main() { printf("Hello World!"); return 0; } 有了这个命令: gcc -c "hello.c" -o hello 当我试图执行你好,我得到 bash: ./hello: Permission denied 因为权限是 -rw-r–r– 1 nathan nathan 856 2010-09-17 23:49 hello 因为某些原因?? 但无论…更改权限,并尝试再次执行后,我得到 bash: ./hello: cannot execute binary file 我使用的是gcc(Ubuntu 4.4.3-4ubuntu5)4.4.3 我在这里做错了什么? 这是显而易见的…现在为时已晚,我一直用我疲惫的眼睛试图找出这个简单的问题…. PS我做(有时)在比Hello World更复杂的程序上工作,但gcc正在做这个全面的…

在Mac OS X下仿真Linux二进制文件

如何在Mac OS X下运行Linux二进制文件? 谷歌search我发现了几个模拟器,但没有一个在Mac上运行Linux二进制文件。 在Linux上运行Mac OS X有很多相关的东西,但这与我想要做的是相反的。 更新: 感谢所有的答案! 我完全了解MacPorts和Fink或任何其他的东西; 不,我不想要这些工具中的任何一个,而且我也不想要任何包pipe理者,所以我更愿意自己编写一些东西。 我也有Parallels,可以设置虚拟机和爵士乐… 我唯一想做的就是find一种方法来运行一个二进制文件,我没有源代码并且已经为Linux编译,但是我不想在Linux下运行它,但是在Mac OS X下。关于模拟器的问题。

二进制数据通过串行terminal

我的embedded式设备的唯一通信方式是串行端口。 默认情况下,embedded式Linux使用此端口作为terminal。 如何禁用此terminal并使用串行链接传输二进制数据? 我听说像RX和TX的命令,但我找不到它们。 我想我可以只读()和写入()的东西到/ dev / tty,但我想确保没有错误信息或任何与我的数据stream混乱。

Linux上的二进制grep?

说我已经生成了以下二进制文件: # generate file: python -c 'import sys;[sys.stdout.write(chr(i)) for i in (0,0,0,0,2,4,6,8,0,1,3,0,5,20)]' > mydata.bin # get file size in bytes stat -c '%s' mydata.bin # 14 并说,我想要find所有零( 0x00 )的位置,使用类似grep的语法。 我能做到的最好的是: $ hexdump -v -e "1/1 \" %02x\n\"" mydata.bin | grep -n '00' 1: 00 2: 00 3: 00 4: 00 9: 00 12: 00 但是,这将隐式地将原始二进制文件中的每个字节转换为grep操作的多字节ASCII表示forms; […]

为Linux分发二进制应用程序的最佳方式是什么?

我刚刚完成将一个应用程序从Windows移植到Linux。 我必须创build应用程序的安装程序。 应用程序不是开源=>我应该分发应用程序的二进制文件(可执行文件,夫妇.so文件,帮助文件和图像)。 我发现了几种方法来做到这一点: – RPM和DEB包 ; – 安装程序在.sh文件中 ; – 自动包装 我不喜欢第一种方法(RPM和DEB包),因为我不想为不同的Linux发行版提供不同的包。 为Linux分发二进制应用程序的最佳方式是什么?