forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   MidletPascal (http://forum.boolean.name/forumdisplay.php?f=46)
-   -   Возможна ли обфускация кода в MidletPascal ? (http://forum.boolean.name/showthread.php?t=6063)

GOODBYTE 30.06.2008 23:35

Возможна ли обфускация кода в MidletPascal ?
 
Доброго времени суток! ;)

Очень интересует вопрос о возможностях защиты своих приложений в MidletPascal'e.
Если я не ошибаюсь, то на Java можно использовать обфускацию кода для защиты приложений.
А есть ли что-то подобное, для защиты своих мидлетов написанных в MP? :dontknow:
Если нельзя, то не могли бы вы подсказать как защитить свои приложения написанные в MP?

Заранее спасибо. :rolleyes:

ViNT 01.07.2008 00:05

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
В самом MP обфускация не предусмотрена, если только обрабатывать каким-нибудь обфускатором (proguard, например) уже после компиляции и отладки.

GOODBYTE 01.07.2008 00:11

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Большое спасибо, ViNT! ))

А не мог бы ты поподробнее описать этот процесс?

P.S. я пишу мидлет работающий в связке с PHP-скриптом, не мог ли бы Вы подсказать, что нужно учитывать чтобы твоё приложение "не поимели" ?
То есть, необходимо как-то сделать привязку полученного PHP-скриптом кода, к определенному телефону. Может ли кто-нибудь что-то посоветовать по этому вопросу?

Piligrim 01.07.2008 01:49

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
привязаться можно, разве что к IMEI, и то не все модели его выдают.

ViNT 01.07.2008 02:20

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Цитата:

Сообщение от GOODBYTE (Сообщение 81580)
А не мог бы ты поподробнее описать этот процесс?

К сожалению, сам никогда не делал - небыло необходимости. Почитай доку по proguard, поищи по яндексу. По сути, мидлет MP ни чем не отличается от обычного.

GOODBYTE 01.07.2008 02:31

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
огромное спасибо.
Жаль только, что с IMEI будут такие вот неприятности...
Но тут уж я сам придумаю что сделать...
Спасибо за ответы. :)

odd 01.07.2008 08:27

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Можно завязаться на GetProperty('microedition.platform').

Cхема примерно такая:

1. Юзер регестрируется. Для этого отсылает GetProperty('microedition.platform') и другую инфу о себе (логин/пасс) на сервер.
2. На основе полученной строки, PHP скрипт генерит уникальный код, сохраняет его у себя (можно в файле, но лучше в БД) и отсылает его юзеру.
3. Программа юзера сохраняет полученный код в RMS.
4. Собственно и всё. При последующих запросах юзера нужно присоединять к запросу и личный код и по нему уже как-то распределять полномочия.

GOODBYTE 02.07.2008 23:11

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
odd, я почти так и сделал.

спасибо всем большое за оказанную помощь. :)
Осталось только разобраться с обфускацией, и собственно всё. :)

odd 03.07.2008 07:43

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Используй ProGuard или JoGa.

GOODBYTE 03.07.2008 12:17

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Решил не создавать новую тему, задам вопрос тут..

Парни обьясните веб-девелоперу, как в Midlet Pascal'e организовать прокрутку по меню?
Можете привести код с комментариями?
Т.е. есть к примеру меню, в нём "ссылки" на процедуры, получается нечто вроде:

Тут очень длинный текст, занимающий два прокручивающихся экрана.

тут пошёл ряд ссылок, еще на один экран.

Вы уж не подумайте что я нуб, сам язык я довольно хорошо понимаю, но вот с такими нюансами у меня проблемы.
Просто на PHP такой необходимости нет, в прокрутке экрана... :(

ViNT 03.07.2008 19:10

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Вложений: 1
Есть один очень кривой и немного глючный(потому, что недоделанный) код для создания графического меню. Как-то начал делать, но потом забросил. Может пригодится.

Sanya 20.08.2008 04:24

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Дайте плиз рабочую ссылку на proguard. Везде в поиске битые. Да, а в proguard шифруются текст приложения, например? Ну типа внутри описание, и т.п.? Или только структура кода делается запутаннее?

Piligrim 20.08.2008 10:33

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
не шифрует.
ProGuard: java shrinker, optimizer, obfuscator, and preverifier.
http://proguard.sourceforge.net/

слона то я и не заметил?

Sanya 20.08.2008 14:40

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Ребята, подскажите... Мне надо такой обфускатор, который бы зашифровывал текст внутри приложения, чтобы его никто не смог поменять. Это чрезвычайно важно.

Sanya 20.08.2008 17:08

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
я скину потом wmz, если кто-то покажет как обфусцировать программку, чтобы невозможно было переделать текст внутри программы, и в частности текст sms для эротического java-каталога.

Piligrim 20.08.2008 17:17

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Ни один обфускатор, насколько я знаю не трогает строки, это тебе уже самому надо кодировать, возможно многоразово. Классные кодировщики были на старом добром спектруме :)
Некоторые платные обфускаторы разбавляют код программы пустыми инструкция и лишними переходами, если быстродействие неважно, то это помогает осложнить анализ кода.

