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

VX iOS分析随记

断SVC的时候看调用栈,发现里面一个特别大的ollvm函数。vx版本8054

* thread #36, queue = 'com.apple.root.default-qos', stop reason = breakpoint 4.1
    frame #0: 0x0000000111ad6124 WeChat`___lldb_unnamed_symbol1315083 + 20
WeChat`___lldb_unnamed_symbol1315083:
->  0x111ad6124 <+20>: svc    #0x80
    0x111ad6128 <+24>: b.lo   0x111ad6140               ; <+48>
    0x111ad612c <+28>: stp    x29, x30, [sp, #-0x10]!
    0x111ad6130 <+32>: mov    x29, sp
Target 0: (WeChat) stopped.

X0  0000000000000154 | T....... |
X1  0000000281B1EAE0 | ........ | => "/Library/MobileSubstrate"
X2  000000017094B6B0 | ...p.... | => "0"
X3  000000017094C020 |  ..p.... | => 0x17094ED10 => 0x17094ED90 => 0x17094EE30 => 0x17094EE70 => 0x17094EE90 => 0x17>
X4  0000000111C037E8 | .7...... | => `___lldb_unnamed_symbol1315105 + 0x1A88`
X5  0000009200A0FDF8 | ........ |
X6  00000001A68172A4 | .r...... | => `nanov2_calloc$VARIANT$armv81 + 0x94`
X7  0000000000000030 | 0....... |
X8  00000000FFFFFF80 | ........ |
X9  000000008EAD5E99 | .^...... |
X10 00000000F6CE104E | N....... |

(lldb) bt
* thread #36, queue = 'com.apple.root.default-qos', stop reason = breakpoint 4.1
  * frame #0: 0x0000000111ad6124 WeChat`___lldb_unnamed_symbol1315083 + 20
    frame #1: 0x0000000111ce8440 WeChat`___lldb_unnamed_symbol1315153 + 24
    frame #2: 0x0000000111c037e8 WeChat`___lldb_unnamed_symbol1315105 + 6792
    frame #3: 0x0000000111cf6d3c WeChat`___lldb_unnamed_symbol1315167 + 52292
    frame #4: 0x0000000111ce8880 WeChat`___lldb_unnamed_symbol1315161 + 100
    frame #5: 0x000000010155b8c0 WeChat`___lldb_unnamed_symbol35227 + 80
(lldb) ab
Adjusted Backtrace Addresses:
  frame #0:  0x111ad6124  0x110c86124 - WeChat -
  frame #1:  0x111ce8440  0x110e98440 - WeChat -
  frame #2:  0x111c037e8  0x110db37e8 - WeChat -
  frame #3:  0x111cf6d3c  0x110ea6d3c - WeChat -
  frame #4:  0x111ce8880  0x110e98880 - WeChat -
  frame #5:  0x10155b8c0  0x10070b8c0 - WeChat -
(lldb)

第二个svc

* thread #36, queue = 'com.apple.root.default-qos', stop reason = breakpoint 4.1
    frame #0: 0x0000000111ad6124 WeChat`___lldb_unnamed_symbol1315083 + 20
WeChat`___lldb_unnamed_symbol1315083:
->  0x111ad6124 <+20>: svc    #0x80
    0x111ad6128 <+24>: b.lo   0x111ad6140               ; <+48>
    0x111ad612c <+28>: stp    x29, x30, [sp, #-0x10]!
    0x111ad6130 <+32>: mov    x29, sp
Target 0: (WeChat) stopped.
(lldb) ad
{"errcode": 0, "msg": "ok", "data": "goto_address|||0x110c86124"}
IDA Offset: 0x110c86124
(lldb) bt
* thread #36, queue = 'com.apple.root.default-qos', stop reason = breakpoint 4.1
  * frame #0: 0x0000000111ad6124 WeChat`___lldb_unnamed_symbol1315083 + 20
    frame #1: 0x0000000111ce841c WeChat`___lldb_unnamed_symbol1315152 + 24
    frame #2: 0x0000000111cf70bc WeChat`___lldb_unnamed_symbol1315167 + 53188
    frame #3: 0x0000000111ce8880 WeChat`___lldb_unnamed_symbol1315161 + 100
    frame #4: 0x000000010155b8c0 WeChat`___lldb_unnamed_symbol35227 + 80
(lldb) ab
Adjusted Backtrace Addresses:
  frame #0:  0x111ad6124  0x110c86124 - WeChat -
  frame #1:  0x111ce841c  0x110e9841c - WeChat -
  frame #2:  0x111cf70bc  0x110ea70bc - WeChat -
  frame #3:  0x111ce8880  0x110e98880 - WeChat -
  frame #4:  0x10155b8c0  0x10070b8c0 - WeChat -
(lldb)

X0  0000000000000152 | R....... |
X1  0000000281B85980 | .Y...... | => "/Applications/Cydia.app"
X2  000000017094E150 | P..p.... | => ""
X3  000000017094ED10 | ...p.... | => 0x17094ED90 => 0x17094EE30 => 0x17094EE70 => 0x17094EE90 => 0x17094EEB0 => 0x17>
X4  0000000111CF70BC | .p...... | => `___lldb_unnamed_symbol1315167 + 0xCFC4`
X5  00000002829580A8 | ........ |
X6  000000017094BB30 | 0..p.... |
X7  0000000282958030 | 0....... | => 0x281B85980 => "/Applications/Cydia.app"
X8  000000017094E150 | P..p.... | => ""
X9  00000000BB85CDAE | ........ |
X10 00000000BB85CDAE | ........ |
X11 00000000635FDECA | .._c.... |
X12 00000000FFFFFFFD | ........ |
X13 0000010000000000 | ........ |
X14 00000000FA753DB5 | .=u..... |
X15 00000000C12A8D41 | A.*..... |
X16 0000000000000000 | ........ |
X17 0000000000000001 | ........ |
X18 0000000000000000 | ........ |
X19 000000017094C030 | 0..p.... |
X20 00000000F3A96282 | .b...... |
X21 000000017094BC90 | ...p.... | => 0x281B85900 => "smc_core.cc:ReportIDKeyWithUin"
X22 000000017094D820 |  ..p.... | => 0x17094E150 => ""
X23 00000000000000A8 | ........ |
X24 000000017094C030 | 0..p.... |
X25 000000017094CA60 | `..p.... |
X26 00000000E115B598 | ........ |
X27 000000004D06AE2D | -..M.... |

x1字符串一直在变,在做越狱检测

ni执行系统调用后:

X0  0000000000000000 | ........ |
X1  0000000000000000 | ........ |
X2  000000017094E150 | P..p.... | => ""
X3  000000017094ED10 | ...p.... | => 0x17094ED90 => 0x17094EE30 => 0x17094EE70 => 0x17094EE90 => 0x17094EEB0 => 0x17>
X4  0000000111CF70BC | .p...... | => `___lldb_unnamed_symbol1315167 + 0xCFC4`
X5  00000002829580A8 | ........ |
X6  000000017094BB30 | 0..p.... |
X7  0000000282958030 | 0....... | => 0x281B85980 => "/Applications/Cydia.app"
X8  000000017094E150 | P..p.... | => ""
X9  00000000BB85CDAE | ........ |
X10 00000000BB85CDAE | ........ |
X11 00000000635FDECA | .._c.... |
X12 00000000FFFFFFFD | ........ |
X13 0000010000000000 | ........ |
X14 00000000FA753DB5 | .=u..... |
X15 00000000C12A8D41 | A.*..... |
X16 0000000000000000 | ........ |
X17 0000000000000001 | ........ |
X18 0000000000000000 | ........ |
X19 000000017094C030 | 0..p.... |
X20 00000000F3A96282 | .b...... |
X21 000000017094BC90 | ...p.... | => 0x281B85900 => "smc_core.cc:ReportIDKeyWithUin"
X22 000000017094D820 |  ..p.... | => 0x17094E150 => ""
X23 00000000000000A8 | ........ |
X24 000000017094C030 | 0..p.... |
X25 000000017094CA60 | `..p.... |
X26 00000000E115B598 | ........ |
X27 000000004D06AE2D | -..M.... |

