Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Криптостойкость 0% у любой программы

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Molniev
BorlandIMHO
Я тут удалил текст, потому что история забавная...
Рассказываю я товарищу на улице историю про одного предпринимателя.
- Захожу к нему в кабинет смотрю сейф стоит посередине, на сейфе бумажка наклеена, на бумажке написано:
- Это сейф, пароль 12345.
- Я значит говорю предпринимателю, Вы мол не надёжно деньги прячете, смотрю на бумажку и думаю забавный пароль.
- Предприниматель мне и говорит - сейфы штука надёжная, я не про конкретный сейф а вообще.
- Ну ладно, я говорю, а вы когда уходите из кабинета дверь закрываете. Он отвечает
- Да зачем всё равно сейфы штука надёжная.
Поржали мы дальше про сейфы перетираем и тут откуда ни возьмись блондиночка. И говорит:
- А Вы бред какойто несёте, сейфы придуманы для надёжности, я не про конкретные сейфы а вообще.
Тут мне товарищь ))
- Хорошо хоть красивенькая.
Ну она и говорит
- Меня Юля завут.
 
Ну Юля конечно алгоритмы а не программы.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 22:18 14-03-2012 | Исправлено: delover, 07:28 15-03-2012
salexn1



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover
Вы мне напоминаете героя фильма: Елки-Палки
Он бегал с теорией государства, а вы открыли для себя оператор XOR и бегаете с топика в топик с идеей как-бы его применить.

Всего записей: 502 | Зарегистр. 21-02-2008 | Отправлено: 14:38 15-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
salexn1
Зачёт сразу. Только не забывайте - это повод для общения в котором выяснится  что хаккеры умнее лохов программеров, но непонятно почему лохи станут умнее. Мне то хотелось бы этого, никого лично унижать не собираюсь, в том числе и хакеров, Бог мне диктует - так будет красивее и я говорю ну ладно. Пользоваться приёмами Малахова младшего не собираюсь.
 
All просто всегда надеюсь на адекватную реакцию
А получаю реакцию похоронную, все уже признали Кулибина а спустя 300 лет нашелся кто не признаёт. Программирование - прикладная наука не надо воображать себя принцессами. Вы программисты те же Кулибины, если не так займитесь вышиванием крестиком, больше пользы будет. До смешного уже хочу, архиватор + хор это чтобы данные тестировали на криптоалгоритм хотябы неделю. Принесёт мне это сказочное удовольствие несравнимое с зарплатой за месяц. Это было отступление потому что я почти его получил.
 
 
 
Добавлено:
Согнута струя моя
И я не чую нифуя
Что мне делать - как мне жить
Как жону свою любыть.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 21:22 15-03-2012
ItsJustMe

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover
Я главного в речах не понял - куда деньги отсылать и за что? МПХ вы увеличить не предлагаете, от налогов уйти не предлагаете, а что предлагаете? Я, вот, к примеру - лох, и с радостью отдам первому попавшемуся говорливому мошеннику деньги. Но даже я не понял, за что и куда. А тут программеры сидят, люди умные и суровые. Если вы даже простого лоха развести не способны, то чего же вы здесь ловите?.. Загадко, аднака...
PS: Хотя одна догадка у меня есть У вас просто словесный понос, а я сдуру скрытый смысл ищу. Видимо, надо быть проще и люди к вам потянутся меньше читать о теории заговора...

Всего записей: 2044 | Зарегистр. 02-09-2005 | Отправлено: 22:16 15-03-2012 | Исправлено: ItsJustMe, 22:22 15-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ItsJustMe
А Вы Юля ну добро пожаловать. Если в Ваше сообщение добавить аналитику то можно увидеть и отрицательный приход и соответственно отрицательное наличие. Поменяйте местами приход с расходом и уберите минус. Как прабабушка учила - не из дома надо таскать а в дом. В пустой программке на дельфи в коде помечены куски байтов именами юнитов которые никто за мои 5 лет не переименовывал, среди них встречаются имена библиотек шифрования, ради любопытства ставил туда брейкпоинт в слепую, потом находил от куда пришло, потом тупо читал стек и воспроизводил в другой программе. Более двух дней веселье не занимает. Про понос это пожалуйтса тем кто говорит о криптостойкости 100 лет, в моих условиях криптостойкость обычно 1 день. Присутствие байтов известных библиотек вычисляется так же легко как вирусы. Если программа не прошита чемто типа аспака посерьёзнее, говорить об криптостойкости понос похлещще.
 

Цитата:
А тут программеры сидят, люди умные и суровые.

Да Вы наверно шутите. Хотябы одно положение которое я не доказал? Я не спешу, матрёшка например состоит из задачи открыть сначала первую матрёшку потом вторую а не наобарот, поменяйте приход с расходом.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 23:49 15-03-2012
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
нда...

Всего записей: 25646 | Зарегистр. 06-12-2002 | Отправлено: 23:56 15-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так чтобы более понятней были метафоры - сейф=алгоритм криптовки. Бумажка на сейфе это отпечаток известных библиотек шифрования. Когда мы выбираем XOR, для меня сложность взлома вашей программы будет составлять более 2х недель. Заметьте мы не стали платить за СтарФорс и заставили хаккера требовать пол месячной зарплаты программера. Если свести баланс то получается примерно заработали месячную зарплату. Надеюсь что более понятно стало что я пишу. Кулибинские алгоритмы шифровки так же идеальны.
 
Если про отрицательное наличие - оно вообще то бывает когда товар ещё не оприходовали а по кассе уже отпускают. Однако нужно уметь правильно показывать цыфры. Наличие так и остаётся нулевым, а не так чтобы 0 - товар...
 
Я тогда буду переходить к прививкам от взлома, так как если был выбран СтарФорс, моя тема мало чем поможет.
 
Добавлено:
Первый метод защиты от взлома - динамическая загрузка адресов DLL функций. Например достаточно переписать файловый поток на свой заменив вызовы системных функций на динамически загруженные. И вот шифрованный поток уже гораздо сложнее поймать. Сработает только подсовывание под Вашу программу заменителя kernel32.dll, это может не помочь хаккерам если Вы проанализируйте размеры версию размеры ресурсов dll. Отличить пустышку достаточно легко.
 
Добавлено:
ЗЫ  
если kernel32.dll не лежит в положенной системной папке а рядом с программой, что бывает черезвычайно редко можно даже не задумываться что это пустышка. Есть и другие методы, например найти ещё один правильный кернел в памяти и так далее. Если хаккер умудрился заставить весь Windows работать через свой кернел то скорее всего не поможет никакая защита вообще.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 06:56 16-03-2012
wasilissk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover

Цитата:
Первый метод защиты от взлома - динамическая загрузка адресов DLL функций. Например достаточно переписать файловый поток на свой заменив вызовы системных функций на динамически загруженные. И вот шифрованный поток уже гораздо сложнее поймать.

С чего это вдруг? При динамической загрузке они будут точно такие же как и при статической.

Всего записей: 293 | Зарегистр. 25-12-2006 | Отправлено: 08:40 16-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wasilissk
При динамической загрузке
1. Мне в этом случае нравится HIEW больше, когда я смотру ассемблерный дамп он сразу подписывает  

Цитата:
CALL $AA0011 - ; kernel32.TerminateProcess

Да и отладчики подписывают, очень удобно чтобы поставить сюда брейкпоинт.
2. Легко найти все точки где стоит этот вызов в процессе. Так делает метод
  TJclPeMapImgHooks.HookImport. То есть все вызовы CALL $AA0011 я могу переопределить на свои собственные, даже не крякая программу.
3. при статической, загрузке все такие методы прописываются в таблице импорта. Например меня могут удивить такие функции как VirtualProtect в импорте программы, который естественно необходим если программа собирается защищаться от хаккеров. Функции IsDebugAttached и так далее при просмотре импорта взламываемой программы всегда вызовут мой живейший интерес.
4. При динамической загрузке невозможен Hook.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 11:14 16-03-2012
wasilissk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover

Цитата:
1.

И при чем же тут динаическая загрузка?

Цитата:
2. ... CALL $AA0011  

Это как раз статическая загрузка. Вообще не понял в какую сторону заангажирован этот аргумент.

Цитата:
3.  

Ага, а при динамической, хакер сразу как бы забывает, что есть такая функция и её не проверяет ни в коем случа. Хакер же тупой читает таблицу импорта, открывает msdn и смотрит, а что же такого делает этот самый VirtualProtect. Ну-ну.

Цитата:
4.

Hook на что невозможен? На вызов API функций? Уверены?  
 
Все таки ближе к телу, т.е. к вашему потоку. Я хочу его выцепить. Знаю что там вызываются, либо ReadFile, либо WriteFile, cтавлю бряки в kernel32.dll на эти функции в четыре щелчка. Каким образом вам поможет ваше переписывание вручную потока с динамическим вызовом функций?

