我写了一个程序,需要安全性及稳定性较高的~不想让其他非法程序访问我程序的内存,或者拒绝一切其他程序的访问。请问大家有什么好的方法吗?(注:不想用加“壳”或其他第三类工具,想用程序本身代码实现)希望了解相关知识的朋友能帮我一下,谢谢!

解决方案 »

  1.   

    没做过。。呵呵。可以尝试用校验码来保护自身文件,用钩子来屏蔽TEXT内容获取等等防止对软件界面的非法修改和读取,运行时校验变量和关键操作码或将所占内存完全保护来防止内存修改器。。想法而已,呵呵,没有一个不麻烦的,建议去网搜索一下相关文章或者找各位斑竹吧
      

  2.   

    TO:boywang(大力水手)用驱动保护怎么做?学习了,呵呵 
      

  3.   

    to eggqq07(gao)不是怕被人修改自身程序。而是担心会被其他程序从我程序的内存中获取某些敏感信息,这些是致命的
      

  4.   

    我有一个思路~~~~其实所有的进程相关操作,比如分配内存,查找模块,插入进程等,都需要调用OpenProcess啊!!如果OpenProcess失败,那不就结了?LZ去下载超级绿豆的拦截API代码,把OpenProcess拦截下来,再比较下参数,看看是不是要打开自己的进程.如果是,当然就直接返回一个0值就OK了.如果不是,让它正常调用就OK了.这样的话,还有N些副作用,比如无法被常规方法结束进程,无法列出进程等,呵呵
      

  5.   

    超级绿豆的拦截API代码
    是VB版的吗
      

  6.   

    拦截OpenProcess恐怕解决不了问题吧
      

  7.   

    不过奇怪的是在。NET下编译环境下可以结束瑞星进程当脱离环境独自运行的EXE却不行
    也就是OPENPROCESS失败
      

  8.   

    超级绿豆的拦截API代码在哪?大家给个链接吧
      

  9.   

    http://www.m5home.com/bbs/dispbbs.asp?boardid=10&id=1041我也忘了在哪里了...我硬盘里有,帮你上传到我论坛里了.用这个账号可以下载:everyone123456
      

  10.   

    测试了下不错~~
    但是测试拦截OpenProcess不行
    具体原因不清楚还在查
      

  11.   

    你要先把自己进程的等级提到DEBUG才可以打开Kernel32.dll并拦截OpenProcess吧...好象是,我没试过现在没时间写这个,下次有时间了用这个代码做个2000以上系统隐藏进程&防止结束进程的模块试下,嘿嘿.
      

  12.   

    好啊顶你
    但是不用VC的DLL很难哦
      

  13.   

    刚刚草草跟踪了一下代码,发现绿豆大大的代码里没有完全列出Kernel32.dll里的函数.原因还没有发现,再看看先.
      

  14.   

    是的啊
    就是没有完全列出来
    而且局限性也大
    不能随意的监视任意进程让自己过滤进程的拦截 
    也就是在事件中过滤需要监视的进程估计这样使用DLL才行
      

  15.   

    现在才发现,楼主已经好久没来地球了......^O^不过要是真的把OpenProcess结拦截了,会出现什么情况呢????大家分析下.虽然现在没做出来.