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

Вниз

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

 
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.65 MB
Время: 0.039 c
2-1134678624
aleks28
2005-12-15 23:30
2006.01.15
WebBrowser


2-1135751571
Bratskiy
2005-12-28 09:32
2006.01.15
Использование неопределёного числа параметров в процедуре


2-1135275962
denisww
2005-12-22 21:26
2006.01.15
HTTPRIO


3-1132305106
Anny
2005-11-18 12:11
2006.01.15
Прога считывания и обработки штрих кода...


2-1135717341
Freezz
2005-12-28 00:02
2006.01.15
работа с записями