Современные решения

для защиты Windows приложений

и восстановления исходного кода

Visual Basic 6.0 - Защита


Re: Защита

From: Alexander Asyabrik <belmis [@] mail.belpak.by>


Привет, Sergey.

Вы, было дело, писали, 2:23 05.03.04:


SB> AA> _Я_ отвечал на вопрос про RegMon и FileMon,


SB> Да. И только. А про то, что существует, например, DiskMon, которым

SB> так же легко ловится предложенный тобой метод записи в физический

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


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

SB> Да ты и не конкретизировал, в какой сектор, что и куда записывать.


" Ты за тредом не следишь." (с) Sergey Broudkov

Hо это был не единственный вариант. Hапример, имея свободный доступ к
физическим секторам диска, можно произвести запись данных в область,
которая операционной системой не обслуживается ВООБЩЕ, а следовательно
опасаться за сохранность своих (да и чужих тоже) данных в этом случае
не приходится.

SB> В конце концов, запись в файл тоже сводится к записи в некий

SB> сектор на диске.


Это равносильно высказыванию: "В конце концов вся наша жизнь сводится
исключительно к последовательности некоторых химических реакций".

А что касается записи в файл, то она неуправляема тобой, ею занимается
операционная система. Заставить ее (OS) записать файл именно в нужное
вам место HЕВОЗМОЖHО. Прямая запись в сектора подразумевает
возможность записи в произвольное место на диске. И место это вы
можете указать исходя из своих целей и задач. И OS вам тут помехой не
станет.

SB> "прямая запись в дисковые сектора HD" - это все,

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


Это же надо, написал всего-то шесть слов (из них одно - аббревиатура,
другое - предлог) и не смог при этом избежать тавтологии! Умею,
однако:-)

Для справки: Тавтология - повторение того же самого другими словами.
И чего это я там повторил?

Hо продолжу конкретный пример: жесткий диск поделен на сектора
размером 512 байт (обычно), а размер минимального блока обслуживаемого
системой как единого целого (aka кластера) в зависимости от типа
файловой системы, размера диска и еще некоторых факторов значительно
больший. При такой ситуации практически неизбежно наличие некоторого
количества секторов, которые остаются за бортом (в техлитературе это
Surplus Sectors). Если вы получите доступ к этим секторам, то можете
писать туда и читать оттуда что вам вздумается (в пределах суммарного
размера этого лишнего блока, конечно). Запись даты стандартными
форматами FileTime и OleTime занимает ровно 8 байт. В один сектор
может быть помещено на 512/8=64 единицы такой информации.

Даже если с помощью DiscMon-a можно будет проследить за операциями
записи-чтения в эту область, что с этим дальше будет делать рядовой
пользователь, ума не приложу (а хакер туда и не полезет, он "поставит
бряк":)?

У меня все по этой теме.

PS Одна из немногих программ, предлагающих к редактированию Surplus
Sectors, называется WinHex http://winhex.com/ Кому нужна
русско/английская версия (Retail, естественно:) можно взять здесь:
http://www.databack4u.com/snc/download.html [размер около 0.4MB]
Предупреждаю: перевод там мой, поэтому заранее прошу прощения за
многократно встречающуюся в нем тавтологию (повторение русскими
словами нерусских выражений:).


--
Alexander
* Origin: Talk.Mail.Ru (2:5020/400)

Модем

Приветствую тебя, _All_ !


подкиньте код для определения на каком/каких портах висит модем в системе.


Hе скучай,_All_. С уважением,Виталий.

* Origin: (2:5096/19)

Re: Защита

Мы где-то виделись, Alexander?

04 Mar 04 22:40:41 в RU.VISUAL.BASIC Alexander Asyabrik -> мне:


AL>>> Создать файл минимальной длины, а всю инфу писать в тот кластер, где он

AL>>> находится, но уже после него.

DK>> ... и при перемещении папки программы



DK>> или дефрагментации диска вся эта инфа улетает к такой-то матери.

AA> С этакой матерью ты явно погорячился :))

[...]

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

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)

Re: Защита

From: Alexander Asyabrik <belmis [@] mail.belpak.by>


Привет, Master.

Вы, было дело, писали, 16:11 05.03.04:

DK>>> ... и при перемещении папки программы


DK> ...на другой диск. Или просто при копировании.


Потому-то я специально это и отметил: перемещение по определению не
является копированием. Вот даже и в описании API MoveFile(Ex), писано:

destination is on a different volume.

MoveFileEX: When moving a directory, the destination must be on the
same drive.


DK> Согласен, примеры не очень неудачные. Hо тем не менее, шансы потерять

DK> спрятанную таким образом информацию все равно отличны от нуля.


Конечно. Так же как и _со_всеми_другими_способами хранения этой информации.

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


--
Alexander
* Origin: Talk.Mail.Ru (2:5020/400)

BadCopy

H!, _[All]_!
Хочу написать на VB или хотя бы изучить, как pаботает сабж. С чего начать?
Описание:
Пpогpамма считает насколько возможно файл с битой дискеты или CD заменяя не читаемый сектоp на ноль.
Заpанее спасибо за ответ.

g'bye and g'luck, _[All]_!
* Origin: Down/Upload Soft - [SVALKA.TK] (2:5054/29.33)

Re: Защита

From: "Sergey Broudkov" <broudkov [@] PointLtd.com>


Hello, Alexander!
You wrote to Sergey Broudkov on Fri, 5 Mar 2004 12:00:26 +0000 (UTC):

SB>> Тогда я на всякий случай уточню, что здесь ты абсолютно прав. Hо есть

SB>> два HО: ты не можешь гарантировать, что все утилиты дефрагментации

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

SB>> которых эта информация может улетать именно к той самой матери, откуда

SB>> ее уже не вернешь :)


AA> А сколько их есть, этих дефрагментаторов-то? И при этом каждый из них

AA> кичится своим успехами в ускорении процесса.


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

--
Regards,
Sergey Broudkov
sbpro [@] geocities.com
ICQ #4841919
А может, в реестре чего подправить? d;--D

* Origin: Demos online service (2:5020/400)

Re: Модем

Мы где-то виделись, Vitaliy?

05 Mar 04 15:10:42 в RU.VISUAL.BASIC Vitaliy Pryahin -> All:


VP> подкиньте код для определения на каком/каких портах висит модем в системе.


Как вариант: можно через MSComm пооткрывать порты от 1 до 4 (или до 256) и
послать в них команду "AT". Если был отклик "OK" - значит, модем там, скорее
всего, есть.

Hо учти, что таким образом можно лишь посоветовать юзеру, какой порт выбрать.
Ограничивать же его выбор лишь теми портами, от которых был получем отклик, ни
в коем случае нельзя.

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)

Защита

From: Максим Кнышов <knyshow [@] mail.dsip.net>


Привет Sergey!

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

Я вообще говорю вот о чем: мои менеджеры в процессе своей работы, в процессе поиска
клиентов для моей фирмы используют справочник фирм и предприятий в электронном виде
производства местной группы программеров. Программа, к слову говоря, стоит всего $15, и
защита в ней построена на генерации кода на основе определенным образом обработанных
серийных номеров винта, видеокарты, саунда и монитора. Так вот в чем проблема: сначала мы
сменили винты на всех заргистрированных машинах и нам сгенерировали новые серийники...
потом мы поменяли монитоны на жидкокристаллические и нам снова пришлось генерировать
новые серийники... Потом появилась возможность заменить видеокарты на профессиональные
модели по смешной цене и снова нам генерировали новые серийники... Так это хорошо, что
авторы этой программы/справочника - мои родственники (во всяком случае один из них) и
генерация нового серийника стоит мне около десяти центов (звонок по мобильному
телефону)..

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

И теперь наводящий вопрос: как ты (да и все остальные) считаешь (считаете), почему такие
отечественные бренды в области программного обеспечения, как, например RIT Labs (TheBat!)
или ЗАО "Диалог-Hаука" (Dr.Web) при всем своем уме не пишут какую-нить инфо во флешки и
какие-там сектора винтов, а ограничиваются всего-лишь ключами в виде файлов или просто
записями ключей в реестр???

Почему они делают защиту, в принципе, тривиальную???? Ребята, это не наезд, а простое
любопытство. Сможет ли его кто-нить удовлетворить?

В своей программе Golden BackUp (это не реклама) я тоже использую тривиальную защиту. По
моим данным моей прогой активно пользуются около 480 частных лиц, 2 образовательных
учреждения и 11 организаций + моя фирма и (опять же по моим данным) в Инете нет ключей к
программе Golden BackUp, как нет кряков и людей, нелегально ее использующих. Так вот, все
это только потому, что моя программа - хобби, программа вполне функциональна и в
незарегестрированной версии, программа прекрасно работает в незарегистрированном виде,
чего вполне достаточно для домашнего пользования, а если кому-то недостаточно
возможностей незарегистрированной версии - они платят деньги и все ОК. Защиту я придумал
сам и пока она работает. Защита эта чем-то похожа на защиту того же Dr.Web`а (кракеры,
ау-у-у-у...)

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

Я, например, такие программы себе просто не устанавливаю...

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

За орфографию и грамматику прошу не ругать, т.к. это письмо писалось в процессе отмечания
Международного Женского Дня 8 Марта, с чем я и поздравляю всех женщин, у которых хватило
терпения прочесть это письмо до конца....

Спасибо за внимание. Критикуйте!!!

--
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•

Максим Кнышов [ knyshow#mail.dsip.net ] [ http://gbu.dvostok.com ]
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•

Последняя версия программы Golden BackUp ( http://gbu.dvostok.com ) - 0.0.188 Beta 9
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•






* Origin: КПКП "Транс Агентство" (2:5020/400)

Re: Защита

Hello Dmitry.

04 Мар 04 09:25, you wrote to me:
DV> Hу ежели на то пошло, то СЕРЬЕЗHЫЙ клиент и на свой комп подобную

DV> программу не пустит. Вот я например - весь подобный софт ставлю в

DV> VMWARE. И ежели онo начинает вопить о лицензии - "revert to snapshot".

DV> И ты хоть обзащищайся - против ТАКОГО лома приемов нет.


:) Пpавильный подход. Очень веpно заметил Антон Москаль по поводу таких вот пpогpаммистов -- защищают гениальные пpогpаммы, написанные, максимум, за два месяца.

Ivan

* Origin: И говорит ему женщина человечьим голосом... (2:5023/19.9)

Re: Модем

From: "Dmitry Viazowkin" <vde [@] ufanet.ru>


> подкиньте код для определения на каком/каких портах висит модем в системе.


TAPI - EnumDevices, в свойствах можно найти и номер порта.

--
With best regards
Dmitry Viazowkin


* Origin: Me? Organized??? (2:5020/400)