【病毒分析】Babuk勒索家族babyk后缀系列分析--Windows篇

news2025/1/19 3:45:26

1.背景

1.1 Babuk勒索家族

Babuk勒索家族最早曝光于2021年1月初,在几个月内,它就跻身于最臭名昭著的勒索软件组织之列。自回归以来,它通过在地下论坛上积极宣传自己而获得了更多的知名度。在策略方面,其加密功能与其他勒索软件组织没有太大区别。随着时间的流逝,勒索软件组织通过发布新变种并致力于改进其攻击机制,成功地制造了混乱。

该加密器使用了多种加密方式:HC-128/ChaCha8 对称加密算法、椭圆曲线 Diffie-Hellman (ECDH)、SHA256 hashing等,特征也极为特殊,会将所有被加密文件后缀修改为.babyk,并且在所有加密文件的加密内容末尾附加字符串“choung dong looks like hot dog!!!”,该字符串的意义是为了标注着勒索软件与 Babuk 有关。

解析Babyk行为文章链接

https://www.acronis.com/en-eu/blog/posts/babuk-ransomware/

以下是针对 Linux/UNIX 和 ESXi 或 VMware 系统的跨平台加密后提取的勒索信内容。

勒索信

 ██████╗  ██████╗ ██████╗ ███████╗    ██████╗ ███████╗██╗      █████╗ ██╗  ██╗    ██╗██╗██╗
██╔═══██╗██╔═══██╗██╔══██╗██╔════╝    ██╔══██╗██╔════╝██║     ██╔══██╗╚██╗██╔╝    ██║██║██║
██║   ██║██║   ██║██████╔╝███████╗    ██████╔╝█████╗  ██║     ███████║ ╚███╔╝     ██║██║██║
██║   ██║██║   ██║██╔═══╝ ╚════██║    ██╔══██╗██╔══╝  ██║     ██╔══██║ ██╔██╗     ╚═╝╚═╝╚═╝
╚██████╔╝╚██████╔╝██║     ███████║    ██║  ██║███████╗███████╗██║  ██║██╔╝ ██╗    ██╗██╗██╗
 ╚═════╝  ╚═════╝ ╚═╝     ╚══════╝    ╚═╝  ╚═╝╚══════╝╚══════╝╚═╝  ╚═╝╚═╝  ╚═╝    ╚═╝╚═╝╚═╝
                                                                                           


What happened?
---------------------------------------------------------------
Your computers and servers have been encrypted, which is fundamentally different from normal file damages.
And you can save yourself the trouble of going to the internet to find a way to decrypt them, because unless you pay the ransom.
Even if God comes, he will not be able to help you recover them!


What guarantees?
---------------------------------------------------------------
We value our reputation. If we do not do our work and liabilities, nobody will pay us. This is not in our interests.
All our decryption software is perfectly tested and will decrypt your data. We will also provide support in case of problems.
You can contact us to test an unimportant encrypted file and we will decrypt it to prove that we have the ability to decrypt them.


How to canotact us?
---------------------------------------------------------------
Your encryption ID:7gui):

You can contact us at the email address below:

ijtg5gr@keemail.me
ag55htr@keemail.me


How to Pay?
---------------------------------------------------------------
Please pay $20000 worth of bitcoins(BTC) to the address below:

bc1qz23mpc3qdy02jzw64xw9zhe4s275un40efsd2l

We will send you the decryption program after we confirm your payment.


---------------------------------------------------------------
*****WARNING: You have up to 7 days to consider whether or not to make a payment,
              so hurry or you may lose your files and data forever,
              And, we will make all your data available to the Internet.

1.2 来源

该加密器最初的泄露是来自于一篇Twiter文章,是由其babuk的开发者泄漏的源代码。

Twiter文章:

https://twitter.com/vxunderground/status/1433758742244478982?s=46&t=7D_QCICAVCcsuuaq3z_Tkw

图片

源码泄漏地址:

https://github.com/Hildaboo/BabukRansomwareSourceCode/tree/main

其中存在三种针对不同系统类型(Linux系统、NAS系统、Windows系统)的病毒文件,本篇是针对Windows系统的分析。

图片

2 总体行为

2.1 行为展示

图片

2.2 密钥下发(Builder.exe)

这里可以通过VS生成了Builder.exe来实现对其Builder过程进行分析,可以看到主要是对这部分文件的处理与释放

图片

2.3 文件释放

文件释放列表及作用:

图片

2.4 流程图

图片

2.恶意文件分析

2.1 逻辑分析

1. 读取参数,第一个参数是文件夹路径,第二个是指定密钥文件

图片

2. 根据参数1的文件路径,来和kp.curve25519与ks.curve25519进行拼接,用于后续存储密钥

图片

3. 利用随机数函数CryptGenRandom来产生一个私钥,再利用该私钥配合curve25519算法生成一个公钥

图片

4. 或者看是否存在第三个参数,有指定私钥的文件,利用该文件内的私钥配合curve25519算法生成一个公钥

图片

5. 将私钥和外部的note.txt勒索信写入到加密器中,将私钥写入到解密器中

图片

这里可以看到是传了2个参数进去,这里被ida识别成了一个,所以上面的那个是释放文件名称,下面的需要修改的。

图片

6. 将生成的私钥和公钥写入到kp.curve25519和ks.curve25519文件中

图片

3.密钥产生程序

3.1 逆向分析(keygen.exe)

1.整体流程就是调用随机数函数SystemFunction036,产生了32位的随机数。

图片

2.其中systemFunction036是cryptbase.dll中的函数。

图片

3.之后就是经过了Curve25519算法的密钥生成,得出了一个公钥和一个私钥。

图片

4.Windows源代码分析

4.1 流程图

图片

4.1 加密器(e_win)

程序先初始化了一下加密的句柄,使用了CryptAcquireContextW函数,一共获取了两次,第一次就是有现成的加密句柄就用现成的,第二次的话就是保障一下,如果没有就创建一个,然后第三个参数是加密的类型,这里的0x18则是对应的PROV_RSA_AES,意味着支持RSA和AES加密算法。

图片

最后将加密句柄返回。

图片

回到主函数,获取了输入的参数,并且判断是否存在debug参数,如果存在则开启调试模式

图片

如果是调试模式开启,则创建一个用于记录调试模式的文件

图片

4.2 关闭服务

主要比较有特点的就是,通过使用ControlService函数,来对服务发出停止操作,然后调用sleep函数直到服务成功停止后,再调用。

图片

所停止的服务有:

vss,sql,svc$,memtas,mepocs,sophos,veeam,,backup,GxVss,,GxBlr,GxFWD,GxCVD,GxCIMgr,DefWatch,ccEvtMgr,ccSetMgr,SavRoam,RTVscan,QBFCService,QBIDPService,Intuit.QuickBooks.FCS,,QBCFMonitorService,YooBackup,YooIT,zhudongfangyu,sophos,stc_raw_agent,VSNAPVSS,VeeamTransportSvc,VeeamDeploymentService,VeeamNFSSvc,veeam,PDVFSService,BackupExecVSSProvider,BackupExecAgentAccelerator,BackupExecAgentBrowser,BackupExecDiveciMediaService,BackupExecJobEngine,BackupExecManagementService,BackupExecRPCService,AcrSch2Svc,AcronisAgent,CASAD2DWebSvc,CAARCUpdateSvc

4.3 停止进程

利用TerminateProcess函数来实现对指定进程的关闭。

图片

sql.exe, oracle.exe, ocssd.exe, dbsnmp.exe, synctime.exe, agntsvc.exe, isqlplussvc.exe, 
xfssvccon.exe, mydesktopservice.exe, ocautoupds.exe, encsvc.exe, firefox.exe, tbirdconfig.exe, 
mydesktopqos.exe, ocomm.exe, dbeng50.exe, sqbcoreservice.exe, excel.exe, infopath.exe, msaccess.exe, 
mspub.exe, onenote.exe, outlook.exe, powerpnt.exe, steam.exe, thebat.exe, thunderbird.exe, 
visio.exe, winword.exe, wordpad.exe, notepad.exe

4.4 删除系统的影卷

