单选题
1.其中不是密码破解的方式为?
A 密码学分析
B 撞库
C 暴力破解
D 字典破解
B
撞库指有些人在不同平台上密码相同,比如拿微信密码去尝试qq密码,不算是密码破解。
单选题
2.下列哪项内容描述的是缓冲区溢出漏洞?
A 通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令
B 信息技术、信息产品、信息系统在设计、实现、配置、运行等过程中,有意或无意产生的缺陷
C 攻击者在远程WEB页面的HTML代码中插入具有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载该页面,嵌入其中的脚本将被解释执行
D 当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢出的数据覆盖在合法数据上
D
顾名思义
单选题
3.入侵检测系统是网络信息系统安全的第一道防线。
A 对
B 错
B
IDS入侵检测系统和WAF一样属于第二道防线。
IDS通常分为两种主要类型:
- 网络入侵检测系统(Network IDS,NIDS): 这些系统监视网络流量,检测到潜在的网络攻击和入侵。NIDS位于网络中心,监视通过网络传输的数据包,以识别异常或恶意流量。
- 主机入侵检测系统(Host IDS,HIDS): 这些系统安装在单个主机或服务器上,监视主机上的活动,例如文件系统、注册表、进程等。它们用于检测主机级别的入侵或恶意活动。
- 第一道:系统自身没有漏洞
- 第二道:防病毒和WAF、IPS、IDS
- 第三道:数据库备份
单选题
4.在/etc/passwd文件中有一行为:test: x:0:1000::/home/test:/bin/sh,这代表test用户为特权用户
A 对
B 错
UID=0特权用户;1—9999管理用户;10000—普通用户
在这行用户帐户信息,每个字段的含义如下:
test
: 用户名x
: 密码字段。在传统的/etc/passwd
文件中,密码字段通常包含x
,而密码信息存储在/etc/shadow
文件中,以提高安全性。0
: 用户ID(UID)。0通常是分配给超级用户(root)的UID。1000
: 组ID(GID)。这是用户所属的初始组的GID。- 空字段:用户注释或说明。
/home/test
: 用户的主目录路径。/bin/sh
: 用户的默认shell。
单选题
5.对于windows系统,提权就是从system用户提升到User用户。
A 正确
B 错误
B
对于大多数系统,显然是system用户的权限更高。
单选题
6.以下哪个策略是对抗ARP欺骗有效地?
A 使用静态的ARP缓存
B 安装杀毒软件并更新到最新的病毒库
C 使用linux系统提高安全性
D 在网络上阻止ARP报文的发送
A
静态的ARP缓存不需要去获取外部ARP。
单选题
7.日常所见的校园饭卡是利用的身份认证的单因素法。
A 对
B 错
A
存疑,因为这句话不完全准确。校园饭卡通常使用的是单一因素身份认证,因为它们通常只依赖于一种身份验证要素,即持卡人的物理卡片。这意味着只要持有卡片的人可以使用它,无需提供额外的身份信息(如密码或指纹)。
然而,饭卡系统可以根据不同的设计和安全要求使用不同的身份验证方法。一些饭卡系统可能会引入另一个因素,例如个人识别号码(PIN)或超额消费需要输入密码(至少我们学校是这样的),以提高安全性。这将使系统变为多因素身份验证,因为它需要两个或更多因素来确认用户的身份。
因此,校园饭卡可以采用单一因素身份认证,但也可以根据需要引入多因素身份认证,以提高安全性和确保只有合法的用户可以使用卡片。最终,具体的实施方式取决于饭卡系统的设计和安全策略。
单选题
8.如果在/etc/shadow文件中存在一行为:
test:!!
6
6
6tGvVUhEY$PIkpI43HPaEoRrNJSRpM3H0YWOsqTqXCxtER6rak5PMaAoyQohrXNB0YoFCmAuh406n8XOvBBldvMy9trmIV00:18047:7:90:7:::
这代表test用户账号可以正常使用
A 对
B 错
B
不正确。在
/etc/shadow
文件中的一行包含有关用户帐户密码的信息,但不一定代表用户账户是否可以正常使用。在提供的示例中:test:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3H0YWOsqTqXCxtER6rak5PMaAoyQohrXNB0YoFCmAuh406n8XOvBBldvMy9trmIV00:18047:7:90:7:::
这是一行用户帐户密码信息,字段含义如下:
test
: 用户名!!
: 密码字段。这里的!!
表示没有设置密码。在某些系统中,这可能意味着用户账户被禁用或密码已经过期,因此用户不能正常使用该账户。其他字段包括帐户的最后更改日期、密码过期日期、警告期限等信息,但不提供有关用户账户是否可以正常使用的明确信息。
要确定用户账户是否可以正常使用,还需要考虑其他因素,例如是否启用了账户(没有被锁定或禁用)、是否有适当的权限以及其他安全策略。在一般情况下,密码字段中的
!!
表示密码未设置或已过期,但具体的帐户状态需要根据系统配置来确定。
单选题
9.如果sa是空口令,那就意味着攻击者可能侵入系统执行任意操作,威胁系统安全。
A 正确
B 错误
A
SA就是System Admin的意思,如果一个系统用户(例如 “SA” 用户)的密码字段为空,即该用户具有空口令(没有密码),那么这样的情况可能会导致以下系统安全威胁:
未授权访问: 空口令允许任何人以该用户的身份登录,而无需提供密码。这意味着攻击者可以轻松地获得系统上的未授权访问权限。
特权升级: 如果 “SA” 用户具有特权或管理员权限,攻击者将能够执行系统上的敏感操作,包括更改配置、访问敏感数据、安装恶意软件等。这可能对系统的完整性和安全性构成严重威胁。
数据泄露: 如果 “SA” 用户拥有对敏感数据的访问权限,攻击者可以使用该用户身份来访问和泄露敏感信息,这可能引发数据泄露问题。
为了确保系统的安全性,强烈建议为所有用户分配强密码,并定期更新这些密码。对于具有特权的用户,如管理员账户,更应该采取额外的安全措施,如启用多因素身份验证,以增强安全性并降低未经授权的访问风险。在任何情况下,避免使用空口令是维护系统安全性的基本措施之一。
单选题
10.如下设置,哪个可能造成宽字符注入
A set charcter_set_client=‘binery’
B set charcter_set_connection=‘gbk’
C set charcter_set_client=‘ascii’
D set charcter_set_client=‘gbk’
D
在这种情况下,将字符集设置为’gbk’ 可能会导致宽字符注入。GBK是一种支持多字节字符的字符集,如果系统没有适当的防护机制,攻击者可能会尝试构造恶意输入,包含特殊的多字节字符,以尝试绕过输入验证或引发安全漏洞。
其他选项中的字符集设置没有直接涉及多字节字符集,因此不太可能导致宽字符注入。
宽字符注入是一种安全漏洞,类似于常见的SQL注入或跨站脚本(XSS)攻击,但它涉及到宽字符编码的问题。宽字符注入通常发生在处理多字节字符编码的环境中,例如UTF-8或GBK等字符集,其中一个字符可以由多个字节组成。
在宽字符注入攻击中,攻击者会尝试利用应用程序在处理多字节字符时的不正确或不安全处理方式来注入恶意代码或特殊字符,从而绕过输入验证或执行恶意操作。这种类型的攻击可能会导致以下问题:
- SQL注入: 如果应用程序在处理SQL查询时不正确地解析多字节字符编码,攻击者可以尝试注入恶意SQL代码,从而访问、修改或删除数据库中的数据。
- 跨站脚本(XSS): 攻击者可以插入恶意JavaScript代码,当其他用户查看包含这些恶意代码的页面时,浏览器将执行这些代码,可能导致信息泄露或会话劫持。
- 命令注入: 如果应用程序在执行系统命令时不正确地处理多字节字符编码,攻击者可能会注入恶意命令,从而执行不受控制的操作。
- 路径遍历攻击: 攻击者可能尝试使用多字节字符来绕过文件路径验证,访问应用程序不应访问的文件或目录。
为了防止宽字符注入攻击,开发人员应该使用适当的编码和解码方法来处理多字节字符,同时在应用程序中实施强大的输入验证和过滤,以确保用户提供的输入是安全的。另外,应该定期对应用程序进行安全审计和漏洞扫描,以及更新系统和库以修复已知的安全问题。
单选题
11.安全审计是系统活动和记录的独立检查和验证,以下哪一项不是审计系统的作用?
A 辅助辨识和分析未经授权的活动或攻击
B 对与已建立的安全策略的一致性进行核查
C 及时阻断违反安全策略的致性的访问
D 帮助发现需要改进的安全控制措施
C
代码审计一般属于事后防御,没有提前阻断的作用。
单选题
12.非军事化区DMZ是为了解决安全防火墙后外部网路不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区。
A 对
B 错
A
这句话基本正确。非军事化区(DMZ)是一个位于安全防火墙内部和外部网络之间的网络区域,旨在增加网络安全性并解决一些特定的安全问题。DMZ通常用于放置对外提供服务的服务器,例如Web服务器、邮件服务器或DNS服务器。以下是关于DMZ的一些重要方面:
缓冲区: DMZ可以被视为安全系统(内部网络)和非安全系统(外部网络,即互联网)之间的缓冲区。它提供了一层额外的保护,阻止外部网络直接访问内部网络中的关键服务器。
服务器放置: DMZ通常是用于托管外部可访问的服务器的地方,这些服务器需要与互联网上的用户进行通信。这些服务器在DMZ中,以便在必要时限制对内部网络的访问。
增加安全性: 将外部可访问的服务器放置在DMZ中,可以减少攻击者对内部网络的直接访问。这有助于降低内部网络的风险,并提供更多的安全性。
受限访问: DMZ通常有限制性的访问规则,允许一些流量从互联网进入DMZ,但不允许进一步访问内部网络,这种访问规则是通过防火墙和网络安全策略来实现的。
总之,DMZ是为了解决安全性问题以及允许外部网络与内部网络之间的有控制的通信而设立的网络区域。通过将外部可访问的服务器放置在DMZ中,可以提高整体网络的安全性。
单选题
13.PostgreSQL的默认端口为5433
A 对
B 错
B
默认情况下,PostgreSQL 数据库管理系统的默认端口是5432,而不是5433。
单选题
14.Windows系统漏洞微软的漏洞编号命名格式为MS+漏洞编号,如MS08067代表这第8067个漏洞。
A 正确
B 错误
B
这句话不正确。微软的漏洞编号命名格式不是按照漏洞的数量来命名的,也不是简单的累加计数。微软的漏洞编号通常采用以下格式:
MSYY-NNN
其中:
MS
表示 Microsoft。YY
是年份的后两位,用于指示漏洞报告的年份。NNN
是在该年度内报告的漏洞编号,不是按顺序递增的,而是根据漏洞的发现时间和处理顺序分配的。因此,漏洞编号不代表漏洞的数量,而是用于唯一标识和跟踪每个报告的漏洞。例如,"MS08-067"代表在2008年报告的第67个漏洞,但它不意味着微软在2008年只报告了67个漏洞。微软每年都可能报告多个漏洞,每个漏洞都有唯一的标识号。
单选题
15.以下关于RSA算法的说法,正确的是:
A RSA不能用于数据加密
B RSA只能用于数字签名
C RSA只能用于密钥交换
D RSA可用于加密,数字签名和密钥交换体制
D
RSA可用于加密,数字签名和密钥交换体制。
单选题
16.DNS欺骗是发生在TCP/IP协议中______的问题
A 网络接口层
B 互联网网络层
C 应用层
D 传输层
C
DNS是应用层协议,因此DNS(域名系统)欺骗通常发生在网络通信的应用层。
DNS欺骗是一种攻击技术,攻击者试图欺骗目标计算机或网络设备,以将域名解析到错误的IP地址,从而导致通信被重定向到恶意服务器。
具体来说,DNS欺骗通常通过以下方式实施:
DNS劫持: 攻击者在网络中设置了恶意的DNS服务器或劫持了合法的DNS请求,使其返回虚假的域名解析结果。这导致了域名与IP地址之间的映射关系被篡改。
DNS缓存污染: 攻击者尝试在DNS服务器的缓存中插入虚假的DNS记录,以便在后续的DNS查询中返回错误的IP地址。
中间人攻击: 攻击者在通信路径中拦截DNS查询和响应,然后将合法的DNS响应替换为虚假的响应,将用户引导到恶意站点。
这些攻击通常涉及应用层的DNS通信,因为DNS查询和响应是基于UDP或TCP的应用层协议。然而,攻击可能会影响整个网络通信,包括TCP/IP协议栈中的多个层次,因为它们都依赖于正确的域名解析来建立连接和通信。
单选题
17.NTP服务一般开启的端口是UDP123
A 对
B 错
A
NTP服务一般开启的端口是UDP123
单选题
18.SSRF是服务器端请求伪造,由服务器发起
A 对
B 错
A
顾名思义,SSRF(Server-Side Request Forgery)服务端请求为伪造,SSRF是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。 一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统) SSRF漏洞形成的原因大多是因为服务端提供了从其他服务器应用获取数据的功能且没有对目标地址作过滤和限制 。
单选题
19.启动数据库的账号一般是高权限账号,使用数据库执行系统命令即相当于使用高权限账号执行系统命令,因此数据库提权也属于权限继承类提权。
A 正确
B 错误
A
存疑,这句话包含了一些不太准确的观点。
启动数据库的账号权限: 启动数据库的过程通常需要一定的权限,通常由数据库管理系统(DBMS)的服务或进程来完成。这个过程中使用的帐户通常是具有足够权限的服务帐户,以便执行数据库操作。但这并不一定意味着启动数据库的帐户具有高权限,因为数据库操作和操作系统级别的高权限并不一样。
数据库执行系统命令: 数据库操作通常是针对数据库内的数据和对象的,而不是直接执行操作系统级别的系统命令。数据库通常有自己的查询语言(如SQL),它们用于管理和查询数据库内容。虽然在某些情况下可以通过数据库操作来执行系统命令(例如,使用外部命令执行函数),但这通常需要特殊权限,并且应该受到仔细的审查和安全控制。
权限继承: 在操作系统和数据库中,权限通常是基于最小特权原则进行授予的,这意味着用户或服务帐户只能执行其所需的操作。权限不会直接继承,因此启动数据库的帐户不一定具有操作系统级别的高权限。
总之,虽然启动数据库的帐户通常需要一定的权限,但这并不意味着它可以随意执行系统命令。数据库操作和操作系统级别的系统命令通常是分开管理的,并且需要特殊权限才能执行。
单选题
20.对于蠕虫病毒的说法错误的是:
A 通常蠕虫的传播无需用户的操作
B 蠕虫的工作原理与病毒相似,除了没有感染文件阶段
C 是一段能不以其他程序为媒介,从一个电脑系统复制到另一个电脑系统的程序
D 蠕虫病毒的主要危害体现在对数据保密的破坏
B
蠕虫和病毒都是计算机安全领域中的恶意软件,但它们在工作原理和行为方面有一些关键区别:
工作原理:
- 蠕虫(Worm): 蠕虫是一种自传播的恶意软件。它们通过利用计算机网络和漏洞,自动传播到其他计算机,而无需用户介入。一旦进入新的计算机,蠕虫可以复制自己并继续传播,形成一个自扩散的网络。蠕虫通常不需要携带恶意代码,因为它们依靠自我复制来传播。
- 病毒(Virus): 病毒是一种需要依附于其他可执行文件或程序的恶意软件。它们不能自行传播,而是通过感染宿主文件,当宿主文件执行时,病毒也被执行。病毒通常会修改或损坏宿主文件,以便在感染其他文件时继续传播。
传播方式:
- 蠕虫: 蠕虫利用网络漏洞、弱密码或其他安全漏洞,通过网络传播到其他计算机,而不需要人为介入。它们可以自动扫描和感染其他主机。
- 病毒: 病毒需要依靠用户行为或介质传播,例如传输受感染的文件或运行感染的程序。病毒通常无法自动在网络中传播。
自我复制:
- 蠕虫: 蠕虫具备自我复制的能力,可以在目标计算机上生成新的蠕虫实例,然后继续传播。
- 病毒: 病毒不会自动复制自己。它们依赖于感染其他文件或程序,以便在其他文件上创建新的病毒实例。
破坏性:
- 蠕虫: 蠕虫通常更倾向于破坏网络和系统资源,因为它们可以自动传播并引发大规模感染。
- 病毒: 病毒可能更侧重于损害宿主文件或程序,而不是广泛地破坏整个系统或网络。
因此,蠕虫和病毒都是恶意软件,但它们的工作原理、传播方式和行为存在重要区别。蠕虫是自传播的,无需用户介入,而病毒依赖于感染宿主文件或程序,并需要用户的行为来传播。
单选题
21.SSL指的是:
A 安全通道协议
B 安全套接层协议
C 授权认证加密认证协议
D 加密认证协议
B
SSL代表"Secure Sockets Layer",是一种用于确保网络通信安全性的安全套接层协议。SSL最初由Netscape公司开发,现在由其继承者TLS(Transport Layer Security)维护和演进。
SSL的主要目标是提供加密通信,以确保在互联网上传输的数据在传输过程中不被窃听或篡改。它通过使用加密技术来保护数据的隐私性和完整性,以及对通信方的身份进行验证来实现这一目标。
SSL在Web浏览器和Web服务器之间的通信中得到广泛应用,尤其是在涉及敏感信息(例如密码、信用卡号码)的在线交易和身份验证过程中。当您在浏览器中看到"https://"而不是"http://"时,表示您正在使用SSL或其后继协议TLS进行安全连接。这些协议确保您与网站之间的通信是加密的,并且网站的身份经过验证。
SSL使用了一种称为"公钥加密"的加密技术,这种技术涉及到使用一对密钥:公钥和私钥。公钥用于加密数据,而私钥用于解密数据。这确保只有目标接收方可以解密和读取通过SSL加密的数据。
总之,SSL代表"Secure Sockets Layer",是一种用于保护网络通信安全性的安全套接层协议,广泛应用于确保在线数据传输的隐私性、完整性和安全性。
单选题
22.以下哪个选项是不允许root账号直接登录系统?
A PermitRootLogin no
B RootPermitLogin no
C LoginRootPermit no
D RootLoginPermit no
A
PermitRootLogin no
不允许root账号直接登录系统
单选题
23.linux中tail -f 可以读取正在发生改变的日志文件
A 对
B 错
A
linux中的tail指令用于读取文件尾部内容,因此可以读取正在发生改变的日志文件。
单选题
24.sqlmap中-u可以进行POST型注入的检测
A 对
B 错
A
qlmap工具中的
-u
选项可用于检测POST型注入漏洞,但需要特定的配置来执行POST型注入测试。使用
-u
选项时,需要提供目标URL,以便sqlmap能够向该URL发送HTTP请求并分析响应,以检测潜在的注入漏洞。但默认情况下,sqlmap会执行GET请求而不是POST请求。要执行POST型注入测试,需要使用
-m
选项指定一个包含HTTP请求的文件,该文件包括POST请求的详细信息,包括URL、请求方法(POST)、请求头和请求体。例如:sqlmap -m request.txt
在
request.txt
文件中,我们应该包括完整的POST请求,其中包括目标URL、请求头、请求体等信息。sqlmap将使用此文件中的请求进行POST型注入测试。
单选题
25.Cobalt Strike的默认端口号是多少?
A 50005
B 50050
C 50500
D 55050
B
Cobalt Strike的默认端口号是50050。
多选题
26.以下说法哪些是正确的
A 路由优先级与路由权值的计算是一致的
B 路由权的计算可能基于路径某单一特性计算,也可能基于路径多种属性
C 如果几个动态路由协议都找到了到达同一目标网络的最佳路由,这几条路由都会被加入路由表中
D 动态路由协议是按照路由的路由权值来判断路由的好坏,并且每一种路由协议的判断方法都是不一样的
BD
正确的说法是:
B 路由权的计算可能基于路径某单一特性计算,也可能基于路径多种属性。
D 动态路由协议是按照路由的路由权值来判断路由的好坏,并且每一种路由协议的判断方法都是不一样的。
A 错误。路由优先级和路由权值通常是不同的概念。路由优先级是用来解决路由器上多个路由可能指向同一目标的情况,而路由权值用来确定路由的优先级,不同的协议可以使用不同的权值计算方法。
C 错误。如果多个动态路由协议都找到了到达同一目标网络的最佳路由,通常只有一个最佳路由会被加入路由表,而其他路由可能被存储为备用路由。这个备用路由不会被用于实际数据转发,但可以在主要路由不可用时作为替代选择。
多选题
27.IGP(内部网关协议) 包括如下哪些协议
A OSPF
B RIP
C BGP
D 静态路由
AB
内部网关协议(Interior Gateway Protocol,IGP)是一组用于在单一自治系统(AS,Autonomous System)内部路由数据的协议。以下是常见的IGP协议:
RIP(Routing Information Protocol): RIP是一种距离向量路由协议,主要用于小型网络中。它使用跳数作为路由度量标准,并通过周期性地广播路由更新来更新路由表。RIP有两个主要版本:RIP v1和RIP v2。
OSPF(Open Shortest Path First): OSPF是一种链路状态路由协议,用于在大型网络中进行路由。它通过在路由器之间交换链路状态信息来计算最短路径,并使用Dijkstra算法来确定最佳路径。OSPF支持VLSM(可变长度子网掩码)和CIDR(无类域间路由),并提供了更大的灵活性和可扩展性。
IS-IS(Intermediate System to Intermediate System): IS-IS也是一种链路状态路由协议,用于在大型网络中进行路由。它类似于OSPF,但使用自己的路由算法来计算最短路径。IS-IS通常在ISP(互联网服务提供商)网络中使用,支持IPv4和IPv6。
这些协议是用于自治系统内部的内部网关协议,它们有助于路由器之间的路由信息交换和最佳路径计算,以确保数据在内部网络中有效地流动。
BGP(Border Gateway Protocol)是一种用于互联网中的路由协议,用于在不同自治系统(AS)之间交换路由信息和决策最佳路径。它是互联网中的外部网关协议,主要用于控制不同AS之间的路由选择。
多选题
28.路由环问题会引起下面哪些问题
A 慢收敛
B 广播风暴
C 路由器重启
D 路由不一致
ABD
路由环问题可以引起以下问题:
A.慢收敛:路由环导致同一路由不断重复更新,导致慢收敛问题。
B. 广播风暴:路由环(或交换环路)可能导致广播风暴,这是因为数据包在环路上无限循环,导致网络中的大量冗余广播流量。这会消耗网络带宽和处理资源,可能导致网络性能下降,甚至完全瘫痪。
D. 路由不一致:路由环可能导致路由表中的不一致,因为网络中的路由器可能会不断地学习和更新路由信息,而不稳定的路由信息可能导致路由不一致。这可能会导致数据包在网络中迷失或以不可预测的方式进行路由。
而路由器重启通常是由硬件或软件问题引起的,并不一定与路由环有关。
多选题
29.以下不是路由协议的有
A PPP
B IS-IS
C OSPF
D RIP
A
PPP是“Point-to-Point Protocol”的缩写,它是一种用于在计算机之间建立点对点连接的网络协议。PPP通常用于拨号连接、DSL(数字用户线路)连接和串行通信等场景,以传输数据和实现互联网连接。
多选题
30.网络防火墙的作用有
A 防止内部信息外池
B 防止系统感染病毒与非法访问
C 防止黑客访问
D 建立内部信息和功能与外部信息和功能之间的屏障
ACD
不知道为什么不选B。
问答题
31.Xposed框架的原理及常用的函数
原理: 替换system/bin/app_process文件,app_process就是zygote进程文件,所以xposed通过替换zygote进程实现了控制手机上所有app进程 常用函数:
(1)findAndHookMethod 参数:实现该方法的类的名称,用于解析目标和参数类的类加载器, 目标方法名称,目标方法的参数以及回调
(2)findAndHookConstructor hook构造函数 参数:实现该方法的类的名称,用于解析目标和参数类的类加载器,目标方法的参数以及回调
(3)findClass:使用指定的类加载器查找类 类名的语法 java.lang.String java.lang.String[] android.app.ActivityThread.ResourcesKey android.app.ActivityThread$ResourcesKey 参数:上面格式的类名,类加载器
(4)findField : 在类中查找自动并将其设置为可访问 参数:变量所在的class,变量名String
(5)CallMethod 调用给定对象的实例或静态方法 参数:对象实例,方法名称,方法调用的参数
(6)newInstance 创建给定类的新实例 参数: 类引用,构造函数调用的参数
问答题
32.简述Hook技术
Hook 技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递。简单来说,就是把系统的程序拉出来变成我们自己执行代码片段。
要实现钩子函数,有两个步骤:
- 利用系统内部提供的接口,通过实现该接口,然后注入进系统(特定场景下使用)
- 动态代理(使用所有场景)