在 EXE 文件末尾写入字节安全吗?

2024-04-23

我听说如果我们在 EXE 文件末尾附加一些字节,它仍然可以正常工作。在所有情况下都是如此吗?这是一种安全的方法吗?

我打算使用程序执行文件中的数据来编写演示,因此它可以是安全的(至少对普通用户而言),并且我不必将数据存储在其他地方。


这是不可能用肯定或否定来回答的。

我假设您将在可执行文件的末尾存储数据,而不是将程序状态存储在配置文件中。我进一步假设你是这样做是为了好玩并且最终的结果不需要是完美的。

Any 代码签名机制 http://en.wikipedia.org/wiki/Code_signing您的平台上可能存在的这些行为可能会对这些技巧大喊大叫。仅当可执行文件没有发生重大更改时,签名才有效。 (至少,在,加密签名是根据可执行文件的整个内容计算的(签名本身除外),而不仅仅是标记为可执行文件或程序头中的数据的段。)

您的平台上可能存在的任何防病毒机制都会对此类技巧大喊大叫。自修改代码 http://en.wikipedia.org/wiki/Self-modifying_code肯定与试图保持隐藏或模糊的程序有关,并且向自身写入的代码将触发行为防病毒工具中的警报。

工具如tripwire http://en.wikipedia.org/wiki/Open_Source_Tripwire or 总是会抱怨你的程序。rpm -qa or debsums将始终报告您的可执行文件的问题。将该程序从一个站点可靠地传输到另一个站点将会很困难。

