手头有个项目,需实现以下功能
一、禁止非法反安装
二、如用户强行删除或反安装程序等非法卸载情况进行警告并上报到服务器如何能够实现此功能。目前我的想法是创建一个监视服务,专门监视程序是否完整,如程序被破坏则自动恢复并上报服务器,但这种方法如果用户停止了该服务项,那功能就没有了。 请高手指点更好的方案

解决方案 »

  1.   


    第二条不可能达成,我通常把不能一次删掉的文件直接送文件粉碎机或者Ghost还原,什么服务、监测都给抹去了;
    第一条很难达成,毕竟高手如云,如果你的程序很有价值,建议申请著作权保护;
      

  2.   


    这样说来这个主意是目前比较可行的,也比较容易实现的.但问题在于如何能够发现该计算机联网与否? 用ping?对方计算机可能防ping的吧另:楼上的朋友,这个需求是对方单位提出来的,在单位内部使用,不存在流氓不流氓的问题哈
      

  3.   

    网线一拔,电脑一重装..一切都是浮云..
    做一个功能.别人一杀你的进程.你就让他电脑死机.是否联网..可以ping 服务器.
      

  4.   

    是否已联网可以从路由器那里看
    单位的计算机应该允许ping的,如果防ping了也说明做了手脚
      

  5.   

    如果是单位的计算机,你还可以在CMOS设置密码防止以光盘启动,然后只给员工一个User组的账户使用,这个组的账户是没有权力停止服务删除服务的
    顺便附上一个保护进程的代码,需要有调试特权(Administrators,LocalSystem都行)#include "stdafx.h"
    #include <windows.h>
    #include <conio.h>
    typedef ULONG(__stdcall*PRtlAdjustPrivilege)(ULONG Privilege,int Enable,int CurrentThread,int*Enabled);
    typedef ULONG(__stdcall*PNtSetInformationProcess)(HANDLE ProcessHandle,ULONG InformationClass,void*Information,ULONG Length);
    int main()
    {
        HMODULE ntdll;int b;
        PRtlAdjustPrivilege pRtlAdjustPrivilege;
        PNtSetInformationProcess pNtSetInformationProcess;
        ntdll=GetModuleHandleW(L"ntdll.dll");
        pRtlAdjustPrivilege=(PRtlAdjustPrivilege)GetProcAddress(ntdll,"RtlAdjustPrivilege");
        pNtSetInformationProcess=(PNtSetInformationProcess)GetProcAddress(ntdll,"NtSetInformationProcess");
        pRtlAdjustPrivilege(20,1,0,&b);
        b=1;
        pNtSetInformationProcess((HANDLE)-1,0x1d,&b,sizeof b);
        cputs("press any key to exit");
        getch();
        b=0;
        pNtSetInformationProcess((HANDLE)-1,0x1d,&b,sizeof b);
        return 0;
    }
      

  6.   

    看来100%的达到要求希望不大,那用以下折中的方案,大家看一下行不行:
    一、写一个客户机服务:负责监视应用程序是否安全,如程序文件丢失则上报服务器;定时与服务器联系确定状态是否正常
    二、服务器定时ping客户机,如能ping通,且客户机服务未正常与服务器联系则确定服务失效,提示管理员处理
      

  7.   

    和网管沟通一下,让他们给一个api
      

  8.   

    你让他们定期导出个txt列表不行?
      

  9.   

    那你就不停地扫描某个范围的计算机,不一定是ping,只要能够查出是否联网就行
    再加上客户端的自我保护
      

  10.   

    就是调用一堆windows api
    你的监视程序就用c写,负责和服务器通信和保护