原文链接:https://api-caller.com/2019/11/05/capture-note/
抓包应该是被问到最多的事情了, 记录一些片段.
珍惜Any 之前提过 一种思路 是遍历所有类, 按照特征去判断校验类和方法.
此处的思路则是, 先跑一遍并让它失败, 找到特征打印堆栈, 即可锁定位置, 再行 hook 即可.
原文链接:https://api-caller.com/2019/11/05/capture-note/
抓包应该是被问到最多的事情了, 记录一些片段.
珍惜Any 之前提过 一种思路 是遍历所有类, 按照特征去判断校验类和方法.
此处的思路则是, 先跑一遍并让它失败, 找到特征打印堆栈, 即可锁定位置, 再行 hook 即可.
| #!/bin/bash | |
| #set -e | |
| # install-wifi - 22/01/2020 - by MrEngman. | |
| UPDATE_SELF=${UPDATE_SELF:-1} | |
| UPDATE_URI="http://downloads.fars-robotics.net/wifi-drivers/install-wifi" | |
| ROOT_PATH=${ROOT_PATH:-"/"} | |
| WORK_PATH=${WORK_PATH:-"${ROOT_PATH}/root"} |
| #!/bin/bash | |
| rev="12" | |
| _log(){ | |
| echo "$(date '+%Y-%m-%d %H:%M:%S') - ${streamid} - $1" >> /tmp/ffmpeg.log | |
| } | |
| _log_para(){ | |
| echo "$1" | fold -w 120 | sed "s/^.*$/$(date '+%Y-%m-%d %H:%M:%S') - ${streamid} - = &/" >> /tmp/ffmpeg.log |
| ### | |
| # See: https://code-chronicle.blogspot.com/2014/08/connect-usb-device-through-vagrant.html | |
| # See: https://docs.oracle.com/cd/E97728_01/E97727/html/vboxmanage-usbfilter.html | |
| # Assuming MacOS as the host OS, with Homebrew already installed: | |
| # Install Vagrant and Virtualbox with Homebrew: | |
| # brew cask install vagrant virtualbox virtualbox-extension-pack | |
| # | |
| # After installing Vagrant and Virtualbox, on the host machine, | |
| # do: | |
| # VBoxManage list usbhost |
Generally, the Git proxy configuration depends on the Git Server Protocol you use. And there're two common protocols: SSH and HTTP/HTTPS. Both require a proxy setup already. In the following, I assume a SOCKS5 proxy set up on localhost:1080. But it can also be a HTTP proxy. I'll talk about how to set up a SOCKS5 proxy later.
When you do git clone ssh://[user@]server/project.git or git clone [user@]server:project.git, you're using the SSH protocol. You need to configurate your SSH client to use a proxy. Add the following to your SSH config file, say ~/.ssh/config:
ProxyCommand nc -x localhost:1080 %h %p
| import ctypes | |
| import inspect | |
| from parse import parse | |
| def fparse(template, string): | |
| parent_frame = inspect.currentframe().f_back | |
| parent_frame.f_locals.update(parse(template, string).named) | |
| ctypes.pythonapi.PyFrame_LocalsToFast( | |
| ctypes.py_object(parent_frame), | |
| ctypes.c_int(0), |
| # Basic benchmarks | |
| # SET key val # 87489.06 | |
| # SETRANGE key2 6 "Redis" # 75757.58 req/s | |
| # INCR key 245 # 70224.72 req/s | |
| # INCRBY key 245 22 # 67114.09 req/s | |
| # EVAL SET key val # 46296.29 req/s | |
| # SETIFHIGHER (set or update key if new value is higher than current) # 41666.67 req/s | |
| # if not exists return OK , if updated return the increment , if not updated return 0 | |
| SCRIPT LOAD "local c = tonumber(redis.call('get', KEYS[1])); if c then if tonumber(ARGV[1]) > c then redis.call('set', KEYS[1], ARGV[1]) return tonumber(ARGV[1]) - c else return 0 end else return redis.call('set', KEYS[1], ARGV[1]) end" |
| #!/system/bin/sh | |
| PATH=/system/bin:/system/xbin | |
| houdini_bin=0 | |
| dest_dir=/system/lib$1/arm$1 | |
| binfmt_misc_dir=/proc/sys/fs/binfmt_misc | |
| if [ -z "$1" ]; then | |
| if [ "`uname -m`" = "x86_64" ]; then |
| Hi All! | |
| I've recently launched a tool that wraps many of the commands here with a user interface. This desktop application is currently available for macOS. There's a roadmap outlining planned features for the near future. | |
| Feel free to request any features you'd like to see, and I'll prioritize them accordingly. | |
| One of the most important aspects of this application is that every command executed behind the scenes is displayed in a special log section. This allows you to see exactly what’s happening and learn from it. | |
| Here's the link to the repository: https://github.com/Pulimet/ADBugger | |
| App Description: | |
| ADBugger is a desktop tool designed for debugging and QA of Android devices and emulators. It simplifies testing, debugging, and performance analysis by offering device management, automated testing, log analysis, and remote control capabilities. This ensures smooth app performance across various setups. |