首页 > 其他分享 >boofuzz中文翻译第四章:(二)

boofuzz中文翻译第四章:(二)

时间:2024-08-21 18:58:32浏览次数:16  
标签:返回 None 中文翻译 description data 监控器 boofuzz 第四章 target

4.3.9 SerialConnection
class boofuzz.connections.SerialConnection(port=0, baudrate=9600, timeout=5,
message_separator_time=0.3, content_checker=None)

Bases:ITargetConnection
用于通用串行端口的ITargetConnection实现。
由于串行端口没有提供分离消息/数据包的默认功能,这个类提供了几种手段:

• timeout:在超时秒后返回接收到的字节。
• msg_separator_time:在电线上静默给定时间后返回接收到的字节。这对于没有机器可读分隔符的终端协议很有用。响应可能需要很长时间才能发送其信息,当数据停止到来时,你就知道消息已经完成。
• content_check:用户定义的函数接收到目前为止接收到的数据,并检查数据包。如果数据包尚未完成,函数应返回0,或者如果已收到有效消息的n字节,则返回n。剩余的字节将为下一次recv()调用存储。示例:
def content_check_newline(data):
if data.find('\n') >= 0:
return data.find('\n')
else:
return 0
如果这些方法都不使用,你的连接可能会永远挂起。

版本0.2.0变更:SerialConnection已移至connections子包中。现在完整的路径是boofuzz.connections.serial_connection.SerialConnection
参数

• port (Union[int, str]) – 串行端口名称或编号。
• baudrate (int) – 端口的波特率。
• timeout (float) – 对于recv()。从接收开始后超时秒,recv()将返回所有接收到的数据(如果有的话)。
• message_separator_time (float) – 在message_separator_time秒内没有接收到更多数据后,recv()将返回。可选。默认为None。
• content_checker (function(str) -> int) – 用户定义的函数。recv()将迄今为止接收到的所有字节传递给这个方法。如果方法返回n > 0,recv()将返回n字节。如果它返回0,recv()将继续读取。

close()
关闭与目标的连接。
返回:None
property info
返回连接信息的描述。
例如,“127.0.0.1:2121”
返回:连接信息描述
返回类型:str
open()
打开与目标的连接。确保调用close()!
返回:None
recv(max_bytes)
从目标接收最多max_bytes的数据。
参数

max_bytes (int) – 最大接收字节数。

返回:接收到的数据。
send(data)
向目标发送数据。仅在调用open()后有效!
参数

data – 要发送的数据。

返回:实际发送的字节数。
返回类型:int

4.3.9 SerialConnection
class boofuzz.connections.SerialConnection(port=0, baudrate=9600, timeout=5,
message_separator_time=0.3, content_checker=None)

继承自 ITargetConnection
为通用串行端口实现的ITargetConnection接口。
由于串行端口本身不提供分隔消息/数据包的默认功能,这个类提供了几种方法:
• timeout: 在超时秒数后返回接收到的字节。
• msg_separator_time: 在线路静默给定时间后返回接收到的字节。这对于没有机器可读分隔符的终端协议很有用。响应可能需要很长时间才能发送其信息,当数据停止传输时,你就知道消息已经完成。
• content_check: 用户定义的函数接收到目前为止接收到的数据,并检查数据包。如果数据包尚未完成,函数应返回0,或者如果已接收到有效消息的n字节,则返回n。剩余的字节将为下一次recv()调用存储。示例:

def content_check_newline(data):
	if data.find('\n') >= 0:
			return data.find('\n')
	else:
			return 0

如果这些方法都不使用,你的连接可能会永远挂起。
在版本0.2.0中更改:SerialConnection已移至connections子包中。现在完整的路径是boofuzz.connections.serial_connection.SerialConnection
参数