后面又来一个/bin/bash,ni执行,X0  0000000000000001 | ........ |
X1  0000000000000000 | ........ |

/private/jailbreak.txt 执行完x0 = 1

还有一个 frida-server的字符串出现过

X0  0000000000000152 | R....... |
X1  000000017094BD90 | ...p.... | => "/System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64"
X2  000000017094BC60 | `..p.... |
X3  000000017094ED10 | ...p.... | => 0x17094ED90 => 0x17094EE30 => 0x17094EE70 => 0x17094EE90 => 0x17094EEB0 => 0x17>
X4  0000000111D6C90C | ........ | => `___lldb_unnamed_symbol1315167 + 0x82814`
X5  0000000000000000 | ........ |
X6  00000000000000A0 | ........ |
X7  000000017094BCA0 | ...p.... |
X8  000000017094BCF8 | ...p.... | => 0x17094BD90 => "/System/Library/Caches/com.apple.dyld/dyld_shared_cache_arm64"
X9  0000000000000001 | ........ |
X10 00000000ECA4B8A8 | ........ |
X11 0000000000000000 | ........ |
X12 000000017094E868 | h..p.... |
X13 000000000000000E | ........ |
X14 000000001A3E1F71 | q.>..... |
X15 00000000CFBDBA29 | )....... |
X16 0000000000000000 | ........ |
X17 00000000D2FB9DC9 | ........ |
X18 0000000000000000 | ........ |
X19 000000017094C030 | 0..p.... |
X20 00000000200DF33F | ?.. .... |
X21 000000017094E828 | (..p.... | => 0x17094BFE0 => "127.0.0.1"
X22 00000000AADA2D19 | .-...... |
X23 000000006EE6462D | -F.n.... |
X24 000000005E5626A5 | .&V^.... |
X25 000000017094D824 | $..p.... | => ""
X26 000000017094E828 | (..p.... | => 0x17094BFE0 => "127.0.0.1"
X27 000000012B82A808 | ...+.... | => 0x11A98B920

ni

X0  0000000000000000 | ........ |
X1  0000000000000000 | ........ |

X0  0000000000000152 | R....... |
X1  000000017094BF50 | P..p.... | => "/System/Library/CoreServices/SystemVersion.plist"
X2  000000017094E150 | P..p.... |
X3  000000017094ED10 | ...p.... | => 0x17094ED90 => 0x17094EE30 => 0x17094EE70 => 0x17094EE90 => 0x17094EEB0 => 0x17>
X4  0000000111D6C6AC | ........ | => `___lldb_unnamed_symbol1315167 + 0x825B4`
X5  0000000000000000 | ........ |
X6  00000000000000A0 | ........ |
X7  000000017094BCA0 | ...p.... |
X8  000000017094E150 | P..p.... |
X9  00000000D1A786CB | ........ |
X10 00000000D1A786CB | ........ |
X11 000000000000005E | ^....... |
X12 000000017094D028 | (..p.... |
X13 000000000000005B | [....... |

ni

0

* thread #36, queue = 'com.apple.root.default-qos', stop reason = breakpoint 2.1
    frame #0: 0x0000000111ad60f8 WeChat`___lldb_unnamed_symbol1315081 + 4
WeChat`___lldb_unnamed_symbol1315081:
->  0x111ad60f8 <+4>: svc    #0x80
    0x111ad60fc <+8>: ret

WeChat`___lldb_unnamed_symbol1315082:
    0x111ad6100 <+0>: mov    x16, #-0x2f
    0x111ad6104 <+4>: svc    #0x80
Target 0: (WeChat) stopped.

(lldb) ab
Adjusted Backtrace Addresses:
  frame #0:  0x111ad60f8  0x110c860f8 - WeChat -
  frame #1:  0x111d87e28  0x110f37e28 - WeChat -
  frame #2:  0x111ce8880  0x110e98880 - WeChat -
  frame #3:  0x10155b8c0  0x10070b8c0 - WeChat -
