|
1
|
|
2
没有“加密”,只有混淆
|
|
icemanproOct 22, 2021
3
bat to exe
|
|
IsaacYoungOct 22, 2021
4
std::string result = system("./some_command");
|
|
IsaacYoungOct 22, 2021
5
用 c++重写
std::string result = system("./some_command"); 编译成二进制 |
|
CatCodeOct 22, 2021
6
bat 脚本就是 windows 的一些调用吧 改用 C#写啊 编译成 exe 然后 UPX 打包
|
|
2i2Re2PLMaDnghLOct 22, 2021
8
|
|
2i2Re2PLMaDnghLOct 22, 2021
9
@ysc3839 可以被自动化地反混淆
|
|
diskOct 22, 2021
10
@2i2Re2PLMaDnghL 很多恶意软件会通过加密的 bat/powershell 来实现一些功能,一样被逆向干碎。混淆下糊弄普通用户就差不多了。
|
|
crabOct 22, 2021
11
简单点 base64 下吧,不懂的以后是加密,懂的再怎么弄解密也只是时间问题。
|
|
ysc3839Oct 22, 2021 via Android
12
@2i2Re2PLMaDnghL 我没仔细看过里面的实现,但是其他脚本语言比如 JavaScript,反混淆后变量名也不能保留,可读性会很差。
如果这也不能接受,那只能改用别的语言了。 |
|
13
@ysc3839 两个的实现都是字典法,然后把代码替换成字符串截取
特殊地,第二个强行改了 BOM 头,直接用文本编辑器打开是乱码,但当作 UTF-8 打开就是很正常的内容。 没有做变量名混淆的样子…… 主要是 bat 很难改变量名,因为所有变量名都是线程间共享、进程间 CoW 的环境变量名,其副作用是不可控的。 |
|
g00001Oct 22, 2021
14
可以在 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); |
|
cat9lifeOct 22, 2021
15
绝对的加密肯定是没有啊,编译成 exe 对付一般人应该够了
|