• port (Union[int, str]) – 串行端口名称或编号。
• baudrate (int) – 端口的波特率。
• timeout (float) – 对于recv()。从接收开始后超时秒数,recv()将返回所有接收到的数据(如果有的话)。
• message_separator_time (float) – 在message_separator_time秒内没有接收到更多数据后,recv()将返回。可选。默认为None。
• content_checker (function(str) -> int) – 用户定义的函数。recv()将所有到目前为止接收到的字节传递给这个方法。如果方法返回n > 0,recv()将返回n字节。如果它返回0,recv()将继续读取。
close()
	Close connection to the target.
		Returns
			None
property info
	Return description of connection info.
	E.g., “127.0.0.1:2121”
		Returns
			Connection info descrption
		Return type
			str
open()
	Opens connection to the target. Make sure to call close!
	Returns
		None
recv(max_bytes)
	Receive up to max_bytes data from the target.
	Parameters
		max_bytes (int) – Maximum number of bytes to receive.
	Returns
		Received data.
send(data)
	Send data to the target. Only valid after calling open!
	Parameters
		data – Data to send.
	Returns
		Number of bytes actually sent.
	Return type
	int
4.4 监控器

监控器是用于监控目标特定行为的组件。监控器可以是被动的,仅观察并提供数据,或者更为主动地与目标直接交互。一些监控器还具备启动、停止和重启目标的能力。
检测目标的崩溃或不当行为可能是一个复杂且非直接的过程,这取决于你拥有的目标主机上的工具;对于嵌入式设备尤其如此。Boofuzz提供了三种主要的监控器实现:

• ProcessMonitor,一个从Windows和Unix上的进程收集调试信息的监控器。它还可以重启目标进程并检测段错误。
• NetworkMonitor,一个通过PCAP被动捕获网络流量并将其附加到测试用例日志的监控器。
• CallbackMonitor,用于实现可以提供给Session类的回调。
4.4.1 监控器接口(BaseMonitor)
class boofuzz.monitors.BaseMonitor

基类:object
目标监控器的接口。所有监控器必须遵守此规范。
在0.2.0版本中新增。
alive()
当包含此监控器的目标被添加到会话时调用。使用此函数连接到例如RPC主机,如果您的目标位于另一台机器上。
如果监控器处于活动状态,您必须返回True。否则,您必须返回False。如果监控器未处于活动状态,此方法将被调用,直到它变为活动状态或抛出异常。您应该在监控器实现中处理超时/连接重试限制。
默认返回True。
返回:Bool
get_crash_synopsis()
如果任何监控器指示当前测试用例失败,即使此监控器未检测到崩溃,也会调用此方法。您应该返回崩溃摘要的人类可读表示(例如,十六进制转储)。您可以将完整的崩溃转储保存在某处。
返回:str
post_send(target=None, fuzz_data_logger=None, session=None)
在当前模糊节点传输后调用。使用它来收集目标数据并决定它是否崩溃。
如果目标仍然存活,您必须返回True。如果目标崩溃,您必须返回False。如果一个监控器报告了崩溃,整个测试用例将被标记为崩溃。
默认返回True。
返回:Bool
post_start_target(target=None, fuzz_data_logger=None, session=None)
在目标启动或重启后调用。
pre_send(target=None, fuzz_data_logger=None, session=None)
在当前模糊节点传输前调用。
默认无效果。
返回:None
restart_target(target=None, fuzz_data_logger=None, session=None)
重启目标。如果重启成功,必须返回True;如果重启不成功或此监控器无法重启目标,导致链中的下一个监控器尝试重启,则返回False。第一个成功的监控器将导致重启链停止应用。
默认调用stop和start,如果成功则返回True。
返回:Bool
retrieve_data()
在当前模糊节点是否崩溃目标之前调用,以检索数据。在模糊器继续到新的测试用例之前调用。
您应该返回任何应该记录的辅助数据。数据必须可序列化,例如,字节串。
默认返回None。
set_options(*args, kwargs)
调用以设置您的监控器选项(例如,本地崩溃转储存储)。*args和
kwargs可以由实现类明确指定,然而您应该忽略任何您不认识的kwargs。
默认无效果。
返回:None
start_target()**

启动目标。如果启动成功,您必须返回True。如果不成功,您必须返回False。监控器将按添加到目标的顺序尝试启动目标;第一个成功的监控器将停止迭代。
返回:Bool
stop_target()
停止目标。如果停止成功,您必须返回True。如果不成功,您必须返回False。监控器将按添加到目标的顺序尝试停止目标;第一个成功的监控器将停止迭代。
返回:Bool

4.4.2 ProcessMonitor

进程监控器由两部分组成;实现BaseMonitor的ProcessMonitor类和一个应在目标主机上运行的第二个模块。

class boofuzz.monitors.ProcessMonitor(host, port)

进程监控器接口的代理类。
在版本<0.2.0中,boofuzz有通过RPC通信的网络和进程监控器。RPC客户端直接传递给会话类,并在RPC伙伴上动态解析所有方法调用。
从0.2.0版本开始,每个监控器类必须实现抽象类BaseMonitor,它定义了所有监控器之间的通用接口。为了帮助未来的类型提示工作,并明确区分网络和进程监控器,引入了这个显式的代理类,它将所有调用转发到RPC伙伴。
在版本0.2.0中新增。
alive()
此方法转发到RPC守护进程。
get_crash_synopsis()
此方法转发到RPC守护进程。
on_new_server(new_uuid)
如果自上次调用以来RPC守护进程已重启,则恢复所有设置的选项到RPC守护进程。
post_send(target=None, fuzz_data_logger=None, session=None)
此方法转发到RPC守护进程。
pre_send(target=None, fuzz_data_logger=None, session=None)
此方法转发到RPC守护进程。
restart_target(target=None, fuzz_data_logger=None, session=None)
此方法转发到RPC守护进程。
set_crash_filename(new_crash_filename)
自版本0.2.0起已弃用。
此选项应通过set_options设置。
**set_options(*args, kwargs)
旧的RPC接口指定使用set_foobar方法来设置选项。由于这些方法因RPC实现而异,此跳板方法将作为关键字参数传递的参数转换为set_foobar调用。
如果您调用set_options(foobar=“barbaz”),它将在RPC伙伴上调用set_foobar(“barbaz”)。
set_proc_name(new_proc_name)
自版本0.2.0起已弃用。
此选项应通过set_options设置。
set_start_commands(new_start_commands)
自版本0.2.0起已弃用。
此选项应通过set_options设置。
set_stop_commands(new_stop_commands)
自版本0.2.0起已弃用。
此选项应通过set_options设置。
start_target()
此方法转发到RPC守护进程。
stop_target()
此方法转发到RPC守护进程。

4.4.3 网络监控器

网络监控器由两部分组成:实现BaseMonitor接口的NetworkMonitor类和一个应在可以监控流量的主机上运行的第二个模块。

class boofuzz.monitors.NetworkMonitor(host, port)

网络监控器接口的代理类。
在版本<0.2.0中,boofuzz拥有通过RPC通信的网络和进程监控器。RPC客户端直接传递给会话类,并在RPC伙伴上动态解析所有方法调用。
从0.2.0版本开始,每个监控器类必须实现抽象类BaseMonitor,它定义了所有监控器之间的通用接口。为了帮助未来的类型提示工作,并明确区分网络和进程监控器,引入了这个显式的代理类,它将所有调用快速转发给RPC伙伴。

在版本0.2.0中新增。
alive()
此方法转发到RPC守护进程。
on_new_server(new_uuid)
如果自上次调用以来RPC守护进程已重启,则恢复所有设置的选项。
post_send(target=None, fuzz_data_logger=None, session=None)
此方法转发到RPC守护进程。
pre_send(target=None, fuzz_data_logger=None, session=None)
此方法转发到RPC守护进程。
restart_target(target=None, fuzz_data_logger=None, session=None)
此方法总是返回false,因为这个监控器不能重启目标。
retrieve_data()
此方法转发到RPC守护进程。
set_filter(new_filter)
自版本0.2.0起已弃用。
此选项应通过set_options设置。
set_log_path(new_log_path)
自版本0.2.0起已弃用。
此选项应通过set_options设置。
**set_options(*args, kwargs)
旧的RPC接口指定set_foobar方法来设置选项。由于这些方法因RPC实现而异,这个跳板方法将作为关键字参数传递的参数转换为set_foobar调用。
如果你调用set_options(foobar=“barbaz”),它将在RPC伙伴上调用set_foobar(“barbaz”)。
此外,这里设置的任何选项都会被缓存,并在RPC服务器因任何原因重启时重新应用(例如,它运行的虚拟机被重启)。

4.4.4 回调监控器
class boofuzz.monitors.CallbackMonitor(on_pre_send=None, on_post_send=None,
on_restart_target=None, on_post_start_target=None)

在Session中使用的新型回调监控器,用于提供回调数组。它的目的是在会话类中保持*_callbacks参数,同时通过将这些回调转发给监控器基础设施来简化会话的实现。
这个类的方法实现与参数的映射如下:

• restart_callbacks -> target_restart
• pre_send_callbacks -> pre_send
• post_test_case_callbacks -> post_send
• post_start_target_callbacks -> post_start_target

所有其他实现的接口成员只是存根,因为会话中不存在相应的参数。在任何情况下,实现一个自定义监控器可能比使用回调函数更明智。
在版本0.2.0中新增。

post_send(target=None, fuzz_data_logger=None, session=None)

此方法遍历所有提供的post_send回调并执行它们。它们的返回值被丢弃,异常被捕获并记录:

• BoofuzzTargetConnectionReset将记录失败
• BoofuzzTargetConnectionAborted将记录信息
• BoofuzzTargetConnectionFailedError将记录失败
• BoofuzzSSLError将记录信息或失败,取决于会话是否忽略SSL/TLS错误。
• 其他任何异常都被记录为错误。

所有异常在处理后都被丢弃。

post_start_target(target=None, fuzz_data_logger=None, session=None)

在目标启动或重启后调用。

pre_send(target=None, fuzz_data_logger=None, session=None)

此方法遍历所有提供的pre_send回调并执行它们。它们的返回值被丢弃,异常被捕获并记录,但之后被丢弃。

restart_target(target=None, fuzz_data_logger=None, session=None)

此方法尝试重启目标。如果没有设置重启回调,则返回false;否则返回true。
返回值:bool

4.5 日志记录

Boofuzz提供了灵活的日志记录。所有日志类都实现了IFuzzLogger接口。内置的日志类如下所述。
要同时使用多个日志记录器,请参见FuzzLogger。
4.5.1 日志记录接口 (IFuzzLogger)

class boofuzz.IFuzzLogger

继承自object
用于日志记录的抽象类。
使用时:

  1. 1. 打开测试用例。
    2. 打开测试步骤。
    3. 使用其他日志方法。
       IFuzzLogger为Sulley框架和测试编写者提供了日志记录接口。
       提供的方法旨在反映功能测试操作。与通用的调试/信息/警告方法不同,IFuzzLogger提供了一种记录测试用例、通过、失败、测试步骤等的手段。
       这个假设的示例输出给出了如何使用日志记录器的想法:
       测试用例:UDP.Header.Address 3300
       测试步骤:模糊化
       发送:45 00 13 ab 00 01 40 00 40 11 c9 . . .
       测试步骤:进程监控检查
       检查OK
       测试步骤:DNP检查
       发送:ff ff ff ff ff ff 00 0c 29 d1 10 . . . 接收:00 0c 29 d1 10 81 00 30 a7 05 6e . . . 检查:回复符合预期。检查OK
       测试用例:UDP.Header.Address 3301
       测试步骤:模糊化
       发送:45 00 13 ab 00 01 40 00 40 11 c9 . . .
       测试步骤:进程监控检查
       检查失败:“进程返回退出代码1”
       测试步骤:DNP检查
       发送:ff ff ff ff ff ff 00 0c 29 d1 10 . . . 接收:None 检查:回复符合预期。检查失败
       每个模糊化案例都会打开一个测试用例。每个高级测试步骤都会打开一个测试步骤。测试步骤可以包括例如:
       • 模糊化
       • 设置(模糊化前)
       • 测试后清理
       • 仪器检查
       • 由于失败而重置
       在测试步骤中,测试可以记录发送的数据、接收的数据、检查、检查结果和其他信息。
    abstruct close_test()
    在测试完成后调用。可以用来通知操作员或保存测试日志。
    参数:None
    类型:None
    返回值:None
    返回类型:None
    abstruct close_test_case()
    在测试用例完成后调用。可以用来通知操作员或保存测试用例日志。
    参数:None
    类型:None
    返回值:None
    返回类型:None
    abstruct log_check(description)
    记录对被测系统的检查。也称为“仪器检查”。
    参数:description (str) – 接收到的数据。
    返回值:None
    返回类型:None
    abstruct log_error(description)
    记录内部错误。这将通知操作员测试未成功完成。
    参数:description (str) – 接收到的数据。
    返回值:None
    返回类型:None
    抽象方法 log_fail(description='')
    记录检查失败。这将标记模糊化案例为潜在的错误或异常。
    参数:description (str) – 可选的补充数据。
    返回值:None
    返回类型:None
    abstruct log_info(description)
    用于记录测试信息的通用方法。
    参数:description (str) – 信息。
    返回值:None
    返回类型:None
    抽象方法 log_pass(description='')
    记录检查通过。
    参数:description (str) – 可选的补充数据。
    返回值:None
    返回类型:None
    abstruct log_recv(data)
    记录数据作为从目标接收。
    参数:data (bytes) – 接收到的数据。
    返回值:None
    返回类型:None
    abstruct log_send(data)
    记录数据作为即将发送到目标。
    参数:data (bytes) – 传输的数据。
    返回值:None
    返回类型:None
    abstruct open_test_case(test_case_id, name, index, *args, **kwargs)
    打开一个测试用例 - 即,一个模糊化变异。
    参数
    • test_case_id – 测试用例名称/编号。应该是唯一的。
    • name (str) – 人类可读且唯一的测试用例名称。
    • index (int) – 测试用例的数字索引。
    返回值:None
    abstruct open_test_step(description)
    打开一个测试步骤 - 例如,“模糊化”,“预模糊化”,“响应检查”。
    参数:description – 模糊化步骤的描述。
    返回值:None
    

boofuzz.IFuzzLoggerBackend
IFuzzLogger的别名

4.5.2 文本日志记录
class boofuzz.FuzzLoggerText(file_handle=<colorama.ansitowin32.StreamWrapper 对象>,
bytes_to_str=<function hex_to_hexstr>)

继承自 IFuzzLogger

此类用于格式化 FuzzLogger 数据以文本形式展示。它可以配置为输出到 STDOUT 或命名文件。
使用两个 FuzzLoggerText,可以配置 FuzzLogger 实例同时输出到控制台和文件。
INDENT_SIZE = 2

close_test()

在测试完成后调用。可用于通知操作员或保存测试日志。
参数:无
类型:无
返回值:无
返回类型:无

close_test_case()

在测试用例完成后调用。可用于通知操作员或保存测试用例日志。
参数:无
类型:无
返回值:无
返回类型:无
log_check(description)
记录对被测系统的检查。也称为“检测点检查”。
参数:description (str) – 接收到的数据。
返回值:无
返回类型:无
log_error(description)
记录内部错误。这将通知操作员测试未成功完成。
参数:description (str) – 接收到的数据。
返回值:无
返回类型:无
log_fail(description=“”)
记录未通过的检查。这将标记模糊测试用例为潜在的错误或异常。
参数:description (str) – 可选的补充数据。
返回值:无
返回类型:无
log_info(description)
用于记录测试信息的通用方法。
参数:description (str) – 信息。
返回值:无
返回类型:无
log_pass(description=“”)
记录通过的检查。
参数:description (str) – 可选的补充数据。
返回值:无
返回类型:无
log_recv(data)
记录数据作为从目标接收到的数据。
参数:data (bytes) – 接收到的数据。
返回值:无
返回类型:无
log_send(data)
记录数据作为即将发送到目标的数据。
参数:data (bytes) – 发送的数据
返回值:无
返回类型:无
*open_test_case(test_case_id, name, index, args, kwargs)
打开一个测试用例 - 即,模糊测试的变异。
参数

• test_case_id – 测试用例名称/编号。应该是唯一的。
• name (str) – 人类可读且唯一的测试用例名称。
• index (int) – 测试用例的数字索引。

返回值:无
open_test_step(description)
打开一个测试步骤 - 例如,“模糊测试”,“预模糊测试”,“响应检查”。
参数:description – 模糊测试步骤的描述。
返回值:无

4.5.3 CSV 日志记录
class boofuzz.FuzzLoggerCsv(file_handle=<colorama.ansitowin32.StreamWrapper 对象>,
bytes_to_str=<function hex_to_hexstr>)

继承自 IFuzzLogger
此类用于格式化 FuzzLogger 数据以供 pcap 文件使用。它可以配置为输出到命名文件。
close_test()
在测试完成后调用。可用于通知操作员或保存测试日志。
参数:无
类型:无
返回值:无
返回类型:无
close_test_case()
在测试用例完成后调用。可用于通知操作员或保存测试用例日志。
参数:无
类型:无
返回值:无
返回类型:无
log_check(description)
记录对被测系统的检查。也称为“检测点检查”。
参数:description (str) – 接收到的数据。
返回值:无
返回类型:无
log_error(description)
记录内部错误。这将通知操作员测试未成功完成。
参数:description (str) – 接收到的数据。
返回值:无
返回类型:无
log_fail(description=“”)
记录未通过的检查。这将标记模糊测试用例为潜在的错误或异常。
参数:description (str) – 可选的补充数据。
返回值:无
返回类型:无
log_info(description)
用于记录测试信息的通用方法。
参数:description (str) – 信息。
返回值:无
返回类型:无
log_pass(description=“”)
记录通过的检查。
参数:description (str) – 可选的补充数据。
返回值:无
返回类型:无
log_recv(data)
记录数据作为从目标接收到的数据。
参数:data (bytes) – 接收到的数据。
返回值:无
返回类型:无
log_send(data)
记录数据作为即将发送到目标的数据。
参数:data (bytes) – 发送的数据
返回值:无
返回类型:无
*open_test_case(test_case_id, name, index, args, kwargs)
打开一个测试用例 - 即,模糊测试的变异。
参数

• test_case_id – 测试用例名称/编号。应该是唯一的。
• name (str) – 人类可读且唯一的测试用例名称。
• index (int) – 测试用例的数字索引。

返回值:无
open_test_step(description)
打开一个测试步骤 - 例如,“模糊测试”,“预模糊测试”,“响应检查。”
参数:description – 模糊测试步骤的描述。
返回值:无

标签:返回,None,中文翻译,description,data,监控器,boofuzz,第四章,target
From: https://blog.csdn.net/qq_17280559/article/details/141400556