odd 21.08.2008 08:27

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Да уж. Кодировщики были те ещё. Например, в ArtStudio вообще классика жанра...

Проблема в том, что Java код программы на MIDlet Pascal невозможно нормально декомпилировать. В большом проекте обязательно будет куча ссылок, ведущих непонятно куда. Конструкции try/catch все неправильно декодируются...

Tadeus 27.08.2008 20:17

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Текст эротического каталога от труЪ хацкеров не спрячешь :lol:

pamalofeev 27.11.2008 15:03

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Из спортивного интереса попробовал прогнать через прогуард мидлет, сгенерированный midletpascal. ProGuard мне на это сказал "Can't read [C:\ant\proguard\lib\MenuDemo.jar] (only DEFLATED entries can have EXT descriptor)" и был таков. Как видно обфускации пытался подвергнуть пример использования библиотеки lib_menu32. Есть соображения у кого на этот счет?
И еще. Немного подкорректировал библиотеку lib_menu32 под свои нужды (добавил циклическую прокрутку и функцию, возвращующую кол-во пунктов), после чего она стала весить около 5113 б (оригинал весит 4374б), хотя изменения не настолько большие. Компилил jre 1.3.1, преверификацию делал преверификатором из комплекта Canterbury Pascal, выложенным на этом форуме. Так вот интересно, почему размер так вырос? Попробовал декомпилить-компилить оригинал библиотеки без изменений, размер опять становится больше - 5094 против 4374.

Вопрос с proguard снимается, ларчик просто открывался. Надо было всего лишь перепаковать насилуемый мидлет.

Piligrim 29.11.2008 01:54

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
попробуйте при компиляции -g:none

KAK? TAK! 28.03.2009 15:56

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
http://dfn.dl.sourceforge.net/source...roguard4.3.zip

Трава 10.08.2009 20:11

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Да уж, такой каталог по-моему не только от хакера занычешь :-D А так текст можно зашифровать самому программным методом.

NightDeath 27.12.2009 01:52

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Обфускация у меня проходит нормально,но как после этого сделать преверификацию?поискав в гугле нашел тему где написано как это сделать с помощью wtk и bat файла,ничего не вышло,пишет ошибка открытия zip,может есть прога,чтоб классы по одному превефицировать на компе?

ViNT 27.12.2009 02:05

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Ковыряй ключи командной строки для preverify.exe, может там есть.

PassCall 13.04.2011 19:01

Ответ: Возможна ли обфускация кода в MidletPascal ?
 
Возможна ли обфускация кода в MidletPascal?

Зачем? Дезассемблируй любой java class из своего проекта. Даже самый маленький проект превращается в жуткий винегрет!

Вот код
Код:

        for(i = 1; maxgroup >= i; i++)
            for(i2 = 1; 10 >= i2; i2++)
            {
                if((((byte)(mob_attr[mob_map_type[last_group - 1] - 1][(14 + (i2 - 1) * 2) - 1] > (RNG.nextInt() & -1 >>> 1) % 100 ? -1 : 0))) == 0)
                    continue;
                mob_attr[mob_map_type[last_group - 1] - 1][(13 + (i2 - 1) * 2) - 1][loot] = max - 1;
                ((RNG.nextInt() & -1 >>> 1) % 9 + 1)[loot_bonus] = max - 1;
                if((((byte)(item_attr[loot[max - 1] - 0][22 - 1] > 0 ? -1 : 0))) != 0)
                    for(i3 = 1; item_attr[loot[max - 1] - 0][22 - 1] >= i3; i3++)
                        if((((byte)((RNG.nextInt() & -1 >>> 1) % 5 == 0 ? -1 : 0))) != 0)
                            (loot_lvl[max - 1] + 1)[loot_lvl] = max - 1;

                if((((byte)(item_attr[loot[max - 1] - 0][26 - 1] > 0 ? -1 : 0))) != 0)
                    for(i3 = 1; item_attr[loot[max - 1] - 0][26 - 1] >= i3; i3++)
                        if((((byte)((RNG.nextInt() & -1 >>> 1) % 5 == 0 ? -1 : 0))) != 0)
                            (loot_quality[max - 1] + 1)[loot_quality] = max - 1;

                max++;
            }

только тру джава эксперт поймет что тут написано.

А если серьёзно хочеш запутать код, попробуй например заменить названия переменных символами подчеркивания. И разбавь ещё чем нибудь

Пример:
Код:

program omg;
var
_,__,_1__,___1_,___2__2__1:integer;
_1__11__1,__2_2_:real;
_1_1_:boolean;
begin
if (_1__11__1+_-_1>__2) and (_2*__1<>__) then ___:=___22_+(_2_,___7_,__2__);
drawimage(_2__34_1,__23,__2_2_);
repaint;
...........................................
end.

Пусть хакер сломает мозг, пока читать будет >>:(


Часовой пояс GMT +4, время: 09:17.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot