给用户写一了个类似加壳的程序, 用这个程序加密的EXE,当程序启动时会先弹出个对话框验证权限,然后判是否加载EXE真正功能 
我的做法是在加密时,用自己的一个EXE(权限验证对话框)作为加载时的启动EXE,然后把用户被加密的EXE 用 BRCC32 编译成资源嵌入 
到对话框的EXE里,当程序启动时,弹出自己EXE的对话框,如果权限验证通过,就 作为资源释放出被加密的EXE到硬盘,然后一个在硬盘加 
载EXE的方式来启动真实的EXE文件,达到了加壳的效果,因为在硬盘上不会出现明文的EXE,EXE是在内在里先解密成流,然后再加载的 
用的是 网上下载的 MemoryRunUnitTwo.pas 单元 
这个加密方式一直运行得很好,可是现在用户的EXE文件里保存了一些配置参数,运行的时候要从EXE自身读取参数,由于运行是从内存加 
载的,他的EXE读取自身参数时就会读不到,会报异常. 
很类似这位朋友遇到的问题:  http://topic.csdn.net/t/20050518/10/4015574.html 现在被加密的程序要在运行时 要从自身EXE资源里读取一些参数,由于我是用MemoryRunUnitTwo.pas 把他的EXE加载到内存再运行的 
所以不能用了,有什么办法解决这个问题呢, 
如果把EXE直接释放成一个临时文件,就是暴露出真实的EXE,别人只要把EXE拷走就完了,哪怕是设置成,隐藏,系统属性,也被人发现过 那就简单的办法就是开个新进程来监视临时EXE,如果不用了,就立即删除,可是如果监视进程被他强行结束就还是会被考走临时EXE 
或突然关机,启动也EXE也会被发现. 
有什么办法把一段内存当成硬盘来保存文件,把临时EXE释放到这段内存作为普通的文件用ShellExecute的方式来加密,这样硬盘上不存在临时 
文件,突然关机了,也不会残留临时文件 硬盘上 
拜拖高人指点了