Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Возможности синтаксиса и компиляьора.   Найти похожие ветки 

 
Pa5ha   (2004-03-18 16:17) [0]

Всем привет! У меня необычный вопрос, не поможете ли прогой, которая из нормального кода делает все неразрывным блоком и все символы заменяет на непонятный эквивалент.


 
WebErr ©   (2004-03-18 16:31) [1]

Пока не конец файла считывать символ применять к нему NOT или XOR к какой-нибудь константе, потом записать полученный символ, а вот что такое неразрывный блок - не знаю! :)


 
Алхимик ©   (2004-03-18 17:26) [2]

WinRar.exe


 
Pa5ha   (2004-03-18 19:03) [3]

Нет, надо не зашифровать, а сделать так, чтоб он компилировался, но при этом выглядел, как shit. Я тут неправильно выразил свою мысль, короче надо так, чтоб было по неск. операторов в одной строке без пробелов и проч. разделителей, все символы, которые можно заменить на многосимволные аналоги и т.д. Проги вроде есть, которые так делают.


 
Amoeba ©   (2004-03-19 11:57) [4]

А зачем нужно такое извращение? И чем собираешься компилировать исходный текст после его ропуска через такую мясорубку?


 
Тимохов ©   (2004-03-19 12:12) [5]

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


 
Digitman ©   (2004-03-19 12:17) [6]


> У меня необычный вопрос


не то что бы "необычный" - вообще непонятный !
речь идет о КАКОМ коде ? о коде-исх.тексте или о маш.коде ?


 
Тимохов ©   (2004-03-19 12:21) [7]

раньше такая прога была из

var
  i: integer;
  a: array [0..1] of integer;
  b: integer;
begin
  for i := 0 to 1 do
  begin
     if a[i] > 0 then b := b + a[i]
  end;
end;

могла сделать что-то типа

var _______a0234292424323420923525:integer;_e203420412491249123491234124:array[0..1]ofinteger;_b1313134241242414b:integer;be gin for _______a0234292424323420923525:=0 to 1 do begin if _e203420412491249123491234124[i]>0 then _b1313134241242414b:=_b1313134241242414b+_e203420412491249123491234124[i];end;end;

т.е. чтобы править код было не реально.
Наверное это автор спрашивает.


 
Юрий Зотов ©   (2004-03-19 12:31) [8]

При наличии препроцессора - нет проблем. При его отсутствии - есть проблемы.


 
Игорь Шевченко ©   (2004-03-19 13:16) [9]

Есть такая программа, в сети была (разбирая свою свалку я на нее наткнулся, но забыл название)


 
Pa5ha   (2004-03-19 20:29) [10]


> var _______a0234292424323420923525:integer;_e203420412491249123491234124:array[0..1]ofinteger;_b1313134241242414b:integer;be  
> gin for _______a0234292424323420923525:=0 to 1 do begin
> if _e203420412491249123491234124[i]>0 then _b1313134241242414b:=_b1313134241242414b+_e203420412491249123491234124[i];end;end;

Вот, человек меня понял, а то непонятно, непонятно.
А где мона взять?


 
vuk ©   (2004-03-19 21:21) [11]

Обычно программы такого типа называются obfuscator. Поищите где-нибудь на поисковике по сочетанию "Delphi obfuscator" может что и найдется.


 
Gero ©   (2004-03-19 22:22) [12]

Если есть obfuscator, до должен быть и deobfuscator.
Т.е вводите что-то типа:

var _______a0234292424323420923525:integer;_e203420412491249123491234124:array[0..1]ofinteger;_b1313134241242414b:integer;be  gin for _______a0234292424323420923525:=0 to 1 do begin if _e203420412491249123491234124[i]>0 then _b1313134241242414b:=_b1313134241242414b+_e203420412491249123491234124[i];end;end;

А получаете:

var
 i: integer;
 a: array [0..1] of integer;
 b: integer;
begin
 for i := 0 to 1 do
 begin
    if a[i] > 0 then b := b + a[i]
 end;
end;

:)
А если даже и нет такой проги, то кому очень надо будет, напишет.
Никуда такая система защиты не годится.
Лучше уже .dcu распространять.


 
Игорь Шевченко ©   (2004-03-19 22:35) [13]

Gero ©   (19.03.04 22:22)

Это необратимый процесс :)


 
EXE7   (2004-03-20 14:27) [14]

>Пользуйся, компилируй, а править - ни-ни.

если использовать можно только после компила,
так почемуже просто нескомпилить в .dcu,
как все делают и
можно юзать и править никак,
а транслиты в кодах,можно выдернуть,
маш нет


 
Pa5ha   (2004-03-20 15:46) [15]


> obfuscator

Сенкс, поищу. Просто надо, а самому писать такое лень, хоть и мог бы.

> Это необратимый процесс :)

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


 
EXE7   (2004-03-21 13:37) [16]

>вы способны разобрать массивный код вот в таком виде
а что мешает сделать авто-распаковшик подобного трас-кода,
машкоды криптованые тоже разбирают

лучще dcu
делаете .pas модуль компилите,получаетете dcu
его в папку к проектам
в uses пишете название -имя dcu
все пользуйтесь,только хелп сделайте какие есть функции
TCryptLib знаете там dcu,res( kbcrypt.dcu, kbcrypt.res,
lzh.dcu, zlib.dcu) и в хелпе описание
функц
TCryptLib = class(TComponent)
public
 //  Методы класса
 procedure EncryptFile;                                    // шифрация файла    
 procedure DecryptFile;                                    // дешифрация файла  
 function  EncryptStr(StrToEncrypt : string ) : string;    // шифрация строки

может вам надо комуто показать .pas
и скомпилить на глазах,типа мой исходник?



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.115 c
3-1079504194
kor@l
2004-03-17 09:16
2004.04.11
DBGridEh


7-1080036182
Victor!
2004-03-23 13:03
2004.04.11
Обмен данными по модему


3-1079438351
jack128
2004-03-16 14:59
2004.04.11
EditButtons в DBGridEh


11-1066039342
RA
2003-10-13 14:02
2004.04.11
Кто нибудь пытался перевести под KOL комп-ты BDE


14-1082373096
lak
2004-04-19 15:11
2004.04.11
как аналитически доказать- что больше