帮助逆向工程二进制文件格式的工具

2023-12-05

有哪些工具可以帮助解码未知的二进制数据格式?

我知道 Hex Workshop 和 010 Editor 都支持结构。对于已知的固定格式来说,这些在有限的范围内是可以的,但对于更复杂的东西来说很难使用,特别是对于未知的格式。我想我正在寻找脚本语言或可编写脚本的 GUI 工具的模块。

例如,我希望能够从有限的已知信息(也许是一个幻数)中找到数据块中的结构。一旦找到一个结构,然后按照已知的长度和偏移量单词来查找其他结构。然后在有意义的地方递归和迭代地重复这个过程。

在我的梦想中,甚至可能根据我已经告诉系统的信息自动识别可能的偏移和长度!


以下是我想到的一些提示:

根据我的经验,交互式脚本语言(我使用 Python)可以提供很大的帮助。您可以编写一个简单的框架来处理二进制流和一些简单的算法。然后您可以编写脚本来获取二进制文件并检查各种内容。例如:

对各个部分进行一些统计分析。例如,随机数据会告诉您这部分可能是压缩/加密的。零可能意味着部件之间的填充。分散的零可能表示整数值或 Unicode 字符串等。尝试发现各种偏移。尝试将二进制文件的一部分转换为 2 或 4 字节整数或浮点数,打印它们并查看它们是否有意义。编写一些函数来搜索数据中重复或非常相似的部分,这样您就可以轻松找到标题。

尝试找到尽可能多的字符串,尝试不同的编码(c 字符串、pascal 字符串、utf8/16 等)。有一些很好的工具可以做到这一点(我认为 Hex Workshop 有这样的工具)。字符串可以告诉你很多东西。

祝你好运!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

帮助逆向工程二进制文件格式的工具 的相关文章

  • 如何在 Swift 中将十六进制数转换为 bin?

    我有字符串变量 var str 239A23F 如何将该字符串转换为二进制数 str toInt 不起作用 您可以使用NSScanner 来自基金会框架 let scanner NSScanner string str var result
  • 64 位定点乘法错误

    我正在 C 中实现一个 64 位定点有符号 31 32 数字类型 基于long 到目前为止 加法和减法都很顺利 然而 乘法有一个我正在尝试解决的恼人的情况 我当前的算法包括将每个操作数分为最高和最低有效 32 位 执行 4 次乘法分为 4
  • 二进制文件的结构验证

    我正在研究正式指定各种二进制流格式的方法 并使用工具检查流是否符合规范 类似于 XSD 任何 XML 验证工具 或者就像在二进制级别上工作的极其复杂的 grep 表达式 最好不是 这真的很难阅读 有人知道有用的规范 工具吗 理由 我们每天都
  • 确定文件是否是 zip 存档内的目录

    我根据规范读取 zip 文件 并从中央目录获取每个文件的信息 从标题中我读到 define VERSION NEEDED OFSSET 6 UINT16 versionNeeded UINT16 zipFile VERSION NEEDED
  • 如何使用 js/uml 对 JavaScript 文件进行逆向工程?

    Goal 我的目标是从我的 JavaScript 项目 由多个 js 文件组成 中获取 UML 模型并将其存储为 XMI 我已经走了多远 我在网上搜索了一下 发现js uml是第一个去的地方 我已经设法让 js uml 插件与 Eclips
  • 如何将png二进制数据放入img标签中并将其显示为图像?

    我正在用这个 ajax type GET url template bump1 purse png datatype image png success function data var reader new FileReader rea
  • 无法拦截Android应用程序的流量

    最近 我正在尝试测试和拦截来自开发的应用程序的流量罗莫比尔 我设置了一个代理burp 当然 我已经在我的设备上安装了 burp 证书 因此我可以拦截设备上的其他应用程序 但我无法在 burp suite 上看到相关应用程序的流量 相反 该应
  • 如何将 std::map 输出到二进制文件?

    我怎样才能输出一个std map到二进制文件 地图声明如下所示 map
  • 如何创建二进制补丁?

    为二进制文件制作补丁的最佳方法是什么 我希望用户能够简单地应用 一个简单的patch应用程序会很好 在文件上运行 diff 只是给出Binary files differ 查看bsdiff and bspatch website http
  • 在Windows中比较2个二进制文件的工具[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要一个工具来比较两个二进制文件 文件相当大 我在互联网上找到的一些免费软件或试用工具不方便用于大文件
  • 用 C 将位写入文件

    我有这个字符串 101 我想用 C 语言将其写入文件 而不是文本 101 等 8 位 x 字符 但直接使用字符串作为位 位 1 位 0 和位 1 这样文件将是3位 有可能吗 我在网上搜索并尝试这样做 char c 25 101 FILE b
  • 如何使用 hibernate JPA 2 以二进制形式存储 uuid

    我有一个关于通过休眠持久化 JPA2 在数据库中以二进制形式存储字符串uuid的问题 我现在正在使用这段代码 private UUID id Id Type type uuid char GeneratedValue generator s
  • 将二进制文件转换为图像

    我需要找到一种将二进制文件转换为图像的快速方法 二进制文件由 N 个NN 矩阵 我想将 0 与一种颜色关联 将 1 与另一种颜色关联 我需要对超过 1000 个二进制文件执行此操作 如果可能的话 我想避免使用 MatLab 有没有任何工具
  • 查找手动注册(混淆)的本机函数地址

    我试图理解一个 Android 应用程序 其中包含一个名为foo在班上com app Bar 课堂内Bar有一个加载共享对象的静态子句System loadLibrary libfoo so 我认为是用它构建的 f可见性 隐藏 https
  • 测试由于浮点限制而导致的舍入误差

    我最近了解到浮点的主要限制之一 事实上 某些数字无法以二进制正确表示 因此可能给出的答案对于您的目的来说不够准确 知道round 2 675 2 and round 2 665 2 两者相等2 67我尝试编写一些代码来给出具有此属性的数字列
  • Java 将字节转换为二进制安全字符串

    我有一些以字节为单位的数据 我想将它们放入Redis中 但是Redis只接受二进制安全字符串 而我的数据有一些二进制非安全字节 那么如何将这些字节转换为二进制安全字符串以便将它们保存到 Redis 中呢 Base64 对我有用 但它使数据更
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • IDA pro asm 指令更改

    我只是想知道我怎样才能 更改IDA视图A中的asm指令 如何编辑指令 对于 实例 jnz 到 jmp 如何插入新指令 call func1 调用 func2 插入到现有的 代码 我知道如何制作 diff 文件 我知道如何在我的 DLL 上应
  • Python 的二进制字符串列表

    我有一个像这样的二进制字符串 1100011101 我想将其解析为一个列表 其中每个 1 或 0 块都是列表中的单独值 例如 1100011101 变成 11 000 111 0 1 您可以通过使用正则表达式而不是从中获得一点 次要 性能g
  • 帮助将二进制图像数据从 SQL Server 读取到 PHP 中

    我似乎无法找到将二进制数据从 SQL 服务器读取到 PHP 的方法 我正在开发一个项目 需要能够将图像直接存储在 SQL 表中 而不是文件系统上 目前 我一直在使用这样的查询 插入 myTable 文档 选择 从 OPENROWSET BU

随机推荐

  • Microsoft VBScript 编译错误:预期语句结束

    我正在尝试借助下面的 VB 脚本将一些记录插入到 MS Access 表中 但是当我尝试执行它时 它会抛出编译错误 预期语句结束 有人可以帮我弄清楚我哪里出了问题吗 Private Sub Form Click Dim dbs As DAO
  • python PIL可以处理原始图像数据吗?

    我有一个原始图像文件 bin 由 16 位无符号整数组成 python 图像库可以获取这种类型的文件并处理它吗 我的代码运行不正常 并给出了无效的文件类型错误 但我认为这可能是编码中的错误 而不仅仅是它不采用此文件类型 有这方面的知识吗 假
  • Python 输入验证 - 接受正浮点数或整数

    似乎我们要求很多 但我们正在寻求对作为输入输入的正 int 或 float 进行简短验证 下面的代码拒绝负数 文本和空条目 耶 它接受 int 为有效 但为什么像 1 1 这样的条目不通过 看似正数条目 我们希望正数 1 和 1 1 的条目
  • 更新 Android studio 3.0 稳定更新后 Gradle 卡住并需要很长时间

    我已经将Android studio更新到3 0稳定发行版本 我的项目及其相应的依赖项在 Android 2 3 3 版本之前都可以正常工作 但从昨天开始 Gradle 构建花费了很长时间 并且在解决依赖关系时陷入了进程 请检查以下 bui
  • 在三星智能电视应用程序中显示 Youtube 视频

    我只想运行一个显示 YouTube 视频的示例三星智能电视应用程序 我尝试了在互联网上找到的所有内容 但没有任何效果 我一周以来一直在寻找一种方法 但仍然没有找到 我总是看到 缺少插件 出现白屏或黑屏 我正在使用带有 SDK 5 的模拟器
  • 列表视图错误c#

    我有一个列表视图 我想从中选择第一个元素 然后调用一个方法 问题是 虽然我在列表视图中有该元素 但我不知道为什么当我想选择该元素时以下代码不起作用 需要帮忙 谢谢 listview Items 0 Selected true listvie
  • Visual Studio SDK - 处理文件添加、删除和重命名事件

    我正在开发一个 Visual Studio 扩展 当用户在当前解决方案中添加 删除或重命名文件时 该扩展应该侦听事件 答案是这个问题注意到 VS 提供了用于监听文档事件的基础设施 例如通过文档事件界面 例如 Dte Events Docum
  • 我可以将 C# 字符串值转换为转义字符串吗?

    在 C 中 我可以将字符串值转换为字符串文字吗 就像在代码中看到的那样 我想用转义序列替换制表符 换行符等 如果这段代码 Console WriteLine someString 产生 Hello World 我想要这段代码 Console
  • Scala反射错误:这是一个内部模块,在InstanceMirror上使用reflectModule来获取其ModuleMirror

    跟进这个问题 我试图弄清楚如何调用对象上的方法 相关定义是 trait ThirdParty def invoke println right trait WeatherIcon def invoke println wrong class
  • 在 Javascript 中更新本地存储数组

    我正在尝试使用 JSON parse stringify 在本地存储中存储和更新数组 但它似乎不起作用 yesArray JSON parse localStorage getItem yesArray yesArray push yes
  • Linq To EF:如何使用非原始类型进行过滤

    public class Person public int ID get set public int Job get set public string Name get set List
  • R 将 x 或 y 坐标分配给栅格的像元以执行计算

    是否有任何解决方案可以使用 R 将 X 或 Y 坐标分配给光栅图像的所有单元格 例如 假设我有一个包含 3x3 像元的栅格 左下坐标为X 7 Y 15 以米为单位 X和Y方向分辨率均为 10 m X向右增加 Y向上增加 然后 我想生成栅格表
  • Android 表格视图

    我需要创建一个与此类似的表格布局http sourceforge net dbimage php id 194965我需要一些关于如何执行此操作的示例源代码 你确定它是一个TableLayout 对我来说它看起来像一个 ListView 如
  • 文本框中的超链接电子邮件地址并通过 Outlook 发送

    我正在开发一个 wpf 应用程序 我有一个客户信息部分 我可以在其中记录我的客户信息 在本节中 我使用一个文本框来记录客户的电子邮件地址 但现在我想制作电子邮件地址超链接 并通过 Outlook 电子邮件链接电子邮件地址 比如说 如果我单击
  • 如何使任何页面成为免费的 RSS 源?

    我想将其作为 RSS 源导入到我的网站上http www huffingtonpost com news yoga 但它不是 RSS 提要 赫芬顿邮报 确实有 RSS 提要 但范围太广了 我想要一本关于瑜伽的 我看到有些网站可以这样做 但你
  • 在 VESA 图形模式下绘制像素

    如何在VESA图形模式下绘制像素 我正在尝试中断10h功能0ch 但它不起作用 怎么了 注 我用 NASM 语法编写了这段代码 并使用 qemu 进行了测试 Code Mov ax 4F02h Mov bx 0105h 1024x768 p
  • 修复了 QGraphicsItem 的位置,而不改变场景中其他 QGraphicsItem 的行为

    这个问题与 强制 QGraphicsItem 保持原状 我想要一个QGraphicsItem在场景中移动时位于固定位置 建议的解决方案是覆盖void paintEvent QPaintEvent 子类的QGraphicsView void
  • 使用 xmlstarlet,如何更改元素的值

    使用 xmlstarlet 如何替换 ThreadGroup num threads 所有实例的值 Before
  • xcb_grab_key 上没有错误,但事件循环未捕获(全局热键)

    我正在尝试在 Linux 上设置全局热键 我最初使用的是 x11 libX11 so 但是我必须从线程中执行此操作 我尝试过但是XPendingEvent and XNextEvent最终会使应用程序崩溃 所以我切换到xcb libxcb
  • 帮助逆向工程二进制文件格式的工具

    有哪些工具可以帮助解码未知的二进制数据格式 我知道 Hex Workshop 和 010 Editor 都支持结构 对于已知的固定格式来说 这些在有限的范围内是可以的 但对于更复杂的东西来说很难使用 特别是对于未知的格式 我想我正在寻找脚本