2011-06-03 2 views

ответ

11

Зачем вам это нужно?

В целом Delphi не декомпилирует назад, в отличие от .net, поэтому, в то время как декомпиляция всегда немного рискованна, Ive никогда не находил декомпилятор, который на самом деле сделал это полезным способом, много областей осталось в виде ассемблера и так далее.

Если люди хотят переделать свою работу, они могут, независимо от того, затемнение или нет, черт возьми, некоторые кодеры пишут почти естественно запутывание кода (проработав с несколькими)

Мой голос поэтому, не должно беспокоить , Если кто-то не сможет показать мне декомпилятор для delphi, который действительно работает, и создает полные комплекты компилируемых и все delphi, где он был изначально, я бы не пережил ни одной капли.

+0

@BugFinder Я хочу, чтобы мое программное обеспечение усложнило взломать, чтобы не защищать мой код. Я имею в виду, если у меня есть только один способ проверить серийный номер, тогда его легко взломать, поэтому я хочу обфускать код, чтобы сделать его немного сложнее. Это правильно? – JustMe

+2

Слишком легко сломать на уровне кода машины ваши попытки обфускации кода на уровне источника. Возможно, вам захочется посмотреть на упаковщики, которые шифруют ваш двоичный файл и защищают его от выполнения в рамках отладчика, но практически не существует схемы защиты, которая долгое время не отслеживается. Даже самые маленькие утилиты треснуты в течение нескольких дней после выпуска - это дисциплина в области спорта или субкультуры. Вы просто в конечном итоге сражаетесь с очень способными взломщиками, бегая из ресурсов. Чем больше вы пытаетесь защитить, тем больше они будут инвестировать. – TheBlastOne

+3

@justme Если вы хотите защитить свой код от сухарей, тогда задайте этот вопрос. Это не то, о чем вы просили! – mj2008

6

Нет смысла запутывать, поскольку компилятор уже делает это за вас.

Невозможно повторно создать исходный код из двоичного файла.

И компоненты могут быть распределены полезным способом без распространения исходного кода.

Таким образом, для распространения исходного кода обычно нет (технической) причины.

+1

JustMe может подумать, что распространяемый исходный код является обязательным для его случая, и он хочет скрыть «код» ». – TheBlastOne

+0

@ TheBlastOne Geez, я просто Delphi noob, вот и все – JustMe

+0

. Будете ли вы любезны и укажите мне больше информации о компиляторе Delphi? – JustMe

7

Pythia - это программа, которая может запутать двоичные файлы (а не источник), созданные с помощью Delphi или C++ Builder. Source code for Pythia is here.

Перед: enter image description here

После: enter image description here

+0

Благодаря @Mick это именно то, что я искал – JustMe

4

Вы могли бы сделать другие вещи, чтобы уменьшить способность злоумышленника, чтобы отключить систему активации программного обеспечения, к примеру, но в родном скомпилированные системе как Delphi, вы не можете воссоздать исходный код из двоичных файлов. Другой ответ (принятый в данный момент) говорит именно об этом, и кто-то еще указал на полезный инструмент, чтобы запутать информацию RTTI, которую люди могли бы использовать, чтобы получить представление о внутренних компонентах вашего программного обеспечения.

Вы можете исследовать следующие твердения методы, чтобы блокировать модификацию вашей системы, если это то, что вы действительно хотите:

  1. самомодифицирующегося кода с литниковой логикой, которая делит важные функции вашего кода, такие как программное обеспечение активацию, на различные уровни оперативных контрольных сумм, а также повреждение и ремонт кода.

  2. Обнаружение отладки. Вы можете обнаружить отладчики, используемые в вашем программном обеспечении, и попытаться заблокировать работу программного обеспечения в этом случае.

  3. Зашифровать двоичные данные PE на диске и дешифровать его либо во время загрузки, либо как раз вовремя до его запуска, так что критический код ассемблера не может быть так легко перестроен обратно на язык ассемблера.

Как заявили другие, хакеры, работающие на вашем программном обеспечении, не нуждаются в восстановлении исходных источников для его изменения. Они попытаются, если они вообще попробуют, изменить ваши двоичные файлы напрямую и будут использовать подробное и обширное знание языка ассемблера, чтобы обойти то, чего вы, возможно, не пожелаете.

0

Вы можете использовать бесплатный JCF (Jedi Code Formatter), чтобы запутать исходный код. Однако синтаксис pascal не позволяет сильно обфускации, и JCF даже не делает это лучше всего (ну, это инструмент форматирования кода, а не обфускатор!)

Смежные вопросы