Russian Qt Forum

Программирование => Общий => Тема начата: cya-st от Февраль 27, 2010, 17:23



Название: Обфускатор
Отправлено: cya-st от Февраль 27, 2010, 17:23
Всем привет...
Подскажите пожалуйста какой нибудь обфускатор для программ созданных на Qt, если таковой существует.


Название: Re: Обфускатор
Отправлено: pastor от Февраль 27, 2010, 17:54
Так, ради интереса: а зачем вам это?


Название: Re: Обфускатор
Отправлено: xokc от Февраль 27, 2010, 20:33
Не хочет читаемые исходники выкладывать. GPL - вирус :) (С) - Microsoft


Название: Re: Обфускатор
Отправлено: Rcus от Февраль 27, 2010, 20:47
К слову о читаемости, я порой смотрю на написанное мною пару месяцев назад и окончательно теряю веру в человечество... /*смотрит на подпись :) */


Название: Re: Обфускатор
Отправлено: cya-st от Февраль 27, 2010, 21:50
Цитировать
Не хочет читаемые исходники выкладывать
вот именно :)


Название: Re: Обфускатор
Отправлено: Vass от Февраль 27, 2010, 22:03
cya-st, а что мешает их просто не выкладывать?


Название: Re: Обфускатор
Отправлено: cya-st от Февраль 27, 2010, 22:32
Цитировать
cya-st, а что мешает их просто не выкладывать?
Мда, ну обфускатор вообщето для защиты приложения от дизассемблирования.


Название: Re: Обфускатор
Отправлено: Vass от Февраль 27, 2010, 23:18
Мда, ну обфускатор вообщето для защиты приложения от дизассемблирования.
А причем тут тогда Qt? Мне как кажется бинари по-старинке обфусцируются всякими упаковщиками. В окошках точно чего-то есть для этого, а под линуксом не знаю.

P.S. Или я совсем ничего не понимаю...


Название: Re: Обфускатор
Отправлено: cya-st от Февраль 27, 2010, 23:28
Цитировать
А причем тут тогда Qt? Мне как кажется бинари по-старинке обфусцируются всякими упаковщиками. В окошках точно чего-то есть для этого, а под линуксом не знаю.

P.S. Или я совсем ничего не понимаю...
Обфускация - приведение исходного текста или исполняемого кода программы к виду, сохраняющему ее функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции. Упаковщики это совсем другое.


Название: Re: Обфускатор
Отправлено: cya-st от Февраль 27, 2010, 23:31
Для .NET например есть обфускатор - Dotfuscator. Я и спрашиваю есть что нибудь для Qt?


Название: Re: Обфускатор
Отправлено: QCasper от Февраль 27, 2010, 23:33
Для .NET например есть обфускатор - Dotfuscator. Я и спрашиваю есть что нибудь для Qt?

Qt это с++, стало быть надо искать для с++, а не для Qt конкренто. Это все равно, что спрашивать обфускатор для KDE.


Название: Re: Обфускатор
Отправлено: cya-st от Февраль 28, 2010, 00:02
Цитировать
Qt это с++, стало быть надо искать для с++, а не для Qt конкренто. Это все равно, что спрашивать обфускатор для KDE.
Я указал Qt, потому, что имеется ввиду обфускатор для винды, линукса и т.д.


Название: Re: Обфускатор
Отправлено: 0rm от Февраль 28, 2010, 00:57
Хм, а что Вам мешает использовать любой из существующих протекторов? ASProtect, Themida, SoftwarePassport(Armadillo) etc. Большинству из них абсолютно все равно каким компилятором вы пользуетесь и какие библиотеки используются. Правда стоят они порядочно и вопреки всем своим плюсам, отсеивают в основном только определенную, менее опытную категорию крекеров. Ну это все под окошками. Для линукса вряд-ли существуют подобные инструменты.

Если же требуется хоть какая-то защита от автоматической распаковки и анализа бинарника, то самый простой(при условии знания формата PE) и кроссплатформенный вариант, это использовать упаковщик UPX третей версии, в котором появилась потдержка ELF. После упаковки достаточно модифицировать сигнатуру на EP (Entry point). Например создать експешн на EP, и переместить код роспаковщика UPX в обработчик исключений. Нечто подобное можно проделать и с ELF.
Благодаря этому вы сможете защитить бинарник от распаковки с помощью того же UPX и простейших универсальных распаковщиков. Но не более(дебагеры и брейк поинт на esp-4 никто не отменял)  :D.

P.S. Универсальной защиты не существует, и если кто-то задастся целью сломать/дизассемблировать/реверснуть алгоритмы из вашей программы, то он непременно это сделает. Да, он потратит на это больше времени, но все равно добьется успеха. Не проще ли использовать GPL и экономить время себе и остальным ? ;)


Название: Re: Обфускатор
Отправлено: SABROG от Февраль 28, 2010, 01:23
Во, тема (http://www.ioccc.org/years.html#2004).

Цитировать
для программ созданных на Qt
Если речь про исходники, то забудь, обфускатор рушит мета-объектную систему, т.к. moc не может найти ключевые слова типа Q_OBJECT и соответственно ничего не генерит.


Название: Re: Обфускатор
Отправлено: cya-st от Февраль 28, 2010, 13:03
Понятно, спасибо всем за ответы.


Название: Re: Обфускатор
Отправлено: tim474 от Февраль 28, 2010, 13:57
А может, автор хочет зашить в Qt-шную программу вредноносный код?


Название: Re: Обфускатор
Отправлено: tim474 от Февраль 28, 2010, 13:59
Цитировать
Не хочет читаемые исходники выкладывать.
Обфусцированные «исходники» — это не исходники. Поэтому в любом случае обойти GPL это не поможет. Столлман не идиот, чтобы оставлять такие лазейки.


Название: Re: Обфускатор
Отправлено: Пантер от Февраль 28, 2010, 14:42
Почему это не исходники? Вполне себе исходники, только прочитать их Очень тяжело.


Название: Re: Обфускатор
Отправлено: break от Февраль 28, 2010, 15:12
Цитировать
Почему это не исходники? Вполне себе исходники, только прочитать их Очень тяжело.
Исходный код это то с чем работал программист во время создания программы - вот если он над "обфускированном" варианте тоже сможет работать - то да -а так нет. Иначе бинарники тоже исходный код - только для процессора - если потренироваться как следует может можно и его научиться понимать.

А вообще идея шифровать исходники программы написанной с использованием библиотеки распространяющейся через GPL и LGPL - настолько "жлобовская" что даже и не верится что этот самый исходный код кому-то нужен и чего-то стоит. Многие сложные вещи распространяются бесплатно - зато какая нибудь маленькая "какашка" с зашифрованными исходниками... - БРЕД! Уж лучше тогда под LGPL вообще без исходников распространять...


Название: Re: Обфускатор
Отправлено: SABROG от Февраль 28, 2010, 15:20
Думается мне, что любой суд это расценит за попытку сокрытия исходного кода. Когда спросят для чего вы использовали обфускатор на исходниках, ответ "чтобы код весил меньше и компилился быстрее" вряд ли покажется убедительным.

Я вижу только одну причину использовать обфускатор в проекте с открытым исходным кодом, это когда 90% кода написано с использованием Qt и какая-то часть Ноу-Хау, скажем полностью на boost или stl обфусцирована.


Название: Re: Обфускатор
Отправлено: BRE от Февраль 28, 2010, 15:24
Исходный код это то с чем работал программист во время создания программы - вот если он над "обфускированном" варианте тоже сможет работать - то да -а так нет. Иначе бинарники тоже исходный код - только для процессора - если потренироваться как следует может можно и его научиться понимать.
Исходный код - это такой код, который можно отдать компилятору и он из него сделает объектный код.
А сможет с ним работать программист, или не сможет, зависит от программиста.
Есть такие исходники, смотря на которые думаешь, что их обфускировали, а оказывается нет, это стиль у программиста такой.  :)


Название: Re: Обфускатор
Отправлено: break от Февраль 28, 2010, 15:32
Цитировать
Исходный код - это такой код, который можно отдать компилятору и он из него сделает объектный код.
несоглашусь
исходя из этого утверждения промежуточный байт-код JAVA или .NET тоже исходник... Его же сжирает рантайм машина соответствующего языка.


Название: Re: Обфускатор
Отправлено: tim474 от Февраль 28, 2010, 15:49
GPL определяет, что исходный код — это код, который предпочтителен, для внесения в него изменений. Поэтому GPL, LGPL и AGPL обойти с помощью него не получится. Насчёт других копилефт-лицензий ­— надо сам текст лицензий читать. Но, сами активисты свободного и открытого ПО считают, что обфусцированный код нельзя назвать исходным. Например, в Open Source Definition это упоминается, также Столлман об этом заявлял.


Название: Re: Обфускатор
Отправлено: SABROG от Февраль 28, 2010, 16:05
Но ведь можно рассматривать и другую ситуацию. Программа проприетарная и продается в виде исходников, так как средств на создание билд-ферм нет (или желания), но тем не менее хочется, чтобы код нельзя было тупо прокопипастить другими людьми в свои программы. Конечно это не избавит от возможности статически прилинковать уже откомпилированный код к другому проекту. Плагиат можно будет заметить разве что по машинному коду. А если автор использует ASProtect, так эту разницу можно будет увидеть только с отладчиком. Это нужно быть серьезно в этом заинтересованным, чтобы доказать факт плагиата.


Название: Re: Обфускатор
Отправлено: cya-st от Февраль 28, 2010, 17:27
Цитировать
Многие сложные вещи распространяются бесплатно - зато какая нибудь маленькая "какашка" с зашифрованными исходниками... - БРЕД! Уж лучше тогда под LGPL вообще без исходников распространять...
Речь не идет о распространении исходников, а о защите программы. Поясните мне пожалуйста зачем тогда обфусцируют программы на Java, .NET и т.д. Если програмист/софт фирма хочет продавать программу и защищает ее методом обфускации, то почему она "какашка"? По вашей логике все кто продают софт говнокодеры?
Теперь второе, LGPL насколько я понимаю позволяет комерческое распространение ПЗ, или это не так?


Название: Re: Обфускатор
Отправлено: tim474 от Февраль 28, 2010, 20:45
Цитировать
и защищает ее методом обфускации, то почему она "какашка"? По вашей логике все кто продают софт говнокодеры?
По мнению одного дяди с бородой (но ты его, скорее всего, не знаешь) — примерно да (если слово "продавать" заменить на "ограничивать свободу пользователя). Но речь сейчас не о нём, это в другом месте можно обсудить, например, на ЛОРе.
Цитировать
LGPL насколько я понимаю позволяет комерческое распространение ПЗ, или это не так?
LGPL позволяет линковать защищённый ей продукт с продуктами, распространяемыми под любой лицензией, в том числе проприетарной, но при условии, что пользователь сможет сам слинковать твою проприетарную программу не только с той версии LGPLьной программы, которая была предоставлена лицензиаром, а с любой. А сама LGPL'ьная библиотека должна распространяться в соответствии с LGPL (с возможностью получения лицензиатом её исходных кодов). А коммерческое распространение без запрета пользователю на модификацию и распространение программы допускает и GPL. И вообще, если ты работаешь в софтверной компании, то надо бы сначала читать лицензии на все продукты, которыми ты пользуешься для разработки.


Название: Re: Обфускатор
Отправлено: SABROG от Февраль 28, 2010, 20:51
И вообще, если ты работаешь в софтверной компании, то надо бы сначала читать лицензии на все продукты, которыми ты пользуешься для разработки.

Если я использую gcc компилятор под GPL3 лицензией и продаю бинарники с моей программой какие на меня накладываются обязанности или ограничения?


Название: Re: Обфускатор
Отправлено: tim474 от Февраль 28, 2010, 20:57
Цитировать
Если я использую gcc компилятор под GPL3 лицензией и продаю бинарники с моей программой какие на меня накладываются обязанности или ограничения?
Никакие. А если, например, средства разработки включают поставляемый с ними код в продукт, получаемый на выходе, то ограничения могут быть.


Название: Re: Обфускатор
Отправлено: cya-st от Февраль 28, 2010, 21:06
Цитировать
А сама LGPL'ьная библиотека должна распространяться в соответствии с LGPL (с возможностью получения лицензиатом её исходных кодов).
Но LGPL не обязывает открывать исходный код. Я не вношу изменения в саму библиотеку, а создаю програмный продукт с помощью Qt.


Название: Re: Обфускатор
Отправлено: SABROG от Февраль 28, 2010, 21:09
Цитировать
Если я использую gcc компилятор под GPL3 лицензией и продаю бинарники с моей программой какие на меня накладываются обязанности или ограничения?
Никакие. А если, например, средства разработки включают поставляемый с ними код в продукт, получаемый на выходе, то ограничения могут быть.

Включают конечно, STL например будет вшит в мою программу или система исключений. Или о чем речь?


Название: Re: Обфускатор
Отправлено: break от Февраль 28, 2010, 21:25
Цитировать
Но LGPL не обязывает открывать исходный код. Я не вношу изменения в саму библиотеку, а создаю програмный продукт с помощью Qt.
тогда и не нужно распространять исходники - уж лучше так чем распространять зашифрованные исходники


Название: Re: Обфускатор
Отправлено: tim474 от Февраль 28, 2010, 21:25
Цитировать
Но LGPL не обязывает открывать исходный код. Я не вношу изменения в саму библиотеку, а создаю програмный продукт с помощью Qt.
Тогда, думаю, достаточно указать в программе информацию о лицензии и ссылку на сайт разработчика Qt. За подробностями, опять же, обращайтесь к тексту LGPL. Но требование предоставить возможность связать твою программу с другой версией Qt никто не отменял.

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


Название: Re: Обфускатор
Отправлено: cya-st от Февраль 28, 2010, 21:55
В общем я так понял: продавать свой софт можно (предоставить лицензию и ссылку на сайт разработчика Qt), защищать програму (не исходник) пакером.


Название: Re: Обфускатор
Отправлено: break от Февраль 28, 2010, 22:11
Цитировать
защищать програму (не исходник) пакером.
глупо как -то

все эти пакеро-защиты профессионал снимет на раз, уж защищать тогда ключем или привязкой к диску


Название: Re: Обфускатор
Отправлено: cya-st от Февраль 28, 2010, 22:22
Цитировать
все эти пакеро-защиты профессионал снимет на раз, уж защищать тогда ключем или привязкой к диску
Некоторые пакеры включают в себе защита ключом и привязкой к диску. WinLicence например. Да и последнюю версию Themida не каждый крякер снимет.


Название: Re: Обфускатор
Отправлено: SABROG от Февраль 28, 2010, 22:28
Да и последнюю версию Themida не каждый крякер снимет.

Ключевые слова "последнюю" и "не каждый". Это означает - не сегодня, так завтра, а не 100% защиту.

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

Из минусов хороших протекторов:

Цитировать
Часто трояны упаковываются декомпиляторами, чтобы их было сложнее обнаружить. А так как антивирус не может распаковать фемиду, то на всякий случай он ругается.

Клиент бы расстроился...


Название: Re: Обфускатор
Отправлено: cya-st от Февраль 28, 2010, 22:47
Код:
А так как антивирус не может распаковать фемиду, то на всякий случай он ругается.
Если фемида лицензионная, то антивирус не ругается (по крайней мере касперский).


Название: Re: Обфускатор
Отправлено: SABROG от Февраль 28, 2010, 23:00
То есть если я на вирусах и троянах зарабатываю деньги и они у меня есть, я позволю себе купить лицензионную фемиду и прощай касперский?


Название: Re: Обфускатор
Отправлено: cya-st от Февраль 28, 2010, 23:12
То есть если я на вирусах и троянах зарабатываю деньги и они у меня есть, я позволю себе купить лицензионную фемиду и прощай касперский?
В общем да. Но вычислить кто написал вирус накрытый лицензионной фемидой не проблема.
Не вижу логики: если антивирус будет на всякий случай ругатся на програму или вирус, то что это меняет? Почему антивирус не ругается на UPX, ASProtect? У касперского есть еще евристический анализ :), современные антивирусы не только сканируют файли на наличее зловредной сигнатуры.


Название: Re: Обфускатор
Отправлено: cya-st от Февраль 28, 2010, 23:17
Есть всем известная программа TheBat накрытая фемидой, но я нигде не слышал что бы антивирус ругался на нее.


Название: Re: Обфускатор
Отправлено: break от Февраль 28, 2010, 23:34
Цитировать
Ключевые слова "последнюю" и "не каждый". Это означает - не сегодня, так завтра, а не 100% защиту.
+100
И антивирусы действительно ругаются - и эвристический анализ как раз сбиваться может т.к. фактически запускаемый файл модифицирует себя, или создает другой EXE который потом запускает и т.д. - короче похоже на алгоритм вируса!



Название: Re: Обфускатор
Отправлено: SABROG от Март 01, 2010, 00:19
Сейчас через какой-нибудь PayPal можно купить любую программу и концы ты не найдешь кто владелец аккаунта и привязать к лицензии не сможешь конкретного человека.


Название: Re: Обфускатор
Отправлено: 0rm от Март 01, 2010, 11:12
cya-st, если вы планируете защищать программу с помощью пакера/протектора, то это впустую потраченные деньги. Для того чтобы хотя бы прикинуть положение дел достаточно зайти на краклаб или васм и поискать темы про распаковку интересующего вас протектора. Результаты вам точно не понравятся, к тому же это все паблик, а крек-комьюнити изобилует приватными мануалами и утилитами. Сломают даже не сомневайтесь. Разве что продукт будет ненужным и непопулярным.

Вам надо продумать вариант защиты самому, а не перекладывать это дело на стороннюю утилиту. Есть достаточно методов которые помогут вашему продукту продержатся довольно длительное. Например малопопулярный, но эффективный метод с использованием асимметричного шифрования RSA.
Вкратце можно описать так:
Имеется процедура необходимая для полного функционирования программы, но необязательная для ознакомления с ней.
Эта процедура присутствует в программе в зашифрованном виде. Серийный номер служит ключом расшифровки этой процедуры.
Можно добавить ещё что-то в зависимости от фантазии. Но важно понимать что это только отсрочит взлом.
Даже если вы используете ключ размером 1024 бита и взломщик не сможет факторизировать приватную экспоненту. То достаточно одного серийника(кардинг, кража, троян и тд) чтоб получить универсальный патч.


Название: Re: Обфускатор
Отправлено: break от Март 01, 2010, 11:37
0rm - согласен во всем
Цитировать
Есть достаточно методов которые помогут вашему продукту продержатся довольно длительное.
для популярнорй программы - время будет совсем малое, для непопулярной и ненужной можно вообще тупую проверку вставить и никто ее никогда не будет ломать...


Название: Re: Обфускатор
Отправлено: cya-st от Март 01, 2010, 11:57
Цитировать
cya-st, если вы планируете защищать программу с помощью пакера/протектора, то это впустую потраченные деньги. Для того чтобы хотя бы прикинуть положение дел достаточно зайти на краклаб или васм и поискать темы про распаковку интересующего вас протектора. Результаты вам точно не понравятся, к тому же это все паблик, а крек-комьюнити изобилует приватными мануалами и утилитами. Сломают даже не сомневайтесь. Разве что продукт будет ненужным и непопулярным.
На краклаб и васм зарегистрирован где-то 5 лет, еще на tuts4you. Немного занимался сломом. 0rm - вы наверное полный дилетант в этой сфере. Пакеры ломаются, но годичной давности, программы накрытые новыми версиями пакеров не каждый сломает, посмотрите цены за слом на краклаб. Конечно все ломается, с этим я согласен.


Название: Re: Обфускатор
Отправлено: cya-st от Март 01, 2010, 11:58
Цитировать
+100
И антивирусы действительно ругаются - и эвристический анализ как раз сбиваться может т.к. фактически запускаемый файл модифицирует себя, или создает другой EXE который потом запускает и т.д. - короче похоже на алгоритм вируса!
Почему на TheBat не ругается?


Название: Re: Обфускатор
Отправлено: cya-st от Март 01, 2010, 12:05
Цитировать
для популярнорй программы - время будет совсем малое, для непопулярной и ненужной можно вообще тупую проверку вставить и никто ее никогда не будет ломать...
в этом топике я заметил, что вы сильно озабочены качеством какой то виртуальной ненаписанной программы, "..какашка..., ..ломать никто не будет..." :), вы студент и у вас параноя за несданную курсовую :).


Название: Re: Обфускатор
Отправлено: SABROG от Март 01, 2010, 13:57
Почему на TheBat не ругается?
Наверно подпись существует.

Некоторые ругаются:
http://www.sunbeltsecurity.com/threatdisplay.aspx?name=Win32.Themida_Packed!Eldorado&tid=4680648&cs=6AFD9E13E61CE987FF007C14F2FEF673
http://www.pc1news.com/virus/alias-w32-themida-packed-eldorado-141997.html


Название: Re: Обфускатор
Отправлено: 0rm от Март 01, 2010, 14:39
cya-st, прежде всего давайте не будем переходить на личности и бросаться оскорблениями, я не высказывал свое мнение о вас и делать это не собираюсь, топик не о том.
Давайте разберемся по пунктам:
Цитировать
На краклаб и васм зарегистрирован где-то 5 лет, еще на tuts4you.
Продолжительность регистрации на краклабе сути дела не меняет. Если бы вы действительно активно занимались взломом, то у вас бы не возникали такие вопросы по поводу защиты от дизассемблирования и темы этой скорее всего тоже не было бы, как и обсуждения взломоустойчивости протекторов.

Цитировать
Немного занимался сломом. 0rm - вы наверное полный дилетант в этой сфере. Пакеры ломаются, но годичной давности, программы накрытые новыми версиями пакеров не каждый сломает, посмотрите цены за слом на краклаб.
То что вы немного занимались сломом это заметно, вы элементарно путаетесь в терминологии. Пакеры применяются для уменьшения размеров бинарников и никакой защиты они не предоставляют. Вы наверное хотели сказать протекторы или крипторы  ;) По поводу того что новую версию протектора не каждый сломает это верно, но каждому её ломать и не надо. Достаточно одного.
Я имею неплохой опыт в реверсинге, около четырех лет был фаундером одной релизной группы и во время этой деятельности сталкивался с разными видами защит и могу сказать что если приходилось отказываться от взлома какой-то программы то было это чаще всего из за продуманной защиты и грамотного применения криптографии. Новые же версии протекторов наоборот встречались с азартом(что-то вроде "Интересно что новенького в этой версии").

Цитировать
Конечно все ломается, с этим я согласен.
Именно это я и хотел сказать в предыдущем сообщении, только более развернуто. Протекторы это массовое явление, и люди которые набили руку на их снятии врядли испугаются новой версии. В то время как оригинальная защита с которой взломщик ещё не сталкивался заметно снизит скорость взлома.




Название: Re: Обфускатор
Отправлено: 0rm от Март 01, 2010, 14:45
для популярнорй программы - время будет совсем малое, для непопулярной и ненужной можно вообще тупую проверку вставить и никто ее никогда не будет ломать...
Точно, это самый взломоустойчивый протектор, называется "Неуловимый Джо" (http://ru.wikipedia.org/wiki/Джо)  ;D


Название: Re: Обфускатор
Отправлено: cya-st от Март 01, 2010, 15:28
Цитировать
То что вы немного занимались сломом это заметно, вы элементарно путаетесь в терминологии. Пакеры применяются для уменьшения размеров бинарников и никакой защиты они не предоставляют.
Мда, кто путается в терминологиях? Может старый UPX и уменьшает размер, современные пакеры с динамическим распаковыванием (чем не защита, попробуйте дизассемблировать запакованый екзешник) размер увеличивают. Не хочу вас обидеть, прошу меня простить, но вы есть дилетант в этой сфере. Я не говорю что я продвинутый крэкер и даже не дотягиваю к середнячкам, но такие вещи надо знать.
Еще одно хочу сказать, я согласен, все проги ломаются, для профессионала не составляет большого труда, но вы посмотрите цены на краклаб за взлом. Просто я хочу выбрать оптимальный вариант защиты программы.
И я не очень согласен с тем, что лучше реализовать свою защиту чем пакер, протектор и т.д., слишком много надо сделать: AntiDebug, AntiFileMon, упаковать и т.д.


Название: Re: Обфускатор
Отправлено: 0rm от Март 01, 2010, 16:22
... современные пакеры с динамическим распаковыванием (чем не защита, попробуйте дизассемблировать запакованый екзешник) размер увеличивают. Не хочу вас обидеть, прошу меня простить, но вы есть дилетант в этой сфере.
;D ;D ;D Ну вы даете, никто ведь не дизассемблирует упакованные ехе'шники(это все равно что rar архив в ворде открывать) , достаточно подождать пока упаковщик распакует всю программу в память, затем снять дамп и восстановить IAT. Дамп уже и дизассмится.
Можете не извинятся, дилетант я по вашему мнению или нет, но положение вещей это не меняет.

P.S. Прекращаю флейм, ато начинает напоминать одно из соревнований Специальной Олимпиады.


Название: Re: Обфускатор
Отправлено: cya-st от Март 01, 2010, 17:04
У меня просто нет слов, давайте я запакую екзешник фемидой (без других наворотов, просто упаковать), так я уверен вы этот rar-файл :) до конца этого года не распакуете.
Цитировать
достаточно подождать пока упаковщик распакует всю программу в память
протектор никогда не распаковывает всю прогу в память (динамическая упаковка), распаковывает по частям. Вашым способом дампили проги лет десять назад.
Советую почитать http://www.wasm.ru/publist.php?list=23 (http://www.wasm.ru/publist.php?list=23)


