menu Chancel's blog
rss_feed
Chancel's blog
一别两宽,各生欢喜。

我的笔记

搜索
列表(157)
uwsgi 启动Flask应用解析argparse参数
类型:Python

用uwsgi方式启动Flask应用时如何接收argparse的字典参数

更新于 2022-01-11 15:47:32
创建于 2022-01-11 15:47:32

uwsgi 启动Flask应用解析argparse参数

相应的,开发采用uwsgi部署的时候,uwsgi也提供类似的参数用于传递参数,在uwsgi的配置文件中增加“pyargv”参数用于传递app.conf的位置 ```ini [uwsgi] module = main:app master = true processes = 1 pyargv=-c /srv/memo/SyncMemo/conf/app.conf

chdir = /srv/memo/SyncMemo/src/ socket = /srv/memo/uwsgi.sock chmod-socket = 660 vacuum = true

die-on

Android 提取已安装app的APK文件
类型:Android

Android 提取已安装app的APK文件

更新于 2022-01-03 22:33:11
创建于 2022-01-03 22:31:24

Android 提取已安装app的APK文件
adb shell pm list packages | grep qq
adb shell pm path com.tencent.android.qqdownloader 
adb pull /data/app/com.tencent.android.qqdownloader-J8HeSrHmt1te2p1AAgx2XA==/base.apk ~/Downloads/qqdownloader.apk
解决取消挂载时提示“target is busy”的错误
类型:Linux

如何解决“target is busy”的错误

更新于 2022-01-02 06:50:13
创建于 2021-12-29 01:38:23

解决取消挂载时提示“target is busy”的错误
# 方法一
sudo lsof /mnt/sda
# 方法二
sda fuser -kv /mnt/sda
Android9.0绕过SSL-PINING校验抓包
类型:Android

Android9.0如何绕过APP的SSL-PINING校验进行抓包

更新于 2021-12-29 01:14:15
创建于 2021-12-29 01:07:20

Android9.0绕过SSL-PINING校验抓包

app为了避免中间人攻击,往往会在app内部嵌入证书,在发起网络请求的时候,如果系统证书与客户端证书不一致则直接退出或不发起网络请求避免被抓包

这里以魔趣系统的Android9.0为例子(魔趣系统支持的手机广泛且提供官方Root包,Root权限还可以在开发者选项中选择关闭,避免部分App检测Root权限后退出)

以下操作需要Root权限

首先安装Magisk App(Magisk通过挂载一个与系统文件相隔离的文件系统来加载自定义内容)

安装后打开Magisk app,点击安装,选择直接安装(需联网)

安装后重启,再次打开Magisk app,选择下方按钮的模块

选择搜索,并输入“riru",选择安装“Riru”与“Riru - LSPosed”,接着重启手机

此时桌面会显示刚才添加的LSPosed app,打开LSPosed app

选择仓库,并搜索“SSL”,选择“SSLUnpinning”安装后重启

重启后打开LSPosed app,选择模块,选择SSLUnpining,勾选需要禁用SSLUnpining的应用即可

Linux Gnome 截图脚本(自动复制到粘贴版)
类型:Linux

使用快捷键截图复制到粘贴版,傻瓜式快捷截图

更新于 2021-12-06 16:37:52
创建于 2021-12-06 16:37:52

Linux Gnome 截图脚本(自动复制到粘贴版)
#!/bin/bash
# author:chancel
# url:https://chancel.me

show_help() {
    echo "$0 [-h|-?|--help] [--temp /tmp/_backup] [--target /opt/backup/] [--dbuser root] [--dbpasswd passwd] [--extra /opt]"
    echo "-h|-?|--help    显示帮助"
    echo "-folder   截图保存文件夹"
    echo "-select default area 截图方式(area/window/full)"
}
select=area

while [[ $# -gt 0 ]]; do
    case $1 in
    -h | -\? | --help)
        show_help
        exit 0
        ;;
    -folder)
        folder="${2}"
        shift
        ;;
    -select)
        select="${2}"
        shift
        ;;
    --)
        shift
        break
        ;;
    *)
        echo -e "错误: $0 无效操作 '$1'\n可输入命令 '$0 --help' 获取更多帮助.\n" >&2
        exit -1
        ;;
    esac
    shift
done

filename=$folder/$(date +%Y%m%d)_$(date +%H%M%S).png
if [ $select == "area" ]
then
    gnome-screenshot -a --file=$filename
elif [ $select == "window" ]
then
    gnome-screenshot -w --file=$filename
else
    gnome-screenshot --file=$filename
fi
xclip -selection clipboard -t image/png -i $filename
Android9.0 开启网络adb调试(重启不失效)
类型:Hardware

使手机永久开启网络adb调试,重启不失效

更新于 2021-12-06 14:00:27
创建于 2021-12-06 12:00:52

Android9.0 开启网络adb调试(重启不失效)
➜ adb root          
adbd is already running as root
➜ adb disable-verity
verity not enabled - ENG build
➜ adb remount
remount succeeded
➜ adb shell
OnePlus6:/ # su
:/ # mount -o rw,remount /
:/ # echo service.adb.tcp.port=5555 >> /system/build.prop 
OnePlus6:/ # reboot
Mitmdump server replay 使用
类型:Network

使用mitmdump缓存网络请求并并进行服务端重放

更新于 2021-11-30 17:13:14
创建于 2021-11-30 17:13:14

Mitmdump server replay 使用

命令如下

➜  mitmdump -w gmcc-replay.dump
➜  mitmdump -S gmcc-replay.dump --set server_replay_nopop=true
Git忽略证书错误
类型:Git

git拉取仓库时提示证书错误

更新于 2021-11-19 14:05:58
创建于 2021-11-19 11:55:37

Git忽略证书错误
➜ env GIT_SSL_NO_VERIFY=true git clone https://domain.com/chancel/gmcc.git
➜ cd gmcc
➜ git config http.sslVerify"false"
Cent7OS安装Redis
类型:Software

Cen7OS以编译的方式安装Redis并设置后台运行

更新于 2021-11-18 11:09:12
创建于 2021-11-18 11:04:52

Cent7OS安装Redis

编译安装如下

sudo yum install gcc 
mkdir /tmp/redis
cd /tmp/redis
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
tar -zxvf redis-6.2.6.tar.gz
cd /tmp/redis/redis-6.2.6
make MALLOC=libc 
make install PREFIX=/usr/local/redis

复制conf文件

cp /tmp/redis-6.2.6/redis.conf /usr/local/redis/bin/

编辑conf文件并修改 daemonizerequirepass两个参数(后台运行和连接密码)

vim /usr/local/redis/bin/redis.conf
# Redis configuration file example.
#
# Note that in order to read the configuration file, Redis must be
# started with the file path as first argument:
...
daemonize yes
...
requirepass your_passwd

直接运行即可

/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
快速读懂MTR报告
类型:Network

花1分钟快速了解MTR报告的内容

更新于 2021-11-17 11:55:51
创建于 2021-11-17 11:53:17

快速读懂MTR报告
➜  ~ mtr --report www.chancel.ltd
Start: 2021-11-17T11:40:42+0800
HOST: chancel-4750g               Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- _gateway                   0.0%    10    0.2   0.2   0.2   0.3   0.1
  2.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
  3.|-- 183.83.181.152             0.0%    10    5.1   3.5   2.5   5.1   1.0
  4.|-- 121.2.142.157              0.0%    10   10.3   9.2   5.2  21.1   4.7
  5.|-- 152.136.17.59.broad.dg.gd  0.0%    10   10.1   9.5   2.7  24.3   5.8
  6.|-- 14.147.5.129               0.0%    10    3.1   2.9   1.7   4.5   0.8
  7.|-- 202.97.43.78               0.0%    10    7.9   6.2   2.6  12.3   3.4
  8.|-- 59.43.137.226              0.0%    10   26.0  27.1  25.6  31.2   1.7
  9.|-- 59.43.130.202             30.0%    10   27.8  33.6  26.8  47.6   9.5
 10.|-- 59.43.186.250              0.0%    10   27.2  30.8  26.6  40.2   5.1
 11.|-- 59.43.183.54               0.0%    10   65.9  69.4  63.5  87.2   7.4
 12.|-- 202.55.27.226              0.0%    10   65.7  66.8  62.7  79.1   5.0
 13.|-- 104.254.116.122            0.0%    10  166.2 167.2 165.3 172.2   2.4
 14.|-- 23.248.190.211             0.0%    10  166.6 174.9 165.7 224.6  17.7
 15.|-- 10.0.0.130                 0.0%    10   72.5  66.1  63.5  72.5   2.9
 16.|-- 45.195.67.142              0.0%    10   62.6  62.9  62.0  64.6   0.8
Pyinstaller打包资源文件(如Yaml配置文件)
类型:Python

使用Pyinstaller打包Python程序时一起打包外部文件

更新于 2021-11-05 23:52:39
创建于 2021-11-05 23:40:46

Pyinstaller打包资源文件(如Yaml配置文件)
import os
import sys
import yaml
import logging
from logging import config

def get_resource(relative_path:str):
    if getattr(sys, 'frozen', False):
        base_path = sys._MEIPASS
    else:
        base_path = os.path.abspath(".")
    return os.path.join(base_path, relative_path)

# logging配置
with open(get_resource('logging.yaml'), 'r', encoding='utf-8') as f:
    config = yaml.load(f, Loader=yaml.FullLoader)
    for key, value in config['handlers'].items():
        if value.get('filename'):
            if not os.path.exists(os.path.dirname(value.get('filename'))):
                os.mkdir(os.path.dirname(value.get('filename')))
    logging.config.dictConfig(config)
logger = logging.getLogger('main.common')
config_parser.read(args.conf, encoding='utf-8')
logger.info('配置文app.conf读取成功')
Pyenv切换版本无效的问题
类型:Python

使用"pyenv local 3.7.2"后版本无法正常切换问题

更新于 2021-11-01 23:36:03
创建于 2021-11-01 23:36:03

Pyenv切换版本无效的问题

正确的变量设置如下(.zshrc文件)

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
1 of 14 | A total of 157