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