计算机网络安全技术实验二.docx
- 文档编号:6135566
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:29
- 大小:169.67KB
计算机网络安全技术实验二.docx
《计算机网络安全技术实验二.docx》由会员分享,可在线阅读,更多相关《计算机网络安全技术实验二.docx(29页珍藏版)》请在冰豆网上搜索。
计算机网络安全技术实验二
计算机网络安全技术实验二
2010/4/12第1、2节课上机内容
以下实验在主机的visualc++6.0里面完成。
程序一律保存在E:
盘的自己创建的“学好姓名”文件夹下面。
案例名称:
操作注册表
程序名称:
#include
#include
main()
{
HKEYhKey1;
DWORDdwDisposition;
LONGlRetCode;
//创建
lRetCode=RegCreateKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\IniFileMapping\\WebSecurity",
0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE,
NULL,&hKey1,&dwDisposition);
//如果创建失败,显示出错信息
if(lRetCode!
=ERROR_SUCCESS){
printf("ErrorincreatingWebSecuritykey\n");
return(0);
}
//设置第一个键值
lRetCode=RegSetValueEx(hKey1,
"Hack_Name",
0,
REG_SZ,
(byte*)"sixage",
100);
//设置第二个键值
lRetCode=RegSetValueEx(hKey1,
"Hack_Hobby",
0,
REG_SZ,
(byte*)"Running",
100);
//如果创建失败,显示出错信息
if(lRetCode!
=ERROR_SUCCESS){
printf("ErrorinsettingSection1value\n");
return(0);
}
printf("注册表编写成功!
\n");
return(0);
}
案例名称:
判断是否中了“冰河”
程序名称:
proj3_13.cpp
#include
#include
main()
{
HKEYhKEY;
LPCTSTRdata_Set="txtfile\\shell\\open\\command";
longret0=(RegOpenKeyEx(HKEY_CLASSES_ROOT,
data_Set,0,KEY_READ,&hKEY));
if(ret0!
=ERROR_SUCCESS)//如果无法打开hKEY,则终止程序的执行
{
return0;
}
//查询有关的数据
LPBYTEowner_Get=newBYTE[80];
DWORDtype_1=REG_EXPAND_SZ;
DWORDcbData_1=80;
longret1=RegQueryValueEx(hKEY,NULL,NULL,
&type_1,owner_Get,&cbData_1);
if(ret1!
=ERROR_SUCCESS)
{
return0;
}
if(strcmp((constchar*)owner_Get,"%systemroot%\\system32\\notepad.exe%1")==0)
{
printf("没有中冰河");
}
else
{
printf("可能中了冰河");
}
printf("\n");
}
编译运行会有下面结果
然后在注册表中HKEY_CLASSES_ROOT主键下的“txtfile\shell\open\command”
将值改为其他的,然后再运行。
会有下面结果。
案例名称:
更改系统登录用户
程序名称:
proj3_14.cpp
#include
#include
main()
{
HKEYhKey1;
LONGlRetCode;
lRetCode=RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\Winlogon",
0,KEY_WRITE,
&hKey1
);
if(lRetCode!
=ERROR_SUCCESS){
printf("Errorincreatingappname.inikey\n");
return(0);
}
lRetCode=RegSetValueEx(hKey1,
"DefaultUserName",
0,
REG_SZ,
(byte*)"Hacker_sixage",
20);
if(lRetCode!
=ERROR_SUCCESS){
printf("ErrorinsettingSection1value\n");
return(0);
}
printf("已经将登录名该成Hacker_sixage");
return(0);
}
文件系统编程非常的重要,可以在DOS命令行下执行的操作都可以使用程序实现。
在DOS命令行下使用命令“netuserHacker/add”添加一个用户,同样可以在程序中实现,如程序proj3_15.cpp所示。
案例名称:
添加系统用户
程序名称:
proj3_15.cpp
#include
#include
main()
{
char*szCMD="netuserHacker/add";
BOOLbSuccess;
PROCESS_INFORMATIONpiProcInfo;
STARTUPINFOInfo;
Info.cb=sizeof(STARTUPINFO);
Info.lpReserved=NULL;
Info.lpDesktop=NULL;
Info.lpTitle=NULL;
Info.cbReserved2=0;
Info.lpReserved2=NULL;
bSuccess=CreateProcess(NULL,szCMD,NULL,NULL,false,NULL,NULL,NULL,&Info,&piProcInfo);
if(!
bSuccess)
printf("创建进程失败!
");
return1;
}
案例名称:
系统时间
程序名称:
proj3_17.cpp
#include
#include
main()
{
SYSTEMTIMEsysTime;
GetLocalTime(&sysTime);
printf("%d年%d月%d日%d时%d分%d秒\n",
sysTime.wYear,sysTime.wMonth,sysTime.wDay,sysTime.wHour,
sysTime.wMinute,sysTime.wSecond);
return1;
}
案例名称:
定时器编程
程序名称:
proj3_18.cpp
#include
WNDCLASSwc;
HWNDh_wnd;
MSGmsg;
/*消息处理函数wndProc的声明*/
longWINAPIWindowProc(HWND,UINT,WPARAM,LPARAM);
/*winMain函数的声明*/
intPASCALWinMain(HINSTANCEh_CurInstance,
HINSTANCEh_PrevInstance,LPSTRp_CmdLine,intm_Show)
{
/*初始化wndclass结构变量*/
wc.lpfnWndProc=WindowProc;
wc.hInstance=h_CurInstance;
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszClassName="TheMainClass";
/*注册WndClass结构变量*/
RegisterClass(&wc);
/*创建窗口*/
h_wnd=CreateWindow("TheMainClass","OurfirstWindow",
WS_OVERLAPPEDWINDOW,0,0,400,500,0,0,h_CurInstance,0);
/*显示窗口*/
ShowWindow(h_wnd,SW_SHOWMAXIMIZED);
/*消息循环*/
while(GetMessage(&msg,NULL,0,0))
DispatchMessage(&msg);
return(msg.wParam);
}
#defineID_TIMER1
/*定义消息处理函数*/
longWINAPIWindowProc(HWNDh_wnd,UINTWinMsg,
WPARAMw_param,LPARAMl_param)
{
staticBOOLfFlipFlop=FALSE;
HBRUSHhBrush;
HDChdc;
PAINTSTRUCTps;
RECTrc;
switch(WinMsg)
{
caseWM_CREATE:
SetTimer(h_wnd,ID_TIMER,1000,NULL);
return0;
caseWM_TIMER:
MessageBeep(-1);
fFlipFlop=!
fFlipFlop;
InvalidateRect(h_wnd,NULL,FALSE);
return0;
caseWM_PAINT:
hdc=BeginPaint(h_wnd,&ps);
GetClientRect(h_wnd,&rc);
hBrush=CreateSolidBrush(fFlipFlop?
RGB(255,0,0):
RGB(0,0,255));
FillRect(hdc,&rc,hBrush);
EndPaint(h_wnd,&ps);
DeleteObject(hBrush);
return0;
caseWM_DESTROY:
KillTimer(h_wnd,ID_TIMER);
PostQuitMessage(0);
return0;
}
returnDefWindowProc(h_wnd,WinMsg,w_param,l_param);
}
案例名称:
内存驻留程序的编写
程序名称:
proj3_19.cpp
#include
WNDCLASSwc;
HWNDh_wnd;
MSGmsg;
/*消息处理函数wndProc的声明*/
longWINAPIWindowProc(HWND,UINT,WPARAM,LPARAM);
/*winMain函数的声明*/
intPASCALWinMain(HINSTANCEh_CurInstance,
HINSTANCEh_PrevInstance,LPSTRp_CmdLine,intm_Show)
{
/*初始化wndclass结构变量*/
wc.lpfnWndProc=WindowProc;
wc.hInstance=h_CurInstance;
wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszClassName="TheMainClass";
/*注册WndClass结构变量*/
RegisterClass(&wc);
/*创建窗口*/
h_wnd=CreateWindow("TheMainClass","OurfirstWindow",
WS_OVERLAPPEDWINDOW,0,0,400,500,0,0,h_CurInstance,0);
/*显示窗口*/
ShowWindow(h_wnd,SW_HIDE);
/*消息循环*/
while(GetMessage(&msg,NULL,0,0))
DispatchMessage(&msg);
return(msg.wParam);
}
#defineID_TIMER1
/*定义消息处理函数*/
longWINAPIWindowProc(HWNDh_wnd,UINTWinMsg,
WPARAMw_param,LPARAMl_param)
{
staticBOOLfFlipFlop=FALSE;
HBRUSHhBrush;
HDChdc;
PAINTSTRUCTps;
RECTrc;
switch(WinMsg)
{
caseWM_CREATE:
SetTimer(h_wnd,ID_TIMER,1000,NULL);
return0;
caseWM_TIMER:
MessageBeep(-1);
fFlipFlop=!
fFlipFlop;
InvalidateRect(h_wnd,NULL,FALSE);
return0;
caseWM_PAINT:
hdc=BeginPaint(h_wnd,&ps);
GetClientRect(h_wnd,&rc);
hBrush=CreateSolidBrush(fFlipFlop?
RGB(255,0,0):
RGB(0,0,255));
FillRect(hdc,&rc,hBrush);
EndPaint(h_wnd,&ps);
DeleteObject(hBrush);
return0;
caseWM_DESTROY:
KillTimer(h_wnd,ID_TIMER);
PostQuitMessage(0);
return0;
}
returnDefWindowProc(h_wnd,WinMsg,w_param,l_param);
}
案例名称:
独立线程程序的编写
程序名称:
proj3_21.cpp
#include
#include
#include
intaddem(int);
intmain(intargc,char*argv[])
{
_beginthread((void(*)(void*))addem,0,(void*)10);
_beginthread((void(*)(void*))addem,0,(void*)11);
addem(12);
return0;
}
intaddem(intcount)
{
inti;
longsum;
sum=0;
for(i=0;i<=count;++i){
printf("Thevalueof%dis%d\n",count,i);
sum+=i;
}
printf("Thesumis%d\n",sum);
return0;
}
案例名称:
多个线程共享参数
程序名称:
proj3_22.cpp
#include
#include
#include
intaddem(int);
intx;//全局变量
intmain(intargc,char*argv[])
{
x=0;
_beginthread((void(*)(void*))addem,0,(void*)1);
_beginthread((void(*)(void*))addem,0,(void*)2);
addem(3);
return0;
}
intaddem(intindex)
{
while(x<=50){
x=x+1;
printf("%d:
%d\n",index,x);
}
return0;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 安全技术 实验