Виртуальная машина на страже порядка GPcH Хакер, номер #077, стр. 077-106-3 1. обфускатор IL кода, способный убрать всю лишнюю информацию из EXE. После такой обработки исследовать программу будет крайне сложно даже с декомпилятором. 2. программу для конвертирования IL кода в обычный native-код. Но по слухам эта примочка очень сильно глючит, и то, что твоя программа после конвертирования будет нормально работать, зависит лишь от фазы луны :). Обе эти программки входят в состав Visual Studio последних версий, так что не забывай о них. [интерпретирование в Delphi] Конечно, VB, VS .NET - это все круто, но как же быть тем, кто пишет программы на Delphi? Delphi ведь не умеет создавать интерпретируемый код (последняя версия, имхо, умеет IL на выходе получать – прим. Горл). Именно поэтому программы написанные на данном языке программирования работают быстрее программ, написанных, например на Visual Basic. Скажу по секрету, ломаются они тоже быстрее :). Так как же защитить Delphi-проги? До недавнего времени я бы ответил, что никак, но теперь есть замечательная программа VM Protect, написанная нашим соотечественником. Умеет она не много не мало, а переводить отдельные процедуры твоей программы на специальный трудноломаемый p-код. Автор тулзы пошел дальше стандартных интерпретируемых языков. В его интерпретаторе функции и соответствующие им коды выбираются динамически, и написать декомпилятор данного языка практически невозможно. Конечно, всю программу защищать не имеет смысла, и я тебе советую ограничиться защитой только тех функций, в которых твоя программа производит проверку пароля, активацию, разблокирование опций, установку trial'а – короче, тех функций, которые крэкеру видеть нежелательно. Использовать эту чудо-программу не сложно. Для начала определись, какие функции в своей программе ты решил защитить. Затем открывай Delphi, в меню «Project» выбирай «Options» и щелкай по вкладке «Linker». Там радиокнопку «Map File» установи в положение «Detailed», жми «OK» и компилируй свою программу. В папке с экзешником должен появиться *.map файл. Из него то и будет брать данные о процедурах VM Protect. Когда все готово запускай VM Protect, жми в меню «Файл» на «Открыть» и выбирай свою прогу. Ты увидишь пока пустое окно. Не стесняйся, жми <Ctrl>+<Ins> и, если ты все сделал правильно, должен появиться список процедур, используемых в твоей программе. Там будет куча ненужных процедур, созданных компилятором и ближе к концу списка будут те, которые создал ты сам. Выбирай ту, которую хочешь защитить и жми «OK» - она добавится в то самое пустое окно. Точно также добавляй все нужные процедуры. Перед тем как жать на зеленый треугольник не поленись зайти на вкладку "Опции". Если в тех процедурах, что ты решил защитить, не требуется высокая скорость их выполнения, то ставь все галочки кроме режима отладки. Режим отладки нужен для бейсиковских прог, нашей же проге он не потребуется, зато остальными опциями пренебрегать не стоит, они только улучшат защиту. Еще смени название секции на что-нибудь типа ".idata", чтобы никто не догадался, что ты заюзал защиту в своей программе. Кстати, если ты случайно забыл создать *.map файл, то процедуры в программе можно выбрать не только по именам, но и по адресам - для этого служит вкладка Dump. Теперь, когда все подготовлено, нелишне сохранить проект. Фишка сохранения в том, то при последующих компиляциях, если адреса процедур в exe-файле будут меняться, VM Protect автоматически их найдет и пересчитает адреса. Потому все телодвижения можно делать всего один раз, а потом юзать готовый проект. Ладно, совсем я тебя заговорил, жми зеленый треугольник на тулбаре и радуйся, кряки к твоей программе появятся нескоро, а может, и вообще не появятся - все зависит от того, насколько грамотно ты реализовал защиту (внешнюю в лице VM Protect и внутреннюю). Только не спрашивай меня, где взять VM Protect, диски то не зря к журналам прилагают :). |