Исправляем высокую энтропию, которая дает дополнительные статические детекты ав, вашего упакованного софта, с помощью метапрограммирования C++ 20.
Код:
До:
---------------------------------------------
Total Entropy : 7.658898546328656
Size : 10.8 KB
Name .text
Size 3584 bytes
Entropy 5.757317522100548
Name .rdata
Size 4096 bytes
Entropy 7.950817412562706
--------------------------------------------
После:
--------------------------------------------
Total Entropy : 5.4966239940876724
Size : 12.5 KB
Name .text
Size 3584 bytes
Entropy 5.783502669099978
Name .rdata
Size 35840 bytes
Entropy 4.6449460947480491
C++:
#include <stdio.h>
// Разбавляем нулями .data секцию
template<unsigned int N, typename T, T value>
struct E {
constexpr E() : array() {
for (unsigned int i = 0; i < N; i++) {
array[i] = (T)value;
}
}
T array[N];
};
#pragma code_seg(".text")
__declspec(allocate(".text"))
constexpr auto e = E<2500, long long, 1>();
#pragma code_seg(".data")
__declspec(allocate(".data"))
constexpr auto e2 = E<2500, long long, 1>();
int main() {
int total = 0;
for (auto x : e.array)
total += x;
for (auto x : e2.array)
total += x;
return total;
}