CN110597557A - 一种系统信息获取方法、终端及介质 - Google Patents
一种系统信息获取方法、终端及介质 Download PDFInfo
- Publication number
- CN110597557A CN110597557A CN201910873601.6A CN201910873601A CN110597557A CN 110597557 A CN110597557 A CN 110597557A CN 201910873601 A CN201910873601 A CN 201910873601A CN 110597557 A CN110597557 A CN 110597557A
- Authority
- CN
- China
- Prior art keywords
- information
- environment block
- address
- block
- system information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 102
- 230000008569 process Effects 0.000 claims abstract description 58
- 238000012545 processing Methods 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 32
- 238000007726 management method Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/35—Indirect addressing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种系统信息获取方法、终端及介质,其中方法包括:基于汇编方式获取预设环境块的地址,所述预设环境块包括进程环境块或操作系统环境块;根据所述预设环境块的地址获取所述预设环境块的结构体,所述结构体包括多个字段,所述多个字段中包括用于指示系统信息的目标字段;从所述预设环境块的结构体提取出所述目标字段的信息,并根据所述目标字段的信息确定所述系统信息。采用本申请实施例,有助于提升获取的系统信息的可靠性。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种系统信息获取方法、终端及介质。
背景技术
在系统运行过程中,经常存在需要获取系统信息的场景,以基于获取的系统信息进行业务处理。目前,一般是通过应用程序编程接口(Application ProgrammingInterface,API)函数来获取系统信息的,比如在获取系统版本号时,是通过GetVersion、GetVersionE、RtlGetVersion等函数来直接获取系统版本号。然而,由于API函数容易被攻击者篡改,导致基于API函数获取的系统信息不可靠。
发明内容
本申请实施例提供了一种系统信息获取方法、终端及介质,有助于提升获取的系统信息的可靠性。
一方面,本申请实施例提供了一种系统信息获取方法,包括:
基于汇编方式获取预设环境块的地址,所述预设环境块包括进程环境块或操作系统环境块;
根据所述预设环境块的地址获取所述预设环境块的结构体,所述结构体包括多个字段,所述多个字段中包括用于指示系统信息的目标字段;
从所述预设环境块的结构体提取出所述目标字段的信息,并根据所述目标字段的信息确定所述系统信息。
另一方面,本申请实施例提供了一种系统信息获取装置,包括:
获取单元,用于基于汇编方式获取预设环境块的地址,所述预设环境块包括进程环境块或操作系统环境块;
所述获取单元,还用于根据所述预设环境块的地址获取所述预设环境块的结构体,所述结构体包括多个字段,所述多个字段中包括用于指示系统信息的目标字段;
确定单元,用于从所述预设环境块的结构体提取出所述目标字段的信息,并根据所述目标字段的信息确定所述系统信息。
再一方面,本申请实施例提供了一种终端,所述终端可包括输入设备和输出设备,所述终端还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行上述的方法。
再一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述的方法。
在本申请实施例中,终端能够基于汇编方式获取预设环境块的地址,并根据该地址确定出预设环境块后,从该预设环境块的结构体包括的多个字段中提取出用于指示系统信息的目标字段,以根据该目标字段获取得到该系统信息。从而能够基于汇编方式从环境块中实现系统信息的可靠获取,确保获取到的系统信息为正确的系统信息,由于不是通过API函数获取系统信息,因而不受攻击者的hook影响,提升了系统信息获取的可靠性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中的附图作简单地介绍。
图1a是一种获取系统信息的场景示意图;
图1b是另一种获取系统信息的场景示意图;
图1c是又一种获取系统信息的场景示意图;
图1d是本申请实施例提供的一种获取系统信息的场景示意图;
图1e是本申请实施例提供的一种兼容性启动设置方式的示意图;
图2是本申请实施例提供的一种系统信息获取方法的流程示意图;
图3是本申请实施例提供的另一种系统信息获取方法的流程示意图;
图4是本申请实施例提供的又一种系统信息获取方法的流程示意图;
图5是本申请实施例提供的一种系统信息获取装置的结构示意图;
图6是本申请实施例提供的一种终端的结构示意图。
具体实施方式
在系统运行过程中,经常存在需要获取系统信息的场景,以基于获取的系统信息实现对应的业务处理。在本申请实施例中,在获取系统信息时,是基于汇编方式从预设环境块中获取系统信息,而不是通过API函数来获取系统信息,这就避免了通过API函数获取系统信息带来的信息获取不可靠,可能获取到错误的系统信息的问题,从而提升了获取的系统信息的可靠性。
在本申请中,预设环境块可以为进程环境块或操作系统环境块,该进程环境块可以为进程环境块(Process Envirorment Block,PEB),该操作系统环境块可以是为共享用户数据块如SharedUserData。
在本申请中,该系统信息可包括系统版本号、进程路径、进程创建时间、进程参数、进程基地址等信息中的任一项或多项,此处不一一列举。可以理解,该系统信息为本申请涉及的环境块如进程环境块和操作系统环境块中存储有的系统信息。
本申请的技术方案可具体应用于终端中,在该终端中可以运行各种操作系统,例如,Windows操作系统如Windows 2000到win10、UNIX操作系统、Linux操作系统、DOS操作系统等等。该终端可安装有安全组件,该安全组件可包括杀毒软件、反外挂程序、企业安全软件等。从而终端可通过启动安全组件对终端进行安全防护。可选的,该终端可包括手机、平板电脑、计算机等等,本申请不做限定。可以理解,在其他实施例中,该终端还可叫做其余名称,比如叫做智能终端、用户设备、用户终端等等,此处不一一列举。
例如,在一些场景中,需要通过获取系统版本号来确定运行的操作系统,进而实现对应的业务处理,执行该操作系统对应的处理流程,如启动该操作系统对应的安全处理策略。如图1a所示,终端可通过启动安全组件来实现安全防护,假设终端中运行的操作系统为Win10系统,在获取系统版本号时,正常流程下获取的系统版本号为Win10,进而可执行Win10处理流程。然而,如果终端中存在兼容性启动的情况,比如在Win10系统下,采用Xp的模式启动进程,即使启动了安全组件,基于API函数获取到的系统版本号也会为兼容的系统的版本号,即Xp版本号,也就是获取到了错误的系统版本号,由此触发执行Xp处理流程,如图1b所示。或者,如果攻击者(如外挂或者病毒木马等等)绕过安全组件通过拦截API对系统版本号进行了篡改,即对系统版本号进行了APIhook,将原来的Win10版本号修改为错误的系统版本如Xp版本号,则基于API函数获取到的系统版本号也会为兼容的系统的版本号,即Xp版本号,即错误的系统版本号,由此触发执行Xp处理流程,如图1c所示。而本申请基于汇编方式获取预设环境块的地址,进而从预设环境块如进程环境块或操作系统环境块获取系统版本号,而不是通过API函数获取系统版本号,则不仅可以规避API拦截这种方案绕过安全组件的判定,还可以规避兼容性启动这种方案绕过安全组件的判定;由此,即使在存在兼容性启动的情况下,和/或,对系统版本号进行了API hook的情况下,本申请仍可以获取到正确的系统版本号,如上述的Win10版本号,如图1d所示,从而提升了获取的系统版本号的可靠性。
其中,hook是指一种Hook拦截API的技术,通过hook可以修改API的参数和函数返回值。兼容性启动可以是指在一种操作系统下,以另一种操作系统的模式启动进程,比如某一软件在当前配置的操作系统兼容性不好时,可以将该软件应用到兼容性较好的操作系统,以该操作系统启动该软件,以提升软件运行效果。例如,针对某些游戏软件(应用)、安全程序等,可以进行兼容性启动设置以实现兼容性启动,如图1e所示。
在一些实施例中,该终端可以为处于区块链网络中的终端。可选的,该终端所在的区块链网络中还可包括其余区块链节点,如终端、服务器等等。终端在获取到系统信息之后,可以对系统信息进行上链,以避免系统信息被非法用户篡改,使得相关设备(如该终端或者其余设备)后续能够快速获取到正确的系统信息,这就提升了系统信息的获取效率,并确保了获取的系统信息的可靠性。
其中,终端对系统信息进行上链的过程可以为:终端根据系统信息生成区块,该区块包括该系统信息,进而终端可以将该区块发布至终端所在的区块链网络。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Block chain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备(例如终端)健康状态等。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
本申请实施例公开了一种系统信息获取方法、装置、终端和介质,有助于提升获取的系统信息的可靠性。以下分别详细说明。
请参见图2,图2是本申请实施例的一种系统信息获取方法的流程示意图,该系统信息获取方法可应用于上述的终端中。如图2所示,本实施例的系统信息获取方法包括以下步骤:
201、基于汇编方式获取预设环境块的地址,该预设环境块可包括进程环境块或操作系统环境块。
在一些实施例中,该预设环境块可以为进程环境块,例如,该进程环境块可以为PEB,从而终端可基于汇编方式获取PEB的地址(或者称为PEB的基地址),以基于PEB的地址获取系统信息。
在一些实施例中,该预设环境块可以为操作系统环境块,例如,该操作系统环境块可以为共享用户数据如SharedUserData,从而终端可基于汇编方式获取该SharedUserData的地址,以基于PEB的地址获取系统信息。
在本申请中,基于汇编方式获取信息可以是指通过汇编语言获取/读取信息,例如,可接收用户基于汇编语言触发的读取指令,根据该汇编语言的读取指令获取该预设环境块的地址。又如,终端中可存储用于获取系统的信息的汇编语言的脚本/指令,如该读取指令,从而可通过调用该汇编语言的读取指令来获取该预设环境块的地址。
在一些实施例中,该预设环境块的地址可以是从驱动程序信息中或FS寄存器获取的,也即可以通过驱动或读取FS寄存器获取该预设环境块的地址。例如,如果该预设环境块为PEB,可通过驱动或读取FS寄存器获取PEB的地址;又如,如果该预设环境块为SharedUserData,可通过驱动获取该SharedUserData的地址;又如,过去该预设环境块为EPROCESS(进程信息),可以通过驱动获取EPROCESS的地址,以从EPROCESS中获取系统信息。
在一些实施例中,终端在获取进程环境块的地址时,还可根据操作系统位数从FS寄存器获取该进程环境块的地址。比如根据操作系统位数和进程环境块的地址的对应关系,确定该地址;又如,根据操作系统位数确定进程环境块在FS寄存器中的偏移量,进而根据该进程环境块在该FS寄存器中的偏移量从FS寄存器获取该进程环境块的地址,如根据FS寄存器的首地址和该偏移量确定该进程环境块的地址。从而有助于提升该地址的获取效率和可靠性,进而提升系统信息获取效率和可靠性。
202、根据该预设环境块的地址获取该预设环境块的结构体,该结构体包括多个字段,该多个字段中包括用于指示系统信息的目标字段。
在一些实施例中,终端可根据操作系统的位数来确定该目标字段的位置信息,以便于基于该位置信息来获取该目标字段的信息。
203、从该预设环境块的结构体提取出该目标字段的信息,并根据该目标字段的信息确定该系统信息。
在获取到预设环境块的地址之后,即可基于该地址获取到对应的预设环境块,进而从中提取出用于指示需要获取的系统信息的字段,即目标字段,并可根据该目标字段确定出该系统信息。
在一些实施例中,该多个字段的字段信息可以包括该多个字段中每个字段的长度和每个字段在该预设环境块如PEB结构体中的位置信息,如用于指示为第几个字段的位置标识。进而终端可根据每个字段的长度和每个字段在该PEB结构体中的位置信息,确定出该目标字段在该PEB结构体中的位置,进而可基于确定出该位置提取出该目标字段的信息。可选的,不同操作系统位数下,字段的长度可能存在不同,由此,终端可通过确定操作系统位数来确定该字段长度,进而确定出目标字段的位置以提取出该目标字段的信息。
在一些实施例中,终端还可根据操作系统位数确定目标字段的偏移信息,该偏移信息包括地址偏移量,进而终端可根据预先存储的初始地址和该地址偏移量,从该预设环境块的结构体提取出该目标字段的信息。
在一些实施例中,如果该系统信息包括系统版本号,在确定出该系统版本号之后,终端还可根据预设的系统版本号和安全处理策略的对应关系,确定该系统版本号对应的安全处理策略,进而可执行确定出的该安全处理策略。从而提升终端的安全性。
在一些实施例中,在所述基于汇编方式获取预设环境块的地址之前,终端还可获取终端的运行环境信息,基于终端的运行环境信息确定获取系统信息的方式。比如通过判断该运行环境信息是否满足预设条件,并在满足该预设条件时,触发该基于汇编方式获取预设环境块的地址的步骤;否则,如果不满足该预设条件,终端还可通过预设函数获取该系统信息。其中,该运行环境信息可包括API指示信息、兼容性指示信息和/或汇编指令信息等等。该API指示信息可用于指示预设时间范围内是否发生基于API函数的系统信息获取事件,该兼容性指示信息可用于指示当前是否存在兼容性启动的进程,该汇编指令信息可以用于指示终端中是否存储有用于获取该系统信息的汇编指令,如上述的基于汇编语言的读取指令。
例如,终端可获取该API指示信息,如果该API指示信息指示在预设时间范围如10分钟内发生了基于API函数的系统信息获取事件,表明该系统信息可能被篡改,则可触发基于汇编方式获取预设环境块的地址的步骤,以基于汇编方式获取系统信息;否则,终端可通过预设函数获取所述系统信息。从而有助于提升获取的系统信息的可靠性。
又如,终端可获取该兼容性指示信息,如果该兼容性指示信息指示当前存在兼容性启动的进程,则可触发基于汇编方式获取预设环境块的地址的步骤,以基于汇编方式获取系统信息;否则,终端可通过预设函数获取所述系统信息。从而有助于提升获取的系统信息的可靠性。
又如,终端可获取该汇编指令信息,如果该汇编指令信息指示终端中存储有用于获取该系统信息的汇编指令,则可触发基于汇编方式获取预设环境块的地址的步骤,以基于汇编方式获取系统信息;否则,终端可通过预设函数获取所述系统信息。从而有助于提升获取的系统信息的可靠性。
在一些实施例中,终端还可通过预设函数获取该系统信息,并将预设函数对应的系统信息和该汇编方式对应的系统信息进行比较,如果两者相同,则可表明该系统信息未被篡改,不存在针对该系统信息的外挂(病毒、木马等),该系统信息未被API hook;如果两者不同,则可表明该系统信息被hook,或者系统中存在兼容性启动的情况。可选的,如果两者不同,终端还可通过检测当前是否存在兼容性启动的进程,并在不存在时确定该系统信息被hook,进而可针对该hook事件采取预设的安全策略,或者向指定设备发送告警信息,以指示该hook事件。其中,该告警信息中可携带终端标识和被hook的系统信息等等。从而有助于及时发现API hook事件,使得提升了终端安全性。
在本实施例中,终端能够基于汇编方式获取预设环境块的地址,并根据该地址确定出预设环境块的结构体后,从该预设环境块的结构体包括的多个字段中提取出用于指示系统信息的目标字段,以根据该目标字段获取得到该系统信息。从而能够基于汇编方式从环境块中实现系统信息的可靠获取,确保获取到的系统信息为正确的系统信息,而由于不是通过API函数来获取系统信息,即使系统信息通过API函数被攻击者篡改,仍能保证获取的系统信息是正确的,不受API hook的影响,也不受兼容性启动的影响,这就提升了系统信息获取的可靠性。
请参见图3,是本申请实施例的另一种系统信息获取方法的流程示意图。在本实施例中,以系统信息为系统版本号为例进行说明。如图3所示,本实施例的系统信息获取方法可以包括以下步骤:
301、获取操作系统位数。
其中,操作系统位数可以是CPU位数,即CPU的地址总线数目。例如,该操作系统位数可以为32位;又如,该操作系统位数可以为64位。
302、基于汇编方式,并根据该操作系统位数从FS寄存器获取PEB的地址。
其中,该FS寄存器还可称为FS段寄存器或者其余名称。该FS寄存器可用于存储一些进程信息,FS段的首地址是存储这些进程信息的首地址,例如,在内核态FS指向GDT表的0x30地址,在用户态FS指向0x3B。如当线程运行时FS段指向的段是GDT中的0x3B段基地址为当前线程的线程环境块(TEB),该段也被称为“TEB段”,操作系统为32位时,0x30为PEB所在的地址;操作系统为64位时,0x0060为PEB所在的地址。即:
32位程序:
asm move PEB,fs[30]
64位程序:
asm move PEB,fs[60]
从而终端可基于汇编方式从该对应的位置获取PEB的地址。
303、根据操作系统位数确定目标字段的偏移信息,该偏移信息包括地址偏移量。
其中,该目标字段可用于指示系统版本号,其可以包括一个或多个字段。例如,该目标字段可包括主版本号(major)、次版本号(如minjor)、修订版本(如build)。
304、根据预先存储的初始地址和该地址偏移量,从该PEB的结构体提取出该目标字段的信息。
在PEB结构体中,有些字段会因操作系统位数不同而不同,例如,对于指针类型的字段,在64位上,指针的大小会变成64位。因此不同操作系统位数对应的目标字段的位置存在不同,即存在偏移。由此,可通过获取在目标字段在不同操作系统位数下对应的地址偏移量,基于该地址偏移量和初始地址确定出该目标字段的位置以提取出该目标字段。
例如,该PEB结构体可以如下所示:
可选的,该初始地址可以是指该PEB结构体的首地址,也可以是指上述的TEB的首地址,还可以该PEB结构体中首地址和该目标字段的地址之间的字段的地址,等等,本申请不做限定。相应的,该地址偏移量可以是指该初始地址和该目标地段的地址之间的偏移量。
305、根据该目标字段的信息确定系统版本号。
在提取出该目标字段的信息(内容)之后,即可根据该目标字段的信息确定出该系统版本号。例如,该目标字段包括major、minjor和build,终端可根据该major、minjor和build指示的信息如OSMajorVersion、OSMinorVersion和OSBuildNumber确定出该系统版本号。
可选的,终端还可根据确定出的系统版本号进行业务处理,执行该系统版本号对应的系统处理逻辑,如下所示:
从而可通过major、minjor、build判断终端运行于什么系统。
在本实施例中,终端能够基于汇编方式从FS寄存器获取PEB的地址,并根据该地址确定出PEB的结构体后,从该PEB的结构体包括的多个字段中提取出用于指示系统版本号的目标字段,以根据该目标字段获取得到该系统版本号。从而能够基于汇编方式从PEB中实现系统信息的可靠获取,确保获取到的系统版本号为正确的,由于过程中没有调用任何API函数,所以不受攻击者拦截API影响,也不受兼容性启动的影响,即使发生了针对系统版本号的API hook事件,或者存在兼容性启动的情况,仍能保证获取的系统版本号是正确的,提升了系统信息获取的可靠性。
请参见图4,是本申请实施例的又一种系统信息获取方法的流程示意图。在本实施例中,以系统信息为系统版本号为例进行说明。如图4所示,本实施例的系统信息获取方法包括以下步骤:
401、基于汇编方式,从驱动程序信息中获取操作系统环境块的地址。
其中,该操作系统环境块可以为共享用户数据块如SharedUserData。终端可以通过驱动直接使用SharedUserData这个变量,以便于从中获取系统版本号。
402、根据该操作系统环境块的地址获取该操作系统环境块的结构体。
其中,该SharedUserData可包括多个字段,该多个字段中包括用于指示系统版本号的目标字段。例如,该目标字段为NtMajorVersion、NtMinorVersion和NtBuildNumber对应的字段。
403、从该操作系统环境块的结构体提取出该目标字段的信息,并根据该目标字段的信息确定该系统版本号。
在通过驱动层获取到该SharedUserData之后,即可从中提取出用于指示该系统版本号的NtMajorVersion、NtMinorVersion和NtBuildNumber,进而确定出对应的系统版本号。
在本实施例中,终端能够基于汇编方式并通过驱动获取SharedUserData的地址,并根据该地址确定出SharedUserData的结构体后,从该SharedUserData获取得到系统版本号。从而能够基于汇编方式从共享用户数据块中实现系统信息的可靠获取,确保获取到的系统版本号为正确的,由于过程中没有调用任何API函数,所以不受攻击者拦截API影响,也不受兼容性启动的影响,即使发生了针对系统版本号的API hook事件,或者存在兼容性启动的情况,仍能保证获取的系统版本号是正确的,提升了系统信息获取的可靠性。
基于上述系统信息获取方法实施例的描述,本发明实施例还公开了一种系统信息获取装置,该系统信息获取装置可以是运行于终端中的一个计算机程序(包括程序代码/程序指令)。例如,该系统信息获取装置可以执行图2、图3、图4所示的方法。请参见图5,该系统信息获取装置500可以运行如下单元:
获取单元501,用于基于汇编方式获取预设环境块的地址,所述预设环境块包括进程环境块或操作系统环境块;
所述获取单元501,还用于根据所述预设环境块的地址获取所述预设环境块的结构体,所述结构体包括多个字段,所述多个字段中包括用于指示系统信息的目标字段;
处理单元502,用于从所述预设环境块的结构体提取出所述目标字段的信息,并根据所述目标字段的信息确定所述系统信息。
在一些实施例中,所述预设环境块为进程环境块;所述获取单元501在基于汇编方式获取预设环境块的地址时,可具体用于:
基于汇编方式,从FS寄存器或驱动程序信息中获取所述进程环境块的地址。
在一些实施例中,所述预设环境块为操作系统环境块;所述获取单元501在基于汇编方式获取预设环境块的地址时,可具体用于:
基于汇编方式,从驱动程序信息中获取所述操作系统环境块的地址。
在一些实施例中,所述获取单元501在从FS寄存器中获取所述进程环境块的地址时,可具体用于:
获取操作系统位数,并根据所述操作系统位数确定所述进程环境块在所述FS寄存器中的偏移量;
根据所述进程环境块在所述FS寄存器中的偏移量,从所述FS寄存器获取所述进程环境块的地址。
在一些实施例中,所述处理单元502在从所述预设环境块的结构体提取出所述目标字段的信息时,可具体用于:
获取操作系统位数,并根据所述操作系统位数确定所述多个字段的字段信息,所述字段信息包括字段长度和字段位置信息;
根据所述多个字段的字段长度和字段位置信息,确定所述目标字段在所述预设环境块的结构体中的位置信息;
根据所述位置信息从所述预设环境块的结构体提取出所述目标字段的信息。
在一些实施例中,所述处理单元502从所述预设环境块的结构体提取出所述目标字段的信息时,可具体用于:
获取操作系统位数,并根据所述操作系统位数确定所述目标字段的偏移信息,所述偏移信息包括地址偏移量;
根据预先存储的初始地址和所述地址偏移量,从所述预设环境块的结构体提取出所述目标字段的信息。
在一些实施例中,所述系统信息包括系统版本号;
所述处理单元502,还可用于在所述根据所述目标字段确定所述系统信息之后,根据预设的系统版本号和安全处理策略的对应关系,确定所述系统版本号对应的安全处理策略;
所述处理单元502,还可用于执行确定出的所述安全处理策略。
在一些实施例中,所述处理单元502,还可用于在所述根据所述目标字段的信息确定所述系统信息之后,根据所述系统信息生成区块,所述区块包括所述系统信息;将所述区块发布至区块链网络。
根据本申请的一个实施例,图2、图3、图4所示的方法所涉及的各个步骤均可以是由图5所示的系统信息获取装置中的各个单元来执行的。例如,图2中所示的步骤201和202可以由图5中所示的获取单元501来执行,步骤203可以由图5所示的处理单元502来执行;又如,图3所示步骤301至302可以由图5所示的获取单元501来执行,步骤303至305可以由图5所示的处理单元502来执行;又如,图4中所示的步骤401和402可以由图5中所示的获取单元501来执行,步骤403可以由图5所示的处理单元502来执行,此处不赘述。
根据本申请的另一个实施例,图5所示的系统信息获取装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,比如该获取单元和处理单元可以合并为处理单元,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于系统信息获取装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现,本申请不做限定。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2、图3、图4中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码/程序指令),来构造如图5中所示的系统信息获取装置,以及来实现本申请实施例的系统信息获取方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
基于上述方法实施例以及装置实施例的描述,本申请实施例还提供一种终端。请参见图6,该终端至少包括处理器601以及计算机(可读)存储介质602。可选的,该终端还可包括输入设备603、输出设备604。其中,终端内的处理器601、输入设备603、输出设备604以及计算机存储介质602可通过总线或其他方式连接。
计算机存储介质602可以存储在终端的存储器中,计算机存储介质602用于存储计算机程序,所述计算机程序包括程序指令,处理器601用于执行所述计算机存储介质602存储的程序指令。处理器601(或称CPU(Central Processing Unit,中央处理器))是终端的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能;在一个实施例中,本申请实施例所述的处理器601可用于进行一系列的系统信息获取处理,包括:基于汇编方式获取预设环境块的地址,所述预设环境块包括进程环境块或操作系统环境块;根据所述预设环境块的地址获取所述预设环境块的结构体,所述结构体包括多个字段,所述多个字段中包括用于指示系统信息的目标字段;从所述预设环境块的结构体提取出所述目标字段的信息,并根据所述目标字段的信息确定所述系统信息,等等。
其中,该输入设备603可包括键盘、触摸屏、射频接收器或其他输入设备中的一种或多种;输出设备604可包括扬声器、显示器、射频发送器或其他输出设备中的一种或多种。可选的,该终端还可包括内存模块、电源模块、应用客户端等等。
本申请实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是终端中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括终端中的内置存储介质,当然也可以包括终端所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器601加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
在一些实施例中,可由处理器601加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关系统信息获取实施例中的方法的相应步骤;具体实现中,计算机存储介质中的一条或多条指令由处理器601加载并执行如下步骤:基于汇编方式获取预设环境块的地址,所述预设环境块包括进程环境块或操作系统环境块;根据所述预设环境块的地址获取所述预设环境块的结构体,所述结构体包括多个字段,所述多个字段中包括用于指示系统信息的目标字段;从所述预设环境块的结构体提取出所述目标字段的信息,并根据所述目标字段的信息确定所述系统信息。
在一些实施例中,所述预设环境块为进程环境块;在所述基于汇编方式获取预设环境块的地址时,所述一条或多条指令还可由处理器601加载并具体执行:
基于汇编方式,从FS寄存器或驱动程序信息中获取所述进程环境块的地址。
在一些实施例中,所述预设环境块为操作系统环境块;在所述基于汇编方式获取预设环境块的地址时,所述一条或多条指令还可由处理器601加载并具体执行:
基于汇编方式,从驱动程序信息中获取所述操作系统环境块的地址。
在一些实施例中,在所述从FS寄存器中获取所述进程环境块的地址时,所述一条或多条指令还可由处理器601加载并具体执行:
获取操作系统位数,并根据所述操作系统位数确定所述进程环境块在所述FS寄存器中的偏移量;
根据所述进程环境块在所述FS寄存器中的偏移量,从所述FS寄存器获取所述进程环境块的地址。
在一些实施例中,在所述从所述预设环境块的结构体提取出所述目标字段的信息时,所述一条或多条指令还可由处理器601加载并具体执行:
获取操作系统位数,并根据所述操作系统位数确定所述多个字段的字段信息,所述字段信息包括字段长度和字段位置信息;
根据所述多个字段的字段长度和字段位置信息,确定所述目标字段在所述预设环境块的结构体中的位置信息;
根据所述位置信息从所述预设环境块的结构体提取出所述目标字段的信息。
在一些实施例中,在所述从所述预设环境块的结构体提取出所述目标字段的信息时,所述一条或多条指令还可由处理器601加载并具体执行:
获取操作系统位数,并根据所述操作系统位数确定所述目标字段的偏移信息,所述偏移信息包括地址偏移量;
根据预先存储的初始地址和所述地址偏移量,从所述预设环境块的结构体提取出所述目标字段的信息。
在一些实施例中,所述系统信息包括系统版本号;
在所述根据所述目标字段确定所述系统信息之后,所述一条或多条指令还可由处理器601加载并具体执行:
根据预设的系统版本号和安全处理策略的对应关系,确定所述系统版本号对应的安全处理策略;
执行确定出的所述安全处理策略。
在一些实施例中,在所述根据所述目标字段的信息确定所述系统信息之后,所述一条或多条指令还可由处理器601加载并具体执行:
根据所述系统信息生成区块,所述区块包括所述系统信息;
将所述区块发布至区块链网络。
在本实施例中,终端能够基于汇编方式获取预设环境块的地址,并根据该地址确定出预设环境块的结构体后,从该预设环境块的结构体包括的多个字段中提取出用于指示系统信息的目标字段,以根据该目标字段获取得到该系统信息。从而能够基于汇编方式从环境块中实现系统信息的可靠获取,确保获取到的系统信息为正确的系统信息,而由于不是通过API函数来获取系统信息,即使API函数被攻击者篡改,仍能保证获取的系统信息是正确的,不受API hook、兼容性启动等影响,这就提升了系统信息获取的可靠性。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (10)
1.一种系统信息获取方法,其特征在于,包括:
基于汇编方式获取预设环境块的地址,所述预设环境块包括进程环境块或操作系统环境块;
根据所述预设环境块的地址获取所述预设环境块的结构体,所述结构体包括多个字段,所述多个字段中包括用于指示系统信息的目标字段;
从所述预设环境块的结构体提取出所述目标字段的信息,并根据所述目标字段的信息确定所述系统信息。
2.根据权利要求1所述的方法,其特征在于,所述预设环境块为进程环境块;所述基于汇编方式获取预设环境块的地址,包括:
基于汇编方式,从FS寄存器或驱动程序信息中获取所述进程环境块的地址。
3.根据权利要求1所述的方法,其特征在于,所述预设环境块为操作系统环境块;所述基于汇编方式获取预设环境块的地址,包括:
基于汇编方式,从驱动程序信息中获取所述操作系统环境块的地址。
4.根据权利要求2所述的方法,其特征在于,所述从FS寄存器中获取所述进程环境块的地址,包括:
获取操作系统位数,并根据所述操作系统位数确定所述进程环境块在所述FS寄存器中的偏移量;
根据所述进程环境块在所述FS寄存器中的偏移量,从所述FS寄存器获取所述进程环境块的地址。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述从所述预设环境块的结构体提取出所述目标字段的信息,包括:
获取操作系统位数,并根据所述操作系统位数确定所述多个字段的字段信息,所述字段信息包括字段长度和字段位置信息;
根据所述多个字段的字段长度和字段位置信息,确定所述目标字段在所述预设环境块的结构体中的位置信息;
根据所述位置信息从所述预设环境块的结构体提取出所述目标字段的信息。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述从所述预设环境块的结构体提取出所述目标字段的信息,包括:
获取操作系统位数,并根据所述操作系统位数确定所述目标字段的偏移信息,所述偏移信息包括地址偏移量;
根据预先存储的初始地址和所述地址偏移量,从所述预设环境块的结构体提取出所述目标字段的信息。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述系统信息包括系统版本号;
在所述根据所述目标字段确定所述系统信息之后,所述方法还包括:
根据预设的系统版本号和安全处理策略的对应关系,确定所述系统版本号对应的安全处理策略;
执行确定出的所述安全处理策略。
8.根据权利要求1-4任一项所述的方法,其特征在于,在所述根据所述目标字段的信息确定所述系统信息之后,所述方法还包括:
根据所述系统信息生成区块,所述区块包括所述系统信息;
将所述区块发布至区块链网络。
9.一种终端,包括输入设备和输出设备,其特征在于,还包括:
处理器,适于实现一条或多条指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如权利要求1-8任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910873601.6A CN110597557A (zh) | 2019-09-12 | 2019-09-12 | 一种系统信息获取方法、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910873601.6A CN110597557A (zh) | 2019-09-12 | 2019-09-12 | 一种系统信息获取方法、终端及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110597557A true CN110597557A (zh) | 2019-12-20 |
Family
ID=68859985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910873601.6A Pending CN110597557A (zh) | 2019-09-12 | 2019-09-12 | 一种系统信息获取方法、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110597557A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244917A (zh) * | 2020-08-31 | 2022-03-25 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722672A (zh) * | 2012-06-04 | 2012-10-10 | 奇智软件(北京)有限公司 | 一种检测运行环境真实性的方法及装置 |
CN104007956A (zh) * | 2013-02-27 | 2014-08-27 | 华为技术有限公司 | 一种操作系统进程识别跟踪及信息获取的方法和装置 |
CN105893107A (zh) * | 2016-04-29 | 2016-08-24 | 山东省计算中心(国家超级计算济南中心) | 一种从64位Windows操作系统的内存镜像文件中获取已登录用户密码明文的方法 |
CN106250244A (zh) * | 2016-07-15 | 2016-12-21 | 北京金山安全软件有限公司 | 一种释放互斥锁的方法、装置及电子设备 |
-
2019
- 2019-09-12 CN CN201910873601.6A patent/CN110597557A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102722672A (zh) * | 2012-06-04 | 2012-10-10 | 奇智软件(北京)有限公司 | 一种检测运行环境真实性的方法及装置 |
CN104007956A (zh) * | 2013-02-27 | 2014-08-27 | 华为技术有限公司 | 一种操作系统进程识别跟踪及信息获取的方法和装置 |
CN105893107A (zh) * | 2016-04-29 | 2016-08-24 | 山东省计算中心(国家超级计算济南中心) | 一种从64位Windows操作系统的内存镜像文件中获取已登录用户密码明文的方法 |
CN106250244A (zh) * | 2016-07-15 | 2016-12-21 | 北京金山安全软件有限公司 | 一种释放互斥锁的方法、装置及电子设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244917A (zh) * | 2020-08-31 | 2022-03-25 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN114244917B (zh) * | 2020-08-31 | 2023-06-02 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110113167B (zh) | 一种智能终端的信息保护方法、系统以及可读存储介质 | |
US7669242B2 (en) | Agent presence monitor configured to execute in a secure environment | |
KR100919536B1 (ko) | 복제된 디바이스를 식별하기 위해 동적 자격 증명을사용하는 시스템 및 방법 | |
CN109492378A (zh) | 一种基于设备识别码的身份验证方法、服务器及介质 | |
WO2020019483A1 (zh) | 一种模拟器识别方法、识别设备及计算机可读介质 | |
CN111209558B (zh) | 基于区块链的物联网设备身份认证方法以及系统 | |
CN109062667B (zh) | 一种模拟器识别方法、识别设备及计算机可读介质 | |
WO2011119299A1 (en) | System and methods for remote maintenance of client systems in an electronic network using software testing by a virtual machine | |
KR101756692B1 (ko) | 다이나믹 보안모듈 단말장치 및 그 구동방법 | |
CN111131221B (zh) | 接口校验的装置、方法及存储介质 | |
CN106465076B (zh) | 一种控制短信息读取的方法和终端 | |
CN114598541B (zh) | 一种安全评估方法及装置、电子设备和可读存储介质 | |
CN1869927A (zh) | 设备控制器、控制设备的方法及其程序 | |
US10771462B2 (en) | User terminal using cloud service, integrated security management server for user terminal, and integrated security management method for user terminal | |
CN111597537B (zh) | 基于区块链网络的证书签发方法、相关设备及介质 | |
CN111541649B (zh) | 一种密码重置方法、装置、服务器及存储介质 | |
CN111371811B (zh) | 一种资源调用方法、资源调用装置、客户端及业务服务器 | |
CN110597557A (zh) | 一种系统信息获取方法、终端及介质 | |
CN111953633A (zh) | 基于终端环境的访问控制方法及访问控制装置 | |
CN114979109A (zh) | 行为轨迹检测方法、装置、计算机设备和存储介质 | |
CN116628696A (zh) | 一种基于代理客户端的漏洞检测方法及相关设备 | |
CN108449753B (zh) | 一种手机设备读取可信计算环境中的数据的方法 | |
CN113596600A (zh) | 直播嵌入程序的安全管理方法、装置、设备及存储介质 | |
CN115941217A (zh) | 用于安全通信的方法和其相关产品 | |
CN111385293A (zh) | 一种网络风险检测方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |