Android 逆向

download tools [[apktool]] [[dex2jar]] [[java-decompiler-gui]] download apk eg: com.baidu.tieba_mini_123205.apk decompile apktool d com.baidu.tieba_mini_123205.apk mv com.baidu.tieba_mini_123205.apk com.baidu.tieba_mini_123205.zip unzip com.baidu.tieba_mini_123205.zip got classes.dex file mv classes.dex dex2jar-you-version-dir/ and d2j-dex2jar.sh classes.dex use [[java-decompiler-gui]] open classes-dex2jar.jar Quick Check Is at least Java 1.8 installed? Does executing java -version on command line / command prompt return 1.8 or greater? If not, please install Java 8+ and make it the default. (Java 7 will also work at this time) Installation for Apktool Windows: ...

April 9, 2026 · 4 min · Theme PaperMod

Asciinema

How it works asciinema project is built of several complementary pieces: command-line based terminal session recorder, asciinema, website with an API at asciinema.org, javascript player When you run asciinema rec in your terminal the recording starts, capturing all output that is being printed to your terminal while you’re issuing the shell commands. When the recording finishes (by hitting Ctrl-D or typing exit) then the captured output is uploaded to asciinema.org website and prepared for playback on the web. ...

April 9, 2026 · 13 min · Theme PaperMod

Emacs

参考 https://book1.emacs-china.org/#org67dd896 光标移动 C-f 向右移动一个字符,f 代表 forward C-b 向左移动一个字符,b 代表 backward C-p 移动到上一行 p 代表 previous C-n 移动到下一行 n 代表 next C-a 移动到行首 a 代表 ahead C-e 移动到行尾 e 代表 end C-v 移动到下一屏 C-l 重绘屏幕,并将光标所在的行置于屏幕的中央 M-a 移动到句首 M-e 移动到句尾 M-b 光标移动到下一个词(这里的词指英文单词,对于中文来说,则是移动到下一个标点符号) M-f 光标移动到前一个词 M-v 移动到上一屏 M-< 将光标移动到所有文字的最开头 M-> 将光标移动到所有文字的最末尾 C-u 数字 命令 表示这些数字参数的作用是指定命令的重复次数, 也被称为前缀参数 C-u 8 C-f 会向前移动 8 个字符 通常惯例, Meta 系组合键用来操作 “由语言定义的单位(如词,句子,段落)",而 CONTROL 系列组合键用来操作 “与语言无关的基本单位(比如字符, 行等)"。 退出 Emacs C-x C-c 窗格 Windows C-x 1 只保留一个窗格(也就是关闭掉其它所有窗格) C-x 2 上下打开两个窗格 C-x 3 左右打开两个窗格 C-x o 将光标移动到另一个窗格(other) C-M-v 在一个窗格中编辑,使用 C-M-v 命令滚动另外一个窗格中的文字 多窗口 Multiple Frames M-x make-frame 开启一个新的窗口 M-x delete-frame 关闭选中的窗口 插入与删除 <DEL> 删除光标前的一个字符 C-d 删除光标后的一个字符 M-<DEL> 删除光标前的一个词 M-d 删除光标后的一个词 C-k 移除从光标到行尾间的字符 M-k 移除从光标到句尾间的字符 C-y 召回最近一次移除的内容 M-y 每按一次召回前一次的内容 撤销 Undo C-/ 如果修改了一段文字,又觉得改的不好,可以用 undo 命令进行撤销;如果连续多次的使用, 则会把以前的命令也依次撤销 C-x u 撤销 文件 C-x C-f 查找文件 C-x C-s 保存文件 M-x customize-variable make-backup-files 关掉文件备份 缓冲区 Buffer C-x C-b 列出缓冲区 C-x b buffername 切换到指定名称的缓冲区 C-x s 保存多个缓冲区(会找到所有已被修改但尚未存盘的缓冲区,然后逐个询问是否存盘) 命令集扩展 Extending The Command Set C-x 字符扩展 C-x 之后输入另一个字符或者组合键 M-x 命令名扩展 M-x 之后输入一个命令名 自动保存 Auto Save Emacs 会定期将正在编辑的文件写入一个 “自动保存"文件中。自动保存文件的文件名的头尾各有一个 # 字符,比如你正在编辑的文件叫 hello.c, 那么它的自动保存文件就叫 #hello.c#. 这个文件会在正常存盘之后被 Emacs 删除。可以使用 M-x recover file 来恢复你的自动保存文件。 ...

April 9, 2026 · 2 min · Theme PaperMod

Git

rebase 使用 https://juejin.cn/post/6844903895160881166 场景说明: A B两个同学同时开发,A修改了 one.md 文件并提交; B 这边没有pull直接修改了 two.md 文件然后提交,提示需要pull下来,这里采用 git pull –rebase 的话生成的log为线性的 A 再次修改提交,需要pull同步分支变更;这里不用rebase的情况下产生的log为下面情形。 多帐号配置 进入 ~/.ssh 目录下依次使用命令生成对应的秘钥文件 ssh-keygen -t rsa -C "makosonm@gmail.com" 命名为 id_rsa_makosonm ssh-keygen -t rsa -C "pemako@gmail.com" 命名为 id_rsa_pemako 在 github.com 的setting上添加对应的 id_rsa_xx.pub文件内容到 SSH KEY 在 ~/.ssh/config 文件中添加如内容 Host makosonm HostName github.com User makosonm@gmail.com IdentityFile ~/.ssh/id_rsa_makosonm Host pemako HostName github.com User pemakoa@gmail.com IdentityFile ~/.ssh/id_rsa_pemako 不配置 global 的 user email 可以在不同的仓库配置不同的账号进行提交代码 ...

April 9, 2026 · 1 min · Theme PaperMod

Graphviz

关于Graphviz 1.1 简介 Graphviz (英文:Graph Visualization Software的缩写)是一个由AT&T实验室启动的开源工具包,可以用于绘制DOT语言脚本描述的图形。它也提供了供其它软件使用的库。Graphviz是一个自由软件,其授权为Eclipse Public License。其Mac版本曾经获得2004年的苹果设计奖[2]。 Graphviz由一种被称为DOT语言的图形描述语言[3] 与一组可以生成和/或处理DOT文件的工具组成: 命令 说明 dot 一个用来将生成的图形转换成多种输出格式的命令行工具。其输出格式包括PostScript,PDF,SVG,PNG,含注解的文本等等。 neato 用于sprint model的生成(在Mac OS版本中称为energy minimized)。 twopi 用于放射状图形的生成 circo 用于圆形图形的生成。 fdp 另一个用于生成无向图的工具。 dotty 一个用于可视化与修改图形的图形用户界面程序。 lefty 一个可编程的(使用一种被EZ影响的语言[4])控件,它可以显示DOT图形,并允许用户用鼠标在图上执行操作。Lefty可以作为MVC模型的使用图形的GUI程序中的视图部分。 官网:http://www.graphviz.org/ 官方文档:http://www.graphviz.org/Documentation.php 下载地址:http://www.graphviz.org/Download.php 1.2 DOT语言 DOT语言是一种文本图形描述语言它提供了一种简单的描述图形的方法,并且可以为人类和计算机程序所理解。DOT语言文件通常是具有.gv或是.dot的文件扩展名。很多程序都可以处理DOT文件。 1.3 安装 Mac下直接通过brew install graphviz了,也可以直接从官网下载; 注意最新的brew仓库中不再支持 mac10.13版本,这里需要进行编译安装。参考 https://graphviz.org/download/ 1.4 简单示例 Graphviz画图只需要两步。第一步创建文本文件并命令为x.dot,输入以下内容: graph demo { "Browser" -- {"Chrome", "Fiefox", "Safari", "..."} } 第二步,使用命令将文本内容转换为图片。 dot demo.dot -T png -o demo.png -T表示输出类型,可以指定jpg、gif、svg等等,-o指定输出文件名,不指定则输出到标准输出上。执行上面命令后不出意外则可以看到如下效果。 上面是用dot命令来生成,也可以用 Graphviz 中包含的其它命令来处理 dot 文本,比如用下面命令渲染出来的图片排列方式则不一样。 ...

April 9, 2026 · 3 min · Theme PaperMod

M4 宏处理器

一、m4 是什么? GUN m4 是一种通用的 宏处理器(macro processor),最初是 Unix 标准工具的一部分,后来 GNU 也实现了自己的版本(GNU m4)。 它的名字来自 “macro”,设计思想和 C 语言的预处理器(cpp)类似,但更通用、可编程、与语言无关。 🔧 简单理解: m4 是一个「文本宏展开器」: 它读入文本 → 按定义替换宏 → 输出展开后的文本。 但 m4 比 C 预处理器灵活得多——它本身是一种“小型解释语言”,带有: 宏定义与展开机制; 条件判断(ifdef, ifelse); 循环、递归; 参数替换、字符串操作、文件包含; 可生成任意文本(代码、配置、脚本)。 二、m4 解决了什么问题? 在 1970–80 年代,Unix 世界里还没有复杂的模板引擎、元编程机制,很多项目要面对: 各种 平台差异(操作系统、编译器特性不同); 重复性代码生成; 配置文件或源代码模板 需要根据条件生成; 轻量级宏系统 需要在编译前阶段运行。 m4 的出现正是为了在「正式编译前」进行灵活的文本层面元编程。 三、历史上最典型的用途 1️⃣ autoconf 系统的基础 这是 m4 最著名的应用场景。 GNU 的 autoconf(用于生成 configure 脚本)本质上就是一堆 .m4 宏定义。 configure.ac 文件会通过 autoconf → m4 → 生成最终的 configure。 它负责检测系统特性、生成 Makefile、适配不同环境。 没有 m4,就没有 autoconf。 ...

April 9, 2026 · 2 min · Theme PaperMod

Mac 使用技巧

mac上的一些操作 mac上允许任何软件安装 sudo spctl --master-disable mac修改主机名 sudo scutil --set HostName servername.example.com 设置简单密码 pwpolicy -clearaccountpolicies passwd 重新设置所有的文件打开方式为默认 /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r local system -domain user 备份操作 列出备份 ➜ ~ tmutil listbackups /Volumes/system/Backups.backupdb/MacBook Pro/2020-03-28-142200 /Volumes/system/Backups.backupdb/MacBook Pro/2020-04-04-125648 /Volumes/system/Backups.backupdb/MacBook Pro/2020-07-04-025359 /Volumes/system/Backups.backupdb/MacBook Pro/2020-07-04-031159 /Volumes/system/Backups.backupdb/MacBook Pro/2020-07-04-041113 删除备份 ➜ ~ sudo tmutil delete /Volumes/system/Backups.backupdb/MacBook\ Pro/2020-03-28-142200 Password: Deleting: /Volumes/system/Backups.backupdb/MacBook Pro/2020-03-28-142200 mac上截图方式 屏幕的一部分进行截图 Command + shit + 4 截屏会保存在桌面 对整个屏幕进行截图 Command + shift + 3 截屏会保存在桌面 把截图保存在粘贴板 Command + Control + shift + 3 截取整个屏幕 Command + Control + shift + 4 选取部分截取 对打开的窗口进行截图 Command + shfit + 4 + 空格键 保存在桌面可以再次按下空格键 进行调整大小,并可以使用 Command + Tab 进行窗口切换 Grap 实用程序工具 1、MacOS系统重新安装设置 U盘安装 先格式化电脑硬盘 ...

April 9, 2026 · 4 min · Theme PaperMod

Rime 输入法

https://ssnhd.com/2022/01/06/rime/ Rime 输入法使用指南 基本概念 Rime 在 macOS 上叫 鼠须管(Squirrel),是一个高度可定制的输入法框架。所有配置通过 YAML 文件完成。 配置目录: ~/Library/Rime/ 一、基本使用 切换输入方案 F4 或 Ctrl+` — 呼出方案选单 默认内置:朙月拼音、仓颉五代、粤拼等 切换中英文 Shift — 切换中英文(默认) Caps Lock — 也可切换 翻页 - / = 或 [ / ] — 翻候选页 特殊输入 / 开头 — 输入符号(如 /jt → 箭头符号) v 开头 — 部分方案支持输入特殊字符 二、配置文件结构 ~/Library/Rime/ ├── squirrel.yaml # 外观配置(皮肤、字体) ├── default.yaml # 全局配置(方案列表、快捷键) ├── default.custom.yaml # ★ 你的全局自定义(推荐在这里改) ├── squirrel.custom.yaml # ★ 你的外观自定义 ├── luna_pinyin.schema.yaml # 朙月拼音方案 ├── luna_pinyin.custom.yaml # ★ 朙月拼音自定义 └── user.db / *.userdb/ # 用户词库 关键原则: 不要直接改 *.yaml,要建对应的 *.custom.yaml 文件来覆盖,这样升级不会丢失配置。 ...