(lldb) bt
* thread #36, queue = 'com.apple.root.default-qos', stop reason = breakpoint 2.1
  * frame #0: 0x0000000111ad60f8 WeChat`___lldb_unnamed_symbol1315081 + 4
    frame #1: 0x0000000111d87e28 WeChat`___lldb_unnamed_symbol1315167 + 646448
    frame #2: 0x0000000111ce8880 WeChat`___lldb_unnamed_symbol1315161 + 100
    frame #3: 0x000000010155b8c0 WeChat`___lldb_unnamed_symbol35227 + 80
(lldb)

相关文章:

VX iOS分析随记

断SVC的时候看调用栈&#xff0c;发现里面一个特别大的ollvm函数。vx版本8054 * thread #36, queue com.apple.root.default-qos, stop reason breakpoint 4.1 frame #0: 0x0000000111ad6124 WeChat___lldb_unnamed_symbol1315083 20 WeChat___lldb_unnamed_symbol13150…...

docker 小记

一、卸载 查看当前版本 docker -v2. 如果有&#xff0c;先停止docker systemctl stop docker如果是yum安装&#xff0c;卸载方式为 #已防版本冲突&#xff0c;直接卸载 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-lat…...

AI代码编程辅助工具

现在AI火的一塌糊涂&#xff0c;作为技术应该更应该关注当前AI对编程行业的影响。 分享下当前网络上最火的网络编程辅助工具。 以下是个人搜集到的可以对编程起辅助作用的工具&#xff1a; 2025年最佳AI编程辅助工具 1. GitHub Copilot 这个工具也许你已经在使用了&#xff0…...

使用 kubectl cp 命令可以在 Kubernetes Pod 和本地主机之间拷贝文件或文件夹

使用 kubectl cp 命令可以在 Kubernetes Pod 和本地主机之间拷贝文件或文件夹 kubectl cp <namespace>/<pod-name>:<pod-path> <local-path> # 从 Pod 拷贝到本地 kubectl cp <local-path> <namespace>/<pod-name>:<pod-path&g…...

【eNSP实战】交换机配置端口隔离

交换机端口隔离可以实现在同一个VLAN内对端口进行逻辑隔离&#xff0c;端口隔离分为L2层隔离和L3层隔离&#xff0c;这里只进行L2层隔离演示。 拓扑图 路由器AR1配置GE 0/0/1配置IP&#xff0c;其余PC主机各自配置IP和网关。 现将PC1到PC4四个主机全部进行L2层隔离&#xff0c…...

动态规划-第2篇

前言&#xff1a;在上一篇文章中&#xff0c;我们了解了动态规划的基本概念和解决问题的基本思路。通过分解问题、存储子问题的解&#xff0c;动态规划为我们提供了高效的解决方案。然而&#xff0c;动态规划并不是一成不变的&#xff0c;它有很多不同的技巧和变种&#xff0c;…...

数据库查问题常用OS命令汇总

1、内存使用情况查看 top //查看活跃进程占用情况 free -mh //查看操作系统当前可用内存 2、cpu使用情况 lscpu //查看os cpu情况 sar -u -f sar文件名 -s hh:mm:ss -e hh:mm:ss //查看对应日期的历史cpu情况 top //查看当前活跃进程使用cpu情况 3、io情况 iostat …...

基于springboot住院管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 随着世界经济信息化、全球化的到来和电子商务的飞速发展&#xff0c;推动了很多行业的改革。若想达到安全&#xff0c;快捷的目的&#xff0c;就需要拥有信息化的组织和管理模式&#xff0c;建立一套合理、畅通、高效的线上管理系统。当前的住院管理存在管理效率低下&…...

《用Python+PyGame开发双人生存游戏!源码解析+完整开发思路分享》

导语​ "你是否想过用Python开发一款可玩性高的双人合作游戏&#xff1f;本文将分享如何从零开始实现一款类《吸血鬼幸存者》的生存射击游戏&#xff01;包含完整源码解析、角色系统设计、敌人AI逻辑等核心技术点&#xff0c;文末提供完整代码包下载&#xff01;" 哈…...

【ES6】在ES6中自定义数组

在ES6中是允许自定义类扩展基础类型的&#xff0c;因为这些基础类型是有构造函数的&#xff0c;在JS中类就是函数。 // 自定义数组 class myArray extends Array {constructor() {super();} }let arr new myArray();arr.push(1);console.log(arr);重写Array的原生方法 ES6的…...

软件开发项目有哪些风险

软件开发项目风险主要包括 需求不明确、技术实现难度大、进度延误、成本超支、质量问题。其中&#xff0c;需求不明确可能导致功能设计反复修改&#xff1b;技术实现难度大会使开发过程中不断遇到未知挑战&#xff1b;进度延误常常因资源配置不足或变更频繁而发生&#xff1b;成…...

47.HarmonyOS NEXT 登录模块开发教程(二):一键登录页面实现

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT 登录模块开发教程&#xff08;二&#xff09;&#xff1a;一键登录页面实现 文章目录 HarmonyOS NEXT 登录模块开发教程&#xff0…...

RAGFlow版本升级-Win10系统Docker

下载源码压缩包 https://github.com/infiniflow/ragflow.git 删除旧版本代码文件夹&#xff0c;把下载的代码解压到原先目录 更新一下env文件&#xff1a;ragflow/docker/.env 把值改为最新版本即可 RAGFLOW_IMAGEinfiniflow/ragflow:v0.17.1 更新一下docker docker compose -…...

dns劫持是什么?常见的劫持类型有哪些?如何预防?

DNS劫持的定义 DNS劫持&#xff08;Domain Name System Hijacking&#xff09;是一种网络攻击手段&#xff0c;攻击者通过篡改域名解析的过程&#xff0c;将用户对某个域名的访问请求重定向到错误或恶意的IP地址。这种攻击可能导致用户访问到钓鱼网站、恶意广告页面&#xff0…...

Python精进系列: isinstance 函数

Python isinstance函数&#xff1a;类型检查的得力助手 目录 Python isinstance函数&#xff1a;类型检查的得力助手引言一、isinstance函数基础语法结构简单示例 二、isinstance函数的应用场景函数参数类型检查数据处理与类型转换面向对象编程中的类型判断 三、isinstance函数…...

【基础知识】回头看Maven基础

版本日期修订人描述V1.02025/3/7nick huang创建文档 背景 项目过程中&#xff0c;对于Maven的pom.xml文件&#xff0c;很多时候&#xff0c;我通过各种参考、仿写&#xff0c;最终做出想要的效果。 但实际心里有些迷糊&#xff0c;不清楚具体哪个基础的配置所实现的效果。 今…...

练习题:81

目录 Python题目 题目 题目分析 需求理解 关键知识点 实现思路分析 代码实现 代码解释 运行思路 结束语 Python题目 题目 使用字典推导式创建一个字典&#xff0c;键为 1 到 10 的整数&#xff0c;值为键的平方。 题目分析 需求理解 本题要求使用 Python 的字典…...

三角函数:从宇宙法则到AI革命的数学密钥

——跨越三千年的数学语言与现代科技全景透视 一、数学本质&#xff1a;宇宙的波动密码 1.1 拓扑学视角下的三角函数 三角函数本质是单位圆上点的坐标参数化&#xff0c;其数学表达可抽象为&#xff1a; { x cos ⁡ θ ℜ ( e i θ ) y sin ⁡ θ ℑ ( e i θ ) \begin…...

【论文笔记】Best Practices and Lessons Learned on Synthetic Data for Language Models

论文信息 论文标题&#xff1a;Best Practices and Lessons Learned on Synthetic Data for Language Models 作者信息&#xff1a; Ruibo Liu, Jerry Wei, Fangyu Liu, Chenglei Si, Yanzhe Zhang, Jinmeng Rao, Steven Zheng, Daiyi Peng, Diyi Yang, Denny Zhou1 and Andre…...

Java高频面试之集合-10

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;详解红黑树&#xff1f;HashMap为什么不用二叉树/平衡树呢&#xff1f; 一、红黑树&#xff08;Red-Black Tree&#xff…...

Keil 5 环境下STM32F4 HAL库版本MDK工程创建详细步骤(适合小白,附工程源码)

一、前期准备 1.安装好keil Keil(MDK) 5 软件安装教程-CSDN博客https://blog.csdn.net/qq_42748213/article/details/90485750 2.安装好STM32F4的芯片包 Keil5中STM32F4xx芯片包下载安装_stm32f4芯片包-CSDN博客https://blog.csdn.net/weixin_45783141/article/details/131…...

【微服务】Nacos 配置动态刷新(简易版)(附配置)

文章目录 1、实现方法2、配置依赖 yaml3、验证效果 1、实现方法 环境&#xff1a;Nacos、Java、SpringBoot等 主要是在boostrap.yaml中的data-id属性下配置refresh:true来实现动态更新 2、配置依赖 yaml 具体的版本参考官方的说明&#xff1a;官方版本说明 <!--读取boo…...

LabVIEW cRIO中CSV文件的读取

在LabVIEW cRIO中读取CSV文件&#xff0c;需通过文件传输、路径配置、数据解析等步骤实现。本文详细说明如何通过代码读取本地存储的CSV文件&#xff0c;并探讨直接通过对话框选择文件的可行性及替代方案。 一、CSV文件传输至cRIO本地存储 1. 使用NI MAX文件管理 步骤&#xf…...

双周报Vol.67: 模式匹配支持守卫、LLVM 后端发布、支持 Attribute 语法...多项核心技术更新!

2025-03-10 语言更新 模式匹配支持守卫&#xff08;Pattern Guard&#xff09; 模式守卫可以通过在模式后追加 if ... 的语法结构来指定。有模式守卫的分支只有在被模式匹配的值满足对应模式&#xff0c;并且模式守卫为真的情况下才会执行。如果模式守卫为假&#xff0c;则会…...

从青铜到王者:六大排序算法实战解析

前言 在编程的世界里,排序算法如同一颗璀璨的明珠,闪耀着智慧的光芒。它不仅是计算机科学的基础知识点,更是每一位程序员必备的技能。今天,就让我们一同走进排序算法的世界,深入探究冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序这六大经典算法的精髓所在,…...

011-base64

base64 编码 以下是C实现的Base64字符串加密算法及其原理说明&#xff0c;综合了多个技术文档的核心要点&#xff1a; 一、Base64编码原理 Base64是一种将二进制数据转换为ASCII字符的编码方式&#xff0c;核心原理基于 3字节转4字符 的转换规则&#xff1a; 分组规则&…...

汽车NVH诊断案例 | 纯电车急加速过大弯底盘异响

引言 失去发动机的掩蔽效应后&#xff0c;新能源电车的NVH问题&#xff0c;成为了困扰维修技师新难点。风噪、胎噪、电机高频啸叫等问题更容易车主识别&#xff0c;根源却难以被有效分辨。如何更精准且高效地识别电车NVH问题根源&#xff1f;今天分享的这个案例&#xff0c;内…...

springcloud gateway通过数据库获取路由信息

在 Spring Cloud Gateway 中结合 MyBatis 动态从数据库加载路由配置&#xff0c;可以实现灵活的路由管理。以下是详细实现步骤&#xff1a; 1. 数据库表设计 创建路由配置表 gateway_route&#xff1a; CREATE TABLE gateway_route (id varchar(50) NOT NULL COMMENT 路由唯一…...

QtDataVisualization使用

Qt Data Visualization 是一个开源的第三方库&#xff0c;它为Qt框架提供了高级的数据可视化功能。这个库允许开发者创建复杂的3D和2D图表&#xff0c;包括但不限于散点图、曲面图、条形图等。它基于Qt 3D模块&#xff0c;因此可以充分利用Qt 3D引擎的强大功能来呈现三维数据。…...

【Go每日一练】实现简单的控制台计算器

&#x1f47b;创作者&#xff1a;丶重明 &#x1f47b;创作时间&#xff1a;2025年3月7日 &#x1f47b;擅长领域&#xff1a;运维 目录 1.&#x1f636;‍&#x1f32b;️题目&#xff1a;简单的控制台计算器2.&#x1f636;‍&#x1f32b;️代码输出3.&#x1f636;‍&#…...

TDengine 数据对接 EXCEL

简介 通过配置使用 ODBC 连接器&#xff0c;Excel 可以快速访问 TDengine 的数据。用户可以将标签数据、原始时序数据或按时间聚合后的时序数据从 TDengine 导入到 Excel&#xff0c;用以制作报表整个过程不需要任何代码编写过程。 前置条件 准备以下环境&#xff1a; TDen…...

1.8 双指针专题:四数之和

1.题目链接 18. 四数之和 - 力扣&#xff08;LeetCode&#xff09;18. 四数之和 - 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元…...

基于用户标签和协同过滤混合算法的商城推荐系统设计与实现

一、研究背景 随着电子商务的快速发展&#xff0c;用户面对海量商品时往往面临“信息过载”问题。传统的推荐算法&#xff08;如协同过滤&#xff09;在用户行为数据稀疏或新用户场景下存在冷启动、推荐多样性不足等缺陷。 现状与挑战&#xff1a; 协同过滤&#xff1a;依赖用…...

软件版本号设计

软件版本号的设计是软件开发中的重要环节&#xff0c;它不仅帮助开发团队管理代码&#xff0c;还能让用户清楚地了解软件的更新状态。以下是常见的版本号设计方法和最佳实践&#xff0c;供你参考&#xff1a; 1. 常见的版本号设计规范 语义化版本控制&#xff08;Semantic Ver…...

ESMFold对决AlphaFold:蛋白质-肽相互作用预测的新进展

今天向大家介绍的这篇文章题目为&#xff1a;“Protein−Peptide Docking with ESMFold Language Model”&#xff0c;近期发表在JCTC上。 本文主要研究 ESMFold 语言模型在蛋白质-肽对接中的应用。通过探索多种对接策略&#xff0c;评估其在预测蛋白质-肽相互作用方面的性能&a…...

【项目】负载均衡式在线OJ

负载均衡式在线OJ 目录 负载均衡式在线OJ 1.项目介绍&#xff1a; 2.comm 2.1 log.hpp 日志等级 开放式日志 时间戳工具 2.2 util.hpp TimeUtil类 PathUtil类 FileUtil类 StringUtil类 3.Compile_server 3.1compile_run.hpp RemoveTempFile CodeToDesc Start 3.…...

Android启动速度优化

Android启动速度优化 一、应用启动基础知识 1.1 启动类型 Android应用的启动类型主要分为三种: 冷启动(Cold Start):应用进程不存在,系统需要创建新的进程,加载并启动应用。这是最耗时的启动方式。 温启动(Warm Start):应用进程存在,但Activity可能被销毁,需要重新创…...

python爬虫碰到IP被封的情况,如何解决?

在数据抓取和爬虫开发的实践中&#xff0c;Python作为一种功能强大且易于上手的编程语言&#xff0c;被广泛应用于网络数据的采集。然而&#xff0c;随着网络环境的日益复杂&#xff0c;爬虫活动也面临着越来越多的挑战&#xff0c;其中IP被封便是常见且棘手的问题。IP被封不仅…...

Web网页制作(静态网页):千年之恋

一、是用的PyCharm来写的代码 二、代码中所用到的知识点&#xff08;无 js&#xff09; 这段HTML代码展示了一个简单的注册页面&#xff0c;包含了多个HTML元素和CSS样式的应用。 这段HTML代码展示了一个典型的注册页面&#xff0c;包含了常见的HTML元素和表单控件。通过CSS样…...

mac安装mysql之后报错zsh: command not found: mysql !

在Mac上安装MySQL后&#xff0c;如果终端中找不到mysql命令&#xff0c;通常是 因为MySQL的命令行工具&#xff08;如mysql客户端&#xff09;没有被正确地添加到你的环境变量中。 检查 MySQL 是否已安装 ps -ef|grep mysql查看到路径在 /usr/local/mysql/bin 查看 .bash_pro…...

Spring Boot 启动失败:Failed to start bean ‘documentationPluginsBootstrapper’ 解决方案

