Maškaráda symbolů: bezpečnostní aspekty orientované na unicode. Místo souborů jsou na flash disku Windows v různých aplikacích Windows „hieroglyfy“ (nesrozumitelné symboly).

Krakozyabry - co je tak zajímavé slovo? Toto slovo obvykle používají ruští uživatelé k popisu nesprávného/nesprávného zobrazení (kódování) znaků v programech nebo samotném operačním systému.
Proč se to děje? Jednoznačnou odpověď nenajdete. Může to být způsobeno triky našich „oblíbených“ virů, možná nefunkčností operačního systému Windows (například vypadla elektřina a počítač se vypnul), možná program vytvořil konflikt s jiným OS a vše šlo rozbitý. Obecně může být mnoho důvodů, ale ten nejzajímavější je „Prostě se to tak rozbilo“.
Přečtěte si článek a zjistěte, jak vyřešit problém s kódováním v programech a OS Windows, jakmile k němu dojde.

Pro ty, kteří stále nechápou, co tím myslím, zde je několik:


Mimochodem, také jsem se jednou ocitl v této situaci a dodnes mám na ploše soubor, který mi pomohl se s tím vyrovnat. Proto jsem se rozhodl napsat tento článek.

Za zobrazení kódování (fontu) ve Windows je odpovědných několik „věcí“ - jazyk, registr a soubory samotného OS. Nyní je zkontrolujeme samostatně a bod po bodu.

Jak odstranit a opravit krakozyabry místo ruštiny (ruská písmena) v programu nebo Windows.

1. Zkontrolujte nainstalovaný jazyk pro programy, které nepodporují Unicode. Možná se to ve vás ztratilo.

Pojďme tedy po cestě: Ovládací panely – Místní a jazykové nastavení – karta Upřesnit
Tam se ujistíme, že jazykem je ruština.


Ve Windows XP je navíc v dolní části seznam „Kódové stránky konverzní tabulky“ a v něm řádek s číslem 20880. Musí tam být i Rus

6. Poslední bod, ve kterém vám dávám soubor, který mi jednou pomohl vše opravit a proto jsem ho nechal na památku. Zde je archiv:

Uvnitř jsou dva soubory: krakozbroff.cmd a krakozbroff.reg

Mají stejný princip – správné hieroglyfy, čtverce, otázky popř vykřičníky v programech a OS Windows (v běžné mluvě krakozyabry). Použil jsem první a pomohlo mi to.

A na závěr pár tipů:
1) Pokud pracujete s registrem, nezapomeňte si udělat zálohu ( záložní kopie) pro případ, že by se něco pokazilo.
2) Po každém bodu je vhodné zkontrolovat 1. bod.

To je vše. Nyní víte, jak opravit/odstranit crackery (čtverečky, hieroglyfy, vykřičníky a otazníky) v programu nebo ve Windows.

Pozornost!!! Připravte se, tento článek bude dlouhý. Můžete se unavit a usnout, takže se pohodlně usaďte, dejte si šálek kávy a můžeme začít.


Učení čínských znaků je důležitou součástí samotného učení jazyka. Existuje mnoho způsobů, prostředků a nápadů, jak je studovat. Tento článek bude hovořit o některých z nich. Různí lidé je v závislosti na svých cílech učí různě.
Někdo chce například jen znát určitý počet znaků. Jiní chtějí číst text v hieroglyfech. Jiní chtějí hieroglyfy nejen číst, ale také umět psát. A pak jsou tací, kteří si budou dělat poznámky v čínštině nebo psát texty. Opět pište ručně, protože psaní na počítači je mnohem jednodušší.
Stojí za zmínku, že moderní zaneprázdněnost neumožňuje člověku plně se ponořit do procesu učení bez rozptýlení. Obzvláště obtížné je to pro ty, kteří se jazyk učí sami a „kdykoli mohou“. Stojí za to zvolit způsob, jak studovat hieroglyfy individuálně. Časově omezení pravděpodobně chtějí najít pohodlnou aplikaci pro své zařízení, aby mohli ve své volné minutě „hlodat žulu vědy“. Pro ty, kteří studují jazyk jako specializaci, by mělo být vše vhodné, ale kdo by nechtěl zkrátit čas potřebný k získání dovedností?
Ještě dodám, že naučit se hieroglyf může pro různé lidi znamenat různé věci. Naučit se hieroglyf v plném smyslu znamená znát jeho výslovnost, pravopis a význam. Jaké jsou tedy způsoby, jak rozvíjet všechny tyto dovednosti a ovládat čínské znaky? Začněme papírovými, pak elektronickými.

