Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
CODE PROJECT For Those Who Code
  • Home
  • Articles
  • FAQ
Community
  1. Home
  2. The Lounge
  3. Disassembling MSIL

Disassembling MSIL

Scheduled Pinned Locked Moved The Lounge
csharpdiscussioncomhelpquestion
6 Posts 4 Posters 1 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 1 Offline
    1 Offline
    1nsp1r3d
    wrote on last edited by
    #1

    Hello all, I was just browsing around and suddenly found Reflector. And I was completely amazed! Its built-in disassembler gives you all the code! So I compiled a test program and run the disassembler on it and it showed the code was 1:1 with the original. So basically when you ship your .NET program, you're shipping it with the source code, aren't you? I don't think this quite good if you want to protect some non-trivial parts of your program(unless your program is free/open source/etc). So the only think which I thought of doing to remedy this situation is using an obfuscator, which actually is not a solution to the problem, instead of taking N hours, it will take 10xN hours to find the parts you want. I just wanted to share my thoughts with you and see what do you think about this. Any comments are welcome. Regards, gamehack

    C N 2 Replies Last reply
    0
    • 1 1nsp1r3d

      Hello all, I was just browsing around and suddenly found Reflector. And I was completely amazed! Its built-in disassembler gives you all the code! So I compiled a test program and run the disassembler on it and it showed the code was 1:1 with the original. So basically when you ship your .NET program, you're shipping it with the source code, aren't you? I don't think this quite good if you want to protect some non-trivial parts of your program(unless your program is free/open source/etc). So the only think which I thought of doing to remedy this situation is using an obfuscator, which actually is not a solution to the problem, instead of taking N hours, it will take 10xN hours to find the parts you want. I just wanted to share my thoughts with you and see what do you think about this. Any comments are welcome. Regards, gamehack

      C Offline
      C Offline
      Chris Maunder
      wrote on last edited by
      #2

      This has been known since the advent of .NET. There's been many suggestions, but obfuscators such as Dotfuscator[^]seem to be the most popular. cheers, Chris Maunder

      CodeProject.com : C++ MVP

      1 Reply Last reply
      0
      • 1 1nsp1r3d

        Hello all, I was just browsing around and suddenly found Reflector. And I was completely amazed! Its built-in disassembler gives you all the code! So I compiled a test program and run the disassembler on it and it showed the code was 1:1 with the original. So basically when you ship your .NET program, you're shipping it with the source code, aren't you? I don't think this quite good if you want to protect some non-trivial parts of your program(unless your program is free/open source/etc). So the only think which I thought of doing to remedy this situation is using an obfuscator, which actually is not a solution to the problem, instead of taking N hours, it will take 10xN hours to find the parts you want. I just wanted to share my thoughts with you and see what do you think about this. Any comments are welcome. Regards, gamehack

        N Offline
        N Offline
        Nish Nishant
        wrote on last edited by
        #3

        If you have some code that you don't want disassembled, write that as an unmanaged C++ DLL and call into it from the .NET code.

        L 1 Reply Last reply
        0
        • N Nish Nishant

          If you have some code that you don't want disassembled, write that as an unmanaged C++ DLL and call into it from the .NET code.

          L Offline
          L Offline
          Luis Alonso Ramos
          wrote on last edited by
          #4

          Nishant Sivakumar wrote:

          write that as an unmanaged C++ DLL

          And even that can be reverse engineered with a little more work X|. I guess the only real choice would be to run your code on a server, and expose interfaces to it through web services. Having your code on the client machine automatically allows it to be seen (with a little or a lot of work, it depends.) -- LuisR


          Luis Alonso Ramos Intelectix - Chihuahua, Mexico Not much here: My CP Blog!

          The amount of sleep the average person needs is five more minutes. -- Vikram A Punathambekar, Aug. 11, 2005

          1 1 Reply Last reply
          0
          • L Luis Alonso Ramos

            Nishant Sivakumar wrote:

            write that as an unmanaged C++ DLL

            And even that can be reverse engineered with a little more work X|. I guess the only real choice would be to run your code on a server, and expose interfaces to it through web services. Having your code on the client machine automatically allows it to be seen (with a little or a lot of work, it depends.) -- LuisR


            Luis Alonso Ramos Intelectix - Chihuahua, Mexico Not much here: My CP Blog!

            The amount of sleep the average person needs is five more minutes. -- Vikram A Punathambekar, Aug. 11, 2005

            1 Offline
            1 Offline
            1nsp1r3d
            wrote on last edited by
            #5

            Yeah :) You cannot show something without showing it, can you? :)

            L 1 Reply Last reply
            0
            • 1 1nsp1r3d

              Yeah :) You cannot show something without showing it, can you? :)

              L Offline
              L Offline
              Luis Alonso Ramos
              wrote on last edited by
              #6

              No, you cant! :) And I would recommend you, unless it is *very* sensitive algorithms, forget about it and rather think about making a great app. This way your users won't move to cheap alternatives :) -- LuisR


              Luis Alonso Ramos Intelectix - Chihuahua, Mexico Not much here: My CP Blog!

              The amount of sleep the average person needs is five more minutes. -- Vikram A Punathambekar, Aug. 11, 2005

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • World
              • Users
              • Groups