调用了cmd命令实现:

cmd.exe /c vssadmin.exe delete shadows /all /quiet

图片

4.5 清空了系统的回收站

图片

获取了系统的信息,并且获得了系统的处理器的数量,并且创建了参数分别为0和1的两个加密线程。

图片

StartAddress

一共有两种参数,0的话就是会检查一下当前的文件队列,1的话就直接开始加密。

图片

获取shares和paths的参数,该程序格式应该是用逗号分开的。

图片

其中shares代表了加密IPC共享资源中的文件。

图片

path代表了指定加密磁盘路径,例如c:

图片

然后他会调用sub_40AB10来实现对其指定路径的所有文件的加密,甚至还会对驱动盘类型进行判断,如果是网络的驱动盘,该程序甚至会调用WNetGetConnectionW来检索其网络资源。

图片

如果share和path参数都没有指定,那么就会检查是否存在名为DoYouWantToHaveSexWithCuongDong的互斥体,如果也不存在,则认为程序是第一次运行,就创建一个名为DoYouWantToHaveSexWithCuongDong的互斥体,以保证后续资源的利用不会被抢占。

图片

之后呢就是一系列的加密网络上的资源了,例如映射本机的NAS之类的这种驱动器,还有遍历本机的操作了。

图片

迭代遍历文件过程中会写入勒索信

图片

并且会检查文件的后缀和文件的名称,名称是勒索信和后缀是.exe、.dll、.babyk的不加密。

图片

等所有的磁盘遍历和文件加密完毕后,就是资源的释放了,外加又一次清除了系统的影卷。

图片

4.5.1 加密流程

图片

首先这个恶意程序会先初始化一下加密的标志“choung dong looks like hot dog!!”,之后会再修改一下文件的名称。

图片

4.6 加密分析

该恶意程序使用了Curve25519算法来实现密钥的生成,之后使用了sha256来加密了密钥,并且将其分开当作后续加密的密钥,最后文件的加密是采用了AES来实现的。

https://cr.yp.to/ecdh.html这篇文章中基本介绍了使用Curve25519加密算法的使用方法。

总结一下要使用Curve25519加密算法的方法:

1 .要生成 32 字节的 Curve25519 密钥,首先从加密安全源生成 32 个密钥随机字节

2 .利用生成的32个随机字节的密钥和一个常数序列来生成公钥

3 .利用生成的私钥和对方的公钥来生成共享密钥

4 .使用sha512来生成共享密钥对应的sha512,一分两半,当作加密的Key和IV

5 .计算sha512的crc用于解密时对密钥的校验

6 .最后使用生成的KEY和IV进行HC-128流加密

图片

4.6.1 算法分析

这里可以写一个Python脚本来验证一下这个过程,首先假设我们有Alice和Bob两个人

4.6.1.1 流程图

图片

1 .先生成一对随机的密钥,然后再生成对应的公钥

当然这里不见得非得需要33-126,因为我是想保持密钥由明文组成。

import random
import donna25519
private_key = ''
for i in range(0,32):
    private_key+= chr(random.randint(33,126))
donna = donna25519.PrivateKey(secret=private_key)
public_key = donna.get_public().public
print 'private_key: '+private_key.encode('hex')
print 'public_key: '+public_key.encode('hex')

Alice Key:

private_key: 3840763b6b2a68583f7e3d7076224a5b7571217423236f6b233a6b6e68586649
public_key: 0b495944de1f2fa6dfa9fba7f73d53fc47d0c43592a52d4f80e4d7ae34a54556

Bob Key:

private_key: 705078776a2f316747502573447255492a513a3653385a3f213674482c495753
public_key: 30c1df51602efdd0eaa2d9f51e87851ecb351d2d555f3ec32cbb76916c74e43b

2 .实现一下这个交换的过程,这里先让Alice给Bob做密钥交换。

import donna25519
Alice_private_key = '3840763b6b2a68583f7e3d7076224a5b7571217423236f6b233a6b6e68586649'.decode('hex')
Bob_public_key  = '30c1df51602efdd0eaa2d9f51e87851ecb351d2d555f3ec32cbb76916c74e43b'.decode('hex')
donna = donna25519.PrivateKey(secret=Alice_private_key)
public_key = donna25519.PublicKey(public=Bob_public_key)
share_key = donna.do_exchange(public_key=public_key)
print 'share_key: '+share_key.encode('hex')

可以得到:

Alice_public_key: 0b495944de1f2fa6dfa9fba7f73d53fc47d0c43592a52d4f80e4d7ae34a54556
share_key: 7ef8f5be057f00fed06c3b993c0d5b6102d86680c124ebf12f005cf1c22c1f27

3 .假设Bob接收到了这个Alice的公钥后,然后来实现一下Bob对Alice的密钥交换。

import donna25519
Bob_private_key = '705078776a2f316747502573447255492a513a3653385a3f213674482c495753'.decode('hex')
Bob_public_key = '30c1df51602efdd0eaa2d9f51e87851ecb351d2d555f3ec32cbb76916c74e43b'.decode('hex')
Alice_public_key = '0b495944de1f2fa6dfa9fba7f73d53fc47d0c43592a52d4f80e4d7ae34a54556'.decode('hex')
donna = donna25519.PrivateKey(secret=Bob_private_key)
public_key = donna25519.PublicKey(public=Alice_public_key)
share_key = donna.do_exchange(public_key=public_key)
print 'Bob_public_key: '+Alice_public_key.encode('hex')
print 'share_key: '+share_key.encode('hex')

可以得到:

Bob_public_key: 0b495944de1f2fa6dfa9fba7f73d53fc47d0c43592a52d4f80e4d7ae34a54556
share_key: 7ef8f5be057f00fed06c3b993c0d5b6102d86680c124ebf12f005cf1c22c1f27

通过这个过程我们了解此恶意程序的密钥生成与交换完全一样,而我们可以是Bob也可以是Alice,黑客也可以是Alice也可以是Bob,当我们根据对方的公钥和自己的私钥生成共享的密钥之后,后面的加密流程几乎都是依赖此密钥继续的。

密钥生成完毕之后,会根据文件的大小来选择是否是全加密或者是部分加密等,之后就会进入到合适的加密函数,但都是一个加密函数

图片

文件内容的加密则会利用刚才的Key和IV进入到HC128的密钥流生成,最后将生成的密钥和原文进行异或后,即完成加密。

图片

4.6.2 加密标志写入

最后就是对文件的末尾进行公钥、CRC32和加密标志"choung dong looks like hot dog!"的写入了,该标志也是作为目前Babuk家族的主要识别标志了。

图片

图片

当黑客拿到文件末尾的公钥后,即可使用自己的私钥来产生出对应的共享密钥,然后实现后面的解密,其中crc32是对共享密钥的校验,来对其完整性进行了验证。

5.总结

Windows这部分的加密的执行主要采用了多线程的方式,其中加密算法采用了Curve25519算法作为其加密算法,每个文件都是使用了同一个黑客的公钥来实现的密钥交换,但每个文件都会生成一个属于自己的私钥和公钥,而且整体发现此款恶意程序以加密速度为目标,为的就是用最短的时间来实现对中招电脑的资料进行加密。

以下是solar安全团队近期处理过的常见勒索病毒后缀:

.live勒索病毒, .locked勒索病毒, .rmallox勒索病毒, .mallox 勒索病毒,.jopanaxye勒索病毒, .2700勒索病毒, .elbie勒索病毒, .mkp勒索病毒, .dura勒索病毒, .halo勒索病毒, .DevicData勒索病毒, .faust勒索病毒, ..locky勒索病毒, .cryptolocker勒索病毒, .cerber勒索病毒, .zepto勒索病毒, .wannacry勒索病毒, .cryptowall勒索病毒, .teslacrypt勒索病毒, .gandcrab勒索病毒, .dharma勒索病毒, .phobos勒索病毒, .lockergoga勒索病毒, .coot勒索病毒, .lockbit勒索病毒, .nemty勒索病毒, .contipa勒索病毒, .djvu勒索病毒, .marlboro勒索病毒, .stop勒索病毒, .etols勒索病毒, .makop勒索病毒, .mado勒索病毒, .skymap勒索病毒, .aleta勒索病毒, .btix勒索病毒, .varasto勒索病毒, .qewe勒索病毒, .mylob勒索病毒, .coharos勒索病毒, .kodc勒索病毒, .tro勒索病毒, .mbed勒索病毒, .wannaren勒索病毒, .babyk勒索病毒, .lockfiles勒索病毒, .locked勒索病毒, .DevicData-P-XXXXXXXX勒索病毒, .lockbit3.0勒索病毒, .blackbit勒索病毒, .360勒索病毒, .360勒索病毒

勒索攻击作为成熟的攻击手段,很多勒索家族已经形成了一套完整的商业体系,并且分支了很多团伙组织,导致勒索病毒迭代了多个版本。而每个家族擅用的攻击手法皆有不同,TellYouThePass勒索软件家族常常利用系统漏洞进行攻击;Phobos勒索软件家族通过RDP暴力破解进行勒索;Mallox勒索软件家族利用数据库及暴力破解进行加密,攻击手法极多防不胜防。

而最好的预防方法就是针对自身业务进行定期的基线加固、补丁更新及数据备份,在其基础上加强公司安全人员意识。

如果您想了解有关勒索病毒的最新发展情况,或者需要获取相关帮助,请关注“solar专业应急响应团队”。

6.安全建议

6.1 风险消减措施

资产梳理排查目标:根据实际情况,对内外网资产进行分时期排查

服务方式:调研访谈、现场勘查、工具扫描

服务关键内容:流量威胁监测系统排查、互联网暴露面扫描服务、技术加固服务、集权系统排查

图片

6.2 安全设备调优

目标

通过对安全现状的梳理和分析,识别安全策略上的不足,结合目标防御、权限最小化、缩小攻击面等一系列参考原则,对设备的相关配置策略进行改进调优,一方面,降低无效或低效规则的出现频次;另一方面,对缺失或遗漏的规则进行补充,实现将安全设备防护能力最优化。

图片

主要目标设备

网络安全防护设备、系统防护软件、日志审计与分析设备、安全监测与入侵识别设备。

6.3 全员安全意识增强调优

目标:

通过网络安全意识宣贯、培训提升全方位安全能力

形式:

培训及宣贯

图片

线下培训课表

若无法组织线下的集体培训,考虑两种方式:

1.提供相关的安全意识培训材料,由上而下分发学习

2.组织相关人员线上开会学习。线上培训模式。

图片

线上学习平台

7.团队介绍

solar团队数年深耕勒索解密与数据恢复领域,在勒索解密和数据恢复领域建立了良好的声誉,以高效、安全、可靠的解决方案赢得了客户的信任。无论是个人用户还是大型企业,都能提供量身定制的服务,确保每一个被勒索软件侵害的数据都能够恢复到最佳状态,同时在解密数据恢复后,提供全面的后门排查及安全加固服务,杜绝二次感染的风险。同时,solar团队坚持自主研发及创新,在攻防演练平台、网络安全竞赛平台、网络安全学习平台方面加大研发投入,目前已获得十几项专利及知识产权。团队也先后通过了ISO9001质量管理体系、ISO14000环境管理体系、ISO45001职业安全健康管理体系 、ITSS(信息技术服务运行维护标准四级)以及国家信息安全漏洞库(CNNVD)技术支撑单位等认证,已构建了网络安全行业合格的资质体系

8.数据恢复服务流程

多年的数据恢复处理经验,在不断对客户服务优化的过程中搭建了"免费售前+安心保障+专业恢复+安全防御"一体化的专业服务流程。

① 免费咨询/数据诊断分析

       专业的售前技术顾问服务,免费在线咨询,可第一时间获取数据中毒后的正确处理措施,防范勒索病毒在内网进一步扩散或二次执行,避免错误操作导致数据无法恢复。

       售前技术顾问沟通了解客户的机器中毒相关信息,结合团队数据恢复案例库的相同案例进行分析评估,初步诊断分析中毒数据的加密/损坏情况。

② 评估报价/数据恢复方案

       您获取售前顾问的初步诊断评估信息后,若同意进行进一步深入的数据恢复诊断,我们将立即安排专业病毒分析工程师及数据恢复工程师进行病毒逆向分析及数据恢复检测分析。

       专业数据恢复工程师根据数据检测分析结果,定制数据恢复方案(恢复价格/恢复率/恢复工期),并为您解答数据恢复方案的相关疑问。

③ 确认下单/签订合同

       您清楚了解数据恢复方案后,您可自主选择以下下单方式:

双方签署对公合同:根据中毒数据分析情况,量身定制输出数据恢复合同,合同内明确客户的数据恢复内容、数据恢复率、恢复工期及双方权责条款,双方合同签订,正式进入数据恢复专业施工阶段,数据恢复后进行验证确认,数据验证无误,交易完成。

④ 开始数据恢复专业施工

      安排专业数据恢复工程师团队全程服务,告知客户数据恢复过程注意事项及相关方案措施,并可根据客户需求及数据情况,可选择上门恢复/远程恢复。

      数据恢复过程中,团队随时向您报告数据恢复每一个节点工作进展(数据扫描 → 数据检测 → 数据确认 → 恢复工具定制 → 执行数据恢复 → 数据完整性确认)。

⑤ 数据验收/安全防御方案

      完成数据恢复后,我司将安排数据分析工程师进行二次检查确认数据恢复完整性,充分保障客户的数据恢复权益,二次检测确认后,通知客户进行数据验证。

      客户对数据进行数据验证完成后,我司将指导后续相关注意事项及安全防范措施,并可提供专业的企业安全防范建设方案及安全顾问服务,抵御勒索病毒再次入侵。   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1712323.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++|set、map模拟实现<——红黑树

目录 一、红黑树的迭代器 1.1红黑树迭代器框架 1.2operator*() && operator->() 1.3operator() 1.4operator--() 1.5operator() && operator!() 1.6begin() && end() 二、如何用红黑树搭配map和set(仿函数) 三、红黑树封装map和set(简易版…

图片怎么批量重命名从1到50?这3个方法一键改名

图片怎么批量重命名从1到50?图片批量重命名从1到50的过程不仅提高了我们处理大量图片文件的效率,还大大简化了命名过程,让我们能更加有条理地管理和存储图片。通过使用各种专业的工具和方法,我们可以轻松实现图片文件的自动化命名…

【美羊羊拿金币问题】

问题: 有一天美羊羊正在草地上玩耍,突然天上开始落金币,这些金币掉落的范围在一个固定的水平区域内,但这些金币一旦掉落到地上就消失了,因此美羊羊只有不断地移动并从空中接住这些金币才能得到它们。假设金币掉落的位…

宝兰德入选“鑫智奖·2024金融数据智能运维创新优秀解决方案”榜单

近日,由金科创新社主办、全球金融专业人士协会支持的“2024 鑫智奖第六届金融数据智能优秀解决方案”评选结果正式公布。凭借卓越的技术实力和方案能力,宝兰德「智能全链路性能监控解决方案」从90个参选方案中脱颖而出,荣誉入选“鑫智奖2024金…

关于C++的IO流简单总结

基础IO流 C的IO以面向对象的形式实现, 同时兼容了C语言面向过程的IO方式 C 标准库提供了四个基本流对象: cin:用于从标准输入(通常是键盘)读取数据。 cout:用于向标准输出(通常是控制台)写入…

【云原生】kubernetes中的认证、权限设置--RBAC授权原理分析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

自动化使用 ChatGPT 生成 PPT 大纲 - 基于 Python 和 PyAutoGUI

这篇文章将指导您利用 Python 的 pyautogui 库创建一个自动化的脚本,帮助您使用 ChatGPT 生成公司智能管理平台的 PPT 大纲。该脚本将打开 Chrome 浏览器,访问 ChatGPT 并输入相应的提示词,让 ChatGPT 为您创建 PPT 大纲。 C:\pythoncode\ne…

为什么宋以前权臣篡位多、宋以后权臣篡位少?

时代不同,主要问题也不同。天下的大气候,自然就要左右王朝的小气候。权臣篡位,得先有权臣。但是,如果当权臣都没有了,又怎么可能有权臣篡位呢?这是一个社会基础的变化。宋以后的主要矛盾是中原和草原的争锋…

白酒:白酒产地的地域文化与品牌形象

云仓酒庄豪迈白酒,作为中国白酒的一部分,其品牌形象深受产地的地域文化影响。地域文化是一个地区与众不同的文化传统和价值观,它影响着当地人的生活方式和审美观念,进而影响白酒的品牌形象。 首先,白酒产地的历史与传统…

质量工具系列之Dependency-Track

项目开发中依赖了很多第三方开源工具,对于其版本,漏洞等因为时间或者是数量太多而无法关注到,Dependency-Track解决这些问题。 Dependency-Track 是一个开源组件分析平台,是开放网络应用安全项目(OWASP)的一…

电源小白入门学习8——电荷泵电路原理及使用注意事项

电源小白入门学习8——电荷泵电路原理及使用注意事项 电荷泵简介电荷泵原理电荷泵设计过程中需要注意的点fly电容的安秒平衡DC/DC功率转换技术对比 电荷泵简介 电荷泵(Charge Pump)是一种电路拓扑结构,用于实现电压升压或降压的功能。它通过…

实战15:bert 命名实体识别、地址解析、人名电话地址抽取系统-完整代码数据

直接看项目视频演示: bert 命名实体识别、关系抽取、人物抽取、地址解析、人名电话地址提取系统-完整代码数据_哔哩哔哩_bilibili 项目演示: 代码: import re from transformers import BertTokenizer, BertForTokenClassification, pipeline import os import torch im…

POLARDB:新零售用户MySQL上云最佳选择

什么是云数据库POLARDB? POLARDB是阿里云自主研发的最新一代RDS关系型数据库,是特别针对互联网场景设计的Cloud-Native 云原生数据库。POLARDB for MySQL版本,在提供100%兼容MySQL5.6/8.0的关系型事务处理ACID特性之上,能够提供完…

【NumPy】掌握NumPy的histogram函数:数据直方图的生成与应用详解

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

基于序列深度学习模型的向量海岸线形状分类方法 2024.05

本文中提出了一个数据驱动的方法来分类的形状矢量海岸线,该方法利用基于序列的深度学习算法对海岸线矢量分段进行建模和分类。具体而言,首先将复杂的海岸线划分为一系列弯曲,并进一步提出了一组不同的特征来描述每个弯曲的形态特征。然后&…

Vue热更新出现内存溢出

Vue热更新出现内存溢出 vue-cli2遇到此问题的解决办法:vue-cli3遇到此问题的解决办法:方法一(已测试ok)方法二(未尝试) 开发项目有一段时间了,随着项目越来越大,打包的时间也相应的变…

英语写作AI怎么使用?分享3款AI写作生成器

英语写作AI怎么使用?在日常生活中,英语写作AI工具的使用已经变得日益普遍。它们凭借先进的人工智能技术,不仅快速整理思路、生成文章草案,甚至进行语法检查和拼写修正,大大提高了写作的便捷性和效率。下面,…

旅游推荐管理系统

代码位置:旅游管理系统: 根据若依模版的一个旅游管理系统 - Gitee.com 分支dev 项目介绍 项目目的 随着社会的高速发展,人们生活水平的不断提高,以及工作节奏的加快,旅游逐渐成为一个热门的话题,因为其形式的多样,涉…

【数据结构】二叉搜索树——高阶数据结构的敲门砖

目录 树概述 二叉搜索树概述 概念 特性 元素操作 插入 删除 模拟实现 框架 查找 插入 删除 树概述 树——在计算机中是一种很常见的数据结构。 树是一种很强大的数据结构,数据库,linux操作系统管理和windows操作系统管理所有文件的结构就是…

SQL刷题笔记day4补

1题目 我的正确代码 select e.last_name,e.first_name,d.dept_name from employees e left join (select departments.dept_name,dept_emp.emp_no,dept_emp.dept_no from departments join dept_emp on departments.dept_nodept_emp.dept_no) d on e.emp_nod.emp_no复盘&…