bat 脚本怎么加密,不想让人看到

2021-10-22 08:38:39 +08:00
 ling516
5730 次点击
所在节点    Windows
18 条回复
ysc3839
2021-10-22 08:46:42 +08:00
miyuki
2021-10-22 08:49:15 +08:00
没有“加密”,只有混淆
icemanpro
2021-10-22 08:57:19 +08:00
bat to exe
IsaacYoung
2021-10-22 09:34:23 +08:00
std::string result = system("./some_command");
IsaacYoung
2021-10-22 09:35:15 +08:00
用 c++重写
std::string result = system("./some_command");

编译成二进制
CatCode
2021-10-22 09:37:28 +08:00
bat 脚本就是 windows 的一些调用吧 改用 C#写啊 编译成 exe 然后 UPX 打包
kokutou
2021-10-22 09:42:11 +08:00
@CatCode #6 upx 分分钟脱掉。。。
.net 还是要上混淆。。。
2i2Re2PLMaDnghL
2021-10-22 10:32:18 +08:00
@icemanpro
@IsaacYoung 这两种静态内容的可以直接读 .data 提取。
就算加壳现场解密,也可以被 Procmon 秒破(直接读你的 syscall )。
2i2Re2PLMaDnghL
2021-10-22 10:36:35 +08:00
@ysc3839 可以被自动化地反混淆
disk
2021-10-22 10:43:32 +08:00
@2i2Re2PLMaDnghL 很多恶意软件会通过加密的 bat/powershell 来实现一些功能,一样被逆向干碎。混淆下糊弄普通用户就差不多了。
crab
2021-10-22 11:20:15 +08:00
简单点 base64 下吧,不懂的以后是加密,懂的再怎么弄解密也只是时间问题。
ysc3839
2021-10-22 12:53:11 +08:00
@2i2Re2PLMaDnghL 我没仔细看过里面的实现,但是其他脚本语言比如 JavaScript,反混淆后变量名也不能保留,可读性会很差。
如果这也不能接受,那只能改用别的语言了。
2i2Re2PLMaDnghL
2021-10-22 13:12:38 +08:00
@ysc3839 两个的实现都是字典法,然后把代码替换成字符串截取
特殊地,第二个强行改了 BOM 头,直接用文本编辑器打开是乱码,但当作 UTF-8 打开就是很正常的内容。
没有做变量名混淆的样子……

主要是 bat 很难改变量名,因为所有变量名都是线程间共享、进程间 CoW 的环境变量名,其副作用是不可控的。
g00001
2021-10-22 13:43:51 +08:00
可以在 aardio 里嵌入 BAT 生成 EXE 文件,
方法很简单, 例如下面几句代码按 F7 就可以生成 EXE 了:

import console
import process.batch;

//批处理 for 遍历并拆分字符串
var bat = process.batch(`
@echo off
for %%i in (abc,def,xyz) do echo %%i
`)
console.log(bat.read(-1))

console.pause()

这样对付一般的小白用户没问题了,
如果还想增加难度,可以把关键信息用 C 语言实现,批处理可以与 aardio 混编,aardio 又可以方便地调用 C 写的 DLL,例如:

import tcc;
//编译 DLL
tcc.build( "/start.dll" ).code = /***
#include <windows.h>
__declspec(dllexport) int Add( int a,int b )
{
return a + b;
}
***/

//加载 DLL
var dll = raw.loadDll( "/start.dll",,"cdecl" );
//调用 C 函数
var result = dll.Add(12,3);
cat9life
2021-10-22 15:14:35 +08:00
绝对的加密肯定是没有啊,编译成 exe 对付一般人应该够了
ling516
2021-10-22 16:57:00 +08:00
@cat9life 怎么编译成 exe
ling516
2021-10-22 17:01:25 +08:00
@ysc3839 两个试了都不行 代码无法运行
ling516
2021-10-22 17:07:08 +08:00
@icemanpro 谢谢 这个可以了 编译 exe

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/809677

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX