Thread: MS forces open source?

  1. #16
    S­énior Member
    Join Date
    Jan 2002
    Posts
    982
    I'm pretty sure I've read somewhere that some of the hashes that comprise the manifest protect the program from tampering so although it may be relatively easy to see what's going on using ILDasm, it wouldn't make it easier to crack programs.

    However, I just opened the Hello World exe with a hex editor and changed the string and it didn't grumble when I ran the program so you can still alter strings.

    Also there may be some way of scrambling the IL, but I haven't found the option yet.

  2. #17
    the hat of redundancy hat nvoigt's Avatar
    Join Date
    Aug 2001
    Location
    Hannover, Germany
    Posts
    3,130
    The manifest should be protected against hacking/cracking by various checksums. However, with an intermediate language, and maybe plain text in the IL file, it is quite easy to get the code. Probably as easy as VB or Java for that matter. But: the .NET framework is probably used for business logic. The programs written will not be wondrous new algorithms or engines no one is allowed to see. Most if not all business logic is coding that everyone could recode any day. It takes time, it takes money, it takes us to manufacture the time and money into something that makes the computer do our deeds, but the work in business logic is in no way unique. Once you know what it should do, it might be cheaper to get another programmer to do it again instead of disassembling it and putting it back together.

    So yes, the code is more open than in C++, but disassembling is still forbidden by the terms of use. Business logic code is useless even to your direct rival, because it's unique to your own structures of data storage and corporate workflow. Coding your own is cheaper than having a look at other's. ASP.NET powered webpages don't give the code to the client machine, it's serverside, so the biggest threat for open code, the internet, is out, too

    Those things that need protection ( i.e. latest 3D engine, fastest search algorithm etc. ) aren't written in .NET anyway, because they need one point: Speed.

    BTW: A colleague is writing an anti-cheat tool for an online game that is quite cheat ridden at the moment. One thing he learned so far is that for the real cracks, there is no way to protect your code. It will be broken, the only factor is time. At one point in execution, it will have to be unscrambled to run it, and then, it's dead meat


    EDIT:
    It is also interesting to see a MS reference in the code [mscorlib] sense MS claims the IL to be totaly system independent
    Well... this Core Library was made by MS. The linux version probably calls this monocorlib. This is a reference to the creator of this version of the Core Library. I can see no system dependency in it.
    hth
    -nv

    She was so Blonde, she spent 20 minutes looking at the orange juice can because it said "Concentrate."

    When in doubt, read the FAQ.
    Then ask a smart question.

  3. #18
    Registered User
    Join Date
    Feb 2002
    Posts
    589
    >>>>
    Well... this Core Library was made by MS. The linux version probably calls this monocorlib. This is a reference to the creator of this version of the Core Library. I can see no system dependency in it.
    <<<<


    So if I want to run my prog on windows I need to compile so I get mscorelib and if I want my prog to run in linux my compiler needs to produce IL code saying monocorelib? I thought the whole point of .NET was to have the exact same IL code run on any platform.Or am I totaly lost here? If the above stated was true .NET wouldn't be more system independant then standard C

  4. #19
    the hat of redundancy hat nvoigt's Avatar
    Join Date
    Aug 2001
    Location
    Hannover, Germany
    Posts
    3,130
    I didn't see any corlib reference in the assembly. The text you refer to was created by the Dissassembler, which very well knows that this is an MS platform with MS tools. The Mono dissassembler on Linux might as well name it MonoCorLib.

    In the IL, it's only "IL_0005". No MS, No Linux, just 0005.
    hth
    -nv

    She was so Blonde, she spent 20 minutes looking at the orange juice can because it said "Concentrate."

    When in doubt, read the FAQ.
    Then ask a smart question.

  5. #20
    S­énior Member
    Join Date
    Jan 2002
    Posts
    982
    >In the IL, it's only "IL_0005". No MS, No Linux, just 0005.

    I believe IL_0005 is the byte offset to the instruction, not the actual instruction. If you want the actual code of the instruction the it looks like -

    Code:
    .method private hidebysig static void  'Main'(string[] 'args') cil managed
    // SIG: 00 01 01 1D 0E
    {
      .entrypoint
      // Method begins at RVA 0x2050
      // Code size       17 (0x11)
      .maxstack  8
      IL_0000:  /* 28   | (0A)00000D       */ call       int32 ['mscorlib']'System'.'Console'::'Read'()
      IL_0005:  /* 26   |                  */ pop
      IL_0006:  /* 72   | (70)000001       */ ldstr      "Hello, World!"
      IL_000b:  /* 28   | (0A)00000E       */ call       void ['mscorlib']'System'.'Console'::'WriteLine'(string)
      IL_0010:  /* 2A   |                  */ ret
    } // end of method 'Class1'::'Main'
    Also, the exe has hard coded references to mscorlib, so it's not just generated by the disassembler.

  6. #21
    the hat of redundancy hat nvoigt's Avatar
    Join Date
    Aug 2001
    Location
    Hannover, Germany
    Posts
    3,130
    hm, okay, after using my Studio to test it, it seems you are right, the references are to mscorlib. So I guess there are naming conventions that have to be followed. Linux Distributions will have to supply their own mscorlib. As far as I know, MS is no trademark for Microsoft, so everyone can use it, and as it seems, has to use it.
    Pretty arrogant, but nothing that would break the system independence.
    hth
    -nv

    She was so Blonde, she spent 20 minutes looking at the orange juice can because it said "Concentrate."

    When in doubt, read the FAQ.
    Then ask a smart question.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Open Source Cell phones
    By abachler in forum Tech Board
    Replies: 9
    Last Post: 03-21-2008, 09:31 AM
  2. Punkbuster / DRM / copy protection as Open Source?
    By sept in forum A Brief History of Cprogramming.com
    Replies: 30
    Last Post: 03-11-2008, 07:15 PM
  3. propogation of open source
    By abachler in forum A Brief History of Cprogramming.com
    Replies: 3
    Last Post: 12-28-2007, 10:03 AM
  4. Ping
    By ZakkWylde969 in forum Tech Board
    Replies: 5
    Last Post: 09-23-2003, 12:28 PM
  5. Open Source Text Editors
    By Cxx in forum C++ Programming
    Replies: 2
    Last Post: 01-04-2003, 03:46 AM