Не одним, так другим средством оттрейсят, есть в конце-концов IDA и др. декомпилеры... Если прога дорогая - то самый лучший способ - шифровка проги и данных ключом, который генерится на основе подлинных паспортных данных покупателя. Ключ вводится каждый раз при запуске, а прога и данные декриптуются пофрагментно, по мере использования. Если пароль "вышел в тираж", то по имени будет ясно, кто его распустил. Но для мелких дешевых прог такой способ не годится - слишком геморно для юзера.
В шароваре я делаю так: пароль генерится на основе инициалов с креды, но вводится единожды, при инсталляции (это, конечно не гарантирует от покупки по 3.14зженной креде, но против етого никак не поборешься...). Хранится он в реестре, в зашифрованном виде, чтобы соседи не сперли, но особенно его прятять нет смысла, т.к. любые ф-ции чтения данных (из реестра, с диска) вычисляются элементарно. Затем, (Главная проблема!) загрузив пароль для проверки при очередном запуске проги, нужно так его спрятать в памяти, чтобы нельзя было найти, когда его будешь проверять (вот тут, я и сам с удовольствием бы поучился!). Беда в том, что если пароль хранится в памяти, то всегда можно поставить БПТ на эту ячейку, и таким образом найти фрагмент, где он пережевывается дальше. Я выкручиваюсь таким способом: Сохраняю его с помощью одной ф-ции АПИ, а читаю другой, для этого не предназначенной, используемой левым способом, так, чтобы найти все это нуно трейсить саму Вынь; но таких пар ф-ций очень мало, по етому, как конкретно я это делаю, разглашать не буду, ищи аналогичную пару сам...
|