• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    PIGSTER: jasne, s tema indama je to trochu nadsazka, ale mas uplnou pravdu
    z c nemam zadny zkusenosti, takze ti budu muset verit. vychazel sem z toho, ze v podstate kazdej program je cracknutelnej, ale to muze byt samozrejme jinejma metodama, nez jen prostym rozkompilovanim a zmenou v kodu.
    PIGSTER
    PIGSTER --- ---
    ANDY_WARHOL: je to tady trochu OT, ale C / C++ je tak dobre dekompilovatelny, jak spatnej mas prekladac. Dobrej prekladac C je snad nejlspsi obfuscator - uz rozbalenej cyklus je pruda, ale jakmile do toho zacne kecat inlineing a obchazeni zasobniku pri volani a navratech tak to uz proste nejde - kopa informaci se tam proste v procesu ztrati. Uplne chybi metadata - mas jenom horu napul strukturovanyho ASM a nejaky zbesily tabulky ktery ti rikaj kam a kdy se skace kdyz volas metody.

    .NET ma metadata, muzes je schovavat jak chces, ale na jednotlivy objekty a metody to pujde rozdelit vzdycky. A IL neni zdaleka takovej humus jak 32bit intel assembler.

    IMHO teze o dostatku indu po tom, co jsem slysel jak kvalitni jsou to programatori neplatila nikdy. S dostatkem Rusu uz bych si zdaleka tak jistej nebyl :)

    ANDY_WARHOL
    ANDY_WARHOL --- ---
    TENCOKACISTROMY: takze to pujde, ale bude to namahavy, tzn je to pouzitelna ochrana, ale teze o dostatku indu plati dal :)
    diky
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    ANDY_WARHOL: No, jde o to, ze na zaklade C# zdrojaku jsi schopen vytvorit jen podmnozinu moznosti, ktere lze udelat v IL.
    Jeden priklad za vsechny: v C# nemuzes volat (i definovat) dve metody lisici se pouze typem navratoveho parametru. V IL s tim neni problem. Pri dekompilaci do C#/VB.NET/atd... se ti tento kus proste nepovede prevest. A pokud se ti povede prevest do C#, tak ho uz ale nezkompilujes.

    V IL je taktez validni, kdyz staticka metoda neni v zadnem typu (trida/struktura) a je obsazena primo v modulu (tam co jsou typy). Nicmene v C#/VB.NET/atd... to je nevalidni.

    Dalsi moznosti je delat tam ruzny prasarny. V nejakym blogpostu jsem cetl napad cloveka, kterej vzal vygenerovanej IL ze C# kde byl klasicky "for(int i = 0; ......)" a zprahazel tam nejaky IL instrukce. Ve vysledku to fungovalo uplne stejne dobre, ale dekompilatory si s tim neporadili (nedokazali zrekonstruovat ten upravenej "for").

    Nicmene pokud chces necemu takovymu zabranit chytrejsim zpusobem nez jen pouzit nejaky dostupny obfuskator, tak se nevyhnes primy praci s IL.

    Ve vsech pripadech ale plati, ze si to vzdycky muze diassemblovat primo do IL a upravit si to rovnou v nem. Kdyz si v projektu nekde vedle udela metodu se stejnou signaturou, vyplni ji svym kodem a nasledne vznikly IL vymeni za ten tvuj, nejspis bude uspesny.
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    tohle me opravdu zajima, nechci vydat svuj prvni krabicovej soft aby to hned prvni jouda s reflektorem a deobfuscatorem rozprcal a vykrad
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    ANDY_WARHOL: timto sem nemyslel nejaky se posmivani ti, ale spis aby si to rozvedl do detailu, jak si to predstavujes, ja to pak zkusim a zkusim to dekompilovat a uvidime.
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    TENCOKACISTROMY: no priznam se ze sem zde na velmi tenkem lede, tyhle veci sem nikdy do hloubky nezkoumal, takze si rad necham poradit.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    ANDY_WARHOL: Zdaleka ne veskere validni IL lze patricne prepsat do C#.
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    jak tu nekdo psal, kdyz ma clovek dostatek indu (casu) tak rozprca vsechno.
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    TENCOKACISTROMY: jak si to predstavujes konkretne, treba pouzivat f# na casti ? a kdyz je to v msil, a dekompilujes to tak to stejne dostanes do c# nebo se pletu ? nebo si myslel to psat v cecku ? ale to je taky dekompilovatelny
    mozna to napsat rovnou 0101100110010101010101010011011110101101 :)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    ANDY_WARHOL: Co treba nektery funkce mit napsany v necem jinem nez v C#. A nektere metody nemit v zadne tride ale jen v ramci modulu?
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    MORMEGIL: diky, tohle sem hledal !
    MORMEGIL
    MORMEGIL --- ---
    ANDY_WARHOL: BizSpark (a související).
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    SHIGORBIRDMAN: to ja samozrejme taky, ale byl problem to sehnat, tedy tam kde sem v te dobe zil. ze zacatku mi stacil manual, pak sem nejakou knizku sehnal, obcas clanek v nejakem casopise s vypisem programu, ktery si rucne musel pretukat (a z toho se pak dalo lecos nauci), problem nebyl basic jako takovy ale to ze na comodoru byla jina syntaxe a jinak se pouzival nez treba na tom tvem sinclairu. takze clovek potreboval vylozene ten basic pro ten svuj komp. navic kdyz si chtel delat neco opravdoveho potreboval si stejne asemlber a to uz bylo tezsi se naucit jen tak
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    ANDY_WARHOL: o nicem takovem nevim, jen o studentskych akcich atd.
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    ANDY_WARHOL: ja pouzival teda literaturu i ve skalnich dobach, bez prirucky basicu bych se sinclairem moc nenadelal, zvlast tabulka asemblerovskych instrukci byla naprosto prazakladni literatura :D
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    jedna se mi hlavne o visual studio
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    mam dotaz z jineho soudku, vim ze existovali nejaky licence na microsoft produkty pro start upy a podobne, kde to bylo velmi vyhodne, nekruli snad i zadarmo na nejakou dobu. nemate nekdo prehled o takovychto akcich, treba i v zahranici ? nejak se mi to nedari vygooglit
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    SHIGORBIRDMAN: ja sem to nevyloucil, jen jsem zacinal v dobe, kdy nejaka literatura se tezko velmi tezko shanela, naucil sem se na spoustu veci prijit sam, proste je nejak vykoumat. ted mi to internet akorat ulehcuje
    ale je pravda ze kdybych zacinal ted, tak si proste knizku koupim, ale to jsou minimalni naklady, za to co clovek muze ziskat.
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    ESY: tohle teda plati i ve vedeckych (o pseudovedeckych nemluve) publikacich, obcas nejake takove cyklicke hovno vystopujes treba na zacatek minuleho stoleti :)

    celkem slusny zdroj na je stackoverflow, ten uz mi parkrat pomohl / zkratil utrpeni
    Kliknutím sem můžete změnit nastavení reklam