相关文章

  • TCPIP路由技术第一卷第四章-3-链路状态协议概述
    链路状态路由协议ospfis-isospfietf(rfc)is-isositcp/iplsa序列号1.线性序列号2.环形序列号3.棒棒糖序列号ospf版本ospfversion1实验环境ospfversion2ipv4ospfversion3ipv6maxage当lsa的年龄到达maxage时,将被从所有数据库中删除.(默认3600秒,1小时)ls......
  • TCPIP路由技术第一卷第四章-2-距离适量协议&部分RIP
    动态路由协议距离矢量rip,eigrp链路状态ospfis-iseigrp承载路由条目等同bgpospf承载路由条目1wis-is承载路由条目2w.距离矢量路由协议逐跳传递rip的计时器更新计时器updatetimer路由器每隔30秒从每隔启动rip协议的接口发出路由更新信息.ripv1路由更新的目的地址是所有......
  • 【C总集篇】第四章 运算符,表达式和语句
    文章目录第四章运算符,表达式和语句运算符赋值运算符:=加法运算符:+减法运算符:-符号运算符:-和+乘法运算符:*除法运算符:/size_t类型求模运算符:%递增运算符:++递减运算符:--移位运算符左移操作符:<<右移操作符:>>位操作符按位与:&基础概念**清零**清除高位/低位保留指定......
  • 以c primer plus(第六版)为大纲的C语言初学手记,含示例代码及编程练习(第四章)
    //第4章//example4.1//#include<stdio.h>//#include<string.h> //toincludestrlrn()//#defineDENSITY62.4 //todefineaconstant//intmain()//{//   floatweight,volume;//   intsize,letters;//   charname[40]; //todeclareadig......
  • 【AiDocZh.com】Scikit-Learn1.6官方文档中文翻译上线啦
    【AiDocZh.com】Scikit-Learn1.6官方文档中文翻译上线啦网站地址:http://www.aidoczh.com/scikit-learn/一、scikit-learn官方文档翻译自从有了想翻译scikit-learn官方文档的想法,已经有了半年时间,现在终于翻译和校验完了。由于精力有限,难免会有一些错误,请大家见谅。scikit......
  • 第四章 前缀和,差分
    目录1前缀和1.1什么是前缀和?1.2前缀和的作用注意事项:1.3一维前缀和1.3.1代码模板1.3.2例题分析:  代码:1.4二维前缀和 1.4.1代码模板2差分2.1什么是差分?2.2差分的作用注意事项: 2.3一维差分2.3.1代码模板 2.4二维差分2.4.1代码模板3前缀......
  • Edge实验性功能中文翻译
    平行下载启用平行下载以加速下载速度。-Mac,Windows,Linux,Android#enable-parallel-downloading已启用临时恢复M125标记临时恢复M125中过期的标记。这些标记将很快被删除。-Mac,Windows,Linux,Android#temporary-unexpire-flags-m125默认临时恢复M126标记......
  • 【北京迅为】《stm32mp157开发板嵌入式linux开发指南》第四章 Ubuntu 启用 root 用户
         iTOP-STM32MP157开发板是基于意法半导体STARM双Cortex-A7核加单Cortex-M4核的一款多核异构处理器。Cortex-A7内核提供对开源操作系统Linux的支持,借助Linux系统庞大而丰富的软件组件处理复杂应用。M4内核上运行对于实时性要求严格的应用。        开发板既有......
  • 【第四章】测试理论与方法 - 黑盒测试
         大家好,我是一名全栈测试开发工程师,除了工作和家庭,平时还喜欢参与开源项目、搞点博客软文,目前已经开源一套【自动化测试框架】和【测试管理平台】。欢迎大家关注我,和我一起【分享测试知识,交流测试技术,趣闻行业热点】。        在软件测试的领域中,黑盒测试......
  • 使用LangChain访问个人数据第四章-向量数据库与词向量
    需要学习提示词工程的同学请看面向开发者的提示词工程需要学习ChatGPT的同学请查看搭建基于ChatGPT的问答系统需要学习LangChian开发的同学请查看基于LangChain开发应用程序本部分前几个章节请查看使用LangChain访问个人数据第一章-简介使用LangChain访问个人数据第......