问题标签 [binary-data]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1265 浏览

ruby - 从我的胰岛素泵控制器逆向工程统计数据文件

这可能是也可能不是一个灰色地带的主题,尽管我的意图肯定不是,所以我的意图不是激起关于逆向工程主题的道德辩论。

我是一名 1 型糖尿病患者,目前正在接受泵治疗。我是OmniPod用户,它是一种一次性豆荚,可以贴在我的身体上并分配 3 天的胰岛素。它由个人糖尿病经理 [PDM](见下文)控制,该经理控制在用餐期间分配多少胰岛素、血糖读数,并且它包含一个食物指数,用于在旅途中计算碳水化合物。

替代文字
(来源:myomnipod.com

新的 PDM 有一个用于下载数据的 USB 端口。该软件对 Windows 用户免费(名为 CoPilot 的软件包),但不支持 Mac。

将 PDM 插入我的 Mac 后,它像任何其他 USB 设备一样安装,并为我提供了一个可读的卷,上面有一个带有 IBF 扩展名的文件。它的重量为 16KB。

我的第一个直觉是通过文本编辑器传递它,并得到一个看起来非常二进制的文件。然后我通过字符串传递它(见下文)并用十六进制编辑器打开它。尽管除了下面的字符串之外我无法获得太多信息;没有压缩格式细节或任何东西。

我在这个过程中的下一步应该是什么?我是一个动态语言专家,所以任何 Ruby 或 Python 的资源都会很棒。是否有任何测试驱动的逆向工程流程?

就我希望获得的数据而言,我想将这些信息绘制成图表以获得有关我的进度的更多信息(胰岛素摄入量、血糖读数、时间戳);所有这些都可以在 Windows 软件包中实现。

0 投票
11 回答
3208 浏览

scripting - 什么语言之于二进制,就像 Perl 之于文本?

我正在寻找一种脚本(或更高级别的编程)语言(或例如 Python 或类似语言的模块)来轻松分析和操作文件(例如核心转储)中的二进制数据,就像 Perl 允许非常流畅地操作文本文件一样。

我想做的事情包括以各种形式(二进制、十进制、十六进制)呈现任意数据块,将数据从一种字节序转换为另一种字节序,等等。也就是说,你通常会使用 C 或汇编的东西,但我寻找一种允许非常快速地为高度特定的一次性目的编写小段代码的语言。

有什么建议么?

0 投票
3 回答
262 浏览

.net - .NET 流解码器行为

我有一个尝试从二进制流中解码字符串的不同编码的过程。当我逐步完成时,我得到了一些在我脑海中并没有完全加起来的行为。具体来说,我所做的是:

  • 获得将用于在给定编码中对字符进行编码的最大字节数
  • 从流中获取字节数
  • 用于Encoding.GetCharCount确定在这些字节中可能编码了多少个字符(可能是 0 一或二……)
  • 如果它不为零,我Encoding.GetString会从字节数组中抓取字符
  • 然后我计算出有多少字节用于对提取的字符进行编码并将流索引推进该数量
  • 如果可解码字节数为零,我将索引提前一个字节并再次尝试整个过程……以这种方式,我希望不会错过任何可解码字符

顺便说一句,如果有人注意到上述任何不正确的假设,请随意说...

当我的解码器DedcoderFallbackExceptions无法解码给定的一组字节时,我将它们设置为抛出。让我感到困惑的是,有时在我调用时会出现异常,GetCharCount而有时会在我调用时出现异常GetString。有什么理由应该发生这种情况吗?这实际上是预期的吗?我希望能够在尽可能少的地方可靠地检查可打印字符的存在 - 目前我正在几个地方做这件事。

有什么想法吗?

谢谢,布赖恩

大更新: 我对问题的最初描述似乎有点不足。让我为这个问题添加更多前提:

  • 流可能非常大 - 它适合大多数用户的内存
  • 在流中的任何给定位置,我不确定我是否在文本的开头,在文本的中间
  • 在流中的任何给定位置,我不知道我是在多字节字符的中间还是开头
  • 该流将包含许多实际上不是任何类型的文本的材料,以及少量不同的编码

希望这可以澄清一些问题。到目前为止的回复非常有帮助!请继续!

0 投票
3 回答
4045 浏览

c - 将整数值写入二进制文件

假设我有一个包含以下值的数组编号:

现在,我想将这些数字缩放为单字节值并将它们存储在 char 数组中

最后,我想将这些值写为二进制文件,如下所示:

不幸的是,当试图编译这个程序时 gcc 不喜欢 fwrite 命令:

有人知道我错过了什么吗?谢谢!

0 投票
1 回答
1476 浏览

c++ - 在 mysql connector/c++ 中使用 setblob 设置二进制数据会导致崩溃

我尝试使用 setBlob() 如下:

这在 executeUpdate() 处崩溃。我究竟做错了什么?

0 投票
1 回答
532 浏览

asp.net - ASP.NET Webservice 损坏上传的文件

我有一个网络服务,通过它我可以将文档上传到我们的 ASP.NET 网站。问题是当我上传 PDF 和 word 文档时,当我尝试打开它们时它们会损坏。文本文件总是可以正常上传。更奇怪的是,在我的开发机器上,这些文件上传正常,但是当我尝试上传到我们的演示站点时,它们被损坏了。

有任何想法吗?

我的代码格式如下:

0 投票
3 回答
1252 浏览

.net - 确定 blob 是否是不加载整个字段的图像?

有没有办法从数据库中的 BLOB 类型字段中仅读取几个字节(对于这个问题,DB 品牌无关紧要)并确定二进制内容是否是图像(假设它是以下之一:JPG, GIF,PNG)?我有一个将文件存储在数据库中的 web 应用程序,如果它是图像,我想显示一个缩略图,否则我想显示一个图标......但我没有任何 MIMETYPE 信息存储在 blob 的其他任何地方(这不是我的设计)......因为它是一个 web 应用程序,所以图像的加载需要在单独的调用(getImage.ashx)中发生,而不是写出 <img> 标签......当我写出我不想将整个 blob 读入库中的标签,确定它是否是图像,调整它的大小......等等......我' 希望能够查看前几个字节并知道我是否需要编写标签。我不太了解图像文件结构/格式,无法知道在前几个字节中是否有某种标准标头,我可以读入以判断它是 JPG、GIF 还是 PNG。

有道理?

如果您想专门帮助我(而不是一般地回答是否可以完成),那么我正在使用 .NET C# 和 SQL 2005

谢谢!

0 投票
2 回答
1024 浏览

c++ - 在 Actionscript 3 中读取二进制 C 浮点数?

我有二进制 C/C++ 数据类型(例如,在 C 浮点数的内存版本中),我需要将其读入 Actionscript 3,并且不希望从头开始编写代码。

任何人都知道任何库、示例代码、伪代码来帮助解决这个问题吗?

例如:

C/C++ 应用程序:

Actionscript 3 应用程序:

0 投票
1 回答
1188 浏览

weblogic - 使用 Weblogic Portal 10.2 从 JPF 操作返回二进制内容

我的 JPF 控制器的一个操作构建了一个 PDF 文件,我想将此文件返回给用户,以便他可以下载它。

是否可以这样做,或者我是否被迫在某处写入文件并让我的操作转发到该文件的链接?请注意,出于安全原因,我想尽可能避免这种情况,因为我无法知道用户何时下载了文件,以便我可以删除它。

我试图访问 HttpServletResponse 但没有任何反应:

0 投票
3 回答
2594 浏览

c# - 使用要保存到 SQL 数据库的图像序列化对象

我有以下对象:

我将其存储在 aList<ExampleImage>中,然后将其传递给以下函数以将其序列化为字符串:

然后,我将此序列化字符串传递给SQL2000中的存储过程NTEXT,然后将其插入数据库中:

我遇到的问题是图像被破坏了。btye[]没有正确保存到数据库中。其他领域都很好。这是我第一次尝试通过 XML 向 SQL 发送二进制数据,所以我现在很可能做错了什么。我的SerializeObjectToXmlString函数是问题吗,它没有byte[]正确处理序列化,可能是OpenXMLSQL 函数,甚至是我将 XML 作为NTEXT参数发送的事实。我希望序列化函数能够正确编码二进制文件,但我可能是错的。

知道问题是什么,或者可能是一次保存一堆图像的更好方法吗?

编辑:我认为正在发生的事情是,序列化程序正在将其byte[]转换为 base64 字符串,然后将其作为 base64 传递给存储的 proc。然后,我将此 base64 字符串保存到 SQL 中的 Image 字段中,并将其作为btye[]. 所以我认为我需要以某种方式将它从 base64 到 a byte[],然后再将其插入我的表中?

编辑:我开始认为我唯一的选择是将存储的过程更改为一次只执行 1 个图像而不使用 XML,而只是将其byte[]作为Image类型传入并将所有调用包装在事务中。