`
yjhexy
  • 浏览: 332242 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

将文本的16进制 转换为真正的2进制存入文本

 
阅读更多

前些天想要抓包分析,抓下来的包都是16进制文本,想要复制过来转化成真正的二进制分析。于是写了下面的程序:

 

package com.yajun;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 将16进制字符串转换为二进制数据存入文本
 * 
 * @author yajun.wuyj
 */
public class IntegerDeocde {

    public static void main(String[] args) throws IOException {
        FileOutputStream fo = new FileOutputStream(new File("IntegerDecode"));
        String s = "68 65 6c 6c 6f 20 77 6f 72 6c 64 2c ca c0 bd e7 c6 bd ba e2  ";
        for (int i = 0; i < s.length(); i++) {
            i = findNextNotBlank(s, i);
            if (i == -1) {
                break;
            }
            byte hiByte = Byte.decode("0x" + s.charAt(i)).byteValue();
            i = findNextNotBlank(s, ++i);
            if (i == -1) {
                break;
            }
            byte lowByte = Byte.decode("0x" + s.charAt(i)).byteValue();
            byte result = (byte) ((hiByte << 4) | lowByte);
            fo.write(result);
        }
        fo.close();
    }

    // 查找下一个不为空白char
    private static int findNextNotBlank(String s, int i) {
        while (i < s.length() && s.charAt(i) == ' ') {
            ++i;
        }
        if (i >= s.length()) {
            return -1;
        }
        return i;
    }
}

 

分享到:
评论

相关推荐

    易语言优化字节集与16进制文本互换

    相反,16进制文本转字节集则需要解析16进制文本,将每一对16进制数字转换回字节,并存入字节集中。这需要处理字符串的分隔,将每一对数字解析出来,再进行转换。在这个过程中,需要注意16进制数字的大小写问题,因为...

    BMP图像转16进制数组

    例如,在Python中,可以使用PIL(Pillow)库来读取BMP文件,然后通过循环遍历像素,将每个像素的RGB值转换为16进制字符串,并存入列表。 这个转换过程对于将图像数据嵌入到代码中(如微控制器或嵌入式系统)、在...

    javascript将16进制的字符串转换为10进制整数hex

    例如,对于输入的字符串"1df",`hex2int`函数会将其转换为10进制整数479,其中'1'对应16进制的1,'d'对应13,'f'对应15。 另一方面,`int2hex`函数则用于将10进制整数转换为16进制字符串。它首先定义一个包含所有16...

    顺序栈的实现、十进制数到其它进制数的转换、行编辑程序的设计

    同样,转换为八进制或十六进制时,分别以8和16为基数进行相同的操作。 **行编辑程序的设计** 行编辑程序是用于文本编辑的简单工具,它允许用户在单一文本行内进行插入、删除、替换等操作。设计行编辑程序的关键点...

    ok.rar_Alpha_matlab 16进制

    在16进制到10进制转换的过程中,可能会创建一个名为"Alpha"的矩阵来存储这些转换后的数值。 在压缩包中的`ok.m`文件很可能是实现这些操作的MATLAB脚本。它可能包含了定义矩阵、读取文件、转换数据和写入新文件的...

    php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串

    虽然16进制字符串可以方便地在文本中显示和传输,但通常不建议直接将16进制字符串存入数据库,因为这会增加存储空间并可能降低查询效率。如果需要存储,应先将16进制字符串转换回二进制数据再存入BLOB字段。读取时...

    Matlab读取16进制RGB文档转化为彩色图像.docx

    然后,利用`hex2dec`函数将16进制字符串转换为10进制整数,再通过`uint8`函数将其转换为0-255范围内的8位无符号整数,这是MATLAB处理颜色数据的标准格式。 接下来,通过嵌套循环,程序将每个通道的数值分配给相应的...

    C# 流模式读写TXT及转换ASCII码

    本文将深入探讨如何使用C#通过流模式读取和写入TXT文件,并将其内容转换为ASCII码。在Visual Studio 2008(VS2008)环境下,我们可以创建一个简单的应用程序来实现这一功能。 首先,让我们了解ASCII码。ASCII...

    图片存入Oracle中,用clob和blob两种方式

    - **图片转二进制/字符串**:对图片进行读取,如果是使用`CLOB`,需要将图片转换为Base64字符串;如果是`BLOB`,则直接读取二进制流。 - **插入数据**:通过SQL插入语句,将转换后的图片数据插入到相应的字段中。 ...

    小功能工具实现原理.docx

    这里使用了 `doubletobytes()` 函数将 double 转换为字节序列,`dbytetocstring()` 函数将字节序列转换为 16 进制字符串。 4. **二进制文件读取的不同方法**: 二进制文件的读取可以使用 fstream 类或者 CFile 类...

    大小写转换

    1. 从键盘接收字符:使用INT 16H中断服务例程,读取用户的键盘输入,并将其存入AL寄存器。 2. 判断字符类型:通过比较AL寄存器中的ASCII码值,判断字符是否为大写或小写字母。 3. 转换操作:如果字符是小写,将AL...

    Python--第4次平时作业1

    5. 下面程序的功能是从键盘读入菱形图案的行数(上三角行数),构造该菱形图案,并将其存入文本文件“D:\user\a.txt”中。该程序使用文件操作来实现图案存储。答案是:f.write(s+'\n')。解释:在该程序中,我们使用...

    计算机组成技术大作业第3题程序说明.pdf

    5. 在处理过程中,会调用一个名为`SBinaryAscii`的子程序,用于将16位无符号二进制数转换为ASCII码。这个子程序通过两个循环实现: - 第一个循环:将数字除以10并取余,余数用于构建ASCII码。 - 第二个循环:检查...

    易语言hex格式转换源码-易语言

    5. 创建二进制对象:在易语言中,这一步可能涉及创建一个“字节集”(易语言的二进制数据类型),并将组合后的二进制数存入其中。 6. 返回结果:最后,函数会返回这个二进制对象,供其他部分的代码使用。 通过学习...

    STenWin - 汉字显示方式五(GB2312格式全字库生成和使用办法,放在SD卡存入FLASH中)

    3. **码值到点阵转换**:编写程序,遍历码表,将每个汉字的码值转换为其对应的点阵字模数据。这个过程可能涉及到位操作和数组填充。 4. **存储字库**:将转换得到的点阵字模数据以二进制文件形式存储,可以是单个大...

    PLC技术及应用-外部设备IO指令.pptx

    - **SEGD(FNC73)**:七段译码指令,将第四位指定的0-F(16进制)的数据转换为七段码,显示在七段显示器上。 - **SEGL(FNC74)**:带锁存的七段显示指令,用于控制一组或两组带锁存的七段译码显示,持续12个扫描周期。...

    计算机基础题目及答案.pdf

    4. **进制转换**:八进制数126转换为十进制是8*8 + 2*1 + 6 = 66,而不是86。 5. **计算机系统功能**主要由CPU决定,但其他组件如内存、硬盘、显卡等也会影响性能。 6. **ASCII码**:字符"D"的ASCII码是68,不是65...

    通过sql语句将blob里的char取出来转成数字保存在其它字段

    接下来,我们要将Blob字段`EquipmentBlob`中的第17、19和21位字符转换为数字并分别存入新字段。由于Blob数据是以二进制形式存储的,我们需要先将其转换为十六进制字符串,以便我们可以访问单个字符。这里使用了`HEX...

    -山东专升本计算机文化基础真题.pdf

    9. **十进制与十六进制转换**:十进制数110.125转换为十六进制数为6E.2。 10. **安装程序文件名**:许多微机软件的安装程序文件名通常为setup.exe,这是Windows系统常见的安装程序名称。 **单项选择题知识点解析:...

Global site tag (gtag.js) - Google Analytics