Название: Re: Обфускатор
Отправлено: SABROG от Март 01, 2010, 23:12
Возвращаясь к первоначальной теме. Мне всё-таки удалось настроить cobf под тестовый example от Qt, все собралось и работает. Аттач прилагается.

Проблемы с которыми я столкнулся. Во первых нужно создавать минимум 3 файла, в одном перечислить все исходники и хедеры (хедеры Qt и хедеры которые будут обрабатываться moc'ом категорически не включать в список), в другом перечислять все токены (имена встречающиеся во всех твоих исходниках кроме Qt, в том числе ключевые слова), если один токен забудешь, то компилиться не будет. К счастью есть возможность вывести все токены из исходников. Макросы и moc-зависимые ключевые слова вынести в отдельный файл - макросы (т.е. из файла токенов удалить и добавить в файл макросов). Например SIGNAL, SLOT и ВСЕ названия сигналов и слотов с типами, которые упоминаются в connect(), иначе соединения не будет. Если у сигнала параметр int, то всё пипец, уже как токен его не применишь и этот int будет "светиться" по всем исходникам. Можно конечно сделать рефакторинг, чтобы всё Qt'шное оставалось в других файлах, а стратегические "защитить".

В общем когда всё в итоге собралось и заработало я проанализировал полученный "доширак" и пришел к неутешительному выводу: есть возможность написать uncobf, достаточно взять хедер где создаются макросы и подставить в .cpp код значения. Перевести все строковые переменные в человеческий вид (unhex), потом пройтись beautifier'ом и voila.

cobf больше НИЧЕГО не делает! Как заключение. Убить выравнивание и дать не членораздельные имена и человек сможет. Эта защита от дурака или просто ленивого человека.


Название: Re: Обфускатор
Отправлено: cya-st от Март 01, 2010, 23:33
Цитировать
Возвращаясь к первоначальной теме. Мне всё-таки удалось настроить cobf под тестовый example от Qt, все собралось и работает.
Уже кое-что...


Название: Re: Обфускатор
Отправлено: break от Март 02, 2010, 01:03
Цитировать
в этом топике я заметил, что вы сильно озабочены качеством какой то виртуальной ненаписанной программы, "..какашка..., ..ломать никто не будет..." ,

Да ну? Я озабочен? - я ничего не защищаю, и темы про обфускаторы на форуме открытой библиотеки не создавал! и не пытаюсь скрыть исходники проекта распространяемого под GPL. Уж если хочется распространять проект без исходников чтобы зарабатывать на этом свой хлеб - есть для этого LGPL. А это все "Жлобовские замашки". Да и уверен на 90% ваш проект проиграет по ценности кода существующим проектам с открытыми исходниками.

Я уже видел не раз такие вещи - пример платные драйвера софтовых модемов для ноутбуков под линукс. И их цена сравнимая со стоимостью внешнего модема - натуральная "жлобовская выходка"!


Название: Re: Обфускатор
Отправлено: cya-st от Март 02, 2010, 11:37
Цитировать
и не пытаюсь скрыть исходники проекта распространяемого под GPL
Кстати я тоже :). Даже неупотребил гнусного слова GPL :) ;D :)


Название: Re: Обфускатор
Отправлено: cya-st от Март 02, 2010, 11:46
Цитировать
Да и уверен на 90% ваш проект проиграет по ценности кода существующим проектам с открытыми исходниками.
Слабонервным защитникам опенсоурс дальше не читать ;D. Чем бесплатный линукс лучше платной винды, а если он лучше, то почему у вас установлена винда. Только не надо расказывать, что вы пользуетесь сугубо опенсоурсным софтом :).


Название: Re: Обфускатор
Отправлено: SABROG от Март 02, 2010, 12:23
Цитировать
Да и уверен на 90% ваш проект проиграет по ценности кода существующим проектам с открытыми исходниками.
Слабонервным защитникам опенсоурс дальше не читать ;D. Чем бесплатный линукс лучше платной винды, а если он лучше, то почему у вас установлена винда. Только не надо расказывать, что вы пользуетесь сугубо опенсоурсным софтом :).

У многих по 2-3 ОС стоят на компах. Я от винды не могу отказаться из-за того, что невозможно полностью перейти на linux, так как большинство людей используют Windows. Например файлы Office, которые используют кодировку Arial Cyr. В Linux есть Arial, но не Arial Cyr, в винде это всего-лишь алиас (синоним) того же Arial, но OpenOffice выбирает шрифт по-умолчанию. Проблема с ссылками типа mailto, в винде они закодированы в cp1251, а в Linux при попытке нажать на такую ссылку идет попытка загрузить почтовый клиент с параметром, текст в которой в cp1251 кодировке, естественно такое не прокатывает. В общем замкнутый круг.
Ну и игры конечно. Wine нужно настраивать, а играть хочется сейчас. Мне например лень перезагружать компьютер, чтобы войти в Linux полазить по сайтам, посмотреть фильмы или скачать что-нибудь, так как я могу всё тоже самое сделать и сейчас.
Пока есть только одна причина - valgrind. Бесплатных аналогов для Windows нет. Правда и это решает virtualbox. Я пробовал работать на линуксе, где стоит virtualbox с виндой. В принципе нормально, но вот про игры и 3D можно забыть.


Название: Re: Обфускатор
Отправлено: ритт от Март 02, 2010, 14:10
закрывать тему пока не буду, но впредь воздержитесь от взаимных оскорблений.
не забывайте завет кота Леопольда )


Название: Re: Обфускатор
Отправлено: BRE от Март 02, 2010, 14:54
Чем бесплатный линукс лучше платной винды...
Лучше-хуже это понятия субъективные.

а если он лучше, то почему у вас установлена винда.
Не установлена, уже 8 лет, нигде не установлена, ни на работе, ни дома.

Только не надо расказывать, что вы пользуетесь сугубо опенсоурсным софтом :).
Нет, игрушки покупаю.
Но это редко бывает, ибо HMM3 уже куплены...  :)


Название: Re: Обфускатор
Отправлено: cya-st от Март 02, 2010, 15:56
А это все "Жлобовские замашки". Да и уверен на 90% ваш проект проиграет по ценности кода существующим проектам с открытыми исходниками.
Я с этим не согласен. Если ПО продается то значит оно жлобское и никакой ценности не несет? Или вы имеете ввиду мой проект, что он ценности никакой не несет? Я никакой проект не продавал и пока еще не собираюсь, а если бы и продавал, то вас это не должно касатся. Откуда столь высокий процент уверенности?


Название: Re: Обфускатор
Отправлено: kuzulis от Март 02, 2010, 16:33
Да хватит вам уже... Ей богу, я прям как на базаре :)


Название: Re: Обфускатор
Отправлено: break от Март 02, 2010, 17:51
Цитировать
Откуда столь высокий процент уверенности?
видел много корявых программ которые стоят нмалых денег

Простой пример - 3Ds Max - вроде солидный популярный продукт, вроде все там должно быть ОК. Стоит лицензия на 1 компьютер от 100 тыс. Руб. Но при ближайщем рассмотрении он реально уступает бесплатному аналогу Blender. Мне приходилось работать над экспортером для MAX 2009 - там SDK ужасное - просто треш. В самом Максе ошибки не исправляются - только новые фишки вводятся и меняется интерфейс - вам это ничего не напоминает? А каждая новая версия опять стоит денег - а потом супер политика конторы когда они перестают выпускать плагины (рендеры, модификаторы геометрии и др. важныек вещи) под старые версии. В каждом году один и тот же продукт продается за те же 100 тыс. руб. да еще и принуждают его покупать полным отсутствием поддержки старых версий... Не похоже на политику других крупных фирм выпускающих ПО?

Но и маленьких программ видел не мало платных - одна вообще шикарная. Купили комплект программ - лицензию - электрические схемы поездов. Для установки каждой из 14 программ надо позвонить в Московскую контору - продиктовать 9 значныйф код и получить такой же ответ - это только инсталлятор! Для деинсталляции то же САММОЕ!!!(нельзя удалить программу без звонка в Москву!) А сама программа еще и защищена так что легальная копия слетает сама собой (перестает запускаться с сообщением об ошибке) после перезагрузки компьютера (правда эту проблему создатели пообещали исправить). Железо в компе менять нельзя! Дату менять нельзя! (опять же защита слетает)! Меня заинтересовал вопрос а что если комп накроется или система слетит (ну тупо шнур уборщица выдернет на рабочей машине) - как я деинсталлирую программы если система сдохла - в центре поддержки мне сообщили - это ваши проблемы! Слетела винда покупайте лицензию ЗАНОВО!

Еще видел программы которые считают сметы для строителей (+ выгружают соответствующие отчеты) - стоимость от 50 тыс. рублей и маленькими буквами написано что для нормальной работы требуется установленная версия MS Office! - и OpenOffice не катит - именно MS Office - круто? И это глюченная программа какашка - которая требует лицензионный USB ключ и вылетает через раз - а программисты лентяи и раздолбаи раз не могут на более доступные средства построения отчетов перейти!

