解锁并提取Linux客户端微信数据库 (vibe coded)
1{
2 description = "wxdump-linux: Linux 版微信数据库解密工具";
3
4 inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
5
6 outputs = { self, nixpkgs }:
7 let
8 system = "x86_64-linux";
9
10 # python package overlays (adds missing PyPI deps + local wxdump-linux)
11 pyOverlay = selfP: superP: {
12 blackboxprotobuf = superP.buildPythonPackage {
13 pname = "blackboxprotobuf";
14 version = "1.0.1";
15 src = superP.fetchPypi {
16 pname = "blackboxprotobuf";
17 version = "1.0.1";
18 sha256 = "1shw3rmbhnmcjyvw20gc9xz1gy8a48m4cwdq40f9vki4di772fr3";
19 };
20 doCheck = false;
21 };
22
23 silk_python = superP.buildPythonPackage {
24 pname = "silk_python";
25 version = "0.2.8";
26 format = "wheel";
27 src = builtins.fetchurl {
28 url = "https://files.pythonhosted.org/packages/fc/0b/898bccc48a88bd2e29e782a7a89ed5334464c3dea24a5c1a56e9d9891889/silk_python-0.2.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl";
29 sha256 = "1gvw5a8s0xzq553lkha106lyxshdj85r511k1fw8m15mwrxyiqk2";
30 };
31 doCheck = false;
32 };
33
34 "silk-python" = selfP.silk_python; # alias for dash style name
35
36 wxdump-linux = superP.buildPythonPackage {
37 pname = "wxdump-linux";
38 version = "0.1.0";
39 src = ./.;
40 pyproject = true;
41 build-system = [ superP.setuptools superP.wheel ];
42 dependencies = with selfP; [
43 psutil
44 pycryptodomex
45 requests
46 fastapi
47 uvicorn
48 python-dotenv
49 lz4
50 lxml
51 protobuf
52 pyahocorasick
53 pyaudio
54 blackboxprotobuf
55 silk_python
56 dbutils
57 pydantic
58 zstandard
59 ];
60 doCheck = false;
61 };
62 };
63
64 pkgs = import nixpkgs {
65 inherit system;
66 overlays = [
67 (final: prev: {
68 python3 = prev.python3.override {
69 packageOverrides = pyOverlay;
70 };
71 python3Packages = prev.python3Packages.overrideScope pyOverlay;
72 })
73 ];
74 };
75 in {
76 packages.${system}.default = pkgs.python3Packages.wxdump-linux;
77
78 devShells.${system}.default = pkgs.mkShell {
79 packages = [
80 (pkgs.python3.withPackages (ps: with ps; [
81 psutil
82 pycryptodomex
83 requests
84 fastapi
85 uvicorn
86 python-dotenv
87 lz4
88 lxml
89 protobuf
90 pyahocorasick
91 pyaudio
92 blackboxprotobuf
93 silk_python
94 dbutils
95 pydantic
96 zstandard
97 ]))
98 pkgs.portaudio # for pyaudio
99 pkgs.ffmpeg # media helpers
100 pkgs.tesseract4 # optional OCR helper
101 pkgs.lz4
102 pkgs.openssl
103 pkgs.libxml2
104 pkgs.libxslt
105 pkgs.zlib
106 ];
107 shellHook = ''
108 export PYTHONPATH="$PWD:$PYTHONPATH"
109 '';
110 };
111 };
112}