精华内容
下载资源
问答
  • 读取二进制文件读取二进制文件

    热门讨论 2011-02-16 17:07:08
    读取二进制文件读取二进制文件读取二进制文件读取二进制文件读取二进制文件读取二进制文件读取二进制文件
  • 用来读取二进制文件和写入二进制文件的函数
  • c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件
  • 二进制文件

    2016-04-27 17:46:43
    二进制文件
  • 自己用c#写的一个小工具,可以打开二进制文件,保存二进制文件,主要是对二进制文件打开后可全部自动清0,并保存! ,借鉴了一些前人的基础!
  • 二进制文件和十六进制文件读取什么区别,binary是二进制模式吧,那么十六进制模式用什么模式呢?
  • 我需要一个工具来解决在使用Kubernetes生态系统时安装一堆必需,有用或两者兼的不同二进制文件的问题。 尽管可以使用程序包管理器来安装某些工具,但是不能使用apt,yum等工具来安装许多工具。我想要易于使用且...
  • “读取二进制文件”位于函数选板的“编程→文件I/O→读取二进制文件”,图标和接线端如图1所示。  图1 读取二进制文件图标和接线端  读取二进制文件二进制文件读取数据,读取的数据类型取决于指定文件的...
  • 读取二进制文件

    2012-01-04 20:44:51
    读取二进制文件
  • 主要介绍了JavaScript读二进制文件并用ajax传输二进制流的方法的相关资料,需要的朋友可以参考下
  • C++二进制文件读写

    2018-04-09 22:50:55
    C/C++实现简单的二进制文件读取和写入示例 1.包含如何读取和写入数字,以及用缓存按字节读取 2.采用标准输入和输出函数创建、打开、关闭文本文件或二进制文件
  • 二进制文件编码成bytes类型,写入py文件中,作为一个变量的值。在打包py脚本时额外的资源(如图标)时,将其编码成字节码,在主程序中解码后生成原来的二进制文件,这样可以打包成一个独立的程序
  • 二进制文件和非二进制文件

    千次阅读 2012-09-17 14:34:53
    二进制文件和非二进制文件   1. 流式文件:文件中的数据是一串字符,没有结构。 2. 文本文件是一种典型的顺序文件,其文件的逻辑结构又属于流式文件。特别的是,文本文件是指以ASCII码方式(也称文本方式)存储...

    二进制文件和非二进制文件

     

    1. 流式文件:文件中的数据是一串字符,没有结构。

    2. 文本文件是一种典型的顺序文件,其文件的逻辑结构又属于流式文件。特别的是,文本文件是指以ASCII码方式(也称文本方式)存储的文件,更确切地说,英文、数字等字符存储的是ASCII码,而汉字存储的是机内码。文本文件中除了存储文件有效字符信息(包括能用ASCII码字符表示的回车、换行等信息)外,不能存储其他任何信息,因此文本文件不能存储声音、动画、图像、视频等信息。

    设某个文件的内容是下面一行文字: 中华人民共和国 CHINA 1949。如果以文本方式存储,机器中存储的是下面的代码(以十六进制表示,机器内部仍以二进制方式存储): D6 D0 BB AA C8 CB C3 F1 B9 B2 BA CD B9 FA 20 43 48 49 4E 41 20 31 39 34 39 A1 A3 其中,D6D0、BBAA、C8CB、C3F1、B9B2、BACD、B9FA分别是“中华人民共和国ABCD”七个汉字的机内码,20是空格的ASCII码,43、48、49、4E、41分别是五个英文字母“CHINA”的ASCII码,31、39、34、39分别是数字字符“1949”的ASCII编码,A1A3是标点“。”的机内码。从上面可以看出,文本文件中信息是按单个字符编码存储的,如1949分别存储“1”、“9”、 “4”、“9”这四个字符的ASCII编码,如果将1949存储为079D(对应二进制为0000 0111 1001 1101,即十进制1949的等值数),则该文件一定不是文本文件。

    文本文件是包含用户可读信息的文件。这些文件以ASCII码方式存储,可显示和打印。文本文件的行不能包括空字符(即码中的NULL),行的最大长度(包括换行符在内)也不能超过(LINE_MAX)所定义的字节数。不过文本文件中并不限制使用除空字符以外的控制字符或其它不可打印字符。(二进制文件[此处指非文本文件]包含计算机可读信息的文件。二进制文件可以是可执行的文件,使系统根据其中的指令完成某项工作。命令和程序都是以可执行的而进制文件方式存储。二进制文件没有行的长度限制,也可包含空字符。)

    3. 如果将存储的信息采用字符串方式来保存,那么称此类文件为文本文件(可以按字符显示)。将文件看作是由一个一个字节(byte)组成的,那么文本文件中的每个字节的最高位都是0,也就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字节中的所有位都用上了。

    如果将存储的信息严格按其在内存中的存储形式来保存,则称此类文件为二进制文件。二进制文件虽然也可在屏幕上显示,但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。因此也把这种文件称作“流式文件”。文本或字符文件代表慢速设备,而二进制文件代表可以大块数据操作的快速外设,二进制文件内容基本无意义,系统对它不加解释地传给调用者,解释由调用者负责.而对字符文件,系统把他理解为单字节的ASCII或多字节的UNICODE字符串,并且对其中的特殊字符(如回车等)加以特殊处理.所以同一个文件,可以使用不同类型的系统调用.

    回车(CR)和换行(LF)符都是用来表示“下一行”的。而标准没有规定要使用哪一个。于是产生了三种不同的用法:

    (1) Dos和windows采用回车+换行(CR+LF)表示下一行

    (2) UNIX采用换行符(LF)表示下一行

    (3) MAC机采用回车符(CR)表示下一行。

    当在不同的系统间传递文件,就要涉及格式的转换。

    文本方式和二进制方式的最大区别在于文本方式对于'\n'换行符的理解不同

    (1)在DOS平台下,该字符会被展开成<CR>< LF>两个控制字符(相当于"\r\n"),在ASCII字符集下是 0DH,0AH

    (2)在UNIX平台下,仅仅是<LF>,不会展开。

    (3)在二进制方式下,不管是什么平台,'\n'都是精确的<LF>。

    在linux/unix 系统上,只有一种文件类型的系统,带b字母的模式和对应的不带b字母的模式是相同的。

    关于EOF:   EOF可以作为文本文件的结束标志,但不能作为二进制文件的结束符.feof函数既可以判断二进制文件,又可以判断文本文件. EOF在Windows下是ctrl+z,linux下是ctrl+D.

    第二个问题就是文件按照文本方式或者二进制方式打开,两者会有什么不同呢? 其实不管是二进制文件也好,还是文本文件也好,都是一连串的0和1,但是打开方式不同,对于这些0和1的处理也就不同。如果按照文本方式打开,在打开的时候会进行translate,将每个字节转换成ASCII码,而以按照二进制方式打开的话,则不会进行任何的translate;

    最后就是文本文件和二进制文件在编辑的时候,使用的方式也是不同的。譬如,你在记事本中进行文本编辑的时候,你进行编辑的最小单位是字节(byte);而对二进制文件进行编辑的话,最小单位则是位(bit),当然我们都不会直接通过手工的方式对二进制文件进行编辑了。

    4. 输入码、区位码、国标码与机内码 (都是汉字的编码形式)

    键盘是当前微机的主要输入设备, 输入码就是使用英文键盘输入汉字时的编码。

    计算机只识别由0、1组成的代码,ASCII码是英文信息处理的标准编码,汉字信息处理也必须有一个统一的标准编码。我国国家标准局于1981年5月颁布了《信息交换用汉字编码字符集——基本集》,代号为GB2312-80,共对6763个汉字和682个图形字符进行了编码,其编码原则为:汉字用两个字节表示,每个字节用七位码(高位为0),国家标准将汉字和图形符号排列在一个94行94列的二维代码表中,;每两个字节分别用两位十进制编码,前字节的编码称为区码,后字节的编码称为位码,此即区位码,如“保”字在二维代码表中处于17区第3位,区位码即为“1703 ”。

    国标码并不等于区位码,它是由区位码稍作转换得到,其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码,这样就得了一个与国标码有一个相对位置差的代码,再将这个代码的第一个字节和第二个字节分别加上20H,就得到国标码。如:“保”字的国标码为3123H,它是经过下面的转换得到的:1703D->1103H->+20H->3123H。

    国标码是汉字信息交换的标准编码,但因其前后字节的最高位为0,与ASCII码发生冲突,如“保”字,国标码为31H和23H,而西文字符“1”和 “#”的SCII也为31H和23H,现假如内存中有两个字节为31H和23H,这到底是一个汉字”保”,还是两个西文字符“1”;和“#”?于是就出现了二义性,显然,国标码是不可能在计算机内部直接采用的,于是,;汉字的机内码采用变形国标码,其变换方法为:将国标码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变,如:由上面我们知道,“保”字的国标码为3123H,前字节为00110001B,后字节为00100011B,高位改1为10110001B和10100011B即为B1A3H,因此,保字的机内码就是B1A3H;。

    汉字信息处理过程众所周知,计算机并不能识别汉字,因此必须要把每个字符转换成计算机能唯一识别的由0和1组成的代码,这个代码称为机内码

    汉字机内码的每个字节都大于128,这就解决了与西文字符的ASCII码冲突的问题。

    5. 测试

    FILE *fp;

                    int i = 12;

                    int j = 12;

                   

                    fp = fopen("01.txt","wb");

                    fprintf(fp,"%d",i);

                    fputc('\n',fp);

                    fwrite(&j,sizeof(int),1,fp);

                   

                    fclose(fp);

    即使是用二进制打开,但如果你用fputc,fputs,fprintf这些函数,其实还是和用文本文件打开一样。只有用到fwrite/fread函数,才会看到一个整型占4个字节。

    按二进制写文件指的是直接按照数据在内存中的表现形式写入文件。例如,如果int型数据在内存中用 4 个字节表示,则写这个int数据的时候直接把对应的内存中 4 个字节的内容写入文件。在此过程中数据不需要做任何转换,所以效率较高。

    数 据有字符型和非字符型(数)两种。按文本方式写文件指的是将数据转换为对应的字符型数据之后再写入文件。对于字符型数据,由于其本身就是ASCII码字符,一般不必转换,直接写入文件。但是,由于不同的系统对于换行符('\n')有不同的处理(转换)方式,在有的系统(如Windows)下也会对 '\ n'作适当的转换。

    对于非字符型数据,都要进行转换处理。例如:int m = 12; 以及 double f = 2.3;,分别按照 "%d"、"%lf"方式将 m和 f 写入文件的时候,写入的分别是 '1'、'2'两个字符以及 '2'、'.'、 '3'等三个字符的ASCII码值。显然,如果按照二进制方式写的话,在文件中一般 m要占 4个字节、f 要占 8 个字节

     

     

    转载地址  http://liufabin66688.blog.163.com/blog/static/1396854820081027103133373/


    展开全文
  • 二进制文件查看工具,可以查看二进制文件,可设计长度对数据进行对齐,检查数据,进行数据分析必不可少的小软件
  • 二进制文件转换

    2014-02-20 17:52:20
    二进制文件转换: 双击点开,把图片直接拖到期界面上,自动生成二进制文件(.h)。
  • 二进制文件加密

    2017-01-04 14:56:32
    对存储的二进制文件进行二次加密
  • 二进制文件文本文件和二进制数据

    千次阅读 2015-05-27 17:48:45
    二进制文件二进制数据文本文件个人简单理解

    我们知道计算机是用二进制来做运算处理的,所以所有存储在计算机里面的东西都是二进制的。

    我也知道这句话,但为什么总是听到别人说”二进制“文件和”文本“文件呢? 按照上面那句话来说计算机里面存放的东西都应该是二进制的。

    也就是0101的组合。

    其实计算机底层存储的都是二进制的”数据“,而不是二进制的文件。

    列举一个二进制文件如下:
    00000000h:0F 01 00 00 0F 03 00 00 12 53 21 45 58 62 35 34; .........S!EXb54
    00000010h:41 42 43 44 45 46 47 48 49 47 4B 4C 4D 4E 4F 50; ABCDEFGHIGKLMNOP
    以前我看到这个二进制文件的时候非常犯傻老钻牛角尖,我理解的二进制不应该是下面的样子吗!

    00000000 00000001 10001010 11011101


    其实硬盘里面存放的都属于”数据“,而存在计算机里面的数据(无论什么数据)都是以二进制的形式趴在”物理“磁盘上的。我们平时说的二进制文件或者是文本文件是站在操作系统层面上讲的,这里面的二进制文件存在硬盘里面是0101,但我们在操作系统上面看到该文件的内容就不一定是0101这样,我一直搞混这个概念。

    下面我们再解释一下二进制文件和文本文件的区别:

    将文件看作是由一个一个字节(byte)组成的,那么文本文件中的每个字节的最高位都是0,也就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字节中的所有位都用上了。这就是两者的区别。文件按照文本方式或者二进制方式打开,两者会有什么不同呢?其实不管是二进制文件也好,还是文本文件也好,都是一连串的0和1,但是打开方式不同,对于这些0和1的处理也就不同。如果按照文本方式打开,在打开的时候会进行translate,将每个字节转换成ASCII码,而以按照二进制方式打开的话,则不会进行任何的translate;最后就是文本文件和二进制文件在编辑的时候,使用的方式也是不同的。譬如,你在记事本中进行文本编辑的时候,你进行编辑的最小单位是字节(byte);而对二进制文件进行编辑的话,最小单位则是位(bit),当然我们都不会直接通过手工的方式对二进制文件进行编辑了。

    通过以上的描述我们应该知道二进制文件是什么意思了吧!


    以上内容均是个人理解总结,如有不对的地方请指出。

    展开全文
  • 本文较为详细的分析了C#读取二进制文件方法。分享给大家供大家参考。具体分析如下: 当想到所有文件都转换为 XML时,确实是一件好事。但是,这并非事实。仍旧还有大量的文件格式不是XML,甚至也不是ASCII。二进制...
  • “写入二进制文件”位于函数选板的“编程→文件I/O一写入二进制文件”,图标和接线端如图1所示。  输入和输出接线端的说明如下。  prepend arrav Or string slze?:预置数组或字符串大小,指定是否包含写入...
  • 本Demo是基于VS2010的c++的实现文件二进制二进制文件工程。代码中是通过png图片作为文件,同理可用于其他类型的文件
  • 文本文件转换二进制文件
  • 初识二进制文件

    2020-03-25 19:01:17
    计算机文件 一般分为两类:二进制文件 和 ASCII文件(也称纯文本文件)。 ASCII文件:用纯文本编辑器能够打开且打开文件的内容是人类能够理解的可显示字符。 二进制文件:狭义的说,除去纯文本文件以外的文件均为...

    ELF a linux excutable walkthrough

    计算机文件 一般分为两类:二进制文件ASCII文件(也称纯文本文件)

    • ASCII文件:用纯文本编辑器能够打开且打开文件的内容是人类能够理解的可显示字符。
    • 二进制文件:狭义的说,除去纯文本文件以外的文件均为二进制文件,它们的存储形式为二进制。

    二进制文件的一些描述

    二进制文件在不同操作系统上的表现形式不一样。通过基于 unix 操作系统的 file 命令可以获得二进制文件的相关描述,如:

    setuid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-, for GNU/Linux 2.6.24, BuildID[sha1]=c5ecc1690866b3bb085d59e87aad26a1e386aaeb, not stripped
    

    下面我们来分析下这段输出到底描述了些什么。

    ELF (Excutable and Linkable Format)

    **可执行与可链接格式(ELF)**在计算机科学中是一种用于可执行文件、目标文件、共享库和核心转储的标准文件格式。1999年,被86open项目选为x86架构上的类Unix操作系统的二进制文件格式标准,用来取代COFF。因其可扩展性与灵活性,也可应用在其它处理器、计算机系统架构的操作系统上。

    具体参考:Excutable and Linkable Format

    其它文件格式:

    • PE (Portable Excutable) —— 针对 Windows 操作系统
    • Mach-O(Mach object) —— 针对 NeXTSTEP、 OS X 和 iOS

    32-bit

    不同操作系统写入二进制文件的方式,与操作系统的汇编指令集有关。这里的 32-bit 不是代表编译该文件的操作系统就是32位操作系统,两者之间没有关联。不同的操作系统可以使用不同的汇编指令集编译出具有相同功能的程序。

    常见的汇编指令集有MIPS32(32-bit)、MIPS64、ARM、PowerPC、x86(32-bit)和x86-64(64-bit)等,最后两个汇编指令集是比较常见的。

    LSB (Linux Stardard Base)

    LSBLinux标准规范的英文缩写

    Intel 80386

    Intel 80386是Intel的32位微处理器。这意味着该可执行文件可以在Intel的80386微处理器或与其兼容的任何设备上运行。最新的64位微处理器都向后兼容32位微处理器。

    SYSV

    SYSV 指的就是 UNIX System V。UNIX System V是Unix操作系统众多版本中的一支。它最初由AT&T开发,在1983年第一次发布,因此也被称为AT&T System V。一共发行了4个System V的主要版本:版本1、2、3和4。Unix的另一个主要版本是BSD(伯克利软件发行版)。

    其它:

    • GNU/Linux —— Linux 操作系统

    Dynamically linked (uses shared libs)

    在动态链接中,将外部库(共享库)的名称放置在最终的可执行文件中,而实际链接是在运行时才将可执行文件和库都放置在内存中时执行的。因此,我们不必将标准库保留在二进制文件中(您可以将它们导入程序中)。这有助于减小文件大小,并允许多个程序使用可执行模块的单个副本。

    其它:

    • Static linking

    Static linking (静态链接) 中,程序中使用的所有库模块均被复制到最终的可执行文件中。这是由链接器执行的,并且是编译过程的最后一步。这会大大增加文件大小。

    但是,使用静态链接库的程序通常比使用共享库的程序快。同样在静态链接程序中,所有代码都包含在一个可执行模块中。因此,它们几乎不会遇到兼容性问题。

    interpreter /lib/ld-

    这是 ELF(可执行与可链接格式) 解释器。它负责动态链接。

    for GNU/Linux 2.6.24

    与程序目标链接 C 库的 Linux 系统内核版本。

    not stripped

    not stripped 直译就是 没有剥离 的意思。此信息表示可执行程序和原始源代码之间存在关系。它包括诸如全局和静态变量名称以及函数名称之类的内容。

    相反,stripped 代表没有这些调试信息。


    好了~ 上面就是关于使用 file 命令查出的一些关于二进制文件的描述。这对我们入门 CTF 也有一定的帮助。

    Reference

    参考资料 Knowing your Binary!

    展开全文
  • 二进制文件的合并

    2013-08-01 15:23:18
    将一个二进制文件的内容添加到相同结构的二进制文件
  • 读写二进制文件

    2013-06-08 15:19:24
    可以对二进制文件进行读取,测试通过,请放心使用!
  • fabric 2.3 二进制文件

    2020-12-29 16:15:14
    fabric 2.3 二进制文件
  • 二进制文件转化成文本文件

    万次阅读 2019-06-20 11:13:46
    文本文件和二进制文件的区别在于打开这个文件的程序在对文件内容的解释上。 如果是文本文件,使用任何一种文本编辑器打开可以展现出人类可读信息字符,编码都符合某种编码方式,如ASCII、UTF8、GB2312等 如果是...

    1.区别

    我们说这个文件是二进制文件,这个是文本文件,视角就是从打开这个文件程序在对文件内容的解释上。

    我们使用一般的文本编辑器打开文本文件,看到的是我们认识的字符。

    打开二进制文件,可能根本就打不开。

    (而从计算机本身的存储的视角来看,文本文件和二进制文件都是文件,都是存储在电脑上的都是0101的二进制。只不过文本文件是把字符用某种方式解码成对应的0101这种。)

    如果是文本文件,使用任何一种文本编辑器打开可以展现出人类可读信息字符,因为编码都符合某种编码方式,如ASCII、UTF8、GB2312等等。(关于编码方式不了解可以看这一篇

    如果是二进制文件,肯定没有编码方式,使用某些文本编辑器可以打开,展现出来的就是一些乱七八糟的字符。而是需要特殊的软件进行打开才是正确的打开方式。

    使用UtralEdit可以显示原始的二进制文件,显示的就是原始16进制。右侧自动选了一种编码方式进行翻译成文本,比如他自动选择的就是GBK,显示出来就是乱码。

    下图的例子使用UtralEdit打开的一个png格式的文件(也就是图片,本质上也是一个二进制文件):

    (疑问:为什么utraledit 选择了另外一种编码方式的时候 左边的二进制的值也变了??) 

    有些二进制文件使用通用的规范进行编码,有一定的标准,比如常见的图片格式JPEG,PNG,使用看图软件就能正常打开显示出图片的样子

    有些二进制文件编码格式是程序自定义规范进行编码,对于这种二进制,只有程序的开发者自己知道该文件所对应的编码规范,进行解码使用。

    可执行文件,也是文件,也是二进制文件,而对这种文件的解析就需要操作系统的参与了,涉及到可执行文件的装载等,也是有一个的规范的。可以查看《程序员的自我修养》下的文章)

    2.如何修改二进制文件-Vim

    使用vim修改:

    vim -b 文件名

    :%!xxd ——转化成16进制

    然后进行修改二进制

    :%!xxd -r——转回去

    :wq

    在Linux下使用vim配合xxd查看并编辑二进制文件 - killkill - 博客园

    3.如何把二进制文件转化成其他文本文件,从而搜索ASCII字符

    1.先使用iconv命令://IGNORE忽略那些翻译不了的

    iconv -f GB2312 -t UTF-8//IGNORE {} -o $filename.text

    Linux命令(35)——iconv命令 - 云+社区 - 腾讯云

    2.再使用grep 对 *.text 进行搜索想要查找的ASCII字符

    展开全文
  • 读取二进制文件源码

    2021-05-01 12:53:52
    一、源码特点 采用winform进行开发,实现读取二进制文件功能二、功能介绍 本源码是一个读取二进制文件源码,适合初学者,读取二进制文件,利用C#客户端,读取二进制文件流三、菜单功能 1、首先创建一个.bin格式的...
  • 文本文件和二进制文件区别:文本文件是可见字符的文件,它可以直接经ASCII转换成可见字符二进制文件是不可见字符的文件,比如txt文件但是无论是二进制文件还是文本文件,他们的存储总是二进制...
  • 将结构体数据写入二进制文件,从二进制文件中读取结构体数据

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,068,647
精华内容 427,458
关键字:

二进制文件里有2