Suppose I have a program that prompts you with a dialogbox to enter a
password. If you get the password correct, it allows you into the
program, else it kills the program.
Suppose that when I am in Visual Studio, running the program in debug
mode, i want to bypass the password prompt because if i am the
developer, i am definately allowed to use the program.
I assumed that I could use the this.DesignMode property while in my
main forms load event, to let me know whether I was running the program
through visial studio or not, but DesignMode seems to be returning
false whether i am in debug mode or not.
Any suggestions on how to tell if i am running through VS so i can
accomplish this?
Thanks,
Mike 9 6780
Debug Mode != Design Mode
The best way would probably be to simply use a
#if !DEBUG
#endif
You can also control the other items you wish to only have at debug on this
compile time constant.
You probably don't want to do it at runtime because anyone could simply
attach a debugger to your application to disable security :)
Cheers,
Greg Young
MVP - C# http://codebetter.com/blogs/gregyoung
<Mi************@gmail.comwrote in message
news:11*********************@p79g2000cwp.googlegro ups.com...
Suppose I have a program that prompts you with a dialogbox to enter a
password. If you get the password correct, it allows you into the
program, else it kills the program.
Suppose that when I am in Visual Studio, running the program in debug
mode, i want to bypass the password prompt because if i am the
developer, i am definately allowed to use the program.
I assumed that I could use the this.DesignMode property while in my
main forms load event, to let me know whether I was running the program
through visial studio or not, but DesignMode seems to be returning
false whether i am in debug mode or not.
Any suggestions on how to tell if i am running through VS so i can
accomplish this?
Thanks,
Mike
Greg,
Attaching a debugger does not place the assembly into "debug" mode. It
has to be compiled that way and it is determined at run time. It is
possible to have an assembly that was not compiled in debug mode and then
have it running in a process that a debugger is attached to.
I think that the OP should just place a username/password in his
credentials (however they are managed). There is something to be said about
performing debugging using the same credentials that any other user would
have.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com
"Greg Young" <dr*******************@hotmail.comwrote in message
news:OJ**************@TK2MSFTNGP04.phx.gbl...
Debug Mode != Design Mode
The best way would probably be to simply use a
#if !DEBUG
#endif
You can also control the other items you wish to only have at debug on
this compile time constant.
You probably don't want to do it at runtime because anyone could simply
attach a debugger to your application to disable security :)
Cheers,
Greg Young
MVP - C# http://codebetter.com/blogs/gregyoung
<Mi************@gmail.comwrote in message
news:11*********************@p79g2000cwp.googlegro ups.com...
>Suppose I have a program that prompts you with a dialogbox to enter a password. If you get the password correct, it allows you into the program, else it kills the program.
Suppose that when I am in Visual Studio, running the program in debug mode, i want to bypass the password prompt because if i am the developer, i am definately allowed to use the program.
I assumed that I could use the this.DesignMode property while in my main forms load event, to let me know whether I was running the program through visial studio or not, but DesignMode seems to be returning false whether i am in debug mode or not.
Any suggestions on how to tell if i am running through VS so i can accomplish this?
Thanks, Mike
I think you read my post incorrectly Nicholas ..I never stated that it
would. I regularly debug release mode code with both windbg and VS.NET.
He was asking if he could detect when it was running in visual studio at
_runtime_. I said this would be a bad idea as the only way to do it would be
to detect if you were running in a debugger (which is why I recommended
conditional compilation instead). Since you really could only feasably
detect at runtime whether or not a debugger was present you would have the
security loophole of anyone connecting a debugger (this is the exact
functionality asked for)
Attaching a debugger does not place the assembly into "debug" mode. It
has to be compiled that way and it is determined at run time.
and FYI starting an app from within VS.NET debugger by default DOES put it
into a "special debug mode" regardless of how you build. It will disable all
JIT optimizations even for release code. http://codebetter.com/blogs/gregyoun...09/146298.aspx for
instructions on how to disable this.
Cheers,
Greg Young
MVP - C# http://codebetter.com/blogs/gregyoung
"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard.caspershouse.comwrote in
message news:%2****************@TK2MSFTNGP05.phx.gbl...
Greg,
Attaching a debugger does not place the assembly into "debug" mode. It
has to be compiled that way and it is determined at run time. It is
possible to have an assembly that was not compiled in debug mode and then
have it running in a process that a debugger is attached to.
I think that the OP should just place a username/password in his
credentials (however they are managed). There is something to be said
about performing debugging using the same credentials that any other user
would have.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com
"Greg Young" <dr*******************@hotmail.comwrote in message
news:OJ**************@TK2MSFTNGP04.phx.gbl...
>Debug Mode != Design Mode
The best way would probably be to simply use a
#if !DEBUG #endif
You can also control the other items you wish to only have at debug on this compile time constant.
You probably don't want to do it at runtime because anyone could simply attach a debugger to your application to disable security :)
Cheers,
Greg Young MVP - C# http://codebetter.com/blogs/gregyoung <Mi************@gmail.comwrote in message news:11*********************@p79g2000cwp.googlegr oups.com...
>>Suppose I have a program that prompts you with a dialogbox to enter a password. If you get the password correct, it allows you into the program, else it kills the program.
Suppose that when I am in Visual Studio, running the program in debug mode, i want to bypass the password prompt because if i am the developer, i am definately allowed to use the program.
I assumed that I could use the this.DesignMode property while in my main forms load event, to let me know whether I was running the program through visial studio or not, but DesignMode seems to be returning false whether i am in debug mode or not.
Any suggestions on how to tell if i am running through VS so i can accomplish this?
Thanks, Mike Mi************@gmail.com wrote:
Suppose I have a program that prompts you with a dialogbox to enter a
password. If you get the password correct, it allows you into the
program, else it kills the program.
Suppose that when I am in Visual Studio, running the program in debug
mode, i want to bypass the password prompt because if i am the
developer, i am definately allowed to use the program.
I assumed that I could use the this.DesignMode property while in my
main forms load event, to let me know whether I was running the program
through visial studio or not, but DesignMode seems to be returning
false whether i am in debug mode or not.
Any suggestions on how to tell if i am running through VS so i can
accomplish this?
Thanks,
Mike
Take a look at System.Diagnostics.Debugger, in particular
System.Diagnostics.Debugger.IsAttached which according to the
documentation will tell you if a debugger is attached.
Hope this helps,
Nick http://www.seecharp.blogspot.com/
Thanks to everyone that replyed.
System.Diagnostics.Debugger.IsAttached is the solution i am going
with... pretty much exactly what i needed.
if (!System.Diagnostics.Debugger.IsAttached)
PromptForPassword();
simple as that.
Thanks again,
Mike
nick_nw wrote:
Mi************@gmail.com wrote:
Suppose I have a program that prompts you with a dialogbox to enter a
password. If you get the password correct, it allows you into the
program, else it kills the program.
Suppose that when I am in Visual Studio, running the program in debug
mode, i want to bypass the password prompt because if i am the
developer, i am definately allowed to use the program.
I assumed that I could use the this.DesignMode property while in my
main forms load event, to let me know whether I was running the program
through visial studio or not, but DesignMode seems to be returning
false whether i am in debug mode or not.
Any suggestions on how to tell if i am running through VS so i can
accomplish this?
Thanks,
Mike
Take a look at System.Diagnostics.Debugger, in particular
System.Diagnostics.Debugger.IsAttached which according to the
documentation will tell you if a debugger is attached.
Hope this helps,
Nick http://www.seecharp.blogspot.com/
OK... I just reread all of the posts...
In Gregs first post he states:
"You probably don't want to do it at runtime because anyone could
simply
attach a debugger to your application to disable security :) "
I am assuming that security loophole exists with the solution i am
using. Thing is, I dont really know what you mean by "anyone could
simply attach a debugger to your application". What does it mean to
attatch a debugger to an app? Lets say i compile my app into an exe
file. I put that exe file out on the network for everyone to access.
Now a user, who has read only access to the exe file on the network
wants to run the exe file and attatch a debugger. How do they do this?
Is it a real easy thing to do?
Thanks,
Mike Mi************@gmail.com wrote:
Thanks to everyone that replyed.
System.Diagnostics.Debugger.IsAttached is the solution i am going
with... pretty much exactly what i needed.
if (!System.Diagnostics.Debugger.IsAttached)
PromptForPassword();
simple as that.
Thanks again,
Mike
nick_nw wrote:
Mi************@gmail.com wrote:
Suppose I have a program that prompts you with a dialogbox to enter a
password. If you get the password correct, it allows you into the
program, else it kills the program.
>
Suppose that when I am in Visual Studio, running the program in debug
mode, i want to bypass the password prompt because if i am the
developer, i am definately allowed to use the program.
>
I assumed that I could use the this.DesignMode property while in my
main forms load event, to let me know whether I was running the program
through visial studio or not, but DesignMode seems to be returning
false whether i am in debug mode or not.
>
Any suggestions on how to tell if i am running through VS so i can
accomplish this?
>
Thanks,
Mike
Take a look at System.Diagnostics.Debugger, in particular
System.Diagnostics.Debugger.IsAttached which according to the
documentation will tell you if a debugger is attached.
Hope this helps,
Nick http://www.seecharp.blogspot.com/
Of course, it does mean that people can bypass the security to your app
simply by attaching a debugger, even if obfuscated etc.
In this scenario, I would consider e.g. allowing the pw to be specified at
the command line, and then pass in your pw in the debug arguments... that
way it can't be bypassed short of them rebuilding your code.
As another side-effect, this means that you are debugging a different
codebase (or path) to what is actually going to run in the field, which can
be confusing.
Marc
How do they do this?
Is it a real easy thing to do?
In VS, Debug->Attach to Process
Marc
Or they could just use mdbg, windbg, cordbg, etc all of which are free
downloads.
Cheers,
Greg Young
MVP - C# http://codebetter.com/blogs/gregyoung
"Marc Gravell" <ma**********@gmail.comwrote in message
news:Os**************@TK2MSFTNGP06.phx.gbl...
>How do they do this? Is it a real easy thing to do?
In VS, Debug->Attach to Process
Marc This discussion thread is closed Replies have been disabled for this discussion. Similar topics
5 posts
views
Thread by Dafna |
last post: by
|
1 post
views
Thread by yanwan |
last post: by
|
4 posts
views
Thread by yanwan |
last post: by
|
16 posts
views
Thread by TB |
last post: by
| |
1 post
views
Thread by Norman Diamond |
last post: by
|
1 post
views
Thread by DR |
last post: by
|
2 posts
views
Thread by =?Utf-8?B?RGF2aWQ=?= |
last post: by
|
1 post
views
Thread by Cramer |
last post: by
| | | | | | | | | | |