More...

DNA - this is the Nature's way to serialize life

Теми от: Април '10


Бъг при въвеждането на пароли за WinRAR, или...?

Преди някоя и друга седмица открих един странен бъг в реализацията на WinRAR при ползване на кирилишки пароли (ако ползвате латиница/цифри/пунктоация може да спите спокойно). Цялото нещо се свежда до добре известната поговорка: "Това, че даден софтуер е писан от родолюбив руснак, не значи, че работи безпроблемно с кирилица" :)

Ето и малко подробности за бъга... вие знаехте ли, че може да ползвате пароли на кирилица (или на какъв-да-е друг не-latin език) за RAR-архиви? Е, аз не знаех, но рекох да проверя. Това се случва покрай доразработването на моя RAR-паролотрошач (който ускорих с 10-20% и прочее). За целите на теста, първо тръгнах от най-често ползваната RAR програма - WinRAR. Избрах си 5 файла и ги криптирах с паролата «България», при опция за криене на файловите имена. WinRAR прие паролата ми, след което архивчето се дешифрира успешно със същата парола (и неуспешно с произволна друга). Успешно се дешифрира и при използване на конзолната версия на програмката под cmd.exe прозорец.

Като стъпка две, прехвърлих тестовия RAR под Linux и тествах да го разшифровам там. Този път обаче, даде грешка и не поиска да се разархивира. Много странно — помислих си да не би нещо автора на `unrar' да си е оставил ръцете в кода за превръщането на стринговете към unicode... прекомпилирах програмката в debug и се зарових. За мое учудване, Fedora 11 конзолата прилично подаваше на програмата "utf-8" кодиран стринг, т.е. "България" се състоеше от 16 8-битови char-a + 1 терминиращ NUL. След което низът коректно се обръщаше до wchar_t. Всъщност, терминалната `unrar' програмка под Linux работеше съвсем коректно! Зарових се още малко в Windows-а, и открих, че в cmd.exe терминал, като въвеждам кирилица, всъщност излизат питанки. И всъщност, че въведената парола се интерпретира изцяло като питанки. Сиреч, "България" = "????????".

Къде се оказа проблемът? От настройките на Windows: Control Panel->Regional and Language options->"Language for Non-unicode programs". Като се сложи на "Bulgarian", всичко заспива.

И сега, вече сигурно сте се досетили какъв е бъга. Ако един неподозиращ човек, на който горната Windows настройка не е зададена на "Bulgarian" (както си е всъщност при default инсталация на Windows-а), то той може да си мисли, че въвежда супер здрава парола (например, "ХакерЩрасе"), а всъщност паролата на архива му ще бъде елементарно счупяемата "??????????"!

Тъжното в цялата история е, че в кода на unrar ясно се вижда старанието на руснака да поддържа всячески не-латински символи... и все пак програмата му не е unicode-safe.
Интерпретацията на кирилишката парола като питанки, и приемането й за валидна парола от страна на WinRAR, подсказва и друг, по-общ проблем, със сигурността на паролите: WinRAR би трябвало да засича такива "пословично слаби" пароли, и (поне) да предупреждава потребителя да се замисли за по-яка парола. Така, хващането на такива скрити проблеми ще става от само себе си.


Публикувано в категория Интересно -- clock 22 Apr 2010, 03:02, 0 коментара -- English View in English


thought

Засичане на ритъм

Неотдавна се зачудих дали няма полезен начин да използвам сензора за натоварване на паметта на моето EpoX 9NPA+ дъно. За който не знае - този сензор показва натоварването/трафика към паметта. В idle примигва едва-едва, но ако пуснете интензивен бенчмарк, който прави достатъчно трафик към паметта, сензора почва да свети ярко.
Преди седмица (тъкмо си слушах «Moloko - Sing it back») измислих и един як начин да се използва сензора за засичане на ритъма на някаква песен. Ето го показано в действие:

Image

YouTube - Beat visualization on Epox 9NPA+

Локално копие (H.264 750 kbps)

За целта беше достатъчно да се напише visualization plugin за XMMS, който ползва някакъв прост beat detection алгоритъм, и, когато засече удар, да "светва" сензора. Светването на сензора се предизвиква чрез голямо количество memcpy()-та в 64-мегабайтов масив :) Сегашния алгоритъм е чувствителен само към ниските честоти (затова не хваща солобарабаните, както можете да видите в клипчето на втората песен)


Публикувано в категория Технологии -- clock 19 Apr 2010, 11:07, 0 коментара -- English View in English

Language:

bgБългарски
enEnglish


Категории:

Мета
Hardware
Технологии
Забава
Open source
Интересно
Наляво-надясно
Простотии
Програмиране
Музика
Картинки
Фотография
Всички


Архив:

+ 2008 (21)
Март '08 (3)
Април '08 (5)
Май '08 (5)
Юли '08 (2)
Септември '08 (1)
Октомври '08 (2)
Декември '08 (3)
+ 2009 (15)
Януари '09 (2)
Февруари '09 (1)
Март '09 (1)
Юни '09 (1)
Юли '09 (1)
Август '09 (3)
Септември '09 (1)
Октомври '09 (2)
Ноември '09 (1)
Декември '09 (2)
+ 2010 (11)
Януари '10 (1)
Април '10 (2)
Юни '10 (2)
Юли '10 (1)
Септември '10 (1)
Ноември '10 (2)
Декември '10 (2)
+ 2011 (12)
Януари '11 (3)
Февруари '11 (1)
Юли '11 (1)
Август '11 (2)
Септември '11 (2)
Октомври '11 (3)
+ 2012 (19)
Януари '12 (3)
Февруари '12 (1)
Март '12 (1)
Април '12 (2)
Май '12 (3)
Юни '12 (1)
Август '12 (2)
Септември '12 (1)
Ноември '12 (3)
Декември '12 (2)
+ 2013 (6)
Март '13 (3)
Юни '13 (1)
Август '13 (1)
Октомври '13 (1)
+ 2014 (7)
Март '14 (1)
Април '14 (1)
Юни '14 (1)
Септември '14 (3)
Декември '14 (1)
+ 2015 (5)
Януари '15 (1)
Март '15 (3)
Май '15 (1)
+ 2016 (5)
Юни '16 (1)
Юли '16 (1)
Септември '16 (1)
Ноември '16 (1)
Декември '16 (1)
+ 2017 (1)
Август '17 (1)


Последни коментари:

30 May 2017, 02:02 от anrieff
26 May 2017, 01:00 от Mathew
30 Mar 2017, 13:59 от antfarmer
26 Dec 2016, 17:52 от Private
19 Dec 2016, 23:01 от ицаци
16 Dec 2016, 19:50 от Антон


Valid XHTML 1.0 Strict

Blogroll:

linkТимур и неговите командоси
linkivanatora
linkБезброй математици...
linkJoel on Software
linkRidiculous Fish
linkXKCD blag