手头有个项目,需实现以下功能
一、禁止非法反安装
二、如用户强行删除或反安装程序等非法卸载情况进行警告并上报到服务器如何能够实现此功能。目前我的想法是创建一个监视服务,专门监视程序是否完整,如程序被破坏则自动恢复并上报服务器,但这种方法如果用户停止了该服务项,那功能就没有了。 请高手指点更好的方案
一、禁止非法反安装
二、如用户强行删除或反安装程序等非法卸载情况进行警告并上报到服务器如何能够实现此功能。目前我的想法是创建一个监视服务,专门监视程序是否完整,如程序被破坏则自动恢复并上报服务器,但这种方法如果用户停止了该服务项,那功能就没有了。 请高手指点更好的方案
第二条不可能达成,我通常把不能一次删掉的文件直接送文件粉碎机或者Ghost还原,什么服务、监测都给抹去了;
第一条很难达成,毕竟高手如云,如果你的程序很有价值,建议申请著作权保护;
这样说来这个主意是目前比较可行的,也比较容易实现的.但问题在于如何能够发现该计算机联网与否? 用ping?对方计算机可能防ping的吧另:楼上的朋友,这个需求是对方单位提出来的,在单位内部使用,不存在流氓不流氓的问题哈
做一个功能.别人一杀你的进程.你就让他电脑死机.是否联网..可以ping 服务器.
单位的计算机应该允许ping的,如果防ping了也说明做了手脚
顺便附上一个保护进程的代码,需要有调试特权(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;
}
一、写一个客户机服务:负责监视应用程序是否安全,如程序文件丢失则上报服务器;定时与服务器联系确定状态是否正常
二、服务器定时ping客户机,如能ping通,且客户机服务未正常与服务器联系则确定服务失效,提示管理员处理
再加上客户端的自我保护
你的监视程序就用c写,负责和服务器通信和保护