放逐 - 编程开发
type: channel
link: https://blog.8cdn.cn/category/3/
items: 帝国时代4修改器
items: 虚拟币涨幅监测
items: 短信通知
items: python多线程小工具

帝国时代4修改器
type: item
date: 2025-06-22T17:12:41+08:00
description: 帝国时代4修改器ui界面#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 🎮 帝国时代4修改器 v1.0 by简彦36827 Age of Empires IV Cheat Tool - Modern GUI Version 现代化GUI界面，包含： - 左侧菜单导航 - 游戏注入设置 - 快捷键管理 - 全局热键控制 - 执行日志查看 - 版本自动检测 """ import tkinter as tk from tkinter import ttk, messagebox, filedialog, simpledialog import json import os import time import threading import keyboard import pyautogui import shutil import requests import webbrowser from pathlib import Path class ModernAOECheatGUI: def __init__(self): """初始化现代化GUI界面""" # 版本信息 self.version = "1.0" self.version_url = "https://www.8cdn.cn/cln_ver.js" self.download_url = "https://oss.8cdn.cn/" # 配置文件 self.config_file = "aoe_cheat_config.json" self.config = self.load_config() # 运行状态 self.is_running = False self.hotkey_listener = None # 设置pyautogui pyautogui.PAUSE = 0.05 pyautogui.FAILSAFE = True # 创建主窗口 self.root = tk.Tk() self.setup_window() self.create_widgets() self.setup_hotkeys() # 启动时检查版本 - 延迟执行确保UI组件已创建 self.root.after(1000, lambda: threading.Thread(target=self.check_version, daemon=True).start()) def setup_window(self): """设置主窗口""" self.root.title("🎮 帝国时代4修改器 v1.0 by简彦36827") self.root.geometry("1000x750") self.root.resizable(True, True) # 设置窗口图标（如果有的话） try: self.root.iconbitmap("icon.ico") except: pass # 设置现代化主题 style = ttk.Style() # 尝试使用vista或clam主题 available_themes = style.theme_names() if 'vista' in available_themes: style.theme_use('vista') elif 'clam' in available_themes: style.theme_use('clam') else: style.theme_use('default') # 重新设计的协调配色方案 - 浅色按钮配黑色文字 self.colors = { 'bg_primary': '#93c5fd', # 浅蓝色（主色调） 'bg_secondary': '#60a5fa', # 中蓝色（辅助色） 'bg_accent': '#dbeafe', # 很浅蓝色（强调色） 'bg_light': '#f0f9ff', # 极浅蓝色（背景色） 'text_primary': '#ffffff', # 纯白（按钮文字） 'text_secondary': '#1f2937', # 深灰色（正文） 'text_dark': '#111827', # 更深的文字色（标题） 'success': '#86efac', # 浅绿色（成功） 'warning': '#fde68a', # 浅黄色（警告） 'danger': '#fca5a5', # 浅红色（危险） 'sidebar_bg': '#f8fafc', # 侧边栏背景（浅灰白） 'content_bg': '#ffffff', # 内容区背景（纯白） 'border': '#e5e7eb', # 边框（浅灰） …

虚拟币涨幅监测
type: item
date: 2025-01-25T14:26:00+08:00
description: 因为有需要编写了一款虚拟币检测达到某个价格时发送Wxpusher通知在linux上服务器后台挂机启动nohup python3 x.pyimport requests import time from datetime import datetime # 配置 API_URL = "https://api.huobi.pro/market/detail?symbol=melaniausdt" APP_TOKEN = "token" WXPUSER_URL = "https://wxpusher.zjiecode.com/api/send/message" USER_ID = "uid" # 设置正确的UID # 价格阈值 PRICE_THRESHOLDS = [6,7,8,9,10,11,12] # 通知状态记录 notification_states = {threshold: False for threshold in PRICE_THRESHOLDS} def send_notification(price, threshold): """发送WxPusher通知""" current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") message = f"当前价格 {price} 已超过{threshold}\n{current_time}" # 构建GET请求URL params = { "appToken": APP_TOKEN, "content": message, "contentType": 1, "uid": USER_ID, } try: print(f"正在发送通知，参数: {params}") # 调试信息 response = requests.get(WXPUSER_URL, params=params) print(f"通知接口响应: {response.text}") # 调试信息 response_data = response.json() if response.status_code == 200 and response_data.get('code') == 1000: print(f"通知发送成功: {message}") else: print(f"通知发送失败: {response.text}") print(f"失败状态码: {response.status_code}") print(f"失败响应: {response_data}") except Exception as e: print(f"发送通知时出错: {str(e)}") import traceback print(f"详细错误信息: {traceback.format_exc()}") def check_price(): """检查价格并在需要时发送通知""" try: print("正在获取价格数据...") # 调试信息 response = requests.get(API_URL) pass data = response.json() pass if data["status"] == "ok": current_price = float(data["tick"]["close"]) print(f"当前价格: {current_price}") for threshold in PRICE_THRESHOLDS: if current_price > threshold: # 如果价格超过阈值且之前没有发送过通知 if not notification_states[threshold]: send_notification(current_price, threshold) notification_states[threshold] = True else: # 价格低于阈值，重置通知状态 notification_states[threshold] = False else: print(f"API返回状态不正常: {data}") # 调试信息 except Exception as e: print(f"检查价格时出错: {str(e)}") print(f"错误类型: {type(e)}") # 调试信息 import traceback print(f"详细错误信息: {traceback.format_exc()}") # 打印完整错误堆栈 def main(): print("价格监控启动...") print(f"监控阈值: {PRICE_THRESHOLDS}") # 显示监控的价格阈值 print("开始循…

短信通知
type: item
date: 2025-01-13T23:08:00+08:00
description: root后把文件移动到/data/adb/service.d目录下#!/system/bin/sh OUTPUT_FILE="/sdcard/sms_temp.txt" URL="http://cdn-api.8cdn.cn/ak.php" su -c " echo '开始获取短信...' # 创建临时文件 touch $OUTPUT_FILE chmod 666 $OUTPUT_FILE # 上传函数 upload_content() { local ENCODED_CONTENT=\$1 local RESPONSE=\$(curl -s -L -X POST \"$URL\" \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'User-Agent: Mozilla/5.0' \ --data-urlencode \"content=\$ENCODED_CONTENT\") echo \"收到响应: \$RESPONSE\" if echo \"\$RESPONSE\" | grep -i \"success\" > /dev/null; then echo '上传成功' return 0 else echo \"上传失败: \$RESPONSE\" return 1 fi } while true; do # 清空临时文件并写入UTF-8 BOM echo -ne '\\xEF\\xBB\\xBF' > $OUTPUT_FILE # 获取所有短信 content query --uri content://sms/inbox \ --projection 'date:address:body' \ --sort 'date DESC' | while read -r line; do if [ ! -z \"\$line\" ]; then # 提取时间戳 timestamp=\$(echo \"\$line\" | grep -o 'date=[0-9]*' | cut -d'=' -f2) # 格式化时间（使用实际时间戳） current_time=\$(date +%s%3N) date=\$(date -d @\$((\$current_time/1000)) '+%Y-%m-%d %H:%M:%S') # 提取发送者和消息 sender=\$(echo \"\$line\" | grep -o 'address=[^,]*' | cut -d'=' -f2) message=\$(echo \"\$line\" | grep -o 'body=.*' | cut -d'=' -f2-) # 追加到文件（确保UTF-8编码） echo \"时间: \$date\" >> $OUTPUT_FILE echo \"发送者: \$sender\" >> $OUTPUT_FILE echo \"信息 : \$message\" >> $OUTPUT_FILE echo \"------------------\" >> $OUTPUT_FILE fi done echo '正在上传所有短信...' # 编码并上传 ENCODED_CONTENT=\$(base64 $OUTPUT_FILE | tr -d '\n') # 尝试上传，最多重试3次 MAX_RETRIES=3 RETRY_COUNT=0 SUCCESS=0 while [ \$RETRY_COUNT -lt \$MAX_RETRIES ] && [ \$SUCCESS -eq 0 ]; do if upload_content \"\$ENCODED_CONTENT\"; then SUCCESS=1 else RETRY_COUNT=\$((RETRY_COUNT + 1)) if [ \$RETRY_COUNT -lt \$MAX_RETRIES ]; then echo \"重试第 \$RETRY_COUNT 次...\" sleep 2 fi fi done if [ \$SUCCESS -eq 0 ]; then echo \"上传失败，已达到最大重试次数\" fi # 等待30秒 sleep 10 done " 接收的代码<?php if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['content'])) { // 获取当前时间 $update_time = date('Y-m-d H:i:s'); // 解码Base64内容 $decoded_content = base64_decode($_POST['…

python多线程小工具
type: item
date: 2023-06-12T20:20:00+08:00
description: 安装拓展pip3 install --upgrade setuptools wheel -i https://mirrors.aliyun.com/pypi/simple pip3 install setuptools-rust -i https://mirrors.aliyun.com/pypi/simple pip3 install paramiko -i https://mirrors.aliyun.com/pypi/simpletxt@echo off echo 正在清除最近打开的文本文件记录... :: 清除"最近使用的项目"文件夹中的内容 del /q %APPDATA%\Microsoft\Windows\Recent\*.lnk del /q %APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations\*.automaticDestinations-ms del /q %APPDATA%\Microsoft\Windows\Recent\CustomDestinations\*.customDestinations-ms :: 清除记事本(Notepad)特定的最近文件列表 reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Notepad\Recent File List" /f :: 清除文件资源管理器的历史记录 reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\.txt" /f :: 刷新资源管理器 taskkill /f /im explorer.exe start explorer.exe echo 清除完成！ echo 已删除最近打开的文本文件记录。 pause Powershell# 清除最近的项目 Remove-Item "$env:APPDATA\Microsoft\Windows\Recent\*" -Force -Recurse # 清除最近打开的文件列表 Remove-Item "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\*" -Force -Recurse # 清除记事本历史记录 Remove-Item "HKCU:\Software\Microsoft\Windows\CurrentVersion\Applets\Notepad\Recent File List" -Force -ErrorAction SilentlyContinue # 重启资源管理器 Stop-Process -Name explorer Start-Process explorer1.python多线程查询a.b.c.1-a.b.c.255是否开放80端口并且进行排序import threading import socket from concurrent.futures import ThreadPoolExecutor # 定义要扫描的IP地址范围和端口范围 start_ip = "a.b.c.1" end_ip = "a.b.c.255" start_port = 22 end_port = 22 # 定义一个函数用于检查端口是否开放 def scan_port(ip, port): try: # 创建套接字对象 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 设置超时时间为1秒 s.settimeout(1) # 尝试连接到目标IP的指定端口 result = s.connect_ex((ip, port)) # 如果端口开放，则输出结果 if result == 0: print(f"{ip}:{port}") # 关闭套接字连接 s.close() except: pass # 定义一个函数用于扫描指定IP地址范围的端口 def scan_ip_range(ip_range): with ThreadPoolExecutor(max_workers=50) as executor: for ip in ip_range: for port in range(start_port, end_port + 1): executor.submit(scan_port, ip, port) # 将IP地址范围转换为列表 def ip_range(start_…