1. Předepisování hieroglyfů. Tradiční způsob učení znaků, prověřený miliony Číňanů. Je třeba mít na paměti, že předepisují hieroglyfy po celou dobu školního kurzu. To není pár let. Takže výhody metody:
- je zapojena zraková a svalová paměť;
- rozvíjejí se dovednosti psaní a rukopisu;
- studium hieroglyfů v náhodném pořadí;
- schopnost okamžitě se vrátit k napsanému;
- jiný.

Mezi nevýhody patří:
- je vyžadován papír a psací potřeby;
- psaní jednoho hieroglyfu zabere hodně času;
- potřebujete uložit hodně papíru;
- na kvalitní přístup ke cvičení potřebujete prostor a čas.
- jiný.

Hieroglyfy můžete psát do běžného sešitu běžným perem. Ti, kteří k tomu přistupují důkladněji, si to zapisují do speciálních receptů. Bylo tam o tom, jak psát hieroglyfy, stejně jako příklady základních písanek. Pokročilejší metodou předepisování je předepisování pomocí šablon. Jsou také různé.

1. Šablona. Může to vypadat jinak, ale podstata je stejná. Na text je umístěn pauzovací papír, na kterém jsou napsány hieroglyfy. Problém je, že v takové šabloně chybí výslovnost hieroglyfů, to znamená, že se trénuje pouze známé rozpoznávání a kaligrafie.


2. Šablona. Preskripce probíhá podle specifikovaného sledu znaků. Je také uveden význam hieroglyfů. Výslovnost zůstává v zákulisí.

3. Existují další recepty, jejichž popis by zabral hodně času. Zde jsou odkazy, které si můžete stáhnout a vytisknout.

2. Asociativní metoda.

Podstata metody je jednoduchá. Vymyslete, jak hieroglyf vypadá a nějak tento obrázek propojit s významem a výslovností hieroglyfu. byl . Všechny asociace si můžete zapsat do sešitu a vrátit se k nim pro opakování.
To může také zahrnovat zvládnutí hieroglyfů pomocí klíčů. Rozdíl je v tom, že asociace se stanou spíše konkrétními než abstraktními. Nejprve je ale potřeba ovládat klíče. Psal jsem o tom v tomto článku a bylo to také v tomto článku. Můžete kombinovat asociace a psaní hieroglyfů. Ale také to zabere spoustu času. Ale vzpomíná se na to dlouho.
Více o tom bylo naopak v tomto článku.

3. Karty.

Jsou to flash karty. Jde o to, že hieroglyfy jsou na kartách napsány nebo jednoduše vytištěny. Na zadní strana jejich význam, výslovnost nebo obojí. Nepomůže každému, zabírá místo, vyžaduje hodně času na klasifikaci a nejlépe dobrou vizuální paměť. Zde jsou některé z mých starých sbírek:


Mimochodem, některým lidem pomáhá, když se z učebnic naučí program, který poskytuje sekvence pro psaní hieroglyfů. Mohou to být učebnice Zadoenka, Kondrashevského atd.


Možná. Zkušený student čínského jazyka bude schopen poskytnout další „papírové“ způsoby zvládnutí a zapamatování hieroglyfů. Ale rozhodl jsem se prozatím pozastavit nad tím, co je uvedeno výše. Přejděme k elektronickým.

1. Flash karty.

Lidé si uvědomili, že několik tisíc hieroglyfů je velký objem karet. Celá krabice! Je možné v v elektronické podobě udělat je. Vytvořili jsme nejrůznější programy, které různé platformy ah reprodukovat tyto karty.

Každý, kdo má o tuto metodu zájem, by se měl s programem seznámit. Také ne pro každého. S vizuální pamětí souvisí také opakování obrázků s odstupem. Ne každý to umí stejně dobře. Ale nejen japonštinu a čínštinu se lze naučit. Kromě toho je aplikace dostupná pro různé platformy.

Existují další aplikace stejného charakteru. Například na webu Magazeta byla jedna taková aplikace: odkaz na článek.

2. Hieroglyfové procesory.

Jednou jsem se pokusil seznámit s hieroglyfy pomocí programu NJStar. Moc to nepomohlo, ale někdo by jí to mohl najít užitečná aplikace na tvém počítači. Tady . V tomto programu můžete zadávat hieroglyfy pomocí myši.

3. Online překladatelé.

Překladač Google má funkci zadávání dotykové obrazovky. Tam můžete psát hieroglyfy prstem přímo na svém mobilním zařízení. Je vyžadován internet. Neexistuje žádný jasný program na zapamatování, jen schopnost psát ne na papír. Totéž platí pro zadávání hieroglyfů pomocí myši do online slovníků, jako je www.bkrs.info. Vedle vyhledávací lišty je tlačítko ručního zadávání, někdy není vidět kvůli tématu kolem řádku, ale určitě je tam vpravo. Můžete zadat hieroglyf pomocí myši a vidět jeho význam, někdy si poslechnout výslovnost. Odstraňuje potřebu psát na papír.

4. Jiné programy.

Další software najdete na internetu. Nemám vše vyzkoušeno, takže nemohu moc popisovat. Ale chci říci pár slov o systému MAO. Přístup k zapamatování hieroglyfů se mi nelíbil, ale přesto jsem se rozhodl jej prezentovat v tomto článku, protože existuje aplikace „MAOcard“. A někdo může hodnotit tento systém výše než já. Odkaz...

Pokračujme...

Můžete o tom napsat cokoli jiného, ​​ale abych ušetřila alespoň váš čas, uvedu odkaz na stránku z Magazínu, kde autor poskytuje celou hromadu užitečného softwaru pro různé platformy. Mezi vším jsou aplikace pro studium a opakování hieroglyfů. Ale přesto bych rád zdůraznil, že jedna věc je opakovat nebo pamatovat si hieroglyfy a úplně jiná věc je zapamatovat si je. Zdá se, že to dává smysl, když buď znáte slova, ale neumíte číst, nebo se učíte slova i znaky najednou. Pro tyto účely jsou vhodné speciální aplikace.

Konkrétně bych zmínil aplikaci pro platformu Android „Chineseskill“. Rozvíjí se a podle mého názoru spojuje mnoho výhod. Studium hieroglyfů jde paralelně se studiem slovní zásoby a gramatiky. Budete muset psát a vyslovovat slova. Někdy ručně, prstem. Možná je to to, co potřebujete?...

Další aplikace, kterou doporučuji pro studenty čínština a v Konkrétně hieroglyfy jsou aplikací "Čínský spisovatel". Už se stalo Stručný popis tato aplikace. Řeknu ale, že i s pár nepříjemnostmi, jako je plíživá čára ve spodní části obrazovky s informacemi o hieroglyfu, je aplikace výborná. Můžete se podívat na hieroglyfy, naučit se je psát, vyzkoušet se ve hře a další. Podle mě byste toto měli mít na svém zařízení... Existují placené i bezplatné verze.

Závěr.

Na závěr řeknu, že jsem nemohl vyjmenovat vše, co bylo na mém smartphonu a tabletu. zkusil jsem různé programy ale bohužel to není ideální. Nebo jsem to možná ještě nenašel. Ale to, co jsem uvedl výše, stojí za vyzkoušení. Tak či onak, to vše jsou jen prostředky k zavedení hieroglyfů do vaší paměti. Jak je ale bude vnímat, zda je bude chtít později vrátit, je jiná otázka. Proto kromě studia samotných hieroglyfů doporučuji se dobře vyspat a trénovat paměť. Děkuji, že jste dočetli až do konce, nyní je vaše chápání problematiky pravděpodobně širší.

Myslím, že jste se více než jednou setkali s exploity, které jsou klasifikovány jako Unicode, hledali jste správné kódování pro zobrazení stránky a byli jste tu a tam spokojeni s dalšími triky. Nikdy nevíš co jiného! Pokud chcete zjistit, kdo celý tenhle nepořádek začal a dodnes ho uklízí, zapněte si pásy a čtěte dál.

Jak se říká, „iniciativa se trestá“ a jako vždy za všechno mohou Američané.

A bylo to takhle. Na úsvitu rozkvětu počítačového průmyslu a šíření internetu vyvstala potřeba univerzálního systému pro reprezentaci symbolů. A v 60. letech minulého století se objevil ASCII - „Americký standardní kód pro výměnu informací“ (americký Standardní kód for Information Exchange), známé 7bitové kódování znaků. Poslední osmý nepoužitý bit byl ponechán jako řídicí bit pro přizpůsobení tabulky ASCII tak, aby vyhovovala potřebám každého zákazníka počítače v určité oblasti. Tento bit umožnil rozšířit ASCII tabulku o použití vlastních znaků pro každý jazyk. Počítače byly dodávány do mnoha zemí, kde již používali vlastní upravený stůl. Později však tato funkce přerostla v bolest hlavy, protože výměna dat mezi počítači se stala značně problematickou. Nový 8-bit kódové stránky byly vzájemně nekompatibilní - stejný kód mohl znamenat několik různých znaků. K vyřešení tohoto problému navrhla ISO („Mezinárodní organizace pro normalizaci“, Mezinárodní organizace pro normalizaci). nový stůl, konkrétně „ISO 8859“.

Tento standard byl později přejmenován na UCS (“Universal Character Set”). V době, kdy byl UCS poprvé vydán, se však objevil Unicode. Ale protože se cíle a cíle obou standardů shodovaly, bylo rozhodnuto spojit síly. Unicode si vzal na sebe nelehký úkol dát každé postavě jedinečné označení. V současné době je nejnovější verze Unicode 5.2.

Chci vás varovat - ve skutečnosti je příběh s kódováním velmi nejasný. Různé zdroje poskytují různá fakta, takže byste se neměli soustředit na jednu věc, měli byste si být vědomi toho, jak vše vzniklo, a dodržovat moderní standardy. Doufám, že nejsme historici.

Rychlý kurz Unicode

Než se ponořím do tématu, rád bych vysvětlil, co je Unicode z technického hlediska. Cíle tento standard Už víme, zbývá jen opravit hardware.

Co je tedy Unicode? Jednoduše řečeno, toto je způsob, jak reprezentovat jakýkoli znak jako specifický kód pro všechny jazyky světa. Nejnovější verze Norma obsahuje asi 1 100 000 kódů, které zabírají místo od U+0000 do U+10FFFF. Ale tady pozor! Unicode přesně definuje, co je kód pro znak a jak bude tento kód reprezentován v paměti. Kódy znaků (například 0041 pro znak „A“) nemají žádný význam, ale existuje logika pro reprezentaci těchto kódů v bajtech; to se provádí kódováním. Unicode Consortium nabízí následující typy kódování, nazývané UTF (Unicode Transformation Formats). A tady jsou:

  • UTF-7: Toto kódování se nedoporučuje z důvodu bezpečnosti a kompatibility. Popsáno v RFC 2152. Není součástí Unicode, ale bylo představeno tímto konsorciem.
  • UTF-8: Nejběžnější kódování ve webovém prostoru. Je proměnná, široká 1 až 4 bajty. Zpětně kompatibilní s protokoly a programy, které používají ASCII. Zaujímá rozsah od U+0000 do U+007F.
  • UTF-16: Používá proměnnou šířku od 2 do 4 bajtů. Nejběžnější použití je 2 bajty. UCS-2 je stejné kódování, pouze s pevnou šířkou 2 bajty a omezeným na limity BMP.
  • UTF-32: používá pevnou šířku 4 bajtů, tj. 32 bitů. Je však použito pouze 21 bitů, zbylých 11 je vyplněno nulami. Přestože je toto kódování těžkopádné z hlediska prostoru, je považováno za nejefektivnější z hlediska výkonu díky 32bitovému adresování v moderních počítačích.

