干吗不保存起来再ShellExecute?你的想法还是用com解决吧,是不是类似于你的程序界面上调用execl显示表格等?

解决方案 »

  1.   

    想用ShellExecute的话就不出这个贴子了,原因是为了数据的安全,不能把文件保存到磁盘上。
    文件本身实际上并不是执行代码,从那里开始执行呢?
      

  2.   

    应该是不行的,win32下的程序都是有属于自己的4GB空间,你无法做到让他在你的4GB空间里面运行。对不起,打击您了,嘻嘻:))
      

  3.   

    知道缓冲溢出是如何被利用的吗;如果你知道的花,就应该明白一小段代码是容易执行的,但一个(PE)内存文件要执行的话该有:重定位,动态库加载,堆栈,环境变量;谈何容易。估计目前没人能做,唯一可能是看看有没有Win32未公开的函数可以利用;
      

  4.   

    前一阵子我见一个关于自杀程序的贴子,上面有一段说到将代码拷到内存中执行,对这个我知道的不多,你自己看吧:http://expert.csdn.net/Topic/42008.shtm
      

  5.   

    谢谢各位的关心,我把我的目的介绍得仔细一点:
    我编了一个软件ExeShell,目前在这里的“系统工具”里,使用的人还真不少。今天我又把改进后的的1.21版本上传了,估计1-2天后会放出来。在里面我有一个问题解决的不是很好,解密后的执行文件容易被人复制,我是想解密到内存文件,然后运行它,这样解密后的文件就不太容易被人复制了。
      

  6.   

    啊~~还是sxbyl聪明,嘿嘿~~一看都不像干好事的~~
    你的方式有问题,应该把一段加密代码附加到执行程序上,并把程序入口指向附加的代码中。但被加密的程序装入内存之后,附加代码首先执行,检查是否有跟踪程序存在,如果没有再检查密匙是否正确,则转入原来的程序中执行,里面的工作很多,包括合法性验证,import表数据改写等
      

  7.   

    我已经给贴子加了分。假如采用Searph说的的方法,现成的软件多的是,我是想自己搞一套,专门用一个软件在后台对加密的文件进行处理。
    等到我的1.21版发布后,我还将出一个300分的贴子,希望能够得到大家的意见和建议。
      

  8.   

    其实你的方法是很容易被crack的,因为很明显,你要新建一个进程,而这个进程内是你原来加密的exe,没有你的外壳,只要用memory dump就可以拿出一个解密的程序,太脆弱了。
      

  9.   

    看样子我的愿望无法实现了,以后慢慢摸索吧。
    现在还是请大家给我的软件ExeShell 1.21提提意见和建议吧,它在“系统工具”中,今天好像在本月的排行榜第2页。由于安装制作程序没有及时更新我的程序,所以安装包的中的程序是4日的,并不是6日最新的,当然我已经把更新后的安装程序上传了,相信7号编可以更新过来。
    几位老兄的帮助当然要给一些分,不过目前无法把150分全给了,我的问题还没有解决。
      

  10.   

    其实我提出这个问题并不是毫无根据的,大家应该知道,ZIpMagic就是在内存中处理文件并执行文件的,没有任何临时文件。
      

  11.   

    看来无认能够解决这个问题,大家随便给我的软件ExeShell(位于系统工具中)提一点想法和建议把,明天就送分了。