大多数环境中标准可执行文件的权限会完全禁止这种行为。用户帐户没有权限修改系统上的大多数可执行文件——只有可执行文件owned也可以由将运行可执行文件的用户编写。 (即使如此,强制访问控制 http://en.wikipedia.org/wiki/Mandatory_access_control系统如AppArmor http://wiki.ubuntu.com/AppArmor/, SELinux http://en.wikipedia.org/wiki/Security-Enhanced_Linux, TOMOYO http://tomoyo.sourceforge.jp/index.html.en, or SMACK http://schaufler-ca.com/如果配置正确,可以禁止进程写入程序文件。几乎所有合理的安全配置文件都会禁止它。)

没有系统管理员会允许two用户执行and写入可执行文件。

你也有一个务实的问题首先找到可执行文件。至少Linux提供了/proc/self/exe,但是 (a) 系统管理员可能没有安装它 (b) 系统管理员可能不允许大多数进程use(c) 如果在程序执行时替换可执行文件,则可能很难找到要修改的正确文件。

您必须在两种更新可执行文件的方法之间做出决定:要么modify现有文件(ftell(3) and fseek(3))或者将更改的内容写入新文件并replace可执行文件。这两种方法都很麻烦:如果修​​改文件,可能会同时执行多个副本,试图将冲突的编辑写入文件。聪明的编程可以避免巨大的问题,但整个可执行文件可能不会在一个持续的状态。如果替换该文件,则可能会同时执行多个副本,并且可执行文件的磁盘副本可能不会被替换。freed并且实际上可以删除,直到系统重新启动。您可能有十几个可执行程序文件的副本,无形中占用了磁盘空间。他们谁也不能共享内存执行时,增加内存压力。

是的,可以将配置数据保留在可执行程序中,甚至可以使其在某些环境中运行。但这不是生产质量。

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

在 EXE 文件末尾写入字节安全吗? 的相关文章

  • Android 自定义文件扩展名

    我希望我的 Android 应用程序能够通过蓝牙 电子邮件 wifi direct 等 标准共享方法 共享文件 我想将我的数据解析为具有自定义扩展名的文件 并通过某种共享方法 例如蓝牙 发送它 收件人应该能够打开该文件 然后我的应用程序启动
  • 使用powershell计算子文件夹中具有特定名称的文件数量

    因此 我开始解决一个问题 我需要知道某个名称的子文件夹中有多少个文件 这些文件在整个目录中重复多次 我想要计算的所有文件夹都具有相同的名称 例如 Main Folder Subfolder Folder I want to count Fo
  • 检查文件是否要上传?代码点火器

    我有一个带有很少输入和一个文件输入的表单 我想检查文件输入是否为空 如果为空则不要尝试上传 如果不是则尝试上传 我尝试过这样的事情 upld file this gt upload gt data if empty upld file Up
  • python 打开相对文件夹中所有以.txt结尾的文件

    我需要打开并解析文件夹中的所有文件 但我必须使用相对路径 类似于 input files 我知道在 JavaScript 中你可以使用 path 库来解决这个问题 我怎样才能在Python中做到这一点 这样您就可以获得路径中的文件列表作为列
  • 通过套接字发送包含文件的字典(python)

    是否可以通过套接字发送包含文件 图像或文档 作为值的字典 我尝试了类似下面的东西 但失败了 with open cat jpeg rb as f myFile f read 2048 data id 1283 filename cat jp
  • Flutter - 使用 Android 下载指示器下载文件

    我正在尝试下载邮件系统的附件 为此 我正在使用颤振下载器 https pub dartlang org packages flutter downloader但我需要通过我的 http 客户端传递我的令牌 我认为这个插件没有处理这个问题 我
  • 是否可以创建一个包含多页 tiff 文件所有帧的 base64 字符串?

    使用已知的转换方法将多页 tiff 文件转换为 base64 字符串似乎只包含其中的一个页面 我从本地磁盘获取多页 tiff 文件 Image multiPageImage Image FromFile fileName 将其转换为 bas
  • 如何通过双击图标来执行JAVA程序?

    我写了一个java程序 现在我想在没有 IDE Eclipse 等的情况下打开我的控制台 java 应用程序 只需双击桌面上的可执行版本即可 我已将 java 项目导出为 Runnable JAR 文件 但无法打开 当我尝试使用cmd打开应
  • Pyinstaller - 从 os.system 调用 GDAL (gdal_translate)

    问候学识渊博的同学们 在 Windows 7 上运行 32 位 Python2 7 我有一个关于在 pyinstaller 构建中包含 GDAL 可执行文件的问题 我正在进行系统调用来运行 FWTools 版本中的两个 GDAL 函数 这些
  • Windows 上 PE 文件 (exe) 的最小文件大小是多少?以及最小内存分配? [复制]

    这个问题在这里已经有答案了 Windows 上 PE 文件 exe 的最小文件大小是多少 以及最小内存分配 我 使用 VS 10 附带的 MASM ml exe 和 link exe 组装了以下代码 我不能忽略 kernel32 lib 和
  • iCloud Drive 内用户选择的文件夹内的垃圾文件

    我的应用程序可在任何用户选择的文件夹内处理用户 txt 文件 创建 更改 删 除 我只是在内部存储书签以访问用户选择的文件夹和文件 现在 在 macOS Catalina 中 当源文件夹位于 iCloud Drive 内时 系统仍然允许我创
  • xhr 响应 for 循环不起作用

    我有 xhr 和 for 循环 它的工作非常罕见 for var i 0 i lt this files length i var xhr new XMLHttpRequest xhr upload onprogress function
  • c 使用 lseek 以相反顺序复制文件

    我已经知道如何从一开始就将一个文件复制到另一个文件 但是我如何修改程序以按相反的顺序复制它 源文件应具有读取访问权限 目标文件应具有读写执行权限 我必须使用文件控制库 例如 FILE A File B should be ABCDEF FE
  • 使用 JSONKit 解析 JSON 文件

    我正在构建一个音叉应用程序 货叉应允许最多 12 个预设节距 此外 我希望允许用户选择一个主题 每个主题都会加载一组预设 不必使用所有预设 我的配置文件看起来像这样 theme A3 comment An octave below conc
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • Linux下单个目录下文件过多会怎样?

    如果一个目录中有大约 1 000 000 个单独的文件 大部分大小为 100k 其中没有其他目录和文件 是否会以任何其他可能的方式降低效率或产生缺点 ARG MAX 会对此提出异议 例如 rm rf 在目录中时 会说 参数太多 想要执行某种
  • 如何只读取文件的第一行

    我已经用谷歌搜索了一段时间 但我找不到只读取文件第一行的函数 我需要读取文本文件的第一行并从中提取日期 Perl 新手 open my file lt filename txt my firstLine lt file gt close f
  • 我的代码哪里有泄漏?

    下面是我的代码 它打开一个 XML 文件 old xml 过滤无效字符并写入另一个 XML 文件 abc xml 最后 我将再次加载 XML abc xml 当执行以下行时 出现异常 表示 xml 文件被另一个进程使用 xDoc Load
  • 重新链接匿名(未链接但打开)文件

    在 Unix 中 可以创建匿名文件的句柄 例如 使用 creat 创建并打开它 然后使用 unlink 删除目录链接 留下一个带有 inode 和存储的文件 但没有可能的方法重新打开它 此类文件通常用作临时文件 通常这就是 tmpfile
  • 从一个文本文件中获取数据并将其移动到新的文本文件

    我有一个文件 里面有数据 在我的主要方法中 我读入文件并关闭文件 我调用另一种方法 在原始文件的同一文件夹内创建一个新文件 所以现在我有两个文件 原始文件和通过我调用的方法生成的文件 我需要另一种方法 从原始文件中获取数据并将其写入创建的新

随机推荐

  • 如何为列表中的每个元素创建一个按钮并将其放在滚动区域中?

    我有一个列表 每次用户打开文件时都会获取一个元素 我需要创建一个带有文件名 列表中的元素 的按钮 每次将该文件附加到列表中时 并将该按钮放入滚动区域 问题是我总是只有一个按钮 只是更改了名称 filenames def addfiles f
  • SASS/SCSS 变量不适用于 CSS 变量赋值

    我有以下 SCSS 代码 mixin foo bar 42 xyzzy bar bar include foo 我希望得到 CSS 变量 xyzzy set to 42 on all bar元素 相反 我得到 CSS 说明bar xyzzy
  • 根据背景将前景色设置为黑色或白色

    比如计算RGB分量的平均值 然后决定使用黑色还是白色 我是否必须在第一步将 RGB 转换为 HSV 因为 RGB 并不总是人眼看到的 我正在使用 C 恰巧我不久前的一个项目需要这个功能 private int PerceivedBright
  • 如何正确访问后台线程中创建的查询结果?

    我想在后台线程中执行数据库查询 OmniThread 库将帮助我处理所有线程问题 但到目前为止我不明白一件事 每个线程都需要一个单独的数据库连接 因此 后台线程创建数据库连接 创建查询 然后执行它 现在我可以使用后台线程的查询对象访问查询结
  • 停止并重新启动 HttpListener?

    我正在开发一个应用程序 它有一个HttpListener 我的目标是让用户根据自己的选择关闭和打开监听器 我将侦听器放入一个新线程中 但在中止该线程时遇到问题 我在某处读到 如果您尝试中止非托管上下文中的线程 那么一旦它重新进入托管上下文T
  • 尝试从客户端发送数据,但 req.session 无法正常工作

    我正在尝试执行发布请求 当我使用邮递员执行此操作时非常成功 但我正在尝试从客户端发送它 我想发布购物车 但结果是我不断发布数量为 1 的商品 无论我发布该请求多少次 解决此问题并以正常方式发布请求的最佳解决方案是什么 我正在使用会话 也许这
  • Mutation Observer不检测通过innerHTML、appendChild添加的节点

    当我们尝试使用appendChild或innerHTML在DOM中添加嵌套节点时 嵌套节点不会出现在突变的addedNodes中 初始 HTML 设置 div div 这是我的突变观察者代码 var observer new Mutatio
  • 回收器查看致命异常:java.lang.ArrayIndexOutOfBoundsException

    我通过 crashlytics 得到了这个堆栈跟踪 我不知道问题出在哪里 有没有 StaggeredGridLayoutManager 的替代方案可以用来获取类似列表视图的布局 Fatal Exception java lang Array
  • 仅正样本和未标记数据集的二元半监督分类

    我的数据由评论组成 保存在文件中 其中很少被标记为正面 我想使用半监督和PU http www cs uic edu liub publications ICDM 03 pdf分类将这些评论分为正面和负面类别 我想知道 python sci
  • Angular 2 可用的 yeoman 生成器 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有官方的 Angular 生成器 许多用户为 Angular 1 提供了生成器 但我还没有找到 Angu
  • 简单游戏服务器的代码示例

    我想为游戏中心构建一款 iPhone 游戏 目前正在研究其中的服务器部分 我通过示例学习得最好 但我很难找到任何简单游戏服务器的示例来演示 数据如何格式化并发送到服务器以及如何接收 如何验证正在发送 接收的数据以避免玩家作弊等 游戏服务器代
  • 将 Google People API 与 Cloud Functions for Firebase 结合使用

    我正在尝试使用 Firebase 的 Cloud Functions 从 Google People API 获取联系人列表 但我只得到一个空对象作为响应 有什么想法吗 云函数代码如下 var functions require fireb
  • 如何将现有的 AngularJS 2 Web 应用程序转换为 Cordova 应用程序?

    我有一个用 Angularjs 2 0 构建的 web 应用程序 我想将其转换为 android apk 并将其安装在 android 手机上并进行测试 我没有任何构建移动本机应用程序或将网络应用程序转换为本机应用程序的经验 我已经完成了如
  • 反转 PyQtGraph 中的 Y 轴

    我正在使用 Python 和 PyQt4 开发一个应用程序 该应用程序根据深度绘制不同的参数 绘图包是 PyQtGraph 因为它具有良好的动画速度特性 由于我正在根据深度进行绘图 因此我想反转 Y 轴 我发现我可以修改PyQtGraph文
  • WooCommerce - 获取用户在一段时间内完成的状态订单

    我需要通过 Woocommerce 中的用户 ID 获取用户上个月完成的购买 用户有级别 金级 银级 金卡会员每月可购买4件商品 银卡会员每月可以购买 1 件商品 在将商品添加到购物车之前 我需要检查这一点 我不想仅使用插件来实现此功能 顺
  • .htaccess 需要 WWW 域,但允许子域(如果存在且没有硬编码)

    我试图弄清楚如何设置一组 htaccess 规则 如果最初未指定 则强制在域前面出现 www 但同时 它不会如果存在子域 则有任何影响 所有这一切都无需对任何域名进行硬编码 以便脚本可以在不同的服务器和配置之间移植 EDIT 很抱歉我没能首
  • 错误页面注册器和全局异常处理

    我正在创建一个 Spring Boot Web 应用程序 但我很困惑为什么人们在存在更整洁 更明确的错误页面注册器时使用全局异常处理程序 ControllerAdvice 请有人解释更多 是否可以从全局异常处理程序类 用 Controlle
  • 如何在关闭阶段后清除 Javafx Webview 内存使用情况

    我尝试在JavaFX中使用webview制作UI 但是有一个问题 当使用popup打开大图像时 内存使用量非常大 并且当popup关闭时 内存使用量不会下降 我明白了通过 Windows 中的任务管理器查看内存使用情况 当使用webview
  • 如何计算innerHTML内的变量?

    如何对innerHTML 中的变量进行计数 JS var counter 1 counter alert counter end html Test counter 1 Test HTML p class end p In my JSfid
  • 在 EXE 文件末尾写入字节安全吗?

    我听说如果我们在 EXE 文件末尾附加一些字节 它仍然可以正常工作 在所有情况下都是如此吗 这是一种安全的方法吗 我打算使用程序执行文件中的数据来编写演示 因此它可以是安全的 至少对普通用户而言 并且我不必将数据存储在其他地方 这是不可能用