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

Вниз

Компилятор-шифратор   Найти похожие ветки 

 
iamdanil ©   (2005-12-17 14:20) [0]

Бывают такие? тоесть чтобы я откомпилировал свою прогу и никто не мог её понять (даже авторы компилятора)


 
Lamer@fools.ua ©   (2005-12-17 14:21) [1]

Нет.


 
iamdanil ©   (2005-12-17 14:22) [2]

жаль......................................


 
boriskb ©   (2005-12-17 14:28) [3]

iamdanil ©   (17.12.05 14:20)
и никто не мог её понять (даже


машина.
:)
Навалом таких


 
iamdanil ©   (2005-12-17 14:32) [4]


> Навалом таких

И где их можно взять?


 
Lamer@fools.ua ©   (2005-12-17 14:39) [5]

В автомагазине.


 
Digitman ©   (2005-12-17 14:48) [6]


> никто не мог её понять


в каком смысле "понять" ?


 
iamdanil ©   (2005-12-17 14:51) [7]

Декомпилировать (я хочу написать очень мощный архиватор, но чтобы никто не мог понять алгоритм сжатия и использовать его для себя)


 
iamdanil ©   (2005-12-17 14:51) [8]

Удалено модератором


 
Virgo_Style ©   (2005-12-17 14:55) [9]

алгоритма еще нет, а защита уже продумывается? =))))


 
iamdanil ©   (2005-12-17 14:58) [10]

Просто я думаю стоит ли набирать?
В тетрадке страниц пять исписал...


 
k2 ©   (2005-12-17 15:01) [11]

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


 
Virgo_Style ©   (2005-12-17 15:01) [12]

iamdanil ©   (17.12.05 14:58) [10]

Конечно, нельзя, сразу стащут!!!

:-D


 
iamdanil ©   (2005-12-17 15:04) [13]


> а в чем заключается предполагаемая мощность алгоритма?

Я хочу, чтобы он мог сжимать RAR -архивы процентов на 25...


 
k2 ©   (2005-12-17 15:06) [14]

а я хочу на 55, мой алгоритм однозначно мощнее :)


 
iamdanil ©   (2005-12-17 15:08) [15]

Ладно, пусть будет в тетрадке - так надёжнее...
и не зависнет :)


 
boriskb ©   (2005-12-17 15:12) [16]

Это не из разряда "сжимаем rar zip-ом  а потом наоборот и так до тех пор пока длина архива не станет 1 байт"?
:)


 
iamdanil ©   (2005-12-17 15:14) [17]

Не zip-jv а моей прогой
Она сжимает слабо, но зато любые файлы (и рары)


 
k2 ©   (2005-12-17 15:15) [18]

ээ нифига тетрадка, вещь в себе


 
boriskb ©   (2005-12-17 15:19) [19]

iamdanil ©   (17.12.05 15:14) [17]
слабо, но зато любые файлы


Если любые, то уже не слабо :))
1000 раз применишь вот и 1 байт :)


 
iamdanil ©   (2005-12-17 15:26) [20]

Ну почти любые...


 
boriskb ©   (2005-12-17 15:38) [21]

iamdanil ©   (17.12.05 15:26) [20]

Какую литературу по этой теме ты читал?

Ты в курсе что в програмировании написание "все сжимающего" архиватора это почти тоже самое, что в механике/физике придумывание вечного двигателя?
Столь же много идей и столь же бесплодных.


 
iamdanil ©   (2005-12-17 15:40) [22]


> Какую литературу по этой теме ты читал?

Ну например "Информатика 10-11 класс"


 
Digitman ©   (2005-12-17 15:40) [23]


> iamdanil ©   (17.12.05 15:26) [20]


Защиты от декомпиляции не было, нет и не будет.
Так что забудь про эту блажь)


 
iamdanil ©   (2005-12-17 15:40) [24]


> Ты в курсе что в програмировании написание "все сжимающего"
> архиватора это почти тоже самое, что в механике/физике придумывание
> вечного двигателя?
> Столь же много идей и столь же бесплодных.

В курсе, но надеюсь что смогу...


 
Digitman ©   (2005-12-17 15:43) [25]


> хочу, чтобы он мог сжимать RAR -архивы процентов на 25


> например "Информатика 10-11 класс"


уж не RLE-алгоритм ли реализовал ?


 
iamdanil ©   (2005-12-17 15:44) [26]


