我用C ++编写了一个PE打包程序,它将可执行文件加载到他的进程空间,修复了IAT和重定位,然后调用了入口点。
我的问题是.NET不受支持:我搜索了.NET PE格式,它只是一个32位可执行文件,入口点设置为导入函数(_CorExeMain)。
如果我调用它,Windows会弹出一个错误,告诉我我没有安装.NET。
我还读到.NET PE可执行文件在DataDirectory中有一个特殊的COM头,但我不知道如何处理它。
我希望有人可以帮助我 提前致谢
答案 0 :(得分:0)
显然,你所拥有的想法并不适用于.Net。
你的"包装"可执行文件只是一个本机可执行文件,其代码是解包程序,其数据是压缩的实际可执行文件。运行时,Windows需要并获取本机代码。
对于.Net可执行文件,您显然必须这样做:编写.Net可执行文件,其代码是解包程序,其数据是压缩的.Net字节码。