Цитировать
Чем бесплатный линукс лучше платной винды, а если он лучше, то почему у вас установлена винда. Только не надо расказывать, что вы пользуетесь сугубо опенсоурсным софтом
По поводу использования Linux - на работе стоит только он!, на ноуте только он, винда XP на стационарном домашнем компе которым пользуются другие домашние (пока лень жену обучать). Если вы думаете что переход на Линукс так тяжел - вы отстали от времени - это ОС сейчас ничем не уступает Windows - можно сесть и нормально работать., а ну да уступает -нет игр и вирусов!
Чем еще опен сорсный линукс лучше - кратко:
1) Демократичная политика - никакого вымогательства или принуждения обновляться
2) Масса средств разработки - для бедных студентов и серьезных мужиков
3) Поддержка большого количесвта железа - в том числе мобильных устройств
4) Большая маштабируемость и возможность настройки - хочу работаю в терминале, хочу в XFCE, хочу в KDE4 с наворотами из CompizeFusion
5) Открытый код - самой ОС и большинства программ -  если я вижу программу под линукс в которой что-то классно сделано - так что мне нравится и я хочу это использовать - то 90% что смогу посмотреть / взять ее исходники. А если она под винду? Даже купив ее, исходники скорее всего не будут доступны никогда!

Цитировать
Откуда столь высокий процент уверенности?
Ваша программа так же сложна как Операционная Система или Виртуальная Машина? Может как 3D редактор со всеми современными способами модификации геометрии?

Или она просто поголовье кур считает на птицеферме? (Это тоже неплохо и не бесполезно - но стоит ли это так страшно защищать?)


Название: Re: Обфускатор
Отправлено: Akaiten от Март 02, 2010, 17:54
Давно вижу эту тему и не пойму о чём здесь можно разговаривать? Вывод здесь один: обфускатор в нормальном его понимании бесполезен для кода на C/C++. Также в теме упоминался вариант использования обфускатора для сокрытия исходников использующий GPL код. Моё мнение, что это не правильно и не вызывает ни капли уважения.

А что касается защиты программы от не лицензионного использования, используете любой из существующих протекторов и будет вам счастье. И как уже упоминалось любая программа ломается. Но всегда ли это надо? Если программа будет стоит допустим 5$ надо ли ей ломать? Обычному пользователю проще её будет купить, чём "пачкать руки" со взломом. Каждый решает для себя. Например, я купил программу, у меня чистая совесть, предоставляется саппорт, не надо искать очередной крак, не надо думать о том, что антивирус снова ругается что keygen.exe возможно содержит модифицированный Win32.Agent и т.п. Нужно найти баланс. И если программа ломается, это не всегда плохо, значит она пользуется спросом. Бывали случаи, когда программа не завоёвывала лидирующее положение в своей нише именно из-за "непробиваемой" защиты.


Название: Re: Обфускатор
Отправлено: ритт от Март 02, 2010, 18:09
> видел много корявых программ которые стоят нмалых денег ...
о, этот пост нужно закрепить! :)


Название: Re: Обфускатор
Отправлено: cya-st от Март 02, 2010, 18:31
Я вообщето спрашивал о обфускации, но этот топик зашел куда то не туда :). В этом топике (я перечитывал :)) я никого не просил обсуждать стоит ли продавать мою програму и какого качества эта программа, весь прикол в том что нет никакой проги :), на первой странице топика я был удовлетворен ответами и поблагодарил отвечающих, дальше я вопросов не задавал.. Opensource или комерческая проги, вся разница в програмисте я так считаю, сам много видел Opensource-ных мягко говоря кривых проектов.
Цитировать
И как уже упоминалось любая программа ломается.
Блин в каждом ответе, достали уже нах... Я ВАС ОБ ЭТОМ СПРАШИВАЛ? Читайте правильно вопрос!!!


Название: Re: Обфускатор
Отправлено: Karl-Philipp от Март 02, 2010, 19:19
не знаю, на сколько актуально, но в каком-то треде вроде бы break приводил ссылку на электронные ключи http://www.guardant.com.ua/
Может ключи позволят "реализовать защитный механизм, обеспечив высокий уровень надёжности защиты программы" :)


Название: Re: Обфускатор
Отправлено: tim474 от Март 02, 2010, 21:18
Цитировать
В Linux есть Arial, но не Arial Cyr, в винде это всего-лишь алиас (синоним) того же Arial, но OpenOffice выбирает шрифт по-умолчанию.
В ОО:
Сервис > Параметры > Шрифты. Дальше поймёшь ::)


Название: Re: Обфускатор
Отправлено: tim474 от Март 02, 2010, 21:45
Кстати, если разработчик проприетарного программного обеспечения оскорбляет свободные лицензии и считает, что их можно нарушать, утверждая, что они запрещают ему пользоваться свободным кодом в своих программах, то это сразу показывает его лицемерие. То есть, как они счиатют, им можно запрещать производить определённые действия со своими программами, а другим — нельзя. Столлман сказал, что их слова можно трактовать как «Моё — моё, и ваше тоже моё».
Если хотите, чтобы ваши EULA соблюдали и уважали, то для начала надо бы научиться уважать другие лицензионные договоры, в которых ограничения преследуют совсем другие цели.


Название: Re: Обфускатор
Отправлено: break от Март 02, 2010, 22:44
Цитировать
Кстати, если разработчик проприетарного программного обеспечения оскорбляет свободные лицензии и считает, что их можно нарушать
там вроде даже есть что-то типа такого

Цитировать
если компания не признает GPL и считает что это не лицензия то это запрещает ей пользоваться кодом распространяемым по GPL
- был какой-то шумный процесс по этому поводу