> уж не RLE-алгоритм ли реализовал ?

А что это??????????????????


 
Desdechado ©   (2005-12-17 15:44) [27]

> Она сжимает слабо, но зато любые файлы
А "разжимать"-то умеет?
А то ведь я тоже могу сжать в 1 бит, причем за долю секунды.


 
Lamer@fools.ua ©   (2005-12-17 15:45) [28]

Цирк форева.


 
iamdanil ©   (2005-12-17 15:45) [29]

Умеет...
алгоритм есть на ещё не напиаал реализацию...


 
Digitman ©   (2005-12-17 15:48) [30]


> iamdanil ©   (17.12.05 15:44) [26]
> А что это??????????????????


здрасть-приехали !)

ты учебник-то по назначению использовал или для понта ?


 
iamdanil ©   (2005-12-17 15:49) [31]

Я эти всек названия не запоминаю
В общем я разбиваю байт на биты и их обрабатываю...


 
Digitman ©   (2005-12-17 15:53) [32]


> iamdanil ©   (17.12.05 15:49) [31]
> Я эти всек названия не запоминаю


занятно)..


> разбиваю байт на биты и их обрабатываю


и что революционно нового ты привнес в славную когорту алгоритмов сжатия ?

возьми исходники, например, 7z-архиватора (он - open source) и удивись тому, что этот велосипед уже изобретен до тебя


 
Marser ©   (2005-12-17 15:54) [33]


> iamdanil ©

Учи матчасть.
http://algolist.manual.ru/compress/index.php


 
iamdanil ©   (2005-12-17 15:55) [34]


> Учи матчасть.

мат - математическую?


 
Prohodil Mimo ©   (2005-12-17 16:31) [35]

iamdanil ©   (17.12.05 15:55) [34]
материальную (от слова материя) :о)


 
iamdanil ©   (2005-12-17 16:36) [36]

А я думал - матерную...


 
Юрий Зотов ©   (2005-12-17 16:40) [37]

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


 
iamdanil ©   (2005-12-17 16:42) [38]


> Часто удивляюсь, как много взрослых и умных людей ведутся
> на дешевые и примитивные разводы развлекающихся недорослей.
> ..

ты про кого?


 
Юрий Зотов ©   (2005-12-17 16:43) [39]

> iamdanil ©   (17.12.05 16:42) [38]

Да так, просто. Мысли вслух. Можешь считать оффтопом.


 
Prohodil Mimo ©   (2005-12-17 17:01) [40]

Юрий Зотов ©   (17.12.05 16:40) [37]

может они тоже развлекаются? :о)


 
Zeqfreed ©   (2005-12-17 20:44) [41]

Юрий Зотов ©   (17.12.05 16:40) [37]
В данном случае можно предположить, что это и не развод, хотя это, должно быть, ещё печальнее.


 
DrPass ©   (2005-12-17 22:33) [42]

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


 
Prohodil Mimo ©   (2005-12-17 22:38) [43]

Zeqfreed ©   (17.12.05 20:44) [41]

ну если автору не более 17, то всё нормально :о)
К тому же раз он полез в биты и пытается что то придумать и сделать, это уже о чём то говорит.
Я сам в 18 лет подобной фигнёй страдал, ради любопытства, от нечего делать.
Другие бывает только кнопки и умеют кидать на форму, не знают что такое переменные, да ещё и корчат из себя неизвестно что.


 
Palladin ©   (2005-12-17 22:40) [44]

алгоритм сжатия - придумать не проблема, проблема: придумать алгоритм разжатия...


 
Zeqfreed ©   (2005-12-17 23:00) [45]

Prohodil Mimo ©   (17.12.05 22:38) [43]
Ну, я около полугода назад тоже интересовался данным вопросом. Но я, почему-то, для начала ознакомился с достаточным кол-вом информации и, после того как подумал пару дней, придя к выводу, что ничего нового и шокирующего не придумаю, начал ковыряться в уже разработанных и "отточенных" алгоритмах :)

Хотя, может быть, это я просто такой скучный? Как знать.


 
Prohodil Mimo ©   (2005-12-17 23:09) [46]

Zeqfreed ©   (17.12.05 23:00) [45]

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


 
Zeqfreed ©   (2005-12-17 23:25) [47]

Prohodil Mimo ©   (17.12.05 23:09) [46]
Именно так и изобретаются велосипеды, причем часто гораздо хуже тех, что уже изобретены. Разве нет? :)


 
Prohodil Mimo ©   (2005-12-17 23:40) [48]

Zeqfreed ©   (17.12.05 23:25) [47]
в основном - да, но уверен, что не всегда.


 
Юрий Зотов ©   (2005-12-17 23:49) [49]

> Prohodil Mimo ©   (17.12.05 23:09) [46]

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

Это теория. Притом, умозрительная, высосанная из пальца. То есть, демагогия. Поскольку практикой она не подтверждается.

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

Именно зная недостатки уже существующего и понимая, откуда и почему они берутся, специалист начинает думать, как от них избавиться - и в результате изобретает что-то новое и лучшее.

А идущие Вашим путем дилетанты изобретают давно известные велосипеды. В лучшем случае - с круглыми колесами (в силу того, что дилетанты не знают, что такие велосипеды давным-давно существуют), но обычно - с квадратными (в силу своей безграмотности).


 
Palladin ©   (2005-12-18 00:09) [50]

Юра, позволю себе несогласиться по поводу теории высосаной из пальца. Кто то все таки великолепные алгоритмические решения откуда то да высосал :)


> А идущие Вашим путем дилетанты изобретают давно известные
> велосипеды.

А кто изобрел сам по себе велосипед? :)

Конечно сейчас можно утверждать что около 85% "нового" студенческого есть избитое старое, но когда то имело место быть становление алгоритмистики... плюс гораздо (во много крат) полезней если парень сам "изобретет" "пузырек", а потом узнает что есть Кнут... чем ему расскажут что есть куча методов сортировки и он воспроизведет, но способность к созданию оригинальности будет сведена к минимуму...


 
Кефир87 ©   (2005-12-18 00:39) [51]

Не забуду своей радости, когда в 14 лет изобрел алгоритм сортировки
if M[i]>M[j] then поменять местами. До сих пользуюсь, если что отсортировать хочу не думая об алгоритме. А пузырек не интересен ибо не я его изобрел 8)


 
Юрий Зотов ©   (2005-12-18 00:52) [52]

> Palladin ©   (18.12.05 00:09) [50]

> Кто то все таки великолепные алгоритмические решения откуда то да
> высосал

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

> А кто изобрел сам по себе велосипед?

Тот, кто приделал педали к переднему колесу трехколесной тележки. Прекрасно зная и саму коляску, и что такое "ворот".

> около 85% "нового" студенческого есть избитое старое

Батенька, да Вы оптимист. На пять девяток я бы еще, пожалуй согласился. Изобретатели - они вообще товар редкоштучный, а уж среди студентов - тем более.

> когда то имело место быть становление алгоритмистики

На основе математики. Первые алгоритмисты были математиками, это ни для кого не секрет (впрочем, и не первые - обычно тоже).

> полезней если парень сам "изобретет" "пузырек", а потом узнает что есть
> Кнут... чем ему расскажут что есть куча методов сортировки

Полезней, не спорю. Только этот парень, способный и талантливый, к тому времени запросто может превратиться в дедушку. Убив свою жизнь и свой талант на изобретение "пузырька". И так не принеся никому никакой пользы.

Книги - они для того и пишутся, чтобы люди не тратили свое время и свой талант на изобретение пузырьков. "Накопление знаний человечеством" это называется. Не будет такого накопления - прогресс встал. Каждое новое поколение будет снова открывать уже открытое предыдущими.

> способность к созданию оригинальности будет сведена к минимуму...

С таким же успехом я скажу: "наоборот, к максимуму". И это мнение не менее обосновано. Если не более. Поскольку человек, знающий "пузырек" и другие методы сортировки создавать их уже не будет. А будет создавать именно новый, оригинальный метод.


 
Marser ©   (2005-12-18 01:28) [53]


> плюс гораздо (во много крат) полезней если парень сам "изобретет"
> "пузырек", а потом узнает что есть Кнут...

А зачем пузырёк? Я в своё время "изобрёл" сортировку выбором, а "пузырёк" всегда считал отстоем :-)


 
TUser ©   (2005-12-18 09:12) [54]

В далеком 93 году я прочитал в толстой книжке по турбо-паскалю, что pointer - указатель на любую информацию - занимает всегда 4 байта в памяти (или сколько там на ТР было :). И сел писать САМЫЙ КРУТОЙ архиватор. :))


 
Anatoly Podgoretsky ©   (2005-12-18 12:06) [55]

TUser ©   (18.12.05 09:12) [54]
То есть сел писать Указатель


 
Суслик ©   (2005-12-18 13:01) [56]

у актива (ищи guardant) есть шифратор, работающий без ключа.
судя по всему неплохой, т.к. иначе защиту легко бы ломали, а насколько я знаю она не самая легкая для взлома.


 
Lamer@fools.ua ©   (2005-12-18 13:36) [57]

>>TUser ©   (18.12.05 09:12) [54]

:-)

Надо было в эту ветку:
http://delphimaster.net/view/14-1134829873/


 
Kerk ©   (2005-12-18 13:50) [58]

Написал архиватор, сжимает любой файл до 10 байт. Сейчас пишу разархиватор. (с)


 
MasterPaleva ©   (2005-12-18 17:45) [59]

Эти проги, которые уменьшают размер программ... я так понимаю, они просто архивируют их, делают что то вроде самораспаковывающего архива. Вот они хорошо шифруют код.

Обычные делфиевские и сишные проги можно разобрать. Есть даже специальные разборщики для Делфи и для СИ. С их помощью можно серьезно изменять программы. Сам я этим не грешен, просто удалял компоненты интернет-сервер с некоторых  программ (обезвреживал вирусы).


 
ArtemESC ©   (2005-12-18 18:56) [60]

>>Я хочу, чтобы он мог сжимать RAR -архивы процентов на 25...
А разработчики Rar-а не хотят?


 
Uncle Archi ©   (2005-12-18 22:21) [61]

Digitman ©   (17.12.05 15:40) [23]

>>Защиты от декомпиляции не было, нет и не будет.

Есть защита от трассировки. просто замеряется время выполнения какого-либо фрагмента. на нём и ловится трассировщик. если время будет больше обычно во много раз.
Если же вдруг окажется, что у пользователя медленный комп - не судьба. Есть ещё способы. по-моему у Фаронова описаны были, но этот первый пришёл в голову.


 
Джо ©   (2005-12-18 22:22) [62]


>  [61] Uncle Archi ©   (18.12.05 22:21)

А момент "замера", парод — никак вычислить не судьба?


 
Джо ©   (2005-12-18 22:22) [63]


>  [62] Джо ©   (18.12.05 22:22)
> парод

пардон.


 
begin...end ©   (2005-12-18 22:23) [64]

> Джо ©   (18.12.05 22:22) [63]

Помехи на радиорелейной линии? :-)


 
Джо ©   (2005-12-18 22:29) [65]


>  [64] begin...end ©   (18.12.05 22:23)

Похоже на то :)


 
Uncle Archi ©   (2005-12-18 23:11) [66]

Джо ©   (18.12.05 22:22) [62]
А момент "замера", парод — никак вычислить не судьба?


Я имею ввиду замеряется на среднестатистической машине.
К примеру ну не будет же вот такой код исполняться 15 секунд:


 mov ax,6
 mov bx,5
 add ax,bx


 
Uncle Archi ©   (2005-12-18 23:12) [67]

Всмысле вставляется константой. тем более этот метод старый, а заметить его, не зная, что он есть, IМНО, не очень легко.


 
Юрий Зотов ©   (2005-12-18 23:50) [68]

> Uncle Archi

Отключается все, в том числе и этот код. Ну да ладно, дело даже не в нем. Допустим, обнаружили Вы трассировщик.

Дальше что?


 
Джо ©   (2005-12-19 01:54) [69]


>  [66] Uncle Archi ©   (18.12.05 23:11)

Я просто спрашиваю — как происходит тот самый "замер"? Уж не волшебными ли заклинаниями? А раз нет — то он все-таки производится каким-то тобой написанным кодом. А раз так — то и найти этот кусок кода и сделать с ним, что пожелается — нет абсолютно никаких препятствий.


 
Uncle Archi ©   (2005-12-19 19:58) [70]

Юрий Зотов ©   (18.12.05 23:50) [68]
Джо ©   (19.12.05 1:54) [69]

Я просто предложил простенькую защиту. она доставит немало хлопот тому, кто будет ломать. И не надо меня критиковать.
Дальше может просто следовать int 20h .


 
Lamer@fools.ua ©   (2005-12-19 20:10) [71]

>Дальше может просто следовать int 20h .

В Ring 3? Ну-ну.


 
Юрий Зотов ©   (2005-12-19 20:28) [72]

> Uncle Archi ©   (19.12.05 19:58) [70]

Вот это самое int 20h (или еще какое-то действие) и будет обнаружено. За него можно зацепиться, а дальше - обратная раскрутка. Дело техники.


 
Uncle Archi ©   (2005-12-19 20:33) [73]

Юрий Зотов ©   (19.12.05 20:28) [72]

Всё, сдаюсь. я не знал, что нарвусь на хакеров )


 
Kerk ©   (2005-12-19 20:44) [74]

Юрий Зотов ©   (19.12.05 20:28) [72]
Вот это самое int 20h (или еще какое-то действие) и будет обнаружено. За него можно зацепиться, а дальше - обратная раскрутка. Дело техники.


; тест на трасировку
; если не прошел то

jmp end_of_prog

; сама программа

end_of_prog:
int 20h


Раскручивайте.


 
Uncle Archi ©   (2005-12-19 20:55) [75]

Kerk ©   (19.12.05 20:44) [74]
Спасибо за поддержку.


 
Юрий Зотов ©   (2005-12-20 00:17) [76]

Браво, Роман, проблема создания невзламываемой защиты решена. Хакер нипочем не сообразит, что программа не всегда исполняется линейно. Причем особенно трудно ему будет сообразить, что именно в коде всяких там проверок как раз и должны быть всякие там переходы.

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

А если даже случайно и найдет, то нипочем не догадается посмотреть, что находится перед этим переходом. А если даже и догадается, то уж точно не сможет, например, просто заменить его на NOP.

PS
Вообще-то, программист мог бы и сам сообразить, что такое "обратная раскрутка". Что это не просто тупой просмотр кода в обратном направлении.

PPS
Рома, загляни сюда:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1046
Это материал для начинающих программистов. Для начинающих, Рома, обрати внимание. Там внизу есть домашнее задание - взломать именно то, что ты и написал. Так вот, Рома, начинающие программисты, в том числе чуть ли не дети, вполне реально и вполне успешно выполняли это задание. Не будучи никакими хакерами, не имея никакого опыта взлома и не пользуясь никаким хакерским софтом.

PPPS
С трудом сдержался.
:o)


 
КаПиБаРа ©   (2005-12-20 08:43) [77]

Вариант плохо взламываемой защиты
Делаем компилятор с такими функциями:
В программе для внутрених функций и процедур не используется Call, а используется переход по адресу из регистра. Любой адрес перехода есть функция (от предыдущего адреса перехода, значений памяти в области некоторых предыдущих переходов или из области кода защиты, и какой то константы).
Что бы взломать такую программу нужно пройти каждый джамп под отладчиком вычислить адрес перехода ну и заменить соответственно.
Хотя возможно есть более простой способ :)


 
Kerk ©   (2005-12-20 13:09) [78]

Юрий Зотов ©   (20.12.05 0:17) [76]
А если даже случайно и сообразит, то код перехода по известному адресу нипочем не найдет.


mov eax, offset end_of_prog-1
inc eax
jmp eax


Ищите переход по известному адресу. Можете начинать.

Код в [74] условный. Программист мог бы и понять. Вместо, непосредственно, перехода, можно, например, делать SetEvent, а этого Event"а ждать в другом потоке, который и сделает jmp end_of_prog или что-то другое, что нам надо. Вариант с SetEvent интереснее, т.к. вмешиваться в синхронизацию потоков неизвестной программы - дело не для слабонервных.

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



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

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

Наверх




Память: 0.68 MB
Время: 0.034 c
4-1131107280
Bless
2005-11-04 15:28
2006.01.15
Копирование файлов по сети.


14-1134634406
Progger
2005-12-15 11:13
2006.01.15
Мороженые пельмени.


14-1134491996
Hermit
2005-12-13 19:39
2006.01.15
Прокси


11-1116329995
apus
2005-05-17 15:39
2006.01.15
Вышел Free Pascal 2.0


14-1135098605
Piter
2005-12-20 20:10
2006.01.15
Может кто-нибудь дать аккаунт на www.filepost.ru? :)