При написании софта иногда необходимо скрыть его код от посторонних глаз, запутать реверсера, чтобы софт не крякнули.
Одним из способов это сделать является генератор мусорного кода, который создает бессмысленные инструкции с целью разбавить ими код, выполняющий реальную работу. Основная идея заключается в том, чтобы вручную написать подобные блоки мусора (проявите фантазию): inline unsigned Block(unsigned dummy) {
unsigned result = dummy;
for (int i = 0; i < dummy % 1024; i++) {
result *= 2;
result += i;
}
return result + dummy;
} Важно: каждый блок должен быть inline (а лучше __forceinline, или, для gcc, always_inline), чтобы мусор был встроен в место вызова И каким-то образом вызывать блоки в случайном порядке, причем порядок должен определяться во время компиляции, а сам мусор должен инлайниться в место вызова. Так же должна быть возможность указывать количество мусора для генерации (не писать же подряд 50 вызовов Junk(); Junk(); Junk(); подр