熵和恶意软件(针对360比较有效 )
恶意软件会采取许多策略和技巧来从 AV 引擎的扫描中隐藏恶意软件。像shellcode加密,函数调用混淆之类的东西,像这种技术本质上是在加密和压缩数据,因此提高了数据的不可预测性/无序性,也就是提高了熵。所以我们可以根据熵值捕获文件,熵越大,数据就越有可能被混淆或加密,文件也就越有可能是恶意的,熵是一种简单有效的检测技术,但并不能完全识别所有恶意代码。因此,杀毒软件通常使用熵作为其他技术的补充,以更好地识别潜在的威胁。
-识别项目:
https://github.com/langsasec/File-Entropy-Calculator-如何降低熵值:
Restorator-添加常用软件光标
自签名、详细信息
详细信息:Restorator添加版本
自签名项目:
https://github.com/secretsquirrel/SigThief
https://github.com/thelostworldFree/Sign-Sacker
特征码定位
找到杀毒软件判断恶意的地方,代码修改或汇编修改进行突破
使用工具VirTest.exe进行自动定位
第三部点击定位特征码前先开启杀软
找到杀毒的函数 可以使用函数平移 或者函数回调
动态API回调
typedef BOOL(WINAPI* ESL)(
LOCALE_ENUMPROCW lpLocaleEnumProc,
DWORD dwFlags
);
ESL eslw = (ESL)GetProcAddress(
GetModuleHandleA("Kernel32.dll"),
"EnumSystemLocalesW"
);
HMODULE hModule = LoadLibraryA("rpcrt4.dll") ;typedef RPC_STATUS(WINAPI* UFS)(
RPC_CSTR StringUuid,
UUID *Uuid
);
UFS ufsa = (UFS)GetProcAddress(
GetModuleHandleA("rpcrt4.dll"),
"UuidFromStringA"
);