LINUX.ORG.RU
ФорумTalks

Вай-вай, что делать?..


0

0

Я в печали :(

Сейчас звонила преподша по культурологии. Кто-то ей напи**ел, якобы я крутой программист (это наверное из-за того что я на факультете дисками польезными торгую), теперь она хочет:

- чтобы я сделал ей электронную защиту ее учебника
- чтобы я сделал ей электронную систему сдачи экзаменов

Ну как ей втолковать, что я не программист?.. Ай, что делать... Вот вредная бабка!

Может кто что подскажет? Готовые решения для защиты дисков от копирования (бесплатные ;)), или там системы здачи экзаменов :)))

Блин, ну что за невезение

★★★★

Ещё хорошо что не узнали что ты хакер, а то попросили бы взломать сайт ситибанка через попапы.

WerNA ★★★★★
()
Ответ на: комментарий от WerNA

:)

Ого-го, они меня еще припомнят!

K48 ★★★★
() автор топика

1 - Не бывает. Точнее, бывает, но такие, что и нормальный диск не всегда опознают. И стоят очень недешево.

Shaman007 ★★★★★
()

Что делать? Поговорить с ней и сказать, что это глубокое недоразумение.

anonymous
()
Ответ на: комментарий от Shaman007

Хм... Ну а может есть какой способ, чтобы "девочки с факультета лингвистики" (ее слова) не смогли скопировать. Для факультета ПС она собирается нанимать проф. программистов :)

K48 ★★★★
() автор топика
Ответ на: комментарий от K48

А если записать диск - скажем 600Мб полезных данных, посередине 100Мб мусора - всё одним файлом. Поцарапать хорошенько диск в области мусора. Оболочка читает данные низкоуровнево, пропуская нечитаемый мусор. Тупо скопировать целиком хрен получится. Я просто помню, что когда-то дырки в дискетах сверлили, хотя может и вру.

WerNA ★★★★★
()

>Ай, что делать... Вот вредная бабка!


Раскольникова почитай.. там есть готовое решение ;)

Opg ★★
()
Ответ на: комментарий от WerNA

Не сверлили, а лазером метку ставили, получалась ключевая дискета.

Sun-ch
()
Ответ на: комментарий от Opg

Вернее как его.... Преступление и наказание %)

Opg ★★
()
Ответ на: комментарий от Opg

Достоевский была его фамилие.

Федор Михайлович.


Двоешники ептыть :)

Sun-ch
()
Ответ на: комментарий от WerNA

Хм, интересный способ... Там данных то - кот наплакал, книжка, оформленная в виде файла виндового хелпа. Много не должна занимать. Надо подумать, но вручную царапать такое кол-во дисков?..

Да и можно просто взять, скопировать этот .chm ...:x

K48 ★★★★
() автор топика
Ответ на: комментарий от K48

И будут еще ругаться, что за нахрен, зачем диск покоцаный продали.

Думаю, можно намутить что-то с мультисессионностью (пока не знаю что :)) или атрибутом hidden. А еще круче - boot disk с дистрибутивом линукса и этим учебником :) чтобы сам запускался

K48 ★★★★
() автор топика

Можно симетрично зашифровать, а ключ поместить скажем в пятый от конца сектор носитиля.

fghj ★★★★★
()
Ответ на: комментарий от WerNA

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

K48 ★★★★
() автор топика
Ответ на: комментарий от fghj

[b]fghj[/b]

Дык, если бы у клиентов был линукс! Я бы может какой скриптик и наваял, dd там, md5sum :)

А тут ведь программу нужно будет писать, может даже на Си! А я не умею. Я еще начинаюсчий хаккир %)

K48 ★★★★
() автор топика

Как это оформлять собираются? Договор, техзадание, акт приемки, расчётные счета в банке? Или просто нашарашить.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от K48

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

$cat crypt.c
#include <stdio.h>
#include <stdlib.h>

int key(void){ return 17;}

int main(int argc, char *argv[])
{
FILE *in, *out;
int ch;
in=fopen(argv[1], "rb"); out=fopen(argv[2], "wb");
while((ch=fgetc(in))!=EOF) fputc(ch^key(), out);
fclose(out); fclose(in);
return EXIT_SUCCESS;
}

fghj ★★★★★
()
Ответ на: комментарий от fghj

А дело тут не в религии.

Просто каждый хорошо воспитанный паренек, прежде чем уйти из main()

должен сбросить буфера, закрыть стримы, уничтожить временные файлы,

позаботся о детях и т. д.

А все это делается через exit().

man 3 exit

Читайте маны юноша, в них скрыто знание.

Sun-ch
()
Ответ на: комментарий от Sun-ch

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

и что ты думаешь этого не произойдет в данном случае?







fghj ★★★★★
()
Ответ на: комментарий от K48

>Ну а кто сказал что при копировании содержимое сектора X поменяется?

Ваш вопрос можно отнести к разряду а как это работает,

весь набор ПО представляет собой программу дешифратор-пускалку просмотра
и зашифрованный файл с книгой.

как это работает:

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

fghj ★★★★★
()
Ответ на: комментарий от fghj

Хм, а вот интересная мысль пришла. Что если сделать активацию? Типа, программа считывает серийный номер винта, выдает некий код, который нужно принести мне, а я уже скажу код активации :)

а файл можно просто переименовать, расширение убрать :) а потом его куда-то копировать, в temp например

K48 ★★★★
() автор топика
Ответ на: комментарий от Sun-ch

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

открою тебе великую тайну,
за тебя это делает ОС после завершения программы.

да и еще последний стандарт C это C99, так что ты лет на 10 отстал
от жизни.

Это было важно во времена MS-DOS, но никак не сейчас,
единстевенно о чем надо заботиться это о имеенных семофорах и тому подобное, но exit их закрытие не гарантирует.

anonymous
()
Ответ на: комментарий от anonymous

В догонку:
в данном коде, вроде бы, все потоки и буферы сброшены и закрыты,
это обеспечивает fclose,
хотя этого можно было и не делать.

anonymous
()
Ответ на: комментарий от K48

и что ты думаешь, что тупые виндовые пользователи, если файл будет переименован и без расширениея не поймут что это их книжка?

anonymous
()
Ответ на: комментарий от anonymous

>открою тебе великую тайну

Ну ладно :)

Вот только exit() определена в ANSI C и POSIX

Все это песни на тему аналогичную той "почему нельзя писать скрипты на

bash."

Sun-ch
()
Ответ на: комментарий от anonymous

"девочки с факультета лингвистики" - скорее всего не поймут

anonymous
()
Ответ на: комментарий от K48

Так. Сейчас подумал, сложилась примерная такая схема работы:

- Пользователь запускает некий файл, который читает серийный номер жесткого диска, и выдает пользователю на его основе некоторую комбинацию. Можно даже не комбинацию, а серийный номер в голом виде выдавать - все равно никто не догадается посмотреть на наклейку НЖМД.

- Серийный номер говорится мне. Я запускаю супер-пупер секретную программу, ввожу серийный номер, а программа вычисляет код активации. Он будет небольшой, цифр 6.

- Счастливый пользователь запускает на своем, и только на своем компутере программу, вводит код активации (при каждом запуске) и лицезреет учебник

- Файл учебника являет собой .chm-файл. На диске есть папочка с файлами вида book0.data, book1.data, таких файликов штук 50-100. Все они одинакового размера. Лишь один из них - настоящий, переименованный файл .chm. Все остальные, поддельные файлы, предназначенные для маскировки, имеют такой вид: первый килобайт берется из оригинального .chm-файла, остальное - ценная инфа из /dev/urandom

- При запуске и вводе правильного кода активации нужный файл из этих ста копируется во временный фолдер, переименовывается в .chm и запускается, а по окончанию работы удаляется. (эх... уязвимое место)

Недостаток. Работает только на одном компе, и НЖМД заменять нельзя. Достаток. Все это я могу наваять на VB6, кроме кода, считывающего серийник винта. Была мысль брать для этой цели имя хоста, но тогда при переустановке винды (а это не редкость) - все сдохнет.

K48 ★★★★
() автор топика
Ответ на: комментарий от Sun-ch

>Все это песни на тему аналогичную той "почему нельзя писать скрипты на bash."

Вообще-то на csh

anonymous
()
Ответ на: комментарий от Sun-ch

>Вот только exit() определена в ANSI C и POSIX

определенна, кто же спорит,

вот только ты не ответил что в данной программе не закроется, не сброситься и т.д., если даже она будет скомпилирована под MS-DOS?

anonymous
()
Ответ на: комментарий от anonymous

Конечно, это хорошо, всем подряд повторять то что сказал тебе твоя
учительница информатики,
но надо и головой думать.

anonymous
()
Ответ на: комментарий от K48

Да, нынешняя молодежь знает только VB.

>кроме кода, считывающего серийник винта

есть системные вызовы для получения требуемого,
см. msdn.

а файл можно удалить после открытия, тогда как только будет закрыт
дескриптор файл самоуничтожиться, это произойдет даже в случае
аварийного завершения(и не нужно никакого вызова exit)

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от anonymous

>Да, нынешняя молодежь знает только VB.

Я знаю, что все думают по поводу VB. Я тоже так думаю :)
Но я лингвист, а не программист =)

>см. msdn.

Покопаюсь сегодня ночью. А может у тебя сразу ссылка есть?

>а файл можно удалить после открытия, тогда как только будет закрыт
>дескриптор файл самоуничтожится, это произойдет даже в случае
>аварийного завершения(и не нужно никакого вызова exit)

Хм, а я думал, такое только в unix есть. А то удаляешь в виндах файл, а написано, что он занят другой программой.

K48 ★★★★
() автор топика
Ответ на: комментарий от anonymous

>А код активации можно сохранять... в реестре,
>чтобы каждый раз не спрашивать
>или VB этого не позволяет?

Позволяет, и самое удивительное, что я даже знаю, как это сделать :)

Но нужна Имитация Кипучей Деятельности данной программы.

K48 ★★★★
() автор топика
Ответ на: комментарий от K48

>>см. msdn

google лучше:

можно использовать

либо GetVolumeInformation,

либо брать серийник диска, но для этого, насколько я знаю,
не придусмотрена функция в WIN32.



fghj ★★★★★
()
Ответ на: комментарий от fghj

и по-моему обсуждение надо перенести в раздел Development
и не этого сайта.

fghj ★★★★★
()
Ответ на: комментарий от fghj

>либо GetVolumeInformation,

Так то ж информация т.н. "тома". Если отформатировать диск, то эта инфа поменяется. И работать программа не будет.

>либо брать серийник диска, но для этого, насколько я знаю,

Серийник диска? НЖМД или КД? А что, брать серийник КД - это идея! Это отличная идея! Тогда нафиг не нужны никакие активации. И что, для взятия серийника КД нет функции?

K48 ★★★★
() автор топика
Ответ на: комментарий от K48

>И что, для взятия серийника КД нет функции?

Ой, ступил. То ж эта функция и есть. GetVolumeInformation. Только надо знать букву КД-привода. Но это не проблема.

K48 ★★★★
() автор топика
Ответ на: комментарий от K48

Уникален ли номер тома у компакт-диска? То есть будут ли, скажем, полсотни дисков, отштампованных фабричным способом, иметь разные номера?

K48 ★★★★
() автор топика

И вообще, как в линуксе-то этот номер тома узнать???

K48 ★★★★
() автор топика

Блин детсад. Она хочет 1)поднять (и регулярно подмимать в будущем) бабло на учебнике; 2)получить систему, которая уменьшит кол-во требуемой работы. И ты собираешься это для неё за спасибо делать? Блин тебя ещё в жизни и не так будут "просить", давай только подставляйся знай.

А если она захочет чтобы ты из окна вышел тоже согласишься? Пошли подальше и всё (корректно так пошли).

А барыжничать сидюками - это вообще полный пыпэц.

linux_newbe
()

>А барыжничать сидюками - это вообще полный пыпэц.

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

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

K48 ★★★★
() автор топика
Ответ на: комментарий от K48

>Пошли подальше и всё (корректно так пошли).

Ага. Мне еще экзамен ей сдавать.

K48 ★★★★
() автор топика
Ответ на: комментарий от Sun-ch

>Просто каждый хорошо воспитанный паренек, прежде чем уйти из main()
>должен сбросить буфера, закрыть стримы, уничтожить временные файлы,

Aside from calls explicitly coded by a programmer, exit is invoked on return from main.
(С99)

тебе перевести, малыш?

fghj ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.