self 发表于 3 天前

tomatoaux - 简易 VaAux2 实现

本帖最后由 self 于 2025-7-17 02:55 编辑

穿山甲会往HKCR里无关键值写垃圾,遂写了一个代替。

本软件使用 GPL-2.0-or-later 授权,分发二进制时请同时分发源代码。
本帖不提供成品下载。

只支持 x64,x86 版本给读者留作习题。


[email protected] (1-user license) Support ends 2077.7.21
00001J-T6C9Q9-ZT086K-79P0B0-9TDRAG-QCN0N9-1URN5P-ZP07WV-7AZKBW-U4MD7H-XYBW5B

/*
* tomatoaux - stub for VaAux2_64.dll
*
* SPDX-License-Identifier: GPL-2.0-or-later
* SPDX-FileCopyrightText: 2025 Zephyr Lykos <[email protected]>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*/
                                 ///
                                  /////
                  #define C(M,   X)case\
             M:strncpy(b,X,d    );break;;
          static char K[      ]="00001J-T6"
      "C9Q9-ZT086K"   "-79P0B0-9TDRAG-QCN0"
      "N9-1URN5P-ZP0""7WV-7AZKBW-U4MD7H-XYBW5B",
    U[/*copyright*/]=   "[email protected] "//
   "(1-user license) "      "Support ends "//
"2077.7.21";typedef void   *p; typedef    int
unsigned u;typedef char*B;;u    static   S(){;;
return 0;}static u f(){ return   1;};;   staticu
T(p,B a,B b,u d){if(!a||!b)return0;b   =0;u h
=0x811c9dc5;for(B c=a;*c!=0;c++)h      =(h^(u)*c)*
0x1000193;switch(h){C(0x1a2c7d3c,U   )C(0x14cba9f9
,K);C(0xed32bea0,"1");C(0xab500ee0,"0")C(0xd6746687,
"14")C(0x4c2e1d75,"IP1")C(0xf06485f4,"2025.01.01")C(
0xb07b2531,"43981")case 0x67965ed2:case 0xd075ec0a:
case 0x79075992:break;default:return /***********/
GetEnvironmentVariableA(a,b,d-1)<d;}return 1;};;
static void d(p){}typedef void(*D)(p);typedef u
    (*F)();typedef u(*M)(p,B,B,u);typedef struct
   {D d;F f,g,h,i,j,k,l;M m;}I;static I A={d,
      f,f,f,f,f,S,f,T};static I*V=&A;I**/***/
      FCD4433C_87CB_4055_9A5D_7ADBF73F03C1
         =&V;/* gcc -includewindows.h -O2
            -oVaAux2_64.dll tomato.c
                  -shared   */

linxiansen 发表于 3 天前

PYG有你更精彩!

toneger 发表于 3 天前

膜拜~!
谢谢大神~!

chchhau 发表于 前天 08:39

PYG有你更精彩!

email123 发表于 前天 20:49

生成的VaAux_64.dll怎么使用呢?

self 发表于 昨天 02:58

email123 发表于 2025-7-16 20:49
生成的VaAux_64.dll怎么使用呢?

看图,直接替换 %LOCALAPPDATA%\Microsoft\VisualStudio\<vs版本号>\Extensions\<VAX安装目录>\VaAux2_64.dll。

email123 发表于 昨天 16:38

lz,我用zig cc -target x86-windows-gnu -includewindows.h -O2 -o VaAux2.dll tomato.c -shared 命令行生成的dll,拷贝覆盖原程序的dll,启动vs,生成的dll无效,是和原因,请指导{:handshake:}

self 发表于 昨天 17:43

email123 发表于 2025-7-17 16:38
lz,我用zig cc -target x86-windows-gnu -includewindows.h -O2 -o VaAux2.dll tomato.c -shared 命令行生 ...

vftable 内的函数需要 __thiscall 所以这份代码不支持 x86,自己改改呗 :)
页: [1]
查看完整版本: tomatoaux - 简易 VaAux2 实现