Здравствуйте IT, Вы писали:
IT>Для этого можно воспользоваться #pragma code_seg. Каждую функцию можно поместить в отдельный кодовый сегмент. Линкер сегменты сортирует в определённом порядке (по имени), на это можно смело закладываться, т.к. на этом в VC построена инициализация CRTL.
IT>Внешние кодировщики опять же могут почитать map-файл и не надо будет оставлять следы в коде.
Обе эти идеи сложно автоматизировать.
void Test ()
{
bla-bla-bla
BEGIN_CODE_CRYPT()
bla-bla-bla
END_CODE_CRYPT()
bla-bla-bla
}
"Скобки" BEGIN_CODE_CRYPT()/END_CODE_CRYPT() — указывают какой код паковать и вставляют код для распаковки/запаковки в run-time.
А на уровне функций это сложнее.
1. Надо каждую закоденную функцию оборачивать во wrapper, который ее будет кодить/декодить.
2. Писать внешнюю прогу которая будет разбираться с map-ом, code-seg-ментами и т.д.