![]() |
|
Модераторы: bsa |
![]()
|
|
| Moby |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 6.10.2008 Репутация: нет Всего: нет |
Всем привет. Я в этом мало понимаю, так что если вопрос не корректен, то сорри.
Я тока на днях узнал о таком слове, как bytecode. Как я понял, если на Visual Studio .Net, на С++ или C# написать программку, то из конечного продукта, при помощи некоторых утилит, можно получить какой-то bytecode и восстановить или изменить часть кода, ну то есть можно будет изменив код избежать как раз какую-нить защиту. Я правильно понял, что такое bytecode? Если да, то на чем писать что бы это избежать? Что насчёт QT? Это сообщение отредактировал(а) Moby - 11.11.2008, 15:31 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Не обижайтесь, но неужели при таком уровне вопроса, у Вас такой уровень программы, что ее (за)хотят взломать ? Мне кажется Вы не с того конца подходите к программированию. Взломать можно практически все . Что Микрософт такие недалекие, что не знают как защитить программу, раз столько пиратских дисков с виндой ? |
|||
|
||||
| Moby |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 6.10.2008 Репутация: нет Всего: нет |
Мой проект по важности сравним с проектами самых крутых лидеров IT рынка. Шучу. Да это собственно говоря не для меня. Мой "личный" проект, который может быть я сделаю и покажу кому-нить - это 3D-Tetris. А вообще, грубо говоря, я буду часть программки писать. А "эти" люди делают коммерческий проект, не большой, но все же коммерческий и с уклоном в сторону медицины. И им это важно, ну что бы была максимальная защита. Этот вопрос был поднят на днях, конечно они там все сами решат, это не нубы-програмеры, как я. Но я решил самому то же разобраться. Так что, если не затруднит, то все же разъясните кто-нибудь ситуацию. Это сообщение отредактировал(а) Moby - 11.11.2008, 17:24 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
есть машинный код - конкретные данные и конкретные инструкции процессора конкретной архитектуры.
есть исходный текст на языке программирования высокого уровня. обычно, компилятор транслирует программу на ЯВУ в МК. в некоторых технологиях предусмотрена двухступенчатая компиляция: сначала текст на ЯВУ транслируется в байт-код, а уже непосредственно перед запуском байт-код транслируется в МК. "некоторые технологии" - это и Java, и .NET в том числе. на самом деле, преимущество и назначение байткода - не "снижение взломостойкости", нет, а возможность не компилировать программу под все системы и архитектуры, а возложить этот этап выполнения на интерпретатор байткода, который будет установлен у клиента, а не разработчика. насчет безопасности: декомпилировать можно и "обычную" программу, скомпилированную в РЕ-ЕХЕ под x86 архитектуру. просто уровень абстракции байткода выше уровня абстракции МК. потому и декпомпилированное из МК будет более запутанным для переработки, нежели декомпилированный байткод. но решения вопросов безопасности все равно есть. |
|||
|
||||
| Moby |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 6.10.2008 Репутация: нет Всего: нет |
skyboy, спасибо, дословно объяснил.
А какие технологии обходятся без двухступенчатой компиляции, что бы ЯВУ сразу в МК? Как я понимаю, в силу свой кроссплатформенности, Qt наверно как раз поддерживает эту двухступенчатую компиляцию или нет? Это сообщение отредактировал(а) Moby - 13.11.2008, 12:23 |
|||
|
||||
| Kallikanzarid |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 240 Регистрация: 9.11.2008 Репутация: 2 Всего: 3 |
Без байткода обходится чистый C++. Qt - библиотека как раз для него.
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
ты это к чему спросил? если речь о компиляции в объектный файл, из которого формируется платформозависимый ЕХЕшник, то(мое личное мнение) любая компиляция - двухуровневая(сначала - объектный файл, затем линковка). просто более "старый" вариант - когда второй этап делается на машине разработчика. Java и .NET(ну, и другие) делают второй этап на машине пользователя. |
|||
|
||||
| Moby |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 6.10.2008 Репутация: нет Всего: нет |
||||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
бред однако.... |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
J0ker, странно. как-то был уверен, что так. посмотрим, почитаем.
|
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
оно так бывает, когда люди думают, что компилятор это Visual Studio
я так думаю пока не научатся собирать программы из командной строки - и близко ни к каким IDE не подпускать |
|||
|
||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
двухэтапную компиляцию с использованием ликовщика помню по работе с Fortan77. и с DOS'овским asm. с VS работать не довелось. впрочем, твое замечание во время - а то я бы самоуверенным тоном ещё какую чушь выдал бы. Добавлено через 3 минуты и 46 секунд а так, конечно, компоновка далека от трансляции байткода в машинный код, а объектный модуль ничуть не схож с "байткодом". Добавлено через 5 минут и 1 секунду
вот этого не понял. как использование CLI-инсртументария помогает понять теорию компиляторов? Добавлено через 5 минут и 13 секунд инструментария |
||||
|
|||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
причем тут CLI-то?
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
| J0ker |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
вот вот Добавлено через 5 минут и 27 секунд
понимаешь-ли, друг когда-то давным давно, когда тебя еще не было и в проекте, а компьютеры были большими и тяжелыми, все полезные программы вызывались с консоли терминала, и туда-жы выдавали вывод а окошки и прочую фигню к ним прикрутили уже гораздо позже с тех пор у нас, программистов, так повелось - все полезное делать консольным и оставлять себе, а бесполезное - оконным и отдавать юзверям |
||||
|
|||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
да-да, конечно, сейчас все плохо, потому как пользуются в работе всяческими IDE, начинают изучение ЯВУ не с ассемблера, и не работают с перфокартами. Все же, намекни мне, неучу, чем радикально отличается байткод от объектного модуля. ну, если не сложно, конечно. |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 3 Всего: 134 |
Целью? -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
Модератор: Сообщение скрыто. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
ок. какая цель байткода? только не на примере Java или .NET, в адрес которых много говорится о "переносимости" и "платформонезависимости", а, скажем, в адрес РНР-байткода или Python, который используется исключительно в целях ускорения работы. А объектные модули что мешает линковать спустя некоторое время, уже с обновленными версиями используемых библиотек? vinter, будь добр, воздержись от перехода на личности. |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 3 Всего: 134 |
Они линкуется(и не факт что запускаются), а не интерпретируются покамандно как в случае байткода. Ну вот и еще отличие. Объектные модули ни создаются с целью ускорения работы. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
байткод java использует для ускорения работы? или таки для переносимости? в wiki нормально описано: если реализация допускает - интерпретируется покомандно, если надо(как в Java JIT) - транслируется в машинный код непосредственно перед выполнением. целиком. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
vinter, видимо ты юмора не понял. в следующий раз обращай внимание на смайлы.
По поводу темы разговора... Термин bytecode не имеет никакого отношения к компилируемым языкам, в т.ч. и С/С++. Поэтому рассмотрение данного вопроса в этом разделе считаю нецелесообразным. Moby, ты получил ответ на свой первый вопрос? Если да, то помечай тему решенной. Модератор: Пожалуйста, один топик - один вопрос. |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
bsa, ниче если я все-таки проясню?
ну конечно не сложно Объектный модуль - это такой промежуточный модуль, который потом соединяется с другими модулями посредством линковки. Получается такой модуль посредством компиляции исходного кода в нэйтив код исполнительной системы с вставкой дополнительных данных необходимых для последующей линковки. Цель данных заморочек - ускорение генерации программы - мы можем перекомпилировать не всю программу целиком, а только измененные модули. Байткод - это не-нэйтив код, который исполняется не реальным процессором/ОС, а т.н. виртуальной машиной. Виртуальная машина является прослойкой между программой и реальным процессором/ОС. Имея виртуальные машины для разных процессоров/ОС, мы можем исполнять на них один и тот-же байткод - за счет этого достигается кроссплатформенность. При этом процесс компиляции программы в байткод может точно так-же проходить через компиляцию в объектные модули с последующей линковкой - единственная разница - это то, что объектные модули здес будут не в нэйтив коде, а в байткоде. Добавлено через 3 минуты и 15 секунд ЗЫЖ интересно что там vinter такое сказал, что его даже |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 8 Всего: 56 |
я там много ругалсо, и все матом
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |