reate ile权限-CreateFile操作驱动器的权限问题

问题描述

CreateFile操作驱动器的权限问题

开发环境:win7 64位
开发工具:VS2010
开发背景:AxtiveX插件(DLL项目) 宿主为浏览器

问题描述:
在使用C++代码获取硬盘序列号的时候,使用到了CreateFile函数。主要用到了CreateFile、DeviceIoControl函数。把关键代码提取到一个Win32工程下时:
问题1:生成的exe程序,可以在本机直接双击运行获取到序列号,但是在别的机器就需要使用管理员权限(XP系统除外),是为什么?
问题2:如果是exe程序: 可以设置UAC的执行级别为administrator,或者右键使用管理员权限运行,获取序列号。但是如果要在DLL工程中怎么办? (**现在的目的就是想如何在代码里实现普通用户操作驱动器的问题(不考虑XP)?**)

说明:
尝试使用过 http://bbs.csdn.net/topics/250018148 的解决方案没有解决问题,也尝试在代码里提权(AdjustTokenPrivileges),也没有解决问题。

解决方案

  1. ActiveX技术的优点之一就在于它的分发性好,是下载即使用.
  2. UAC的目的就是为了控制普通用户,防止越权操作,对操作系统或公司集群造成安全风险.
  3. 假设你利用各种手段提权成功,你还需要过杀软.

所以,思路要变化,为什银行的支付插件、QQ的检测登陆插件都有一个promt(提示)?
你在这个安全规范的约束内做事,而不是去打破这个规范.

关于你要实现的问题,如果你是针对集团、公司开发ActiveX,请了解GroupPolicy和AxIs.
如果你针对个人,那就参考1、2楼.

解决方案二:

dll的程序,需要它运行的宿主程序提权。

除非操作系统有bug,或者用户关闭uac,否则无解。要不然还要uac干嘛。

解决方案三:

1.很有可能是你的本机关闭了UAC,所以可以直接运行,而其他机器需要管理员权限。DeviceIoControl 这些API是需要管理员权限的。所以你的调用程序需要管理员权限
2. DLL本身没有所谓的权限要求,但是它的API里面调用了高权限函数,那么就需要加载DLL的exe有对应的权限,也就是EXE自己要先提升Admin权限
3. 这些都是有OS UAC所控制的,目的就是加强权限控制,从而达到更安全的保护。目前看,Windows,vista,WIN7,WIN8, WIN10都会这么继续下去。所以你没办法绕过,只能遵守

解决方案四:

请参考AxIs:
https://technet.microsoft.com/en-us/magazine/2007.07.axis.aspx

解决方案五:

那在获取硬盘序列号的时候,还有没有其他方式不需要调用高权限的API? (WMI方式是否可靠?)
现在想做一个类似机器指纹的操作,如今拿到了CPUID和MAC,还想再拿到一个其他固件的标识,有没有推荐的(不考虑磁盘卷的属性)?

时间: 2024-09-21 11:32:37

reate ile权限-CreateFile操作驱动器的权限问题的相关文章

如何从零设计结构清晰、操作友好的权限管理模块

本文讲的是如何从零设计结构清晰.操作友好的权限管理模块, 前言 在开讲之前,先列举几个场景: 场景一 Hi,今天那个销售总监说要设立几个销售经理的职位,然后每个经理管理自己小组的销售员,我们把用户的销售数据按组分开来吧. 场景二 Mario,今天那个市场部的说要分立几个板块,公众号的管理所有文章投稿评论,推广管各平台宣传策略方案与实施,对,竞品的相关资料数据也要分立出来,我们要把这些分开来.之前讨论的销售部的事情和这个没关系哦. 场景三 那个,xx店的店主说,他管理的两家门店,想同时处理两家店的

管理-sql建立表 进行用户权限的操作

问题描述 sql建立表 进行用户权限的操作 假如 sql设置用户权限的表这设置 比如说有"超级管理员,管理员,普通用户"这些访问和操作权限是通过什么设置的 解决方案 在你的系统中增加2个表 权限表,比如: id 操作 角色 1 addnews admin 2 addnews user 3 readnews admin 4 readnews user 5 readnews guest 6 adduser admin ... 再建立一个角色表 id userid role 1 123 ad

C#利用WMI操作DNS服务器(可远程操作,需要相应权限)_C#教程

using System; using System.Collections.Generic; using System.Text; using System.Data; namespace Yaosansi {     class Test     {         static void Main()         {             MyDnsTEST();         }     /// <summary>     /// MyDnsTEST功能测试   /// C#利

通用权限管理设计 之功能权限

一,前言  权限管理系统的应用者应该有三种不同性质上的使用, A,使用权限 B,分配权限 C,授权权限  本文只从<使用权限>和<分配权限>这两种应用层面分析,暂时不考虑<授权权限>这种. 二,初步分析 用户和角色  说到权限管理,首先应该想到,当然要设计一个用户表,一个权限表.这样就决定了一个人有什么样的权限. 做着做着就会发现这样设计太过繁琐,如果公司里面所有员工都有这样的权限呢,每一个人都要配置?那是一件很痛苦的事情.因此再添加一个角色表,把某些人归为一类,然后再

角色-在权限系统中,管理员所拥有的权限是权限表中的所有权限吗??

问题描述 在权限系统中,管理员所拥有的权限是权限表中的所有权限吗?? 我一共建了,用户表.权限表.角色表.用户角色表,角色权限表,在划分权限时产生了疑问 1.管理员所拥有的权限是权限表中所列出的权限吗?? 2.因为在管理系统时,需添加很多角色:如:老师.学生.各个院系,请问在管理员添加用户时,权限表里也应该划分这么多个权限吗,还是只需要一个添加用户? 3.权限获得后是具备了对数据库中相应表的操作吗?? (刚刚学习,问题有点奇葩,还望大家相告....) 解决方案 不能这么说,有时候我们需要一个比管

android开发 adb的root权限和apk的root权限有什么区别

问题描述 android开发 adb的root权限和apk的root权限有什么区别 android4.4环境,已经可以adb root操作/system/app目录,但是在apk中却提示su: su: uid 10054 not allowed to su 系统是厂家提供的debug版本,莫非系统只提供了adb的root权限,而没有提供apk的root权限? 解决方案 root用户没给su权限 解决方案二: 一般机器上会有权限管理软件.当app需要root权限时需要,权限管理会拦截一下.有个允许

Linux用户及权限基础 3 Linux扩展权限

1 默认权限 1 每一个终端都有一个umask权限来确定新建文件和新建文件夹的默认权限 2 umask使用数字权限来表示,比如022 3 目录的默认权限是777-umask,文件的默认权限是666-umask 4 普通用户的umask是0002,root用户的umask是022 5 那么新建文件的权限为666-0002 = 664 => rw-rw-r-- 比如我在家目录下创建一个新的文件名叫LinuxCast.net 那么新建文件夹(目录)的权限为777-0002 = 775 => rwxr

mac磁盘权限怎么修复 mac磁盘权限修复方法

  mac磁盘权限怎么修复?苹果mac电脑在平时使用过程中,会出现一些磁盘权限不正确的文件,那么mac磁盘权限怎么修复呢?下面小乐哥给大家分享mac磁盘权限修复方法,一起来看看吧! mac磁盘权限怎么修复: 使用系统自带的磁盘工具来修复磁盘权限 这一步将修复目标磁盘中所有查找到的异常文件和文件夹权限,无论你用的是启动盘.移动硬盘或者其他. 首先打开系统自带的磁盘工具(Disk Utility)应用,在_/Applications/Utilities_文件夹下 在左侧菜单栏中选择要修复权限的目标

iis8中写权限和脚本资源访问权限在哪里设置

问题描述 iis8中写权限和脚本资源访问权限在哪里设置 iis6中可以设置虚拟目录或应用程序的"写权限"和"脚本资源访问权限",ii8在哪里设置这两个权限呢?