请问在WIN2K如何完全隐藏一个程序以及如何让用户不能修改时间?

huangxi1981 2003-08-21 04:56:57
我做了一个单机下的网关程序,控制用户对内网IP的访问。我希望我的这个程序做到使用户无法关闭,但我无法解决2K下在任务管理器里关闭进程来关闭程序。请问2K下有没有API函数能实现隐藏进程?还有个问题是如何是用户不能修改本机时间,或者说是一旦修改就自动改回?
请高手指点。
...全文
46 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangxi1981 2003-08-22
  • 打赏
  • 举报
回复
上面的问题实在是问的丢脸,汗
HCURSOR CMy1Dlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}

BOOL SetNewTime(WORD hour, WORD minutes)
{
SYSTEMTIME st;
char *pc;

GetSystemTime(&st); // gets current time
st.wHour = hour-8; // adjusts hours
st.wMinute = minutes; // and minutes
if (!SetSystemTime(&st)) // sets system time
{return FALSE;}
else
return TRUE;
}

void CMy1Dlg::OnOK()
{
// TODO: Add extra validation here



SetNewTime(21,00);
CDialog::OnOK();
}
这样是对的
但为什么要是st.wHour = hour-8;才能得到想要的时间?
难道是北京时间的第8时区?
huangxi1981 2003-08-22
  • 打赏
  • 举报
回复
VC下测试:
void CMy1Dlg::OnOK()
{
// TODO: Add extra validation here

BOOL SetNewTime(WORD hour, WORD minutes)
{
SYSTEMTIME st;
char *pc;

GetSystemTime(&st); // gets current time
st.wHour = hour; // adjusts hours
st.wMinute = minutes; // and minutes
if (!SetSystemTime(&st)) // sets system time
return FALSE;
return TRUE;
}

SetNewTime(11,00);
CDialog::OnOK();
}
抱错:E:\fire\2324252562362626\1\1Dlg.cpp(177) : error C2601: 'SetNewTime' : local function definitions are illegal
错在那里啊?
realwar 2003-08-22
  • 打赏
  • 举报
回复
到“添加/删除程序”中,在所有WIN2000加上SNMP协议,启动时间服务,再在你的主域控制器上设置时间即可。
如果你不用windows的时间同步服务,看你的要求,我认为你不需要用CreateRemoteThread,你做一个你自己的windows服务即可达到你的目的。

huangxi1981 2003-08-21
  • 打赏
  • 举报
回复
呵呵
一会我用VC测试一下
谢谢帮助
我的QQ 1187089
如果不闲我麻烦的话请加我,以后向你多请教
zhllwarez 2003-08-21
  • 打赏
  • 举报
回复
对C++BUILDER无能为力,建议到C++BUILDER版问问
huangxi1981 2003-08-21
  • 打赏
  • 举报
回复
使用WINDOWS的时间同步服务。再就是可用windows api的CreateRemoteThread去隐你的任务。


能说详细点吗?
huangxi1981 2003-08-21
  • 打赏
  • 举报
回复
我测试修改时间:
C++BUILDER6
pragma package(smart_init)
#pragma resource "*.dfm"
BOOL SetNewTime(WORD hour, WORD minutes);
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
SetNewTime(18,00);
}
BOOL SetNewTime(WORD hour, WORD minutes)
{
SYSTEMTIME st;
char *pc;

GetSystemTime(&st); // gets current time
st.wHour = hour; // adjusts hours
st.wMinute = minutes; // and minutes
if (!SetSystemTime(&st)) // sets system time
return FALSE;
return TRUE;
}
抱错:[Linker Error] Unresolved external 'WinMain' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\C0W32.OBJ
请问是什么问题啊?
realwar 2003-08-21
  • 打赏
  • 举报
回复
使用WINDOWS的时间同步服务。再就是可用windows api的CreateRemoteThread去隐你的任务。
zhllwarez 2003-08-21
  • 打赏
  • 举报
回复
当然了,不是吗?
huangxi1981 2003-08-21
  • 打赏
  • 举报
回复
你的意思是我就在程序用个TIMER每阁个1,2分钟就调用一次这个函数?
这样的话只要能解决隐藏线程的问题就2个问题都解决了?
zhllwarez 2003-08-21
  • 打赏
  • 举报
回复
Windows中有修改系统时间的API,是SetSystemTime。
例子:
// SetNewTime - sets system time
// Return value - TRUE if successful, FALSE otherwise
// hour - new hour (0-23)
// minutes - new minutes (0-59)

BOOL SetNewTime(WORD hour, WORD minutes)
{
SYSTEMTIME st;
char *pc;

GetSystemTime(&st); // gets current time
st.wHour = hour; // adjusts hours
st.wMinute = minutes; // and minutes
if (!SetSystemTime(&st)) // sets system time
return FALSE;
return TRUE;
}
huangxi1981 2003-08-21
  • 打赏
  • 举报
回复
用程序修改当前时间改怎么做?
有API函数吗?
zhllwarez 2003-08-21
  • 打赏
  • 举报
回复
系统开机时即加载你的程序,程序立即获得当前时间,打开一个timer,随时矫正系统时间。
因你的程序无法被终止,故即使用户修改了时间你的程序也会把它自动改回去
注意:必须防范用户直接在cmos中修改时间,可以设置cmos密码解决
smallrascal 2003-08-21
  • 打赏
  • 举报
回复
利用线程插入技术,这样的话只要系统还在运行程序就不肯能被关闭
muake 2003-08-21
  • 打赏
  • 举报
回复
用路由表就可以呀
还有访问控制列表
huangxi1981 2003-08-21
  • 打赏
  • 举报
回复
我的程序就是用来让用户不能上网的。这样的话就不能和网络时间比较了啊?
还有其他方法吗?
zhllwarez 2003-08-21
  • 打赏
  • 举报
回复
隐藏进程:http://gtogo.myetang.com/po/biancheng/1.htm
不能修改本机时间思路:
自己在程序中设置一个定时器随时校对系统时间。还有一种网上对时的软件(获取网上主机时间校正本地时间)的编程思路可以参考

9,506

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