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

研究多态恶意软件,探讨网络安全与AI

前言

近期ChatGPT火遍全球,AI技术被应用到了全球各行各业当中,国内外各大厂商也开始推出自己的ChatGPT,笔者所在公司在前段时间也推出了自研的安全GPT,AI技术在网络安全行业得到了很多的应用,不管是网络安全研究人员、安全厂商还是黑客组织都开始研究和使用AI技术,通过AI技术降低防御成本和攻击成本。

笔者最开始研究AI在网络安全一些场景的应用是在2017年的时候,当时AI技术最主要的应用就是利用AI进行WEB安全相关的检测以及利用AI进行恶意软件的分类、利用AI技术进行安全数据的分析等,笔者趁机也了解学习了一下相关的AI技术以及涉及到的一些AI算法,当时笔者学习的资源库:

https://github.com/wtsxDev/Machine-Learning-for-Cyber-Security

前些年,AI技术在安全领域的应用更多是用于一些安全威胁的检测,随着AI技术的发展,LLM模型的成熟,AI技术不仅仅用于安全检测,还可以应用到安全攻防方面,它拥有了与人“对话”的能力,不管是攻击者,还是防御者都可以与AI进行简单的“对话”,实现一些简单的自动化工作。

前不久国外某安全厂商使用AI技术生成了一种多态恶意软件PoC,表明可以利用大型语言模型(LLM)即时合成多态键盘记录器功能,从而可以逃避AV/EDR等安全产品的检测,该PoC多态恶意软件利用大型语言模型即时合成多态键盘记录器功能,在运行时动态修改良性代码,并且无需任何命令和控制基础设施来交付或验证恶意键盘记录器功能。

先给大家普及一下免杀相关的基础知识点,免杀主要分为两个层面:样本层免杀、流量层免杀,样本层免杀,又分为两个层面:静态免杀、动态免杀,流量层免杀,又分为两个层面:通信流量免杀、基础设施免杀,如下所示:

上面仅仅是简单普及一下相关知识点,免杀技术的研究是一个很复杂的专题,也是高端黑客组织研究的重点,免杀恶意软件是高端黑客组织最重要的攻击武器,普通的免杀能坚持一到两周就很不错了,高端的免杀可以坚持半年或一年以上,更高极的免杀可以持续几年,甚至十年以上不被发现,基于供应链的免杀技术是最难发现的一种免杀技术,免杀对抗技术是安全对抗的核心技术之一,需要攻击者在样本层面和网络流量层面都能做到深度的隐藏,才能在更长的时间里逃避全球安全厂商的检测和追踪。

近日卡巴斯基在使用卡巴斯基统一监控和分析平台(KUMA)监控其企业Wi-Fi网络的网络流量时,发现了一个新的移动APT活动,经过进一步分析,该公司研究人员发现攻击者一直针对数十名公司的员工的iOS设备进行攻击,随后俄罗斯政府指责苹果公司与美国国家安全局NSA进行勾结,攻击了与俄罗斯用户相连的数千部iPhone以及外国驻幕斯科大使馆内的一些设备,因为卡巴斯基的详细攻击报告和攻击样本都暂时没有发布,笔者就不作过多分析了,坐等后续详细分析报告了。

没有绝对的安全,现在使用的各种各样的IT设备、应用软件和操作系统里面究竟有没有隐藏后门,其实是未知的,你的企业有没有被攻陷,也是未知的,但可以肯定的是全球高端的APT黑客组织一直没有闲着,网络攻击行为时刻在发生。

AI多态恶意软件

让我们来详细分析一下国外安全厂商发布的基于AI的多态免杀恶意软件PoC。

动态行为免杀,需要使用Transformer模型合成代码,首先要在源代码示例的大型数据集上训练该模型,训练完成之后,可以根据提示或输入代码生成新代码,运行时通过连接OpenAI的API接口,返回窃取受感染用户按键的恶意代码,然后再使用Python的exec()函数执行动态生成的代码,生成多态恶意代码保留在内存中执行。

每次执行时,它都会重新返回生成新的恶意代码,然后在内存中执行,从而实现多态变形。

基于OpenAI生成恶意代码,如下所示:

利用Python的EXEC函数动态加载执行恶意代码,如下所示:

通信流量免杀,使用MS Teams webhook通信的方式,通过webhook可信任流量将收集的数据发送到由攻击者控制的恶意Teams频道,在那里可以对其进行分析、在暗网出售或用于其他恶意目的,如下所示:

MS Teams是一种被广泛使用的合法通信和协作工作,因此恶意软件作者可以利用它来绕过安全产品的检测。

最后通过Python一款开源打包工具Auto-py-to-exe,将上面生成的python多态键盘记录恶意软件Python代码生成为EXE程序,如下所示:

这就是一个简单的基于AI的多态恶意软件,这个多态变形的关键在于AI模型的训练,前期需要通过AI的LLM大语言模型学习大量的Python键盘记录相关功能代码,然后才能自动生成相关功能的代码,然后再动态加载执行生成的这些恶意代码,即可实现多态变形。

引擎多态恶意软件

上面介绍了基于AI的多态恶意软件,目前来看只是一个简单的PoC,这里介绍一个多态引擎框架,源代码地址:https://github.com/frkngksl/Shoggoth多态引擎的设计框架,如下所示:

该引擎会可用于加密给定的PE和COFF文件,执行第一次加密之后,Shoggoth使用随机生成的分组密码进行第二次加密,第二次加密它加密了RC4解密器和可选的存根,存根包含有效负载、垃圾指令和用RC4加密的加载程序。

第一次加密,如下所示:

第二次加密,如下所示:

随机生成垃圾指令,如下所示:

生成的垃圾指令,包含跳过随机字节、没有副作用的指令、虚假函数调用以及有副作用但保留初始值的指令等,如下所示:

垃圾指令是随机选取生成的,通过调用AsmJit库的API函数生成,如下所示:

AsmJit是一个用C++语言编写的用于机器代码生成的轻量级库,它可以为X86、X86_64和AArch64架构生成机器代码,并支持基线指令和所有最新的扩展,AsmJit允许指定操作代码、寄存器、立即操作数、调用汇编操作数等,只需要调用对应的API函数即可。

这就是一个多态引擎框架,可以利用这个多态引擎自动生成多态恶意软件。

探讨网络安全与AI

关于网络安全与AI,群里一些朋友一直想让笔者谈谈看法,笔者基于自己十多年的安全工作经验,同时也对AI技术有一定的研究,就跟大家探讨几个可能是大家最关心的关于网络安全与AI的话题,仅供大家参考。

AI+安全可行吗?

答案是肯定的,AI技术在多少年前就已经被应用到了网络安全领域,例如:

使用AI进行数据分析

使用AI进行漏洞扫描

使用AI进行恶意软件的识别与归类

使用AI进行漏洞挖掘

使用AI对抗薅羊毛

使用AI进行钓鱼邮件的识别

基于数据+情报+AI,完全可以实现安全运营自动驾驶等。

......

利用AI进行扫描检测和数据分析是AI的一些基础性应用场景,未来AI技术在网络安全行业还会有更多高级的应用场景,例如:

如何利用AI进行自动化攻击渗透?(例如自动化打点、自动化漏洞扫描、漏洞挖掘、漏洞攻击等)

如何利用AI辅助开发驱动程序不蓝屏?(例如:主动防御驱动,文件过滤驱动、RootKit检测驱动等)

如何利用AI辅助开发高级恶意软件?(例如RootKit、UEFI BootKit、Ebpf RootKit攻击样本等)

如何利用AI辅助开发高级免杀恶意软件?(例如实现免杀对抗型样本的批量生成,多态混淆变形、反调试反虚拟机、动态免杀加载执行、Bypass AV/EDR/XDR攻击样本等)

如何利用AI实现自动化脱一些高级壳?(例如VMP、TMD、ZP之类的)

如何利用AI实现自动化去混淆?(例如一些混淆的PS、JS、VBS脚本以及二进制混淆代码等)

如何利用AI实现自动化解密加密的恶意数据和流量?(例如一些加密的远控流量、加密的恶意代码等)

如何利用AI分析高端APT攻击样本?(例如一些多模块化,高度混淆加密免杀的APT攻击样本,系统底层硬件层攻击样本等)

如何利用AI进行自动化分析取证溯源?(例如针对高端APT事件进行数字调查取证,分析溯源等)

AI在学习和实现上面这些高级能力的时候,需要安全研究人员不断地去纠错,这是一个漫长的过程,成本也是未知的,也需要安全研究人员对上面的这些技术非常熟悉,才能一点一点去教AI,让AI慢慢学习和掌握这些专业知识,达到更高级的应用水平。

安全研究人员需要学习AI技术吗?

答案是肯定的,AI技术目前来看是一项很成熟的技术,现在很多中小学生都开始学习AI技术,AI技术在未来会越来越成熟,可以应用到各行各业,对于网络安全行业来讲,AI是一个很好的工具,它可以帮助我们做很多事情,我们不仅仅要了解AI技术、学习利用AI技术、还要深入的去研究AI技术,深入研究黑客组织利用AI技术进行哪些新型的攻击活动,比方前段时间报道的一些诈骗组织已经开始使用AI视频进行诈骗攻击,通过使用AI“换脸”技术来欺骗受害者,未来黑客组织通过让AI自主学习了各种网络攻击技术之后,可能会使用AI技术进行网络攻击活动,做为网络安全研究人员一定要去深入的AI技术在网络安全的应用场景,作为一名专业的网络安全研究人员,就是要时刻保持学习心态,不断去学习新的攻击场景,新的攻击技术,新的攻击手法,新的攻击武器,与时俱进,知已知彼,才能更好的对应未来网络安全所面临的各种挑战。

安全研究人员会被安全+AI替代吗?

随着AI技术的发展与应用普及,在各行各业应用AI技术确实可能替代一些简单的工作,在网络安全领域,例如:数据分析、日志分析、流量分析、样本运营、漏洞运营等安全运营未来都可以通过AI技术实现自动化处理,实现自动驾驶,同时一些专业的安全研究工作,也可以运用AI技术来辅助提升工作效率,像恶意软件开发、漏洞挖掘、红队渗透攻击、恶意样本逆向分析等,所以目前AI确实是可以替代一些简单的安全运营人员的。

安全+AI会不会替代自己?其实大可不必过度担心,正所上面所说的AI通过学习确实可以替代一些简单的安全运营工作,实现自动化“无人驾驶”,这是时代发展的必然趋势,但是专业性的安全研究工作,AI暂时还是无法完全替代的,AI可以做为辅助工具提升效率,同时AI自身也存在或者会带来很多问题,包括AI学习成本、AI不可控、AI自身安全性、以及AI对抗等因素,AI对于安全行业来说是一个很好的工具,我们要善于利用这个工具,帮助我们提升工作效率,降低防御成本。

做安全技术研究,能自动化的地方尽量自动化,同样能使用AI的地方,就尽量使用AI技术提升工作效率,不管AI技术如何发展,做安全的本质永远不会变,安全对抗也一直会存在,黑客会使用AI技术降低攻击成本,安全厂商也会使用AI技术降低防守成本,本质还是对抗,同时AI技术的广泛使用可能也会带来一些新的安全问题,同时也可能会让安全问题变的更复杂。

做安全,就是需要不断学习,不断进步,如果不能保持一颗不断学习的心态,持续积累,与时俱进,就算不被AI所替代,也迟早会被时代所抛弃,安全就是一条“不归路”,安全对抗会一直存在,做安全,不忘初心,与时俱进,方得始终。

对于安全研究人员,如果你担心自己会被AI所替代,那就时刻与时俱进,保持学习心态,一些黑客组织已经在使用AI技术进行自动化攻击活动,做安全也需要学习和研究AI技术,通过AI技术进行简单的网络对抗,同时还需要更深入的研究AI攻击技术和攻击武器,做到知已知彼,如果你的专业程度远高于AI,同时你又对AI技术非常了解,那又何必担心会被AI替代呢?

AI安全与对抗,网络安全+AI会有哪些问题?

AI未来可能面临哪些问题,笔者也总结了一下:

AI成本问题,使用AI技术降低攻击成本或防御成本的时候,更需要考虑AI的成本问题。

AI自身安全问题,AI本身存在的安全漏洞,还有AI被恶意利用等问题。

AI对抗与毒化,安全对抗一直存在,黑客组织可能会使用一些干扰数据和样本对抗AI模型的学习,让AI产出不可预计的结果。

AI不确定不可控,AI在学习了海量的知识库以后,可能会出现“胡说八道”不可控的情况,如何确保AI的输出是正确有用的,这就需要有一定的“容错修正”机制,能快速修正AI的结果,尽量保证AI的可控性。

参考

https://www.hyas.com/blog/blackmamba-using-ai-to-generate-polymorphic-malware

https://github.com/frkngksl/Shoggoth

资料

上面笔者已经讲了,作为网络安全从业者,一定要了解、学习和应用AI技术,而且还要深入的去研究AI技术在网络安全领域的各种攻防场景,这里笔者也给大家分享一些AI与网络安全相关的资料,供大家参考学习,AI在网络安全的应用场景非常多,大家选择自己感兴趣的方向深入研究即可,例如笔者对AI进行高级武器化攻击和应用场景这个方向比较感兴趣,如何利用AI实现高级攻击、高级武器库的开发、高级对抗等应用场景,笔者就会在这个方向多研究,时刻关注全球各大安全厂商发布的一些最新的安全研究技术报告或相关的研究成果,例如最新的攻击事件,攻击技术,攻击武器,安全工具等。

https://github.com/wtsxDev/Machine-Learning-for-Cyber-Security

https://github.com/jiep/offensive-ai-compilation

https://github.com/unica-mlsec/mlsec

https://github.com/XMoyas/AI_CyberSecurity_Resources

https://github.com/SkalskiP/courses

https://github.com/ustayready/cloudgpt

https://github.com/sdnewhop/AISec

https://github.com/NoDataFound/hackGPT

https://github.com/GreyDGL/PentestGPT

https://github.com/LiLittleCat/awesome-free-chatgpt

https://github.com/travistangvh/ChatGPT-Data-Science-Prompts

https://github.com/kingthreestones/Malicious-URL-Detection-Deep-Learning

https://github.com/fabriciojoc/ml-cybersecuritiy-course

https://github.com/dtonomy/Awesome-Security-ML

https://github.com/tuff96/Malware-detection-using-Machine-Learning

AI Cyber Security Books

https://github.com/abdullah-patwary/Books

训练AI成为一句网络安全专家

https://github.com/sechelper/awesome-chatgpt-prompts-cybersecurity

微软最近推出一系列AI相关的入门基础知识库,如下:

https://microsoft.github.io/AI-For-Beginners/

https://microsoft.github.io/ML-For-Beginners/#/

https://microsoft.github.io/Data-Science-For-Beginners/#/

总结结尾

国外厂商发布的基于AI的多态变形恶意软件只是一个非常简单的PoC,目前来看基于AI的高级攻击应用场景,还处于非常初级的阶段,未来要走的路还很长,AI还需要学习更多的相关知识,让AI学习上面的多态变形引擎框架,然后再利用AI来生成恶意软件,就可能自动化开发实现基于引擎的多态恶意软件?不过这是一个漫长的学习过程,而且还要保证学习的过程中不会出现错误的结果,有一定的容错修正机制,不然可能生成的代码无法正常执行,虽然上面基于AI的多态变形仅仅是一个很简单的PoC,然而利用ChatGPT来生成简单的恶意软件,无疑是大大降低了攻击成本,一些初级的黑客组织完全能够使用ChatGPT去开发一些简单的勒索病毒、挖矿病毒、木马、远控、后门等恶意软件,ChatGPT被一些黑客组织当成了一个类似的自动化的MAAS平台来使用,极大的降低了攻击成本,不懂代码开发的黑客,都可以通过ChatGPT自动化开发一些恶意软件攻击样本。

AI技术的普及,在一定程度上确实会降低了安全攻击的成本,一些黑客组织已经开始使用AI技术来进行简单的自动化攻击活动,然而高端的黑客组织攻击行为,目前来讲短时间内还是无法通过AI实现,AI还需要学习更多的专业安全知识,其实这就是一个长期的过程,把AI当成一个人来看待,它从对安全知识其实是一无所知,我们需要不断训练它,让它学习,慢慢它就可能成长为一名专业的安全研究人员,本身就是一个漫长的学习过程,在这个学习的过程中,就需要专业的安全人员不断给它传输更专业的知识,让它学习更专业的安全知识,AI需要不断学习,安全研究人员需要不断学习,黑客组织也在不断更新自己的攻击技术和攻击武器,安全对抗会持续升级。

总结:未来随着AI技术进一步成熟,AI技术会被应用到各行各业当中,而不仅仅是在网络安全行业,我们要积极的拥抱AI技术,学习AI技术,善于利用AI技术帮助我们改进和提升工作效率,还要深入的学习和研究AI技术在网络安全行业的各种高级应用场景,黑客组织使用AI技术会产生哪些新型的安全攻击活动,以及AI技术可能带来的新型安全问题等,作为一名专业的网络安全研究人员,就是要不断学习,不断进步,永远保持学习的心态,与时俱进,不断丰富自己的专业知识,时代在进步,未来会有更多新型的攻击技术和攻击武器,要快速学习和接受新的事物,并从更专业的角度去深度分析和研究这些新事物,取其所长,避其所短,知已知彼。

笔者一直从事与恶意软件威胁情报APT等相关安全分析与研究工作,包含挖矿、勒索、远控后门、僵尸网络、加载器、APT攻击样本、CS木马、Rootkit后门木马等,涉及到多种不同的平台(Windows/Linux/Mac/Android/iOS),通过跟踪分析全球最新的各种安全攻击事件、攻击样本、漏洞利用和攻击技巧等,可以了解全球黑客组织最新的攻击技术和攻击趋势,做到知已知彼。

各位读者朋友如果有遇到什么新型恶意软件家族样本、最新的家族变种以及各种高端的攻击样本都可以私信发给笔者,提供的样本越高端越好,提供的攻击事件线索越新越好,感谢给笔者提供样本的朋友们!

做安全,不忘初心,与时俱进,方得始终!

相关文章:

研究多态恶意软件,探讨网络安全与AI

前言 近期ChatGPT火遍全球,AI技术被应用到了全球各行各业当中,国内外各大厂商也开始推出自己的ChatGPT,笔者所在公司在前段时间也推出了自研的安全GPT,AI技术在网络安全行业得到了很多的应用,不管是网络安全研究人员、…...

linux驱动工作原理

linux或者windows驱动是如何对上和对下工作的,请用中文回答 在Linux系统中,设备驱动程序通过在/dev目录下创建文件系统条目与硬件通信。应用程序通过打开这些文件来获取描述符,以此来与设备交互。驱动程序内部使用主次设备号来标识设备。而在…...

Rust语言入门(第3篇)

引用与借用 上一篇中,我们介绍了rust的所有权概念,若直接传递变量做函数参数,堆上的变量就会失去所有权,而栈上变量则由于复制,仍有所有权。 fn main(){let b 3;makes_copy(b);println!("after using a variab…...

电脑服务器离线安装.net framework 3.5解决方案(错误:0x8024402c )(如何确定当前系统是否安装NET Framework 3.5)

问题环境: 日常服务的搭建或多或少都会有需要到NET Framework 3.5的微软程序运行框架,本次介绍几种不同的安装方式主要解决运行在Windows 2012 以上的操作系统的服务。 NET Framework 3.5 是什么? .NET Framework是微软公司推出的程序运行框架…...

Three.js学习8:基础贴图

一、贴图 贴图(Texture Mapping),也翻译为纹理映射,“贴图”这个翻译更直观。 贴图,就是把图片贴在 3D 物体材质的表面,让它具有一定的纹理,来为 3D 物体添加细节的一种方法。这使我们能够添加…...

【Linux】进程学习(二):进程状态

目录 1.进程状态1.1 阻塞1.2 挂起 2. 进程状态2.1 运行状态-R进一步理解运行状态 2.2 睡眠状态-S2.3 休眠状态-D2.4 暂停状态-T2.5 僵尸状态-Z僵尸进程的危害 2.6 死亡状态-X2.7 孤儿进程 1.进程状态 1.1 阻塞 阻塞:进程因为等待某种条件就绪,而导致的…...

Spring Boot 笔记 003 Bean注册

使用Idea导入第三方jar包 在porn.xml种添加的第三方jar包依赖,并刷新 可以在启动类中尝试调用 以上放到启动类中,不推荐,建议创建一个专门定义的类 package com.geji.config;import cn.itcast.pojo.Country; import cn.itcast.pojo.Province;…...

PCIE 参考时钟架构

一、PCIe架构组件 首先先看下PCIE架构组件,下图中主要包括: ROOT COMPLEX (RC) (CPU); PCIE PCI/PCI-X Bridge; PCIE SWITCH; PCIE ENDPOINT (EP) (pcie设备); BUFFER; 各个器件的时钟来源都是由100MHz经过Buffer后提供。一个PCIE树上最多可以有256…...

【开源】JAVA+Vue.js实现在线课程教学系统

目录 一、摘要1.1 系统介绍1.2 项目录屏 二、研究内容2.1 课程类型管理模块2.2 课程管理模块2.3 课时管理模块2.4 课程交互模块2.5 系统基础模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示4.1 管理后台4.2 用户网页 五、样例代码5.1 新增课程类型5.2 网站登录5.3 课…...

计算机网络(第六版)复习提纲29

第六章:应用层 SS6.1 域名系统DNS 1 DNS被设计为一个联机分布式数据库系统,并采用客户服务器方式(C/S) 2 域名的体系结构 3 域名服务器及其体系结构 A 域名服务器的分类 1 根域名服务器 2 顶级域名服务器(TLD服务器&a…...

有道ai写作,突破免费限制,无限制使用

预览效果 文末提供源码包及apk下载地址 有道ai写作python版 import hashlib import time import json import ssl import base64 import uuidfrom urllib.parse import quote import requests from requests_toolbelt.multipart.encoder import MultipartEncoder from Crypto…...

node.js 使用 elementtree 生成思维导图 Freemind 文件

请参阅: java : pdfbox 读取 PDF文件内书签 请注意:书的目录.txt 编码:UTF-8,推荐用 Notepad 转换编码。 npm install elementtree --save 编写 txt_etree_mm.js 如下 // 读目录.txt文件,使用 elementtree 生成思维导图 Free…...

Vue中路由守卫的详细应用

作为一名web前端开发者,我们肯定经常使用Vue框架来构建我们的项目。而在Vue中,路由是非常重要的一部分,它能够实现页面的跳转和导航,提供更好的用户体验。然而,有时我们需要在路由跳转前或跳转后执行一些特定的逻辑&am…...

Flink Checkpoint过程

Checkpoint 使用了 Chandy-Lamport 算法 流程 1. 正常流式处理(尚未Checkpoint) 如下图,Topic 有两个分区,并行度也为 2,根据奇偶数 我们假设任务从 Kafka 的某个 Topic 中读取数据,该Topic 有 2 个 Pa…...

【Java程序代理与系统代理关系】Java程序代理与系统代理关系优先级及覆盖关系

前言 使用Apache HttpClient工具包中的HttpClients.createDefault()方法创建的默认HTTP客户端会根据操作系统当前的设置来决定是否使用代理。 具体来说,当创建默认HTTP客户端时,它会检查系统的代理设置。如果操作系统当前设置了系统级代理,…...

MQ,RabbitMQ,SpringAMQP的原理与实操

MQ 同步通信 异步通信 事件驱动优势: 服务解耦 性能提升,吞吐量提高 服务没有强依赖,不担心级联失败问题 流量消峰 ​ 小结: 大多情况对时效性要求较高,所有大多数时间用同步。而如果不需要对方的结果,且吞吐…...

Vue 3 + Koa2 + MySQL 开发和上线部署个人网站

Vue 3 Koa2 MySQL 开发和上线部署个人网站 记录个人的一个操作步骤, 顺序不分先后, 嫌啰嗦请出门右转! 环境说明: 服务器: 阿里云轻量应用服务器 服务器系统: CentOS8.2 本地环境: macOS 12.7.2 Node: 20.10.0 MySQL: 8.0.26 Vue: 3.3.11 Koa: 2.7.0 pm2: 5.3.1 Nginx: 1.1…...

uniapp踩坑之项目:简易版不同角色显示不一样的tabbar和页面

1. pages下创建三个不同用户身份的“我的”页面。 显示第几个tabbar,0是管理员 1是财务 2是司机 2. 在uni_modules文件夹创建底部导航cc-myTabbar文件夹,在cc-myTabbar文件夹创建components文件夹,在components文件夹创建cc-myTabbar.vue组件…...

源支付V7开心1.9修复版,非网络上泛滥不能那种

源支付V7开心1.9修复版,非网络上泛滥不能那种 修复版源码,非网络泛滥版,防止源码泛滥,会员专属源码, 本站会员免费下载所有资源 注:开发不易,仅限交流学习使用,如商业使用,请支持正…...

Gitlab和Jenkins集成 实现CI (二)

Gitlab和Jenkins集成 实现CI (一) Gitlab和Jenkins集成 实现CI (二) Gitlab和Jenkins集成 实现CI (三) 配置Gitlab api token 配置 Gitlab 进入gitlab #mermaid-svg-t84fR8wrT4sB4raQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:…...

Java:内部类、枚举、泛型以及常用API --黑马笔记

内部类 内部类是类中的五大成分之一(成员变量、方法、构造器、内部类、代码块),如果一个类定义在另一个类的内部,这个类就是内部类。 当一个类的内部,包含一个完整的事物,且这个事物没有必要单独设计时&a…...

【持续更新】2024牛客寒假算法基础集训营3 题解 | JorbanS

A - 智乃与瞩目狸猫、幸运水母、月宫龙虾 string solve() {string a, b; cin >> a >> b;if (isupper(a[0])) a[0] a - A;if (isupper(b[0])) b[0] a - A;return a[0] b[0] ? yes : no; }B - 智乃的数字手串 string solve() {cin >> n;int cnt 0;for (…...

Java基于微信小程序的驾校报名小程序,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...

Android中AGP与Gradle、AS、JDK的版本关系

文章目录 AGP版本所要求的Gradle、JDK、SDK Build Tools最小版本Android Studio所要求的AGP最小版本 本文介绍了 在Android开发中由于AGP与gradle、JDK、AS等版本不匹配导致的编译失败问题屡见不鲜,尤其是对于新手而言更是叫苦不迭。新手经常遇到拿到别人的工程代码…...

web 前端实现一个根据域名的判断 来显示不同的logo 和不同的标题

1.需求 有可能我做一个后台 web端 我想实现一套代码的逻辑 显示不同的公司主题logo以及内容,但是实际上 业务逻辑一样 2.实现 建一个store oem.ts 这个名为是 oem系统 oem.ts import { defineStore } from pinia;import { store } from /store;const oemDataLis…...

复制和粘贴文本时剥离格式的5种方法(MacWindows)

您可能每天复制和粘贴多次。虽然它是一个非常方便的功能,但最大的烦恼之一就是带来了特殊的格式。从网络上获取一些文本,您经常会发现粘贴到文档中时,它保持原始样式。 我们将展示如何使用一些简单的技巧在不格式化的情况下复制和粘贴。 1.…...

SpringBoot实现即时通讯

SpringBoot实现即时通讯 功能简述 好友管理群组管理聊天模式:私聊、群聊消息类型:系统消息、文本、语音、图片、视频会话列表、发送消息、接收消息 核心代码 package com.qiangesoft.im.core;import com.alibaba.fastjson2.JSONObject; import com.q…...

【每日一题】LeetCode——反转链表

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有…...

精通Python爬虫:掌握日志配置

源码分享 https://docs.qq.com/sheet/DUHNQdlRUVUp5Vll2?tabBB08J2 在开发Python爬虫时,日志记录是一个不可或缺的特性,它帮助我们捕捉运行时信息、调试代码和监控爬虫的健康状况。合理地配置日志系统是提高爬虫可维护性的关键。本篇技术博客将详细介绍…...

Python_百度贴吧评论情感分析

一、评论爬取 以百度贴吧中“美团骑手吧”为例,对页面中的帖子评论进行爬取,并将结果以json的格式保存到本地中。 from lxml import etree import requests import json# 根据网页url获取评论 def GetComments(url):# 使用requests库发送GET请求&#…...

如何运行心理学知识(心流)来指导工作和生活

如何运用心流来指导工作和生活 如何联系我 作者:鲁伟林 邮箱:thinking_fioa163.com或vlinyes163.com GitHub:https://github.com/thinkingfioa/ReadingSummary 版权声明:文章和记录为个人所有,如果转载或个人学习…...

精简还是全能?如何在 Full 和 Lite 之间做出最佳选择!关于Configuration注解的Full模式与Lite模式(SpringBoot2)

🏃‍♂️ 微信公众号: 朕在debugger© 版权: 本文由【朕在debugger】原创、需要转载请联系博主📕 如果文章对您有所帮助,欢迎关注、点赞、转发和订阅专栏! 前言 关于 Configuration 注解,相信在座的各位 Javaer 都…...

springboot微信小程序uniapp学习计划与日程管理系统

基于springboot学习计划与日程管理系统,确定学习计划小程序的目标,明确用户需求,学习计划小程序的主要功能是帮助用户制定学习计划,并跟踪学习进度。页面设计主要包括主页、计划学习页、个人中心页等,然后用户可以利用…...

236.二叉树的最近公共祖先

​​题目来源: leetcode题目,网址:236. 二叉树的最近公共祖先 - 力扣(LeetCode) 解题思路: 分别获得从根节点到两个目标节点的链路,寻找到最后一个相同节点即可。 解题代码: /***…...

ETL是什么,有哪些ETL工具?就业前景如何?

ETL是什么 ETL(Extract-Transform-Load),用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目标端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。它可以自动化数据处理过程,减少…...

无人机系统组装与调试,多旋翼无人机组装与调试技术详解,无人机飞控系统原理

多旋翼无人机飞控系统的组装 在开始组装前,确保您已准备好所有必要的工具和材料。这包括螺丝刀、电烙铁、焊台、杜邦线、飞控板、GPS模块、电机、桨叶等。 飞控安装 安全开关安装,将安全开关固定在机架上。将安全开关的线插到飞控SWITCH插口上。 电调…...

Log360,引入全新安全与风险管理功能,助力企业积极抵御网络威胁

ManageEngine在其SIEM解决方案中推出了安全与风险管理新功能,企业现在能够更主动地减轻内部攻击和防范入侵。 SIEM 这项新功能为Log360引入了安全与风险管理仪表板,Log360是ManageEngine的统一安全信息与事件管理(SIEM)解决方案…...

【开源】JAVA+Vue.js实现高校实验室管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 实验室类型模块2.2 实验室模块2.3 实验管理模块2.4 实验设备模块2.5 实验订单模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示五、样例代码5.1 查询实验室设备5.2 实验放号5.3 实验预定 六、免责说明 一、摘…...

Flink CDC 与 Kafka 集成:Snapshot 还是 Changelog?Upsert Kafka 还是 Kafka?

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,京东购书链接:https://item.jd.com/12677623.html,扫描左侧二维…...

极智一周 | 国产CPU系列汇总、鲲鹏、飞腾、平头哥 And so on

欢迎关注我的公众号 [极智视界],获取我的更多技术分享 大家好,我是极智视界,带来本周的 [极智一周],关键词:国产CPU系列汇总、鲲鹏、飞腾、平头哥 And so on。 邀您加入我的知识星球「极智视界」,星球目前…...

PgSQL技术内幕 - case when表达式实现机制

PgSQL技术内幕 - case when表达式实现机制 CASE表达式如同 C语言中的if/else语句一样,为SQL添加了条件逻辑处理能力,可以根据不同条件返回不同结果。PgSQL支持两种语法:简单表达式和搜索表达式。 1、搜索表达式 语法如下: CASE WH…...

Android9~Android13 某些容量SD卡被格式化为内部存储时容量显示错误问题的研究与解决方案

声明:原创文章,禁止转载! Android9~Android13 某些容量SD卡被格式化为内部存储时容量显示错误问题的研究与解决方案 分析Android11 系统对于EMMC/UFS作为内部存储、SD卡被格式化为内部存储、SD卡/U盘被格式化为便携式存储的不同处理 一.现象描述 实测Android9 Android10 A…...

音视频色彩:RGB/YUV

目录 1.RGB 1.1介绍 1.2分类 1.2.1RGB16 1)RGB565 2)RGB555 1.2.2RGB24 1.2.3RGB222 2.YUV 2.1介绍 2.2分类 2.2.1 YUV444 2.2.2 YUV 422 2.2.3 YUV 420 2.3存储格式 2.3.1 YUYV 2.3.2 UYVY 2.3.3 YUV 422P 2.3.4 YUV420P/YUV420SP 2.3.5 YU12 和…...

MySQL之密码策略和用户授权

华子目录 密码策略查看数据库当前的密码策略密码策略详解caching_sha2_password_auto_generate_rsa_keyscaching_sha2_password_digest_roundscaching_sha2_password_private_key_pathcaching_sha2_password_public_key_pathdefault_password_lifetimedisconnect_on_expired_pa…...

电脑通电自启动设置

首先要进入BIOS,以华硕为例,按下电源键,在开机之前按下delete键,其他电脑可能是esc或者某个f键,请自行查找。 进入BIOS后要找到电源管理,可以在高级选项中找一找,如上图右下角选择高级模式。 …...

hive表加字段

目录 1.给表添加字段2.为什么使用cascade3.使用场景 1.给表添加字段 alter table database.tablename add columns(字段名 字段类型 comment 字段中文含义) cascade;2.为什么使用cascade 在Hive中,当你想要修改表结构,例如添加字段时,可能会…...

从零构建Hugo主题 - I

这是一个系列博客,记录了我从零开始构建Hugo主题https://github.com/tomowang/hugo-theme-tailwind的过程。全系列包括四篇文章,这是第一篇: I. 主要介绍我构建Hugo主题的背景,我对主题的功能想法,以及开发环境的搭建…...

【HarmonyOS应用开发】HTTP数据请求(十四)

文章末尾含相关内容源代码 一、概述 日常生活中我们使用应用程序看新闻、发送消息等,都需要连接到互联网,从服务端获取数据。例如,新闻应用可以从新闻服务器中获取最新的热点新闻,从而给用户打造更加丰富、更加实用的体验。 那么…...

MongoDB聚合: $sortByCount

$sortByCount聚合根据指定表达式的值对输入文档进行分组,然后计算每个不同分组中的文档数。 每个输出文档包含两个字段:一个是包含不同分组值的_id字段,另一个是包含属于该分组或类别的文档数量的计数字段。 文档按计数降序排序。 语法 {…...

FY-SA-20237·8-AI‘sIQ

Translated from the Scientific American, July/August 2023 issue. AI’s IQ ChatGPT aced a test but showed that intelligence cannot be measure by IQ alone. —— By Eka Roivainen 翻译:ChatGPT在一项测试中取得了优异的成绩,但也表明智力不能…...