Всего записей: 293 | Зарегистр. 25-12-2006 | Отправлено: 11:45 16-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wasilissk

Цитата:
на эти функции в четыре щелчка.

Щелчков то может быть не 4. Вобщем первым я узнал об этом методе из постов на руборде. Смотрите анналы. Дело было давно, и rubord-вец писал что он вообще всю таблицу импорта полностью подделывал. Я тогда не стал спрашивать зачем же именно всю таблицу, но очевидно у него были на то основания. Брейкпоинт как мне известно это инструкция прерывания внедрённая прямо в код. Помоему int3 и то есть это записанные конкретные байты туда где их быть не должно. Как вариант - не выполнять такую функцию где брейкпоинты. Как вариант - можно "затрахать" прочитав перед этим ini файл и много чего другого. Всё таки ближе к телу. Перечисленные аргументы.
1. 2. Изучать в дебажнике статические вызовы легко и удобно. А так жне осуществлять их поиск.
3.

Цитата:
Ага, а при динамической, хакер сразу как бы забывает, что есть такая функция

Ну и что что он не забыл? Он во все программы сразу же пихает брейкпоинты на эту функцию? Отлично, тогда наверно псевдополезный затрахиватель поможет ему понять, что туда надо ставить брейкпоинт только в тот момент когда будет выполнятся реально полезный код. А так как с географией вызовов по процессу туго, сложно будет поставить ещё один брейкпоинт чтобы попасть в тот момент когда нужен брейкпоинт на реальный код.
Перед этим хакеру надо изначально подозревать все программы, потом тратить время на затрахиватели, потом убедиться что куча баги действительно должна быть может быть взята только хитростью. А потом уже пересмотреть правильно ли он сделал когда подозревал что программа делает VirtualProtect? Может это очередная веселуха или замануха.
4.
Цитата:
Hook на что невозможен? На вызов API функций? Уверены?  

Hook не возможен. При статической линковке организуется таблица импорта, при загрузке организуется таблица JMP адрес DLL и на эти JMP указывают вызовы статических функций. Hook это операция записи в таблицу JMP своих адресов. Операция по подмене реального кода на свой собственный для перехвата с последующим востановлением затираемых инструкций называется иначе но по сути это тот же Hook. Но при динамичнеской загрузке адрес хукаемой функции находится в хипе процесса и ни как не связан с кодом программы. На каком предположении вы сделаете вывод что пачка байтов в хипе это и есть тот адрес который надо подменить? Hook - в таком виде не возможен.
 
Добавлено:
ЗЫ
Кстати ладно, поделюсь... Самые полезные затрахиватели это те которые работакют при перерисовке окон. Вы переключаетесь из дебаггера в окно программы, она перерисовывается и в любом случае вы получаете дополнительный полезнай брейк, далее видите окно дебаггера и так прыгаете некоторое время туда сюда.
 
Добавлено:
Ну и если уже у вас вся таблица импорта под рукой то можно сыграть очень красивую и многоголосую музычку в самые разные места.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 14:32 16-03-2012
wasilissk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Щелчков то может быть не 4

В OllyDbg именно 4.

Цитата:
Смотрите анналы

Т.е. слышал звон, да не знаю, где он?

Цитата:
1. 2. Изучать в дебажнике статические вызовы легко и удобно.

Да не отличаются ничем эти вызовы.  

Цитата:
А так жне осуществлять их поиск.

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

Цитата:
Ну и что что он не забыл?  ...  Может это очередная веселуха или замануха.

Опять старые песни о главном. Ну, а если VirtualProtect статически вызывается, то все что вы перечислили сразу автоматом исключается?  
Если будет подозрение на самомодифицирующийся код, он поставит бряк на вашу VirtualProtect, а вовсе не потому что он ее в таблице импорта увидит.

Цитата:
Hook это операция записи в таблицу JMP своих адресов.

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

Всего записей: 293 | Зарегистр. 25-12-2006 | Отправлено: 15:17 16-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wasilissk

Цитата:
хук, запрещенный, гадкий, хакерский?

Совершенно верно. Пока своими глазами не увижу не поверю. На ура он может перехватывать если только он сам реализует GetProcAddr. Конечно про это я ещё не писаль, но куча гемороя (денька два) я выдумывал защиту от этого и написал за часик. Дело в том что GetProcAddr может вернуть вам не правильный - свой хукавый адресс, только если опять же он сам хукнут. Это гадкий хук конечно. Можно даже не сомневаться что он умеет когда GetProcAddr(GetProcAddr) возвращать себя. И можно не сомневаться что он сделан на основе хука изначального статического, потому что без изначального статического не узнать ни одного динамического. Осталось только дотянуться до реального GetProcAddr, чтобы гадкий хакерский способ перестал работать. Предложу самостоятельно подумать как это сделать. Был бы у меня BoundChecker мне было бы легче найти его уязвимость.
 

Цитата:
 привидите авторитетный источник подтверждающий  

Моё определение не оконно-хендлового хука в том что он основан на замене адреса для того чтобы сделать перехват - крючёк. В случае с BoundChecker это тот же хук и то же определение. Я писал, что внедрение когда, боюсь выглядеть безграмотным как то типо так же как называется это у вирусов не помню как. Авторитетного источника нет.
 

Цитата:
Если будет подозрение на самомодифицирующийся код

Вот тут то совершенно точно. И может сильно пролететь мимо если программа переодически не снимает от туда брейкпоинты. Хотя я этого и не делал, запарить мозг хакеру - есть ещё множество способов. Я разрабатывал свои способы на работе, тогда мне дали 2 недели на это. Однако воспроизвести их дома для своей проги ушло гораздо меньше времени - а именно сколько занимает копипаст с некоторым рефакторингом. Так что я временя терял только на заработок.
 

Цитата:
Да не отличаются ничем эти вызовы.

То есть для Вас нет разницы между
CALL [EDI+1234]
и
CALL [AA0055] // kernel32.LookResource
????
Для меня есть разница - в первом случае я не вижу сразу куда идёт вызов и чтобы понять я должен сделать туда Step а потом прогуляться до выхода. В первом случае это миллисекунда. Во втором случае зависит от скоросли с которой вы делаете свои щелчки.
 

Цитата:
Т.е. слышал звон, да не знаю, где он?  

Вы просто так это спросили чтобы сьязвить или Вы не сумели спросить чегото?
 

Цитата:
В OllyDbg именно 4.

Я имел ввиду сколько брейкпоинтов ставит 4 щелчка? Мне нужно поставить ровно 14 брейкпоинтов. Пока не поставлю, понять что происходит с моей прогой не смогу. Там простое дублирование битовой логики и совместное хранение данных в одном байте. А вычисления условий и состояний происходит предварительно вообще в других местах программы. Я предлагаю, я Вам вышлю программу взломайте её ради бога не жаль))) И как Вы утверждаете выдерите пожалуйста дешифрующий код когда пароль известен. Ну и хотя бы напишите перебор который будет работать естественно долго, так как моя расшифровка долгая. Когда будет готова вышлите мне я проверю судовольствием подтвержу, что за такойто срок вы справились, я автор проги и ломал её 2 недели, вам ещё алгоритмы выдирать и ломалку пароля делать. Там на окне ввода пароля хук висит который в последующие хуки ESC рассылает. Мониторил кейспаем - он видит только правильно нажимаемые ескейпы. Так что Ваша ломалка была бы даже полезной. От пароля берётся хэш по этому пароль востанавливается только перебором.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 16:46 16-03-2012
wasilissk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover

Цитата:
CALL [EDI+1234]  
 и  
 CALL [AA0055] // kernel32.LookResource

В обоих случаях будет kernel32.LookResource, никуда проваливатся не нужно.

Цитата:
Вы просто так это спросили чтобы сьязвить или Вы не сумели спросить чегото?

Я спросил, что дает вызов функций через GetProcAddress, осмысленного ответа так и не получил. Потому как сам по себе этот вызов в плане защиты ничего не дает кроме гемора.

Всего записей: 293 | Зарегистр. 25-12-2006 | Отправлено: 17:35 16-03-2012
Molniev

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover
Ваш GetProcAddress приводит лишь к небольшому увеличению времени на анализ программы. И никакой не

Цитата:
Первый метод защиты от взлома

Всего записей: 176 | Зарегистр. 13-03-2008 | Отправлено: 17:43 16-03-2012 | Исправлено: Molniev, 17:45 16-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" http://forum.ru-board.com/topic.cgi?forum=33&topic=8142&start=1620#19
 
Это прокомпилить сможете там я выкладывал?
 
Добавлено:

Цитата:
В обоих случаях будет kernel32.LookResource

Спасибо за ценную информацию. Подросли ребятки )))). Значит хакеры отказались ломать из-за свойств лени-able. Кстати развивать лени-able у хакеров можно другими способами я рассказал про первый. Увидел отличные ответы, кстати посмотрел в исходниках - там блок GetProcAddr закоментирован. Есть только GetProcAddr(GetProcAddr).
 
Добавлено:
ЗЫ может вы уговорите меня писать ещё одну программу, которую откажутся ломать. Когда у меня крякнул винт я потерял генератор ключей, шифровальник ресурсов, модификатор хеша версии на ключи, ну то чего не хватает в утилитке undeb32. Первая прога осталась на практике не взломанной. Надо над второй подумать.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 10:29 17-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


В первую тему - определение светлого программиста - он никогда и никогда не пойдёт на нанесение вреда собственной программе, как пошол я. Светлый программист будет рад даже если его взломают, но он постарается развлечь хаккера возможностью решить чтото типа сумдоку. Если такой хакер выростет это будет нашим спасением от вторжения терминаторов. Кто уважает терминатора сплюнте. Я предлагаю обсудить метод врастания - взлом = нет кайфа в программе.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 16:03 18-03-2012
Eternal_Shield

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
*сплюнул*

Всего записей: 772 | Зарегистр. 18-05-2009 | Отправлено: 23:23 18-03-2012
delover

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Eternal_Shield
А что так вкрадчиво? )
 
МЕТОД ТЕНИ
Думая над тем почему меня обидели хакеры и не взломали, я пришёл к выводу что знаю основной секрет. Моё предположение - сработал метод тени. Мы начали с криптостойкости и подошли конкретно к взлому. Почему же не взломали? Первое правило старухи Джо, которой проруху сулили... Введу два различающихся понятия - отличный и супер отличный.
1) Чаще всего супер отличный хакер - отличный программист. Супер отличный программист не обязательно хороший хакер.
2) Супер отличный программист - это программист использующий ноу хао, которое может быть не раскрученным официально. Хакер как отличный программист - скептик и ноу хао в глаза не видит.
Перевожу теорию на понятный хакерам язык
Есть свойство интерфейсов быть преобразованный к другому GUID. Практически 100% программистов понимают такое преобразование одинакого. Либо преобразование вернёт нужную таблицу интерфейса, либо преобразование вернёт implements ссылку прописанную в интерфейсе класса. 100% программистов забывают что метод QueryInterface это виртуальный метод. Допустим у нашего интерфейса нет вообще методов кроме IUnknown. Наш интерфейс реализует доступ к внутренней коллекции интерфейсов которая формируется динамически. Метод Query переписан, чтобы возвращать первый из доступных в коллекции которые отвечает условию Supported=true. Supported это функция WinAPI. Когда хакер видит такую функцию под отладчиком он не видит смысла её отлаживать под Debug. Тут то его скептицизм сыграл плохую роль. Он не знает что Support динамический. И соответственно не знает чем результат его баги отличается от результата который должен в реальности быть. За вызовом WinAPI скрыто то чего рядовой хакер не знает. Он видел кучу мусора, которую его дебаг обходит, но добиться результата - попасть в алгоритм шифрования не вышло. Хакер ссылается на грязь, а в реальности был использован его стереотип. Стереотип как программиста.
 
Добавлено:
Demo of dynamic support interface.
Это ноу-хао в общедоступном месте. Однако я думаю хакер сделает Step out когда увидит win.supported, вместо того чтобы сделать Step in. Таким оббразом наши шансы перед хакерами не читавшими пост николько не изменились.
 
Добавлено:
Нет
Всё же думаю хакеров сломали трубы - моё локальное понятие. Данные хранятся по ссылке1 на ссылку2 на ... ссылка6. преобразование. Другие переменные обращаются сюда же, но под ассемблером этого не видно. Фокус в том что математическое дофига скрыто синтаксическим ничто. Inline в помощь (аналог шаблонов Си). Есть 6 поинтеров расставленные в цепочку чтобы привести к памяти где хранится значение. Другие 6 поинтеров - другие на половину, но ведут к этим же данным. Аналитические машины под это не готовы. Халявшик будет вычислять всю эту лабуду в уме.

Всего записей: 1395 | Зарегистр. 25-06-2007 | Отправлено: 18:26 19-03-2012 | Исправлено: delover, 07:51 20-03-2012
Molniev

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
delover
Мне кажется что на этом форуме вас не могут оценить по достоинству. Возможно стоит найти более подходящею аудиторию для вашего ... так сказать текстов.

Всего записей: 176 | Зарегистр. 13-03-2008 | Отправлено: 21:39 19-03-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Криптостойкость 0% у любой программы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru