编辑
2024-03-13
默认
00

动态cookie

https://match.yuanrenxue.cn/match/2

花了两天时间,把混淆的js,一步一步的解混淆,去掉大数组,我觉得把过程详细描述下来,很难,并且帮助不大,我觉得提供一些有用的思路,让读者去实践更好。

思路

  1. 开头会有一个进行移位的数组
  2. 会用正则检测代码是否格式化了,开始的一个函数就有,单步跟进去就发现了
  3. 可以先用在线工具处理一下字符串字面量
  4. 后面会大量存在那种数组对象,里面存字符串常量,或者函数,函数主要是封装一些简单的运算符的,这时候,AST就大显神威了
  5. 浏览器里触发debugger 后可以通过在浏览器里never pause
  6. 浏览器里有不少用正则表达式检测是否格式化了,然后死循环
  7. console.log被重写了
  8. 把js扣到本地,可以用nodejs运行debug找逻辑

重点:是用AST去除那些数组

加密函数算法

js
var _0x2b98a5 = function () { var _0x169b73 = true; return function (_0x175027, _0x483b50) { var _0x305dab = _0x169b73 ? function () { if (_0x483b50) { var _0x3d1a58 = _0x483b50["apply"](_0x175027, arguments); _0x483b50 = null; return _0x3d1a58; } } : function () { }; _0x169b73 = false; return _0x305dab; }; }(); var _0x4cf5e0 = function () { var _0x4c4ba3 = true; return function (_0xb4b4cc, _0x2bb2eb) { var _0x33d728 = _0x4c4ba3 ? function () { if (_0x2bb2eb) { var _0x44de8a = _0x2bb2eb["apply"](_0xb4b4cc, arguments); _0x2bb2eb = null; return _0x44de8a; } } : function () { }; _0x4c4ba3 = false; return _0x33d728; }; }();
编辑
2024-03-08
默认
00

罗生门

get之前需要post/jssm,需要在一条tcp链接上

通关代码

golang
package main import ( "crypto/tls" "encoding/json" "os" "strconv" "strings" "time" ) func extractContent(data string) string { splitData := strings.SplitN(data, "\r\n\r\n", 2) if len(splitData) < 2 { return "" } return splitData[1] } type Foo struct { Data []struct { Value float64 `json:"value"` } `json:"data"` State string `json:"state"` Status string `json:"status"` } func main() { var ff = make(map[int]int, 0) for i := 1; i < 6; i++ { // 创建一个*tls.Config实例 conf := &tls.Config{ InsecureSkipVerify: true, } data, err := os.ReadFile("./a") if err != nil { panic(err) }
编辑
2024-02-26
默认
00

APFS

以前都是用Windows多,使用上macOS后得接触APFS的概念了

APFS (Apple File System)

APFS (Apple File System) 是苹果公司为其操作系统(包括 macOS、iOS、tvOS 和 watchOS)开发的文件系统。APFS 替代了以前的 HFS+ 文件系统,提供了更高的性能和更强的加密支持。

APFS 容器是 APFS 文件系统的一个重要概念。一个 APFS 容器可以包含一个或多个卷(也就是我们通常所说的分区)。这些卷共享容器中的存储空间,这意味着一个卷可以动态地增大或缩小,而不需要重新分区或格式化硬盘。

例如,你可以在一个 APFS 容器中创建一个用于系统的卷和一个用于数据的卷。如果系统卷需要更多的空间,它可以动态地从容器中获取,而不需要你手动调整分区的大小。

编辑
2024-02-26
默认
00

MacBook Air M1

买的256GB版本的M1,用着用着磁盘空间总是不够,莫名其妙就没了100多GB

image.png

腾讯柠檬清理

这个还是开源的,也挺不错

image.png

ncdu

直接使用brew安装即可

bash
brew install ncdu
bash
ncdu

支持交互

image.png

编辑
2024-02-25
默认
00

RSA

python
import rsa # 生成公钥和私钥 (pubkey, privkey) = rsa.newkeys(2048) # 需要加密的数据 message = 'Hello, world!'.encode('utf8') # 使用公钥加密 crypto = rsa.encrypt(message, pubkey) # 使用私钥解密 message = rsa.decrypt(crypto, privkey) print(message.decode('utf8')) # 输出: 'Hello, world!'