【发布时间】:2011-12-23 04:01:14
【问题描述】:
是否可以使用 Windows 将文件读入内存(将数据保存在字节数组中),从文件系统中删除原始文件并从内存中执行?
编辑
我的目标是保护我的 java 代码免受逆向工程。
我用 C++ 编写了一个启动器,它获取我的加密 jar 文件、解密并启动它。 小问题是我必须将解密后的 jar 文件写入文件系统中的某个位置,以便轻松捕获和反编译...有没有办法防止这种情况?
【问题讨论】:
-
您可能想在网络上对 NX 位和 DEP(数据执行保护)进行更多研究。
-
这种能力的意义何在?
-
在浪费时间“保护”您的代码之前,您应该知道没有办法真正保护您的代码。你可以让攻击者更难获得它,但你不能让它变得不可能。
-
@Blow - 我更新了我的答案以解决 Java 部分(以通用方式)。尽管如此,它仍然不会使您的秘密来源不可见。
-
@blow 实际上,你可以在不到 2 分钟的反汇编时间内从一个 exe 文件中读取所有指令,并且在其中找到一个 jar 文件(然后复制和反编译)将花费更少的时间。