Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.63 MB
Время: 0.013 c
2-1135256872
Dysan
2005-12-22 16:07
2006.01.15
помогите разобраться!


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


2-1135251122
Allocal
2005-12-22 14:32
2006.01.15
массивы в Delphi


9-1122312800
Andry
2005-07-25 21:33
2006.01.15
Как быть с текстурами


4-1131369084
Энтри
2005-11-07 16:11
2006.01.15
SendMessage & ListBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский