?
Solved

Vb.net create a module and deny the debug inside

Posted on 2012-03-24
6
Medium Priority
?
350 Views
Last Modified: 2012-03-25
Hi ,

I have created a module with many functions and I like to deny the debug inside these functions.

There is a way to deny  the debug in one module in particular ?
0
Comment
Question by:luca345
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 2

Expert Comment

by:Kelden
ID: 37761292
Can cannot prevent somebody to debug your module.
I think what you need is an obfuscator so debugging is very hard.
Something like Obfuscar.
0
 
LVL 17

Expert Comment

by:nepaluz
ID: 37761322
Add this at the begining ofthe sub
If Debugger.IsAttached Then Exit Sub

Open in new window

substitute to exit function where appropriate
0
 
LVL 40

Accepted Solution

by:
Jacques Bourgeois (James Burger) earned 2000 total points
ID: 37763606
Depends on what you intend by denying debug.

Kelden solution is not one used to prevent debugging, it is one used to prevent reverse engineering. And obfuscators usually works on all the application. My understanding is that you want to act only on specific methods. Also unless you have an Express version of Visual Studio, there is an obfuscator built-in, so no need to to look outside of the box.

nepaluz solution works very well, but you usually use that technique to implements special things when debugging, not to exclude debugging. The instruction Debugger.IsAttached instruction ends up being compiled. Personnally, I do not like to have in my release version code that will do nothing. I would rather like to do what you want in a way that involves only the debugger, and is not executed uselessly everything the method is called in release. Personal taste here.

However, if you want to exclude specific lines of code inside of a method, and not exclude the whole method, this is the way to go.

If you simply want to prevent the debugger from entering in the code, you can add the DebuggerStepThrough attribute at the beginning of the methods that you want the debugger to skip:

 <System.Diagnostics.DebuggerStepThrough()> _
Public Function YourFunction As Something

If for some reason you need to debug the method, just comment out the line temporarily:

'<System.Diagnostics.DebuggerStepThrough()> _
Public Function YourFunction As Something
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 

Author Closing Comment

by:luca345
ID: 37763641
Excellent , this solution is exactly what I need !!!
0
 

Author Comment

by:luca345
ID: 37763645
0
 
LVL 40
ID: 37764035
Done. Look in the other thread.
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When we want to run, execute or repeat a statement multiple times, a loop is necessary. This article covers the two types of loops in Python: the while loop and the for loop.
Q&A with Course Creator, Mark Lassoff, on the importance of HTML5 in the career of a modern-day developer.
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question