文章目录 1. 问题描述 &#x1f3af;2. 可能原因分析 &#x1f50d;原因 1&#xff1a;SpringFox 版本与 Spring Boot 版本不兼容 ❌✅ 解决方案&#xff1a;添加兼容性配置&#xff08;首选&#xff01;&#xff01;&#xff01;&#xff01;&#xff09; 原因 2&#xff1a;S…...

Python Cookbook-3.16 查看汇率

任务 想周期性地(用 crontab 或者 Windows计划任务来运行某 Python 脚本)从 Web 获取数据&#xff0c;监视某两种货币之间的兑换比例&#xff0c;并在两者之间的汇率达到某个值时发送提醒邮件。 解决方案 这个任务和一系列的从 Web 获取数据的监控任务很类似&#xff0c;它们…...

Manus(一种AI代理或自动化工具)与DeepSeek(一种强大的语言模型或AI能力)结合使用任务自动化和智能决策

一、Manus与DeepSeek差异 十分好奇DeepSeek和Manus究竟谁更厉害些&#xff0c;DeepSeek是知识型大脑&#xff0c;Manus则是全能型执行者。即DeepSeek专注于语言处理、知识整合与专业文本生成。其核心优势在于海量参数支持的深度学习和知识推理能力&#xff0c;例如撰写论文、润…...

Redis存数据就像存钱:RDB定期存款 vs AOF实时记账

Redis持久化 ◆ 核心概念1. ◆ 持久化全景图2. ◆ 生产环境黄金法则 ◆ RDB深度优化1. ◆ 生产配置精要2. ◆ 高级触发场景3. ◆ 故障应急方案 ◆ AOF深度解析1. ◆ 7.0版本革命性改进2. ◆ 同步策略深度测试3. ◆ 重写过程优化 ◆ 混合持久化实战1. ◆ 配置示例2. ◆ 数据恢复…...

【从零开始学习计算机科学】编译原理(一)编译过程概述

【从零开始学习计算机科学】编译原理(一)编译过程概述 绪论编译过程概述词法分析语法分析代码优化代码生成其他功能编译器的前端和后端绪论 什么叫编译程序?为什么我们需要编译程序?编译程序就是一个程序,将便于人编写、阅读、维护的高级计算机语言所写作的源代码程序,翻…...

第十八:go 并发 goroutine

channel 可以让多个goroutine 之间实现通信 Add方法调用时机&#xff1a;必须在goroutine 启动之前调用Add方法来增加计数器的值。 如果在goroutine已经启动之后再调用Add&#xff0c;可能会导致Wait方法提前返回&#xff0c;因为计数器没有正确反映正在运行的goroutine的数量…...

基于QGIS的二次开发(四):矢量编辑与属性表操作

一、实验目的 本次实验续接上一次的实验内容&#xff0c;旨在通过设计与开发地理信息系统的过程&#xff0c;加深学生对地理信息系统的理解&#xff0c;并掌握相关的设计与开发技能&#xff0c;包括熟悉地理信息系统的设计与开发流程&#xff0c;加强对 MVC 软件设计模式的理解…...

AI日报 - 2025年3月13日

&#x1f31f; 今日概览&#xff08;60秒速览&#xff09; ▎&#x1f916; AGI突破 | Reka开源21B参数推理模型Flash 3&#xff0c;推出企业智能平台Nexus &#x1f52c; 模型采用RLOO方法结合模型与规则基础奖励&#xff0c;实现高效推理 ▎&#x1f4bc; 商业动向 | Waymo在…...

lua C语言api学习1 编译第一个程序

本文开始进行lua C语言api的学习 1 简介 lua语言与C语言使用还是很紧密,以前我只是学习lua语言比较多,C语言api部分了解比较少,最近在学习tcc编译器的使用进一步学习一下lua C语言api的使用。 2 配置编译环境 首先需配置好tcc编译器环境[参考],再配置好lua源码路径[参考],新…...

【物联网-WIFI】

物联网-WIFI ■ ESP32-C3-模块简介■ ESP32-C3-■ ESP32-C3-■ WIFI-模组■ WIFI-■ WIFI- ■ ESP32-C3-模块简介 ■ ESP32-C3- ■ ESP32-C3- ■ WIFI-模组 ■ WIFI- ■ WIFI-...