读取内存中的exe文件并执行

2023-11-30

是否可以使用Windows将文件读入内存(将数据保存在字节数组中),从文件系统中删除原始文件并从内存中执行它?


EDIT

我的目标是保护我的 java 代码免受逆向工程的影响。

我用 C++ 编写了一个启动器,它获取加密的 jar 文件,解密并启动它。 小问题是我必须将解密的 jar 文件写入文件系统中的某个位置,以便可以轻松捕获和反编译它...没有办法阻止这种情况吗?


不,不可能那样做。没有系统调用说“取出我的这块内存并仅使用其中的一部分作为新进程的映像”。

您可以将代码加载到内存中并在当前进程中跳转到它,但这是一件很难看的事情,因为您必须处理所有重定位。

关于Java特定部分:

You can 在 C++ 中嵌入 Java 解释器可执行的。您可以编写自己的 Java 类加载器(通过 JVM 的 C++ 接口),该加载器将从加密的 Jar 文件加载类。这样您就可以避免将未加密的 Jar 文件写入磁盘。当然,任何拥有调试器的人都可以在内存中看到它......

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

读取内存中的exe文件并执行 的相关文章

随机推荐

  • 为什么这会产生 StackOverflow 错误?

    我最近开始使用 Haskell 并定义了这个看似简单的函数 f 0 1 f x x f x 1 然而 它的结果是这样的 GHCi version 8 2 1 http www haskell org ghc for help Prelude
  • 用于 MATLAB 的 Java JPA 类

    我在 Windows XP Pro SP3 上使用 MATLAB R2007b Java 1 6 SE Eclipse Helios 和 MySql 5 我正在尝试创建一个使用 JPA 注释访问 MySql 5 数据库的类库 这个想法是 M
  • 使用 PubSubclient 在 esp8266 和 arduino 之间进行 mqtt

    我正在使用 WiFiEsp 库将 ESP8266 与 arduino 结合使用 我想与 arduino 建立 MQTT 连接 所以我使用 PubSubclient 库 我收到错误 正在尝试 MQTT 连接 失败 rc 2 5 秒后重试 我的
  • 批量分割文本文件

    我有这个批处理文件来分割txt文件 echo off for f tokens 1 delims a in findstr n PASSWORD txt do for f delims c in b do gt text a txt ech
  • 使用异步方法等待 Task.Run 不会在正确的线程上引发异常

    当运行下面的测试方法时 我发现即使我等待一个抛出异常的任务 测试也会通过 此外 还会弹出一个单独的窗口 提示 QTAgent exe 已停止工作 这表明异常不会传播到运行测试的线程 而是杀死一个单独的线程 我想知道为什么会发生这种情况 另外
  • 在 Struts 2 中从 Java 获取 JSON 对象

    我正在尝试使用 Java 服务器获取响应文本getJSON jQuery 方法 虽然 当Java类是简单格式时我可以获得响应数据 String List and Map 使用其他Java对象时无法获取成功数据 以下是使用简单类型的 Java
  • PHP:file_get_contents 无法打开流:连接被拒绝

    我正在尝试访问第二台服务器file get contents和 simple load xml 我得到 无法打开流 连接被拒绝 结果会怎样呢 allow url fopen Yes allow url include Off 是我的 php
  • 在 Swift 中转换为不同的 C 结构不安全指针

    我想调用 Posix 套接字函数socket and bind来自斯威夫特 socket很容易 需要Int32s but bind造成了问题 因为我有一个sockaddr in指针 但它需要一个sockaddr指针 在 C 语言中 这将是一
  • 了解 NodeJS WebSocket 服务器的对象创建和垃圾收集

    我正在使用wsNodejs 中用于 Web 套接字服务器的模块 代码的简化版本是这样的 var WebSocketServer require ws Server var wss new WebSocketServer port 9001
  • 如何将字符串日期转换为长毫秒

    我在字符串中有一个日期 例如 12 December 2012 如何将其转换为毫秒 长 Using 简单日期格式 String string date 12 December 2012 SimpleDateFormat f new Simp
  • 为数据表中的计算列定义 DateDiff

    我有 日期时间已过期 列 我想创建另一个名为 已过期 的列 该列将根据过期日期显示 是 或 否 如果日期已过 则显示 是 我写了这个 DataColumn colExpirationDate new DataColumn DateTimeE
  • 重新计算动态布局属性

    这是一个可调整大小的窗口 设置动态布局属性 以便顶部组框调整宽度大小 下部组 框和树以及 3 个按钮在两个维度上调整大小 对于高级复选框 我添加了代码来隐藏额外的控件并调整关联框的高度 所以它看起来像这样 用于切换控制值的代码是 void
  • 删除或更新模拟器上的 Google Play 服务

    我编写了一个使用谷歌地图 API v2 的 Android 应用程序 我想在模拟器上测试它 但为了显示地图它有一点问题 我用谷歌搜索并找到了文章 我必须将其安装到软件包 vending apk android gms apk 中 我下载了软
  • Hammer.js 无法删除事件监听器

    我创建了一个锤子实例 如下所示 var el document getElementById el var hammertime Hammer el 然后我可以添加一个监听器 hammertime on touch function e c
  • jQuery :使用已弃用的 .toggle() 替代方法

    我有一些类名为 mute btn 的图像 当我单击它们时 我的图像源正在更改 mute btn toggle function var clicked false var src this attr src src src replace
  • Winform 应用程序名称在 Windows 10 任务管理器的“启动”选项卡上显示为 _alphanumeric

    在 Windows 10 上 我的表单应用程序显示为字母数字字符 1F036AE84FF792FB79A74F 启动选项卡 in 任务管理器 它是一个MSI安装文件 以下是运行 exe 的路径 C Users win10user AppDa
  • jQuery 如果 DIV 没有类“x”

    在 jQuery 中 我需要执行一个 if 语句来查看 this 是否不包含类 selected thumbs hover function this stop fadeTo normal 1 0 function this stop fa
  • PCM:无法访问合作伙伴

    按照快速入门指南操作时 合作伙伴连接管理器 PCM 出现问题 采取的步骤 启用智能设备管理API 配置 OAuth 权限屏幕 添加了 智能设备管理 API auth sdm service 的范围 为新的 Web 服务器创建 OAuth 令
  • JavaScript函数将unicode伪字母转换为常规字符?

    我正在尝试编写一个函数 该函数接受包含 unicode 伪字母表中的字符的任何字符串 并返回一个等效字符串 其中这些字符已替换为 ASCII 中的常规字符 const toRegularCharacters s gt toRegularCh
  • 读取内存中的exe文件并执行

    是否可以使用Windows将文件读入内存 将数据保存在字节数组中 从文件系统中删除原始文件并从内存中执行它 EDIT 我的目标是保护我的 java 代码免受逆向工程的影响 我用 C 编写了一个启动器 它获取加密的 jar 文件 解密并启动它