• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    XCHAOSANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API
    /* Toto je klub především pro lidi, pro které je programování jednou z mnoha massive multiplayer online počítačových her, které lze hrát.
        V tomto klubu hrozí sémantická hereze a nezdravě vysoký obsah syntaktického cukru. Nevhodné pro algoritmické diabetiky.
        Od účastníků debaty se předpokládá automaticky přístup k instalovanému GNU C: sudo apt-get install build-essential
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    C (programovací jazyk)#C99 Heslo na české Wikipedii
    Jazyk C - Základy praktického programování V Praze 2oo7 pro SSPŠ Tomáš Harvie Mudruňka a kolektiv - jak si programování v C představuje většina lidí
    http://stevenkobes.com/ctest.html C Programming Puzzlers - nepouštějte se do flamewars v tomhle klubu, pokud neuhodnete aspoň polovinu správně!
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    http://en.wikipedia.org/wiki/C99 C99 is a modern dialect of the C programming language.
    http://cprogramminglanguage.net/ C programming language
    http://cprogramminglanguage.net/c-programming-language-tutorial.aspx C programming language - úvod
    http://en.wikipedia.org/wiki/Criticism_of_the_C_programming_language C makes it easy to shoot yourself in the foot. (ještě že ne do hlavy...)
    http://en.wikipedia.org/wiki/C_preprocessor
    http://gcc.gnu.org/onlinedocs/gcc/Variadic-Macros.html C99 makra s proměnným počtem argumentů - __VA_ARGS__
    http://gcc.gnu.org/onlinedocs/gcc/ GNU C Compiler
    http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Optimize-Options.html
    http://bellard.org/tcc/ Tiny C Compiler - prý C99 compliant (min. umí __VA_ARGS__) - vhodný pro skriptování v C - umí #!/usr/bin/tcc -run
    http://en.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest - pokud jste neviděli tohle, tak jste ještě neviděli opravdu nečitelný C zdroják
    http://bellard.org/otcc/ Obfuscated Tiny C Compiler - z tohohle vtípku vznikl Tiny C compiler
    http://en.wikipedia.org/wiki/ANSI_C Jak se střelit do nohy standardizovaným způsobem.
    http://eli-project.sourceforge.net/c_html/c.html ANSI C Specification
    http://www.lysator.liu.se/c/ Různý ANSI C bordel
    http://www.cs.rit.edu/~ats/books/ooc.pdf Object Oriented Programming with ANSI-C - a pak že to nejde
    http://en.wikipedia.org/wiki/Longjmp co jsou to setjmp()/longjmp() knihovní funkce (pro všechny, podle kterých to bez C++ try { } catch() ... nejde)
    http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/dcdc710c27f47c72 C neumí správně počítat (?)
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    http://www.fastcgi.com/ FastCGI is simple because it is actually CGI with only a few extensions.
    http://www.metalshell.com/source_code/18/Mysql_Select.html How to do a simple connection and select with mysql
    http://xmlsoft.org/ The XML C parser and toolkit of Gnome
    http://curl.haxx.se/libcurl/ libcurl - the multiprotocol file transfer library
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    https://dev.arachne.cz/svn/cll1h SVN/Trac jazyka C<<1 (user-friendly nadstavba nad ANSI C99 - ve stylu JQuery vs. JavaScript)
    Benchmark iterace a serializace stringů v různých jazycích vs. v C
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        moderátor se velice zhruba řídí zvyklostmi moderace, která kdysi platila v řadě konferencí sítě FidoNet ... C != 0xdead */
    rozbalit záhlaví
    GIOMIKY
    GIOMIKY --- ---
    ANT_39: Skoro bych rekl, ze je to spis nejaky jednoucelovy anti-crackersky zakodovani knihovny. Ale to uz jsem zase asi off-topic. Sorry.
    ANT_39
    ANT_39 --- ---
    (Vlastne by ani PIE byt nemusela, jen by se linkovala pro jinou adresu, nez je obvykly, aby nebyla kolize mezi tim desifrovacim wrapperem a tim hlavnim programem. No nic, dost bylo monologu, psat se to nechystam :) )
    ANT_39
    ANT_39 --- ---
    (Urcite jsou tam detaily, ktery by bylo potreba vyresit: napriklad dost pravdepodobne bys musel ten rozbaleny program relokovat pro to cilovy umisteni. Ale mozna ne, kdyby zasifrovana binarka byla PIE, tak by mohla tomu mmapu zadat presnou adresu.)
    ANT_39
    ANT_39 --- ---
    GIOMIKY: mmapem si alokujes blok pameti, rozkomprimujes/rozsifrujes do ni nejaky staticky data, mprotectem nastavis +x, a pak return ((int (*)(int, char**)) 0xadresa) (argc, argv); 0xadresa je konstanta programu, nastavi se tou komprimacni utilitou. Staticky data se zkomprimovanym programem taky. Rozhodne to jde napsat do znacne miry prenositelne v C.
    GIOMIKY
    GIOMIKY --- ---
    DAVIDOWITCH: Ja taky ne, ale na urovni c asi nebude mozny jen tak posouvat sekce v pe, ne?
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    GIOMIKY: Nechapu co s tim ma spolecnyho ASM...
    JANFROG
    JANFROG --- ---
    GIOMIKY: Hmm...to vypada na ten blob :-)
    GIOMIKY
    GIOMIKY --- ---
    JANFROG: Sorry, za OT, ale zjistil jsem nasledujici. IDA pise: positive sp value has been found. Předpokládám tedy, že Import section je až za Resource section. Nejspíše opravud nějaké ASM bastlení.
    JANFROG
    JANFROG --- ---
    GIOMIKY: To je docela zajimavy. Docela by me zajimalo, jake sekce ma ta binarka, zkus si dumpnout strukturu toho - podle me musi mit alespon PE strukturu). Pokud nema, pak je to IMHO nejaky blob jen "pojmenovany" jako .dll pripadne .dll s jednou nestandardni sekci ktera obsahuje ten blob :-)
    A ten co to pouziva ma nejaky kod, co se v tom vyzna (zkopiruje do pameti, (dekoduje), mprotect(+x) & goto entrypoint.
    Nicmene z beziciho program bys to mel dumpnout celkem v pohode.
    GIOMIKY
    GIOMIKY --- ---
    Diky moc za rady, hledal jsem nejjednodussi moznou cestu, coz je napriklad tohle: http://upx.sourceforge.net/
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    GIOMIKY: Trivialne, pokud to dllko neni univerzalni dllko, ale plugin specialne pro toho robota, nikdo nerika ze ten robot nemuze natahnout dllko do pameti jako binarni blob, ten binarni blob dekomprimovat a dekryptovat a az potom z toho mit neco do ceho se daj delat cally.
    GIOMIKY
    GIOMIKY --- ---
    XCHAOS: Jestli myslis, ze je to v asm, tak navrhuji celou debatu utknout. Open-source zdar.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: No, ja to beru z pohledu atraktivity takovej soft vyrobit.
    Na primem prikladu tech vizualnich efektu. Potrebujes hodne specifickej soft, kterej beznymu smrtelnikovi je uplne k nicemu (napr. mnoho TB textur.. to moc nepotrebujou ani nadsenci do HD textur pro hry, protoze to je proste nesmyslne moc dat na skoro cokoliv).
    Takze moc developeru ktery by do toho sli z nadseni pro obecne uzitecnou vec (coz je velka motivace za spoustou Open Source projektu, a je skvela) nesezenes, protoze to co potrebujes neni obecne uzitecna vec. Obecne bych rekl ze tu vzdycky bude "trh" pro proprietarni soft v jistym smyslu toho slova, tj. ne closed-source-za-prachy, ale spis "neco co je uzitecny fakt jen pro superuzkou skupinu lidi, dost casto ciste inhouse".
    GIOMIKY
    GIOMIKY --- ---
    XCHAOS: Tak vzhledem k tomu, ze to potrebuje vc redist, tak bych rekl, ze to sem sedi.
    GIOMIKY
    GIOMIKY --- ---
    Jo a vm je dobrej napad, ale nevim, jak by se realizovat, protoze ty funkce v dll potrebuju volat z obchodniho terminalu z mql4 a tam je v podstate pouze moznost naimpotrtovat exporty z dll a pak je v proprietarnim jazyce volat.
    XCHAOS
    XCHAOS --- ---
    GIOMIKY: a jak to souvisí s tématem klubu? máš nějaké indicie, že to, co ti nejde dekompilovat, vůbec bylo vytvořené nějakým kompilátorem Céčka, nebo tak? ta ochranná obálka můžou být (a nejspíš jsou) nějaké triky, ubastlené přímo v ASM, nebo tak.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: nemyslím si, že mluvíme o tom samým.

    jestli někdo upřednostňuje svobodný software před proprietárním, to je v podstatě věc vkusu, názoru, sázky na určité směry vývoje ekonomiky i vzdělávání, apod.

    jestli je "matematicky" možné dokázat či vyvrátit, zda lze vytvořit "nedekompilovatelný" binární kód (ať už knihovnu nebo samostatně spustitelný soubor), to je úplně jiná otázka, která dodnes zajímá hodně lidí. já v příspěvku [ XCHAOS @ ANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API ] postnul jeden z nejrelevantnějších odkazů poslední doby na toto téma - a sklidil jsem za příspěvek moderaci -2. Super. Co jiného taky čekat na NYXu, kde je většina lidí chytřejších, než hmm... většina lidí.

    jinak připomínám, že tenhle klub je spíš o GNU-řešeních, tedy minimálně open source přístup (vše je dodáváno se zdrojáky a tudíž rekompilovatelné), ideálně bez politických tahanic jak moc to "přibalování" zdrojového kódu vynucovat.
    GIOMIKY
    GIOMIKY --- ---
    Jako ceho chci dosahnout. Mam forex robota, ktery pouziva dll. A kdyz jsem ho ze zvedavosti zkusil prohnal idou, tak to pise, ze je zkomprimovany nebo jinak chraneny proti reversnuti. Kdysi jsem videl nejaky programky, ktery umeli vzit exe a neco s nim udelali, takze nesel jednoduse debuggovat. Tak jsem chtel najit nejaky program, ktery by tohle dokazal s dll. Je mi zahadou, jaktoze decompiler nevidi ani exportni funkce a prece to funguje.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    GIOMIKY: Ja delam VFX, mam pro neopen-source dost pochopeni.
    REDGUY
    REDGUY --- ---
    GIOMIKY: 100% zpusob jak se uchranit pred dekompilaci je napsat to jako webovou aplikaci. Coz prinasi i celou radu dalsich vyhod.
    GIOMIKY
    GIOMIKY --- ---
    DAVIDOWITCH: Tohle by mohla byt obchodni strategie pro financni trhy, open-source neni ta cesta, kterou se chci vydat.
    Kliknutím sem můžete změnit nastavení reklam