April 9, 2026 · 2 min · Theme PaperMod

Tmux

https://github.com/tmux/tmu# tmux 使用 安装 brew install tmux 配置 插件安装 git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm 全局配置 # Enable mouse mode (tmux 2.1 and above) set -g mouse on #Enable oh my zsh in tmux set -g default-command /bin/zsh # Mouse based copy bind-key -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" bind-key -T copy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" set -g @continuum-boot 'on' # Automatic Tmux start set -g @continuum-restore 'on' # Last saved environment is automatically restored when tmux is started set -g @continuum-boot-options 'iterm,fullscreen' # start iTerm in fullscreen # tmux 的插件管理 set -g @plugin 'tmux-plugin/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'tmux-plugins/tmux-continuum' # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) run -b '~/.tmux/plugins/tpm/tpm' 重载配置文件生效 tmux source ~/.tmux.conf 常用命令 # To start tmux: tmux # To detach from tmux: Ctrl-b d # To restore tmux session: tmux attach # To detach an already attached session (great if you are moving devices with different screen resolutions): tmux attach -d # To display session: tmux ls # To rename session: Ctrl-b $ # To switch session: Ctrl-b s # To start a shared session: tmux -S /tmp/your_shared_session chmod 777 /tmp/your_shared_session # To help screen (Q to quit): Ctrl-b ? # To scroll in window: Ctrl-b PageUp/PageDown # To reload configuation file Ctrl-b : source-file /path/to/file # To create a window: Ctrl-b c # To go next window: Ctrl-b n # To destroy a window: Ctrl-b x # To switch between windows: Ctrl-b [0-9] Ctrl-b Arrows # To split windows horizontally: Ctrl-b % # To split windows vertically: Ctrl-b " # To swap windows: Ctrl-b :swap-window -s [0-9] -t [0-9] 问题总结 iterm下滚动问题 进入iterm2 的设置 Advanced 搜索 Scroll 找到 Mouse 下 Scroll wheel sends arrow keys when in alternate screen mode. 修改为 Yes。 ...

April 9, 2026 · 2 min · Theme PaperMod

Vim

行内单字符查找 fx 向前查找本行中的字符 x 其中 f代表 Find tx 移动的目标字符的前一个字符 t代表To 该命令的反向版本 Tx 移动到指定的行 gg 行首 G 行尾 nG 指定行 H(High) M(Middle) L(Low) 滚屏 CTRL-U 向下滚动半屏 CTRL-D 把视窗向下移动半屏,也就是把文字向上移动半屏 CTRL-E 向上滚一行 CTRL-Y 向下滚一行 CTRL-F (forwar) 向前滚动一屏 CTRL-B (backward) 向后滚动一屏 zt 把光标所在行移动到屏幕的顶部 zb 移动到屏幕的底部 简单查找 字符 .*[]^%/\?~$ 有特殊含义。如果你要查找它们,需要在前面加上一个 “\” ? 进行反向查找 严格匹配一个单词/the\> \> 是一个特殊的记号,表示只匹配单词末尾。类似地,\< 只匹配单词的开头 列块选择 CTRL + V 启动可视模式 打开互联网上的文件 gf 放到对应链接上 CRTL-W f vim 变量 使用 help internal-variables查看更多 b:name 缓冲区的局部变量 w:name 窗口的局部变量 g:name 全局变量(也用于函数中) v:name vim预定义的变量 vim的几种模式 ...

April 9, 2026 · 4 min · Theme PaperMod