One Engine Two Tools

download One Engine Two Tools

of 58

  • date post

    23-Dec-2014
  • Category

    Technology

  • view

    28.305
  • download

    2

Embed Size (px)

description

With JustDecompile, Telerik's free .NET decompiler, you can easily recover lost source code or peer into assemblies to discover the root cause of an external bug. The same engine that powers JustDecompile is also used in Telerik JustCode, a Visual Studio add-in designed to enhance developer productivity. In this webcast, you will learn how to use JustDecompile and JustCode for decompilation scenarios you are likely to encounter in the office.

Transcript of One Engine Two Tools

  • 1. One Engine Two Tools.NET Assembly Decompilationfacebook.com/telerik @telerik

2. PresentingChris EargleTelerik EvangelistINETA DirectorC# MVP 3. PresentingChris EargleBlogsblogs.telerik.com/JustTeamkodefuguru.comContact@kodefuguruchris.eargle@telerik.com 4. AgendaPart 1 - DiscussionPart 2 - ProductsWhat is a Decompiler?JustDecompile StandAloneLegality DemoPrevention JustCode Visual StudioCommon Scenarios Demo BonusPart 3Q&A 5. What is a Decompiler?Removing some misconceptions 6. DecompilerPerforms the reverse operation of a compilerTranslates assemblies back into source codeSource code produced is a representation, not the original 7. It is not ReflectionReflection allows you to observe and modify a programsstructure and behavior at runtimeUsed to inspect types and members without knowing names atcompile timeAllows for instantiation and method invocation without hard-coding names 8. It is not DisassemblingDisassemblers translate machine code to assembly languageIn .NET, translating byte code to common intermediate language(CIL) can be considered disassemblyThis is one step in the decompilation processildasm.exe is an example of a .NET disassembler 9. LegalityWarning: I am not a lawyer 10. CopyrightMost software is covered by copyright lawsCopyright owners have exclusive rights to make copiesDecompilation can be necessary, and it is allowed in the US andEurope with some limitationsIf there are any doubts, consult a lawyer in your jurisdiction 11. United States"where disassembly is the only way to gainaccess to the ideas and functional elementsembodied in a copyrighted computer programand where there is legitimate reason for seekingsuch access, disassembly is a fair use of thecopyrighted work, as a matter of law." -Sega v. Accolade 12. EuropeCovered under the 1991 Software Directive, Article 6 Must have a license to the program Must be necessary for software interoperability Must be confined to relevant elements for interoperability Information obtained may not be used for other purposes orshared 13. Bottom LineHave a good reasonCheck the laws for where you liveBe good 14. PreventionHow to keep your software safe 15. Nothings 100%If it was designed to run, the means by which it runs can beobtainedThese techniques will only stop the casual reverse-engineer andthe curious 16. Provide Good DocumentationProvide documentation essential for interoperabilityPrevent bugs: test thoroughlyThese steps will provide legal cover in some jurisdictions 17. ObfuscationMakes it difficult to decompile by making output unreadableUse an obfuscator : bit.ly/obfuscators 18. Common ScenariosWhy people legitimately use decompilers 19. InteroperabilityThis usage is to determine how to make an assembly work withanother assembly or hardwareOptimizing for performance 20. Fix or Workaround BugA bug is creating issues, and theres no fix available from thevendor 21. Recover Lost Source CodeEveryone uses version control, right?A developer left and the source cant be found 22. Out of BusinessThe vendor of a necessary system component has gone out ofbusinessNo updates coming and they are necessary 23. Language TranslationYou have a project written in VB, and you need the code for a C#library (or vice-versa) 24. Code StandardizationPerformed as part of a build step, check-in, or during systemmigrationThis is generally badTools exist for this particular need 25. Discover Effects on CodeCompilers change your code to IL constructs. In C#, optimizationcan affect the outputIL Weaving 26. CuriosityMany people are simply curious about how a program works 27. JustDecompileMay the source be with you 28. JustDecompile is Free100% guaranteedFree for everyoneFree foreverBrand new decompilation engine 29. Language SupportC#Visual BasicIL 30. Assembly ListsCreate and maintainseparate lists of assembliesUseful when working ondifferent projects 31. NavigationStandard SearchingNavigation TreeFind UsagesInformation PanelGo to TypeCode Panel Go to SymbolNavigation Buttons Full Text Search 32. Navigation TreeContains loaded assembliesAdd assemblies via Openbutton or drag and dropDrill into assemblies to getreferences, resources, namespaces, types, and members 33. Information PanelBelow Navigation TreeContains information such asthe platform architecture andassembly location 34. Code PanelContains decompiled code orresource 35. Navigation ButtonsJustDecompile maintainsnavigation historyEasily return to a previousselection; no hunting throughtons of assemblies 36. Find UsagesQuickly find usages of typesor membersUse ctrl+leftclickMenu or ctrl+alt+uSupports multiple modes ofsorting 37. Go to TypeQuickly find types containingsearch termctrl+alt+t 38. Go to SymbolQuickly find all symbolscontaining search termctrl+alt+sThis search includes typesand members 39. Full Text SearchSearch for any text within an assemblyctrl+f 40. Silverlight XAP DecompilationOpen local or from URLWorks with Windows Phone XAP files! 41. SettingsToggle compiler generatedinformationChange code panel theme 42. FeedbackEasy access from the main menujustdecompile.uservoice.com 43. Create ProjectDecompile and output a full assembly in one stepWas one of the highest requested featuresSelect an assembly and choose Create Projectfrom tools or context menuFulfills Lost Source Code scenario 44. DemoUsing JustDecompile 45. JustCodeDecompilation within Visual Studio 46. What is JustCode?JustCode is a Visual Studio add-in for faster, smarter coding. Itworks with Visual Studio 2005, 2008, and 2010. It also works inVisual Studio 11 BetaSupports: C#, VB.NET, JavaScript, CSS, HTML, Razor, XML, XAMLWorks with cross-language solutions 47. Overview of JustCodeCodeAnd More!AnalysisUnobtrusiveNavigationRuns out-of-processGenerationExtensibleFormattingUnit Test RunnerTemplates RefactoringsCleaning 48. DecompilerThe same engine inJustDecompile is in JustCodeCompletely integrateddecompiling in Visual StudioSimply navigated to a typecontained in an assembly 49. Code StandardsJustCode enables you to handle the Code Standardizationscenario without decompilingCreate solution options and share them. Code style optionsavailable for all languages supported by JustCodeCode cleaning should be used as well. This is extensible; you canadd your own code cleaning steps 50. DemoDecompiling with JustCode 51. Learn more about JustCodeVisit telerik.com/justcodeWatch the videos 10 ways JustCode makes Visual Studio betterDownload a 60 day free trial of JustCode 52. BonusOne Engine Three Tools 53. What is JustTrace?Optimize .NET application performance and memoryIncludes tracing, sampling, and memory profilers in one easy-to-use packageSupports local and running .NET applications, Silverlight andWindows Service applications, and local IIS and ASP.NET websites 54. View SourceView source commandavailable in performanceprofilesCurrently only shows codereconstructed from .pdb filesOn the roadmap: including theJustDecompile engine 55. Learn more about JustTraceVisit telerik.com/justtraceFind instructional videos at tv.telerik.comDownload a 60 day free trial of JustTrace 56. Thank You Download JustDecompile today : telerik.com/justdecompile Remember, its free for everyone, free forever! To make a feature suggestion: justdecompile.uservoice.com 57. Q&A