Nejbližším analogem UTF-32 je kódování UCS-4, ale dnes se používá méně často.

Navzdory skutečnosti, že UTF-8 a UTF-32 může představovat o něco více než dvě miliardy znaků, bylo rozhodnuto omezit se na něco málo přes milion z důvodu kompatibility s UTF-16. Celý kódový prostor je seskupen do 17 rovin, z nichž každá má 65 536 symbolů. Nejčastěji používané symboly jsou umístěny v nulové, základní rovině. Označováno jako BMP - Basic MultiPlane.
Datový tok v kódování UTF-16 a UTF-32 lze reprezentovat dvěma způsoby – little endian a big endian, nazývané UTF-16LE/UTF-32LE, resp. UTF16BE/UTF-32BE. Jak jste možná uhodli, LE je little-endian a BE je big-endian. Ale musíme nějak umět tyto řády rozlišovat. K tomu použijte značku pořadí bajtů U+FEFF, v anglické verzi - kusovník, „Maska objednávky bajtů“. Tento kusovník se také může objevit v UTF-8, ale nic tam neznamená.

Z důvodu zpětné kompatibility se Unicode musel přizpůsobit znakům z existujících kódování. Zde ale nastává další problém – existuje mnoho variant shodných znaků, které je potřeba nějak zpracovat. Proto je potřeba tzv. „normalizace“, po které je již možné porovnávat dva řetězce. Existují 4 formy normalizace:

  • Normalizační forma D (NFD): kanonický rozklad.
  • Normalizační forma C (NFC): kanonický rozklad + kanonické složení.
  • Normalizační forma KD (NFKD): kompatibilní rozklad.
  • Normalizační forma KC (NFKC): kompatibilní rozklad + kanonické složení.

Nyní si povíme více o těchto podivných slovech.

Unicode definuje dva typy rovnosti řetězců – kanonickou a kompatibilitu.

První spočívá v rozkladu složitého symbolu na několik jednotlivých obrazců, které jako celek tvoří původní symbol. Druhá rovnost najde nejbližší odpovídající symbol. A kompozice je kombinace symbolů z různých částí, dekompozice je opačná akce. Obecně se podívejte na výkres, vše zapadne na místo.

Z bezpečnostních důvodů by měla být provedena normalizace před odesláním řetězce do filtrů k ověření. Po této operaci se může změnit velikost textu, což může mít negativní důsledky, ale o tom později.

Co se týče teorie, to je vše, zatím jsem toho moc neřekl, ale doufám, že jsem nic důležitého nepřehlédl. Unicode je neuvěřitelně rozsáhlý, složitý, vycházejí na něm tlusté knihy a je velmi těžké stručně, přístupně a úplně vysvětlit základy tak těžkopádného standardu. V každém případě, pro hlubší pochopení byste se měli podívat na postranní odkazy. Takže, když je obrázek s Unicode více či méně jasný, můžeme pokračovat.

Vizuální iluze

Pravděpodobně jste slyšeli o IP/ARP/DNS spoofingu a máte dobrou představu o tom, co to je. Existuje však také takzvaný „vizuální spoofing“ - to je stejná stará metoda, kterou phisheři aktivně používají k klamání obětí. V takových případech se používají podobná písmena, jako například „o“ a „0“, „5“ a „s“. Toto je nejběžnější a nejjednodušší možnost a je snazší si jí všimnout. Příkladem je phishingový útok z roku 2000 na PayPal, který byl dokonce zmíněn na stránkách www.unicode.org. To však má malý význam pro naše téma Unicode.

Pro pokročilejší chlapy se na obzoru objevil Unicode, přesněji IDN, což je zkratka pro „Internationalized Domain Names“. IDN umožňuje použití znaků národní abecedy v názvech domén. Registrátoři doménových jmen to považují za pohodlnou věc, říkají, vytáčení Doménové jméno ve vašem rodném jazyce! Tato vymoženost je však velmi diskutabilní. Dobře, marketing není naše téma. Ale představte si, jaké je to útočiště pro phishery, SEO specialisty, kybersquattery a další zlé duchy. Mluvím o efektu zvaném IDN spoofing. Tento útok patří do kategorie vizuálního spoofingu, v anglické literatuře se mu také říká „homograph attack“, tedy útoky pomocí homografů (slova, která jsou pravopisně shodná).

Ano, při psaní písmen nikdo neudělá chybu a nenapíše záměrně falešnou doménu. Nejčastěji však uživatelé klikají na odkazy. Pokud se chcete přesvědčit o účinnosti a jednoduchosti útoku, pak se podívejte na obrázek.

IDNA2003 byl vynalezen jako jakýsi všelék, ale již letos, 2010, vstoupil v platnost IDNA2008. Nový protokol měl vyřešit mnoho problémů mladého IDNA2003, ale přinesl nové příležitosti pro spoofingové útoky. Znovu se objevují problémy s kompatibilitou – v některých případech může stejná adresa v různých prohlížečích vést k různým serverům. Jde o to, že Punycode lze převést různými způsoby různé prohlížeče- vše bude záviset na tom, které standardní specifikace jsou podporovány.
Problém vizuálního klamu tím nekončí. Unicode také přichází do služeb spammerů. Mluvíme o spamových filtrech – původní dopisy odesílají spameři přes Unicode obfuscator, který hledá podobné znaky z různých národních abeced pomocí tzv. UC-Simlist (“Unicode Similarity List”, seznam podobných znaků Unicode) . To je vše! Antispamový filtr to vzdává a v takové změti znaků už nedokáže rozpoznat něco smysluplného, ​​ale uživatel je docela schopný číst text. Nepopírám, že řešení tohoto problému bylo nalezeno, ale spammeři mají navrch. No a ještě jedna věc ze stejné série útoků. Jsi si jistý, že něco otevíráš? textový soubor, a neřešit binární?

Na obrázku, jak vidíte, máme soubor s názvem evilexe. txt. Ale to je falešné! Soubor se ve skutečnosti jmenuje eviltxt.exe. Co je to za kravinu v závorce, ptáte se? A to je U+202E nebo RIGHT-TO-LEFT OVERRIDE, takzvaný Bidi (od slova obousměrný) - algoritmus Unicode pro podporu jazyků, jako je arabština, hebrejština a další. Ty druhé mají psaní zprava doleva. Po vložení znaku Unicode RLO uvidíme vše, co následuje po RLO obrácené pořadí. Jako příklad tato metoda ze skutečného života mohu uvést spoofingový útok v Mozilla Firfox - cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3376.

Obtokové filtry - etapa č.1

Dnes je již známo, že dlouhé formy (nejkratší forma) UTF-8 nelze zpracovat, protože se jedná o potenciální zranitelnost. Vývojáři PHP se tím však nedají přesvědčit. Pojďme zjistit, co je to za chybu. Možná si vzpomínáte na nesprávné filtrování a utf8_decode(). To je případ, kterým se budeme zabývat podrobněji. Takže máme tento PHP kód: