我想尝试以下操作:
我有一个 C# 程序,它将一个文件作为输入并计算这五个 MD5 的 MD5 算法。我的算法对每个文件都有一个唯一的值;该值是一个 128 位值,因此我想使用此技术通过将 md5 算法的输出值保存到我的 PE 文件中来保护我的程序(假设该值为 X)。 PE将再次计算MD5值(为自己)(假设该值为Y),然后将X与Y进行比较。如果值相同则可以运行;否则,它将退出。
我的问题是:如何将我的值写入 PE 文件?重要提示:我的算法是用C#编写的,所以我想要一种使用C#语言写入PE文件的方法。
一种选择是将您的值简单地附加到文件末尾。 Windows 非常乐意将任意数据附加到可执行文件中 - 例如,自解压 zip 文件就是这样工作的。
Edit回应 Hany 的评论:它对我有用,以 cmd.exe 为例:
C:\WINDOWS\system32>copy con rjh
This is a test!
^Z
1 file(s) copied.
C:\WINDOWS\system32>copy /b cmd.exe + rjh cmdrjh.exe
cmd.exe
rjh
1 file(s) copied.
C:\WINDOWS\system32>od -cv cmdrjh.exe | tail -4
1367760 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
1370000 T h i s i s a t e s t ! \r
1370020 \n
1370021
C:\WINDOWS\system32>cmdrjh
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\WINDOWS\system32>
(你确实以二进制模式进行了文件操作,不是吗?)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)