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)

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, время: 05:01.

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