计算机网络安全技术实验二Word文档下载推荐.docx
《计算机网络安全技术实验二Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机网络安全技术实验二Word文档下载推荐.docx(29页珍藏版)》请在冰豆网上搜索。
,
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);
//设置第二个键值
Hack_Hobby"
Running"
=ERROR_SUCCESS){
printf("
ErrorinsettingSection1value\n"
printf("
注册表编写成功!
\n"
return(0);
}
判断是否中了“冰河”
proj3_13.cpp
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)
{
if(strcmp((constchar*)owner_Get,"
%systemroot%\\system32\\notepad.exe%1"
)==0)
printf("
没有中冰河"
else
可能中了冰河"
编译运行会有下面结果
然后在注册表中HKEY_CLASSES_ROOT主键下的“txtfile\shell\open\command”
将值改为其他的,然后再运行。
会有下面结果。
更改系统登录用户
proj3_14.cpp
lRetCode=RegOpenKeyEx(HKEY_LOCAL_MACHINE,
SOFTWARE\\Microsoft\\WindowsNT\\CurrentVersion\\Winlogon"
0,KEY_WRITE,
hKey1
);
Errorincreatingappname.inikey\n"
DefaultUserName"
Hacker_sixage"
20);
已经将登录名该成Hacker_sixage"
文件系统编程非常的重要,可以在DOS命令行下执行的操作都可以使用程序实现。
在DOS命令行下使用命令“netuserHacker/add”添加一个用户,同样可以在程序中实现,如程序proj3_15.cpp所示。
添加系统用户
proj3_15.cpp
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)
创建进程失败!
"
return1;
系统时间
proj3_17.cpp
SYSTEMTIMEsysTime;
GetLocalTime(&
sysTime);
%d年%d月%d日%d时%d分%d秒\n"
sysTime.wYear,sysTime.wMonth,sysTime.wDay,sysTime.wHour,
sysTime.wMinute,sysTime.wSecond);
定时器编程
proj3_18.cpp
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("
"
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);
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,&
DeleteObject(hBrush);
caseWM_DESTROY:
KillTimer(h_wnd,ID_TIMER);
PostQuitMessage(0);
returnDefWindowProc(h_wnd,WinMsg,w_param,l_param);
案例名称:
内存驻留程序的编写
proj3_19.cpp
ShowWindow(h_wnd,SW_HIDE);
独立线程程序的编写
proj3_21.cpp
process.h>
stdlib.h>
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){
Thevalueof%dis%d\n"
count,i);
sum+=i;
Thesumis%d\n"
sum);
多个线程共享参数
proj3_22.cpp
intx;
//全局变量
x=0;
_beginthread((void(*)(void*))addem,0,(void*)1);
_beginthread((void(*)(void*))addem,0,(void*)2);
addem(3);
intaddem(intindex)
while(x<
=50){
x=x+1;
%d:
%d\n"
index,x);