记忆中的函数2
来源:互联网 发布:js页面跳转 带referrer 编辑:程序博客网 时间:2024/04/27 19:03
push 0F003F00408F1D push 0 push 000408F21 call [<&ADVAPI32.OpenSCManagerA>]; 第一步,打开服务控制管理器 mov ebx, eax ; 得到服务控制管理器的句柄hSCManager,存于ebx中二call OpenSCManagerA 打开服务控制管理器call OpenServiceA 打开服务call ControlService 传递SERVICE_STOPED参数来关闭服务看来,关闭服务和打开服务的第一第二步是一样的,为了减少增加的代码,改造一下上面主程序的打开服务的代码,增加关闭的功能。(1) 先要修改打开服务时,设置的权限,改服务启动权限为 SERVICE_START | SERVICE_STOP,保证有结束权限三RegCloseKey 释放指定注册键的句柄函数原型LONG RegCloseKey( HKEY hKey // 释放键的句柄 );hKey : [输入] 想要关闭的已经打开的键。 返回值: 如果过程执行成功,返回值是 ERROR_SUCCESS。如果功能失败,返回一个非零值,错误码在 Winerror.h定义。可以使用FormatMessage 函数和FORMAT_MESSAGE_FROM_SYSTEM 标记获得一个分类的错误描述。备注: 被关闭的句柄将不可以再使用,应为已经不再有效。RegCloseKey 函数在返回以前不能执行必要的写操作;它能够保持几秒钟为缓存执行写入磁盘,如果一个应用程序必须要写入注册表到硬盘,应该使用 RegFlushKey、RegFlushKey。. 转换基础键HKEY GetBaseRegKey(char* keystr){ HKEY hKey; if(strcmp(keystr,"HKEY_CLASSES_ROOT")==0) hKey=HKEY_CLASSES_ROOT; if(strcmp(keystr,"HKEY_CURRENT_CONFIG")==0) hKey=HKEY_CURRENT_CONFIG; if(strcmp(keystr,"HKEY_CURRENT_USER")==0) hKey=HKEY_CURRENT_USER; if(strcmp(keystr,"HKEY_LOCAL_MACHINE")==0) hKey=HKEY_LOCAL_MACHINE; if(strcmp(keystr,"HKEY_USERS")==0) hKey=HKEY_USERS; return hKey;} //-- 创建子键int CreateRegKey(PARAINFO painfo){ HKEY bKey; HKEY hKey; DWORD lpdwDisposition; LONG retVal; char BaseKey[512]; char SubKey[512]; int OpenState; strcpy(BaseKey,painfo.BaseKey); strcpy(SubKey,painfo.SubKey); OpenState = painfo.RegState; bKey = GetBaseRegKey(BaseKey); retVal = RegCreateKeyEx( bKey, SubKey, NULL, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &lpdwDisposition); if(retVal != ERROR_SUCCESS) { RegCloseKey(hKey); //-- 关闭句柄 return 1; } if(OpenState!= REG_STATE_OPEN) { RegCloseKey(hKey); //-- 关闭句柄 } return 0; }
License查看程序将调用RegSetValueExa函数修改注册表查看msdn发现RegSetValueExa函数压栈6个参数,
License查看程序将调用RegSetValueExa函数修改注册表查看msdn发现RegSetValueExa函数压栈6个参数,
- 记忆中的函数2
- 记忆中的函数
- 记忆中的函数
- 记忆中的函数3
- 记忆中的计算机-2 (IBM PC)
- 记忆几个函数
- 记忆函数+闭包
- js 自记忆函数
- 【记忆化】ackerman函数
- python函数记忆
- 通用记忆函数
- 记忆中的小虎队
- 记忆中的村庄
- 记忆中的成长
- 寻找记忆中的朋友
- 《奋斗》中的零星记忆
- 我记忆中的7.28
- 记忆中的程序设计题目
- Spring简介
- 第二人生的源码分析(六十一)LLCurl类实现libcurl库封装
- 循环队列
- SimpleLoopFor.java
- js和c#相互调用
- 记忆中的函数2
- VC6调节控件的位置和大小
- the finite element method
- 出差武汉
- 用反射来解决字段多带来的烦恼
- 海洋动物活化石--鲎
- 无法打开组策略的五种解决方法
- WBINVD--Write Back and Invalidate Cache
- ORM