Skip to content

Instantly share code, notes, and snippets.

View Mufanc's full-sized avatar

Mufanc

View GitHub Profile
@Mufanc
Mufanc / sample.md
Last active September 8, 2021 14:58
[批处理作为 .py 文件运行] 在 Windows 实现类似 Linux #!/usr/bin/python 的功能 #Python
# 2>nul || cd "%~dp0" && python "%~nx0" %* && goto :eof
print('Hello World')

''' 2>nul
@echo off
@Mufanc
Mufanc / sample.py
Last active September 28, 2021 02:27
[获取屏幕截图(有边框)] Python 调用 WinAPI 获取屏幕截图 #Python #OpenCV
import cv2
import numpy as np
import win32con
import win32gui
import win32ui
class Screencap(object):
def __init__(self, class_name, window_name):
self.hwnd = win32gui.FindWindow(class_name, window_name)
@Mufanc
Mufanc / sample.py
Last active September 6, 2021 10:26
[Python asyncio 协程关闭问题] 报 RuntimeError: Event loop is closed 的解决方案 #Python
import asyncio
async def main():
# do something
pass
if __name__ == '__main__':
loop = asyncio.new_event_loop()
try:
loop.run_until_complete(main())
@Mufanc
Mufanc / sample.md
Last active September 8, 2021 14:59
[Python 中的原子操作] 怎样修改全局变量是线程安全的? #Python
  • 举例来说,下面的操作是原子的(Lx 是列表, Dx 是字典,x、y 是对象,i、j 是 int 变量):
L.append(x)
L1.extend(L2)
x = L[i]
x = L.pop()
L1[i:j] = L2
L.sort()
x = y
@Mufanc
Mufanc / sample.js
Last active November 8, 2021 15:53
[使用 Chrome 扩展优雅地注入] 一种几乎「完全无感」的脚本注入方式 #JavaScript #Chromium
/**
* code in inject.js
* added "web_accessible_resources": ["injected.js"] to manifest.json
*/
var script = document.createElement('script');
script.src = chrome.extension.getURL('injected.js');
script.onload = function() {
this.remove();
};
(document.head || document.documentElement).appendChild(script);
@Mufanc
Mufanc / sample.md
Created September 26, 2021 11:18
[查询顶端 Activity 类名] 通过 adb shell 获取栈顶 Activity #Android
  • 首先执行 adb shell 进入终端
dumpsys activity | grep mFocusedWindow | grep -Eo '{.+}'
@Mufanc
Mufanc / sample.py
Last active May 14, 2022 18:51
[Python 合成 pdf] 多张图片合并成一个 pdf #Python
import re
import os
from fpdf import FPDF
pdf_file = FPDF(unit='pt', format=(2112, 3158)) # 页面尺寸
pdf_file.set_auto_page_break(False) # 关闭自动分页
pdf_file.set_left_margin(0) # 设置页边距
pdf_file.set_top_margin(0)
images = os.listdir('images/')
@Mufanc
Mufanc / sample.py
Last active October 2, 2021 14:26
[Python 异步 IO ainput 实现] #Python
async def ainput(prompt: str = ''):
with ThreadPoolExecutor(1, 'ainput') as executor:
return (
await asyncio.get_event_loop().run_in_executor(executor, input, prompt)
).rstrip()
@Mufanc
Mufanc / sample.md
Last active November 8, 2021 17:49
[Frida 获取应用 Application 实例] #Frida #Android
  • 获取 Application 实例
ActivityThread = Java.use('android.app.ActivityThread')
let mApplication = ActivityThread.currentActivityThread().mInitialApplication.value
  • 如果 Java.classFactory.loader 不正常,可用下面的方法尝试修复
@Mufanc
Mufanc / sample.md
Last active November 10, 2021 02:30
[让 ADB 侦听所有 interface] #Android
  • 启动一个新的终端
adb kill-server && adb -a nodaemon server start

接下来执行 adb forward 等操作,可以从 127.0.0.1 以外的地方访问