| Author |
Message |
JohnRedGater
Joined: 27 Jun 2011 Posts: 10
|
Posted: Mon Jul 18, 2011 12:17 pm Post subject: Debugging Obsfuscated Code |
|
|
| Apparently there is a way of debugging obfuscated code using the generated PDB file and VS 2010, but I can't seem to find out how to do this. Is there any documentation on how to do this? If not, what are the steps to do this. I'm getting errors that only occur after the code has been obsfuscated. |
|
| Back to top |
|
 |
Brian Donahue
Joined: 23 Aug 2004 Posts: 6369 Location: Red Gate Software
|
Posted: Tue Jul 19, 2011 1:42 pm Post subject: |
|
|
Hi John,
It's pretty easy - just use the "generate debugging information" option when you build in SmartAssembly. That will make a PDB that contains information relevant to the source code before the assembly was processed with SA. Once you have the PDB, you can attach Visual Studio or your debugger of choice to the process when you run it, set breakpoints, and do the normal things you usually do to troubleshoot regular debug builds. _________________ Brian Donahue
Technical Support
Red Gate Software Ltd.
44 (0)870 160 0037 ext 8521
US and CAN 1-866-RED GATE ext 8521 |
|
| Back to top |
|
 |
JohnRedGater
Joined: 27 Jun 2011 Posts: 10
|
Posted: Tue Jul 19, 2011 4:39 pm Post subject: |
|
|
| Thanks for the information. I'll try it. If I integrate the obfuscation project in the release mode of my build in VS 2010, I should be able to debug it, correct? |
|
| Back to top |
|
 |
Brian Donahue
Joined: 23 Aug 2004 Posts: 6369 Location: Red Gate Software
|
Posted: Tue Jul 19, 2011 4:54 pm Post subject: |
|
|
Yes, as long as you generate debugging information, you can debug any SA-protected assembly, provided you copy the PDB that SA produced with the output. _________________ Brian Donahue
Technical Support
Red Gate Software Ltd.
44 (0)870 160 0037 ext 8521
US and CAN 1-866-RED GATE ext 8521 |
|
| Back to top |
|
 |
JohnRedGater
Joined: 27 Jun 2011 Posts: 10
|
Posted: Thu Jul 21, 2011 5:36 am Post subject: |
|
|
I modified my VS2010 project file to perform the obfuscation which replaces the .exe and the PDB.
I am able to start in debugging mode, but I can't watch any of the variables. It displays "The name 'xxxx' does not exist in the current context.
Also, the debugging behavior is strange. I can't step into a line of code and stepping over a line sometimes brings up a source not available. Is there something I may be doing wrong.
I made sure not to obfuscate source code URLs in the resulting PDB file.
Here's the relevant modifications to my Visual Studio 2010 project file:
<UsingTask TaskName="SmartAssembly.MSBuild.Tasks.Build" AssemblyName=" SmartAssembly.MSBuild.Tasks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7f465a1c156d4d57" />
<Target Name="AfterBuild" Condition=" '$(Configuration)' == 'Release' ">
<SmartAssembly.MSBuild.Tasks.Build ProjectFile="Tester.saproj" output="$(OutDir)$(TargetName)$(TargetExt)"/>
</Target> |
|
| Back to top |
|
 |
Brian Donahue
Joined: 23 Aug 2004 Posts: 6369 Location: Red Gate Software
|
Posted: Thu Jul 21, 2011 1:59 pm Post subject: |
|
|
Admittedly, there are some problems with the PDB generated by SmartAssembly. No workarounds at this point. _________________ Brian Donahue
Technical Support
Red Gate Software Ltd.
44 (0)870 160 0037 ext 8521
US and CAN 1-866-RED GATE ext 8521 |
|
| Back to top |
|
 |
|