Play mp3 z Resource MCI   zodpovězená otázka

VB.NET

Dobrý den, je nějaký způsob jak přehrát hudbu ve formátu mp3 z resource pomocí API MCI? Mám mp3 písničku a potřebuju ji nějak chránit, aby ji jen tak nebylo snadné získat a napadlo mě ji jednoduše dát do resource, ale nedaří se mi ji přehrát.

Přehrávání provádím:

Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
    Public Const SND_ASYNC = &H1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call mciExecute("Play " & My.Application.Info.DirectoryPath.ToString & "\bgsound.mp3")
    End Sub
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Přestaňte používat rozhraní z roku 1987 a použijte DirectX.AudioVideoPlayback.Audio z Managed DirectX, přehraje cokoliv pro co existuje v systému DirectShow filtr. Přímo z Resources to přehrát nelze, pouze z externího souboru. A chránit soubor umístěním do Resources je také nesmysl, protože to z nich dokáže extrahovat i zdatnější uživatel.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Vim ze MCI uz to ma zpocitany, ale

1.pro tuto aplikaci mi celkem vyhovuje

2.je to jediny zpusob ktery se mi poveld uvest do chodu...

A byla by nejaka moznost jak tu hudbu ochranit? Nejake kodovani, nebo tak neco? V tehle oblasti se jeste moc neorientuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Máte několik možností - buď si to zašifrujte sám anebo vymyslete nějaké vlastní kódování. Vzhledem k tomu, že klíč musíte ale stejně někam uložit a existuje Reflector, tak pokud by se opravdu někdo snažil, tak to z toho stejně vytáhne.

Asi budou existovat nástroje třetích stran, které to nějak hezky umí (v některých počítačových hrách tak tvůrci chrání svůj obsah, aby to lidi nekradli).

Můžete soubory také přibalit do resources, čímž budou zabalené v EXE souboru, ale i odtud se dají dost jednoduše vytáhnout.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nepomôže napr. zašifrovať súbor pomocou AES a potom zašifrovať kľúč niečím iným a uložiť oba kľúče(ten zašifrovaný aj ten druhý) aj so súborom na rôzne miesta v assembly?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ať vymyslíte sebekrkolomnější postup (navíc čím víc se to snažíte zkomplikovat, tím spíše uděláte nějakou botu a můžete tím bezpečnost dramaticky snížit, obzvláště pak něco zašifrovat dvakrát se nemusí vůbec vyplatit), tak se dá prolomit, zvlášť pokud je to psané v .NETu, kde se každý může na zdrojáky podívat Reflectorem a najít klíč i čachry, které s ním aplikace provádí.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To že nič nie je absolútne bezpečné viem tiež.A s tým Reflectorom - pomôže dať triedám, metódam, premenným a pod. nezmyselné názvy a okomentovať si ich(komentáre sa neprekladajú do IL a xml komentáre sú v inom súbore, kt. sa dá zmazať) a videl som aj také metódy, u ktorých sa pri spätnom preklade Reflector sťažoval a uvidel som len IL kód, ten ktorému len málo ľudí rozumie.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pojmenovávat třídy nesmyslně sice zabrání útočníkovi, aby pochopil, co kód dělá, na druhou stranu zmate hlavně vás, pokud s nimi ještě někdy budete potřebovat pracovat. Existují sice obfuskátory (software, který tohle dělá až po překladu), na druhou stranu když vyfiltrujete metody, které používají něco ze System.Security.Cryptography, stejně to tam najdete a je jedno, že se metoda jmenuje úplně divně - důležitý je její kód. Reflector samozřejmě občas něco neustojí, ale tvůrci ho průběžně aktualizují a tyhle neschopnosti něco rozluštit jsou spíš dočasnou záležitostí.

Každopádně pro ochranu souborů nemá smysl věnovat tomu moc úsilí - buď je stačí přibalit do EXE, pokud nechcete, aby si je někdo vytáhnul pouhým vykopírováním z adresáře (na druhou stranu stejně je před přehrátím musíte rozbalit na disk, pokud chcete používat MCI), anebo je nějak zapakovat či jednoduše zakódovat a dát je mimo (někdy stačí změnit příponu). Záleží, jak velký level ochrany chcete. 100% to nejde a i kdyby šlo, zvuk se stejně jednou přehraje a není problém to nahrát, každá rozumná zvukovka umí jako vstupní zvukové zařízení namapovat i to, co jde aktuálně na výstup.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No ja som sa už pokúšal o obídenie ochrany reflectorom a ešte sa mi to nepodarilo. A okrem toho som vravel, že popis metódy môžete dať aj do komentáru a potom sa nepopletiete, len ten, ktorý komentáre nemá.Ale v jendom máte pravdu - každá ochrana sa dá obísť.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pojmenovávat metody a třídy nesmyslně s vysvětlením v komentáři je jen a jen způsob, jak vytvořit hovadský kód. Sice to funguje, ale pro praxi je to velmi nepraktické, protože se v tom nevyzná nikdo. A před zavoláním každé metody číst komentář a přesvědčit se, zda dělá to, co dělá, je nesmysl.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To má na starosti obfuskační software, který to přejmenování (tzv. Unicode normalizaci) provede na výsledné assembly až po překladu. A zajistit aby to nešlo dekompilovat pomocí Reflectoru nebo ILDASM umí i kdejaký primitivní freeware obfuskátor (tedy kromě naprosto trapného, ubohého a nepoužitelného Dotfuscatoru).

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

A mohol by som poprosiť ešte link na nejaký obfuskátor?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Součástí Visual Studia je např. nějaká ořezaná verze DotFuscatoru, ale existují i další.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak ten dotfuscator... tiež v ňom nič neviem ako p. Linhart

Tie ďalšie ? Nepoznáte nejaký, najlepšie freeware ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

DotFuscator nepoužívejte, je to to nejhorší ze všech obfuskátorů (jak free tak i komerční verze). Jako nejlepší, zdarma dostupný se mi jeví Babel.NET:

http://www.babelfor.net/Default.aspx

Je to konzolová aplikace která se dá nádherně začlenit do MSBuild procesu a hravě si poradí s Reflectorem i ILDASM.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Celkom dobrý obfuskátor. Ďakujem

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback