深夜超级喊救命,如何把一块内在虚拟成硬盘并把EXE保存在上面启动运行(0分)

  • 主题发起人 sunjunfeng3
  • 开始时间
S

sunjunfeng3

Unregistered / Unconfirmed
GUEST, unregistred user!
给用户写一了个类似加壳的程序, 用这个程序加密的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的方式来加密,这样硬盘上不存在临时
文件,突然关机了,也不会残留临时文件 硬盘上
拜拖高人指点了
没分了,如会的在其它贴子给分
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3879895
http://topic.csdn.net/u/20080314/00/27c894b1-3cbe-4259-8cf9-ff3452b352bd.html
http://topic.csdn.net/u/20080314/00/5d7d9daa-4cc9-4bf1-9200-6c1a18f362f7.html
http://topic.csdn.net/u/20080314/00/38974ab9-afd8-4592-a5c0-75e8549797d6.html
http://topic.csdn.net/u/20080314/00/c12c72e1-69ce-4864-b3f7-a45c46363760.html
 
S

SupermanTm

Unregistered / Unconfirmed
GUEST, unregistred user!
如果你把内存虚拟成了磁盘,那么人家一样可以在“磁盘”上“看”到你的EXE文件啦,你的方法还有用么?
 

不赖猴

Unregistered / Unconfirmed
GUEST, unregistred user!
直接写一个真正的壳不就完了?这种放资源里释放的方式不安全.
 

Similar threads

S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
935
SUNSTONE的Delphi笔记
S
顶部