计算机网络安全实验,计算机网络安全技术实验.doc
计算机网络安全技术实验.doc
(27页)

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
24.9 积分
计算机网络安全技术 实验n 案例名称:操作注册表n 程序名称:#include n #include n n main() n { n HKEY hKey1; n DWORD dwDisposition; n LONG lRetCode; n //创建n lRetCode = RegCreateKeyEx ( HKEY_LOCAL_MACHINE, n "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\IniFileMapping\\WebSecurity", n 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, n NULL, &hKey1, &dwDisposition); n n //如果创建失败,显示出错信息 n if (lRetCode != ERROR_SUCCESS){ n printf ("Error in creating WebSecurity key\n"); n return (0) ; n } n //设置第一个键值n lRetCode = RegSetValueEx ( hKey1, n "Hack_Name", n 0, n REG_SZ, n (byte*)"sixage", n 100); n //设置第二个键值n lRetCode = RegSetValueEx ( hKey1, n "Hack_Hobby", n 0, n REG_SZ, n (byte*)"Running", n 100); n n //如果创建失败,显示出错信息 n if (lRetCode != ERROR_SUCCESS) { n printf ( "Error in setting Section1 value\n"); n return (0) ; n } n printf("注册表编写成功!\n");n return(0); n }n 案例名称:判断是否中了“冰河”n 程序名称:proj3_13.cppn n #include n #include n main() n { n HKEY hKEY; n LPCTSTR data_Set = "txtfile\\shell\\open\\command"; n long ret0 = (RegOpenKeyEx(HKEY_CLASSES_ROOT,n data_Set, 0, KEY_READ,&hKEY)); n if(ret0 != ERROR_SUCCESS) //如果无法打开hKEY,则终止程序的执行 n {n return 0; n }n //查询有关的数据n LPBYTE owner_Get = new BYTE[80]; n DWORD type_1 = REG_EXPAND_SZ ; n DWORD cbData_1 = 80; n long ret1=RegQueryValueEx(hKEY, NULL, NULL,n &type_1, owner_Get, &cbData_1); n if(ret1!=ERROR_SUCCESS) n { n return 0; n } n n if(strcmp((const char *)owner_Get,"%systemroot%\\system32\\notepad.exe %1") == 0)n {n printf("没有中冰河");n }n elsen {n printf("可能中了冰河");n }n printf("\n");n }编译运行会有下面结果然后在注册表中HKEY_CLASSES_ROOT主键下的“txtfile\shell\open\command”将值改为其他的,然后再运行。会有下面结果。n 案例名称:更改系统登录用户n 程序名称:proj3_14.cppn n #include n #include n n main() n { n HKEY hKey1; n LONG lRetCode; n lRetCode = RegOpenKeyEx ( HKEY_LOCAL_MACHINE, n "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", n 0, KEY_WRITE, n &hKey1n ); n n if (lRetCode != ERROR_SUCCESS){ n printf ("Error in creating appname.ini key\n"); n return (0) ; n } n n lRetCode = RegSetValueEx ( hKey1, n "DefaultUserName", n 0, n REG_SZ, n (byte*)"Hacker_sixage", n 20); n n if (lRetCode != ERROR_SUCCESS) { n printf ( "Error in setting Section1 value\n"); n return (0) ; n n } n printf("已经将登录名该成Hacker_sixage");n return(0); n }n 文件系统编程非常的重要,可以在DOS命令行下执行的操作都可以使用程序实现。n 在DOS命令行下使用命令“net user Hacker /add”添加一个用户,同样可以在程序中实现,如程序proj3_15.cpp所示。nn 案例名称:添加系统用户n 程序名称:proj3_15.cppn n #include n #include n main()n {n char * szCMD = "net user Hacker /add";n BOOL bSuccess;n PROCESS_INFORMATION piProcInfo;n STARTUPINFO Info;。省略部分。eObject (hBrush) ;n return 0 ;n n case WM_DESTROY :n KillTimer (h_wnd, ID_TIMER) ;n PostQuitMessage (0) ;n return 0 ;n }n return DefWindowProc(h_wnd,WinMsg,w_param,l_param);n }n 案例3-7 “冰河”原型 n #include n WNDCLASS wc;n HWND h_wnd;n MSG msg;nn /* 消息处理函数wndProc的声明*/n long WINAPI WindowProc(HWND,UINT,WPARAM,LPARAM);nn /* winMain 函数的声明*/n int PASCAL WinMain(HINSTANCE h_CurInstance,n HINSTANCE h_PrevInstance,LPSTR p_CmdLine,int m_Show)n {n //MessageBox(NULL,p_CmdLine,"",MB_OK);n BOOL bSuccess;n PROCESS_INFORMATION piProcInfo;n STARTUPINFO Info;n Info.cb = sizeof(STARTUPINFO);n Info.lpReserved = NULL;n Info.lpDesktop = NULL;n Info.lpTitle = NULL;n Info.cbReserved2 = 0;n Info.lpReserved2 = NULL;n char lpAppName[100];n strcpy(lpAppName, "notepad.exe ");n //MessageBox(NULL,lpAppName,"",MB_OK);n if(strcmp(p_CmdLine,"")!=0)n strcat(lpAppName, p_CmdLine);n //MessageBox(NULL,lpAppName,"",MB_OK);n bSuccess=CreateProcess(NULL,lpAppName,NULL,NULL,false,NULL,NULL,NULL,&Info,&piProcInfo);nn /*初始化wndclass结构变量*/n wc.lpfnWndProc =WindowProc;n wc.hInstance =h_CurInstance;n wc.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);n wc.lpszClassName ="TheMainClass";n n /* 注册WndClass结构变量*/n RegisterClass(&wc);n n /* 创建窗口*/n h_wnd=CreateWindow("TheMainClass","Our first Window",n WS_OVERLAPPEDWINDOW,0,0,400,500,0,0,h_CurInstance,0);n n /* 显示窗口*/n ShowWindow(h_wnd,SW_HIDE);n n /*消息循环*/n while(GetMessage(&msg,NULL,0,0))n DispatchMessage(&msg);n return (msg.wParam );n }nn /* 定义消息处理函数*/n long WINAPI WindowProc(HWND h_wnd,UINT WinMsg,n WPARAM w_param,LPARAM l_param)n {n n switch (WinMsg)n {n case WM_DESTROY :n PostQuitMessage (0) ;n return 0 ;n }n return DefWindowProc(h_wnd,WinMsg,w_param,l_param);n }n 案例名称:独立线程程序的编写n 程序名称:proj3_21.cppn n #include n #include n #include n n int addem(int);n int main(int argc, char *argv[])n {n _beginthread((void (*)(void *))addem, 0, (void *)10);n _beginthread((void (*)(void *))addem, 0, (void *)11);n addem(12);n return 0;n }n n int addem(int count)n {n int i;n long sum;n n sum = 0;n for (i=0; i<=count; ++i) {n printf("The value of %d is %d\n", count, i);n sum += i;n }n printf("The sum is %d\n", sum);n return 0;n }n 案例名称:多个线程共享参数n 程序名称:proj3_22.cppn n #include n #include n #include n int addem(int);n int x; //全局变量n n int main(int argc, char *argv[])n {n x=0;n _beginthread((void (*)(void *))addem, 0, (void *)1);n _beginthread((void (*)(void *))addem, 0, (void *)2);n addem(3);n return 0;n }n n int addem(int index)n {n while (x <= 50){n x = x+1;n printf("%d: %d\n", index, x);n }n return 0;n } 关 键 词: 技术 安全 实验 计算机网络
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
更多推荐
所有评论(0)