markjprice / cs11dotnet7

Repository for the Packt Publishing book titled "C# 11 and .NET 7 - Modern Cross-Platform Development Fundamentals" by Mark J. Price
566 stars 206 forks source link

Sentence out of place in chapter 7 #88

Closed sjharper79 closed 10 months ago

sjharper79 commented 10 months ago

Please check that your issue is not already in the errata aka list of corrections and improvements. Please note that PRs will be ignored because code in the repo must match the print book already published. Please raise an issue instead so I can handle it appropriately. All issues will be entered into the errata once closed. They will also be fixed in the next book edition.

You can delete the note above after reading it. Please complete as much information below as possible so that I can understand and fix the issue quickly. Screenshots can be especially useful. You can drag and drop images into the box. Thank you!

Chapter: 7 Page Number: 339 Section Title: No, you cannot technically prevent decompilation Step Number: Problem to fix: The last sentence on the page is very much out of place. There are no connecting thoughts or topics. It's just in there and doesn't fit. Suggested solution: Remove the sentence, "Virtual machines simulate hardware and so can capture all interaction between your running application and the software and hardware that it thinks it is running on." Other useful information e.g. OS, coding tools, and so on:

markjprice commented 10 months ago

The sentence is within the section "No, you cannot technically prevent decompilation" and the sentence describes one of the reasons why. The sentence continues the theme from the preceding paragraph, "All compiled applications contain instructions to the platform, operating system, and hardware on which it runs [and therefore a VM as described in the sentence]. Those instructions must be functionally the same as the original source code but are just harder for a human to read. Those instructions must be readable to execute your code; they therefore must be readable to be decompiled. If you were to protect your code from decompilation using some custom technique, then you would also prevent your code from running!"