Разработка java | SEclub.org
Разработка java
Все новые
Всего сообщений: 7795
*
KiFFiR
28 мая 2010 в 16:33
Pavlus, нет, он не путает, его цель - делать программы как можно меньше. Запутывание байт кода этому не способствует.
*
Malcolm
28 мая 2010 в 18:54
Нет, ну вообще цель обфускации (не обязательно относительно Java) - это удаление всей информации, которая не принципиальна для работы. Применительно к Java это означает в основном удаление информации о названиях полей, методов, классов и так далее. JVM все равно ведь, как называется класс, "com.mysoft.Main" или просто "a".
Само по себе просто удаление информации - это, в принципе, не запутывание. Запутывание происходит в момент оптимизации кода как побочный эффект. Конечно, можно было бы еще и вставлять дополнительные инструкции, но это уже будет размен производительности на рост сложностей декомпиляции, поэтому ProGuard так не делает.
*
KiFFiR
29 мая 2010 в 05:22
Malcolm, позволь не согласиться. Обфускация призвана делать код трудным для понимания ( en.wikipedia.org/wiki/Obfuscated_code ). А оптимизации в ProGuard не запутывают код (ну или почти не запутывают, во всяком случае их задача не в этом). Большинство из них в большей или меньшей степени направлены на уменьшение размера кода, хотя есть и направленные только на повышение скорости работы кода.
*
Malcolm
29 мая 2010 в 11:59
KiFFiR, да я криво написал, не разграничил то, где я имел в виду обфускацию вообще и где писал применительно к ProGuard. Удаление информации может включать в себя и перестановку инструкций местами так, чтобы это не влияло на ход программы, и шифровку строк (то есть потеря изначального вида), в конечном счете приводя к тому, что код теряет сведения о первоначальном виде и становится запутанным. Набить код абракадаброй - по идее, тоже убирает информацию о первоначальном виде, я вот это имел в виду.
В ProGuard на этапе обфускации только удаляются сведения о названиях полей, классов и так далее. Оптимизация сама по себе имеет цель повышения эффективности кода, однако очень неплохо сбивает с толку декомпиляторы, которые уже не могут по оптимизированному коду восстановить исходный. По общим понятиям это обфускация, по понятиям ProGuard - нет.
*
Yusyanya
30 мая 2010 в 10:58
Не успели на MIDP 3 телы выйти уже MSA 2 явился ... Походу через год придётся браться за JSR-289 и 297 :-D .
*
Pavlus
2 июн 2010 в 04:46
upwap.ru/893061 тач и кнопки, шестерёнки вращаются от первой, поддержка любого размера, скорость маленькая так-как на эмуле была нормальная, можно изменить(в исходнике :gg: ) Если доделать, то получится двиг для игры. Доделывать?
*
Pavlus
2 июн 2010 в 07:25
В параметрах функции всегда передаются указатели на переменные? Как вобще понять передается значение, или указатель?
*
cHeRsAnYa1
2 июн 2010 в 07:34
Pavlus, судя по наблюдениям, по когда передаёшь объект - он передаётся сам (то есть его изменение в методе затронет и исходный объект), а с примитивными типами по ссылке (изменение значения в методе не изменит исходную переменную). Если ошибся - Malcolm придёт и поправит )))
*
Pavlus
2 июн 2010 в 13:16
cHeRsAnYa1, ну вобще-то "по ссылке" и "изменение в методе затронет объект" это тоже самое.
*
cHeRsAnYa1
2 июн 2010 в 14:24
Pavlus, пардон, перепутал конечно )))
*
Malcolm
2 июн 2010 в 19:20
Ну да, наоборот. В любом случае передается значение переменной. Если это переменная примитивного типа, то на первоначальную ты воздействовать не можешь, если на ссылочный тип, то переменная содержит ссылку, и ее значение и передается в метод. Действовать на ссылочную переменную, разумеется, все равно нельзя, но объект, на который ссылка указывает, остается тот же самый, так что изменения будут видны отовсюду.
*
Pavlus
3 июн 2010 в 04:29
Malcolm, ссылочные, это те, что расширяют Object, а примитивные - те, тип которых является зарезервированым словом? Или есть ещё какие то критерии и исключения?
Для полноценного использования разделов сайта войдите или зарегистрируйтесь.
Общие вопросы | Загрузки Seclub | Форум | Главная
18+ © Seclub.org 2003-2026