0%

前言

前几日一微信群里,有群友说某在线AI网站 aHR0cHM6Ly9haS5jZ3Byb21wdC5uZXQvZHJhdw== 无法打开控制台进行调试。来了好奇心进行尝试,果真如此。一打开控制台,页面就会跳转,导致network里面的资源无法正常查看。一番研究后,发现是使用了disable-devtool开源工具来做的。研究其源码是发现使用到了md5加密,遂搜寻在线解密网站。

于是,便遇到了这篇文章要讲的主角。昨天花费了一天将其彻底逆向,今天记录下来以飨有缘读者。

访问地址

aHR0cHM6Ly93d3cuc29qc29uLmNvbS9lbmNyeXB0X21kNS5odG1s

逆向目标

阅读全文 »

一种执行debugger函数的方式

1
(function() {}['constructor']('debugger')())

逐步分析:

  1. 每个 JavaScript 函数实际上都是一个 Function 对象。运行 (function(){}).constructor === Function // true 便可以得到这个结论,所以(function() {}['constructor']) 就是 Function

  2. (function() {}['constructor']('debugger'))创建了一个anonymous函数,函数执行语句只有一行debugger。等同于

    1
    2
    3
    function () {
    debugger
    }
  3. (function() {}['constructor']('debugger')())将第二步的anonymous函数立即执行。等同于

    1
    2
    3
    (function () {
    debugger
    }())

用途:常用于反web逆向调试,通过一些检测方式捕获到浏览器处于调试模式时,循环执行此函数,即可影响web调试。

monorepo

vue3.0刚开始用的是lerna,在发布3.0.0-alpha.1时改为yarn的workspaces方式。
3.2版本已切换到pnpm

lerna的常用命令

1
2
3
4
5
6
lerna init #初始化
> lerna bootstrap #下载依赖包或者生成本地软连接
lerna add yyy #所有包都添加yyy
lerna add yyy --scope=xxx #给包xxx添加yyy依赖
lerna list
lerna clean

代码提交信息管理

git hooks

阅读全文 »

升级 Hexo & Next 到最新版

遇到的问题和变更

  • Hexo 依赖项安装失败
    source-map-resolve 库已废弃,npm v8.3.2安装失败,导致依赖项自动删除。
    使用 pnpm 代替 npm,正常安装。

  • 主题 Next 通过 git 安装引用失败
    安装 Next github 的安装,启动 hexo s 失败,报错 next 的一些 js 文件
    加载失败。
    切换使用 npm 安装主题,在根目录增加配置文件 _config.next.yml 后,可正常启动。原因是主题 Hexo 在版本5.*.*后,主题配置文件需要放到根目录,命名格式:_config.[name].yml

  • config.yml 配置参数变更

hexo 的常见问题

hexo 下的分类和表签无法显示

步骤一

阅读全文 »

文件路由加载

vite-plugin-pages

  1. 追加声明文件到tsconfig.json

    1
    2
    3
    4
    5
    6
    7
    {
    "compilerOptions": {
    "types": [
    "vite-plugin-pages/client"
    ]
    }
    }
  2. 引入动态生成路由

    1
    import routes from "~pages"; // routes: RouteRecordRaw[]

UI组件库加载

unplugin-vue-components

使用unplugin-vue-components引入naive-ui组件库。

阅读全文 »

题记

今天在通过 yarn 安装veturpack的依赖项时,node-sass这一块一直不成功。从控制台看报错信息,大概为 environment 不支持,并给了一个node-sass Supported Environments的 github 地址,可以看到在OSX系统中,对 Node 的版本支持最高直到 v8.x.x。而我的 Node 版本为 v11.x.x,所以我需要一个降级。

Nodejs 的版本切换方式有很多种,NVM就是其中杰出的代表,不过今天我们的主角不是他,而是另一位,强大的Homebrew,因为是用的

Homebrew 是一款自由及开放源代码的软件包管理系统,用以简化 macOS 系统上的软件安装过程,最初由马克斯·霍威尔(Max Howell)写成。因其可扩展性得到了一致好评,而在 Ruby on Rails 社区广为人知。

过程

  • 查看本地 cellar 安装的有哪些版本,以及远程有哪些版本

    • brew list | grep node查看本地 cellar 中的所有 Node 版本;

    • brew search node | grep node查看远程有哪些版本。

  • 现在我需要一个不超过 8.x.x 版本的 Node,执行brew install node@8,安装一个 v8.x.x 版本的 Node

  • 切换 Node 版本可通过 unlink 先将当前版本的 Node 移除,再通过 link 相应版本的方式来实现

    • brew unlink node将当前版本的 Node 移除掉
    • brew link --overwrite node@8,这个时候可能会输出提醒要把可执行文件配置到系统PATH中,笔者自己使用的是zsh,执行提示信息中的echo 'export PATH="/usr/local/opt/node@8/bin:$PATH"' >> ~/.zshrc命令,会在~/.zshrc文件中写入export PATH="/usr/local/opt/node@8/bin:$PATH",最后需要source ~/.zshrc使修改立即生效
  • 检查当前Node版本node -v,输出的是v8.15.0,完美。yarn-sass也成功安装,veturpack 运行成功。

阅读全文 »

使用powerlevel10k主题

今天想换个主题,发现powerlevel10k主题很流行,就按照github官方库方式做了替换,写下来做个细节备份。

  1. 安装方式
    公司的mac是直接用的官方推荐方式直接download到用户目录下,我的这台mac则是download到oh my zsh的自定义主题目录下了,本质上没有区别,source的sh不一样,不过作为自定义主题感觉更方便管理和切换。
  2. 字体安装
    推荐安装nerd font。推荐安装字体方式,在iterm2终端输入p10k configure,提示安装nerd font时 输入yes即可
  3. 配置
    输入p10k configure,根据提示傻瓜式输入对应选项即可,这个shell交互gui做的真不错
  4. vs code终端字体兼容配置
    在设置setting.json中增加"terminal.integrated.fontFamily": "MesloLGS NF"配置即可
  5. 最后就可以快乐地体验了

Iterm2主题

有很多人觉得mbp原生终端Terminal.app的界面很丑,不过我个人很喜欢,就像喜欢vs code的default dark主题一样,官方、简约、质感(这一点可能terminal没有)。然后我在给Iterm2找原生terminal的默认主题时,可能因为不可抗拒力的影响,先后四五次花了大量的时间都未果。最后准备放弃的时候,蓦然回首,那人却在灯火阑珊处。主题地址Terminal Basic

  1. 在setting > Profiles > Colors > Color Presets > Import 导入主题,记得选中主题后将MInimum ConoTrast的设置值拉到最左。
  2. 在setting > Profiles > Text 中光标Cursor选择Box,不勾选Blinking cursor,字体渲染Text Rendering选择Draw bold text in bold font,Use thin Strokes for anti-aliased text选择Never,Font选择有两种,一种是vs code的默认首选字体Menlo,一种是原生terminal.app的SF Mono Regular 11 磅。字体我更偏向于Menlo,有一定的信仰值在其中,不过强迫症最后为了一致性,还是选择了Mono记得是常规体 11 size。勾中Anti-aliased。时间有点久了,不过记得这里当时选择字体的时候是有个坑的,Mono默认在选择项中是找不到的,因为苹果个坑爹玩意很多终端的字体都给隐藏起来,不属于系统字体,就像不通过finder的前往文件夹或者shell你根本到不了/根目录。你可以通过google **iterm2 use system font**找到这么一篇教程How to Install & Use SF Mono Font on Mac with Other Apps,挺容易明白的,如果看不懂,该提高一下英语水平了。
  3. 在setting > Profiles > Window 中将Setting for New WindowsColumns设置为80,Rows设置为24
阅读全文 »

同步本地、远程库的分支映射状态

1
git remote prune origin // origin为远程库名

git召回历史版本删除的文件

使用 git 中经常会遇到删除了某些文件,当前没发现问题,知道几个甚至十几个版本后,卧槽,那个文件不该删的。这个时候就要去恢复这个文件了。方法如下

1
2
git log // 查看历史版本日志
git revert commitid

git的一些问题

阅读全文 »