Re[18]: длинный переход (глобальные метки)
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 31.03.02 20:35
Оценка:
Здравствуйте 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-ментами и т.д.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.