diff --git a/CilTools.Metadata/AssemblyReader.cs b/CilTools.Metadata/AssemblyReader.cs index 5cb51e1..a8f8fa5 100644 --- a/CilTools.Metadata/AssemblyReader.cs +++ b/CilTools.Metadata/AssemblyReader.cs @@ -172,7 +172,7 @@ public Assembly LoadImage(MemoryImage image) /// When the assembly reader needs to resolve an external assembly, it first looks for it in the /// current runtime directory (where the system assemblies are located). Then it looks into a /// additional resolution directories. If the assembly is not found there, - /// the reader calls the AssemblyResolve event handle so you can customize + /// the reader calls the AssemblyResolve event handler so you can customize /// how assemblies are resolved. The rules for handling this event are similar with the /// event in .NET Framework. See /// for more diff --git a/docs/update/Application Files/CilView_2_8_0_0/CilTools.BytecodeAnalysis.dll.deploy b/docs/update/Application Files/CilView_2_8_0_0/CilTools.BytecodeAnalysis.dll.deploy new file mode 100644 index 0000000..2107198 Binary files /dev/null and b/docs/update/Application Files/CilView_2_8_0_0/CilTools.BytecodeAnalysis.dll.deploy differ diff --git a/docs/update/Application Files/CilView_2_8_0_0/CilTools.Metadata.dll.deploy b/docs/update/Application Files/CilView_2_8_0_0/CilTools.Metadata.dll.deploy new file mode 100644 index 0000000..4f827ff Binary files /dev/null and b/docs/update/Application Files/CilView_2_8_0_0/CilTools.Metadata.dll.deploy differ diff --git a/docs/update/Application Files/CilView_2_8_0_0/CilTools.Runtime.dll.deploy b/docs/update/Application Files/CilView_2_8_0_0/CilTools.Runtime.dll.deploy new file mode 100644 index 0000000..e67fba6 Binary files /dev/null and b/docs/update/Application Files/CilView_2_8_0_0/CilTools.Runtime.dll.deploy differ diff --git a/docs/update/Application Files/CilView_2_8_0_0/CilTools.SourceCode.dll.deploy b/docs/update/Application Files/CilView_2_8_0_0/CilTools.SourceCode.dll.deploy new file mode 100644 index 0000000..d1cd482 Binary files /dev/null and b/docs/update/Application Files/CilView_2_8_0_0/CilTools.SourceCode.dll.deploy differ diff --git a/docs/update/Application Files/CilView_2_8_0_0/CilView.Core.dll.deploy b/docs/update/Application Files/CilView_2_8_0_0/CilView.Core.dll.deploy new file mode 100644 index 0000000..d556052 Binary files /dev/null and b/docs/update/Application Files/CilView_2_8_0_0/CilView.Core.dll.deploy differ diff --git a/docs/update/Application Files/CilView_2_8_0_0/CilView.application b/docs/update/Application Files/CilView_2_8_0_0/CilView.application new file mode 100644 index 0000000..ebf0ebd --- /dev/null +++ b/docs/update/Application Files/CilView_2_8_0_0/CilView.application @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + C/kUFdXFpp5TinUnMr7l5/Knj3bITG3sfW1gpOzDszg= + + + + \ No newline at end of file diff --git a/docs/update/Application Files/CilView_2_8_0_0/CilView.exe.config.deploy b/docs/update/Application Files/CilView_2_8_0_0/CilView.exe.config.deploy new file mode 100644 index 0000000..fad249e --- /dev/null +++ b/docs/update/Application Files/CilView_2_8_0_0/CilView.exe.config.deploy @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/docs/update/Application Files/CilView_2_8_0_0/CilView.exe.deploy b/docs/update/Application Files/CilView_2_8_0_0/CilView.exe.deploy new file mode 100644 index 0000000..ed886f9 Binary files /dev/null and b/docs/update/Application Files/CilView_2_8_0_0/CilView.exe.deploy differ diff --git a/docs/update/Application Files/CilView_2_8_0_0/CilView.exe.manifest b/docs/update/Application Files/CilView_2_8_0_0/CilView.exe.manifest new file mode 100644 index 0000000..f622e66 --- /dev/null +++ b/docs/update/Application Files/CilView_2_8_0_0/CilView.exe.manifest @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Q2Jr1TsGJeAfh3M0/XihQ4opJz0PQYxfjysKtB4UKTE= + + + + + + + + + + + + Jo1RfCO6zkQA1Z3hYaOkJI4c40AhfmbZ9x9854zVk8Y= + + + + + + + + + + + + AbIyZeuD+/g1UfktCVreMwKNVMIZ/jKnFENKFQ6Msfk= + + + + + + + + + + + + +KH5Vd+MUGtHL4Mj9U5UJZXedU3Y/jvBJK0IGHEFr7k= + + + + + + + + + + + + RwqMfKZ2INSHRAz3hTtIXr1UXq6omQrG0TEzWK3N+oU= + + + + + + + + + + + + Tev5OXpPuiV5cqxC7yfrr2S8wZzXMYXutdmRDLEEqaQ= + + + + + + + + + + + + fXMj9y4nWIqRPCJhGU+5M0+8AKIXT9xS+VPPX4p1O7w= + + + + + + + + + + + + xcg7vBdBvm/0xJDAruNMFilFQj7Fd8ZGU4stIc4TGZ4= + + + + + + + + + + + + 7S+T7A8E6DMyqHCJI7MiCFuh/efZ67H/QDsK+fNYREE= + + + + + + + + + + + + DPCnjbXaN73FuNJfeWo+xh8Tc0kBEeXIz4DdVtDJ36g= + + + + + + + + + + xm4bo26HQ0LNVwz1vdPYtzhkpMnp2AI5i+f0b+OahTI= + + + + + + + + + BEU+/8vFV3JT8slp3Wr8NPcOiXi3LJq7Wshnf2HyewM= + + + + + + + + + y6pD4x8AL9xi6TcrSBUwYKUHfSQzbEPcMVQAI/GsGks= + + + + + + + + + 3xAXWRCU8rcD0VQwAFI6fVKAHE3O9HCV+DmM96u5kzk= + + + + + + + + + 8oRba2+pGLT6TPtnC5LJybBENswY6He9RT/kR3eikfM= + + + + + + + + + RC9c6+k4hbQOitIGUFwlN28rPXlgXPO2I8803caZ2Fs= + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/update/Application Files/CilView_2_8_0_0/Image/IL.ico.deploy b/docs/update/Application Files/CilView_2_8_0_0/Image/IL.ico.deploy new file mode 100644 index 0000000..58f176d Binary files /dev/null and b/docs/update/Application Files/CilView_2_8_0_0/Image/IL.ico.deploy differ diff --git a/docs/update/Application Files/CilView_2_8_0_0/Microsoft.Diagnostics.Runtime.dll.deploy b/docs/update/Application Files/CilView_2_8_0_0/Microsoft.Diagnostics.Runtime.dll.deploy new file mode 100644 index 0000000..4f3b3d5 Binary files /dev/null and b/docs/update/Application Files/CilView_2_8_0_0/Microsoft.Diagnostics.Runtime.dll.deploy differ diff --git a/docs/update/Application Files/CilView_2_8_0_0/Microsoft.Diagnostics.Runtime.pdb.deploy b/docs/update/Application Files/CilView_2_8_0_0/Microsoft.Diagnostics.Runtime.pdb.deploy new file mode 100644 index 0000000..8142158 Binary files /dev/null and b/docs/update/Application Files/CilView_2_8_0_0/Microsoft.Diagnostics.Runtime.pdb.deploy differ diff --git a/docs/update/Application Files/CilView_2_8_0_0/Newtonsoft.Json.dll.deploy b/docs/update/Application Files/CilView_2_8_0_0/Newtonsoft.Json.dll.deploy new file mode 100644 index 0000000..b7c6596 Binary files /dev/null and b/docs/update/Application Files/CilView_2_8_0_0/Newtonsoft.Json.dll.deploy differ diff --git a/docs/update/Application Files/CilView_2_8_0_0/System.Collections.Immutable.dll.deploy b/docs/update/Application Files/CilView_2_8_0_0/System.Collections.Immutable.dll.deploy new file mode 100644 index 0000000..3db5221 Binary files /dev/null and b/docs/update/Application Files/CilView_2_8_0_0/System.Collections.Immutable.dll.deploy differ diff --git a/docs/update/Application Files/CilView_2_8_0_0/System.Reflection.Metadata.dll.deploy b/docs/update/Application Files/CilView_2_8_0_0/System.Reflection.Metadata.dll.deploy new file mode 100644 index 0000000..cd6b666 Binary files /dev/null and b/docs/update/Application Files/CilView_2_8_0_0/System.Reflection.Metadata.dll.deploy differ diff --git a/docs/update/Application Files/CilView_2_8_0_0/credits.txt.deploy b/docs/update/Application Files/CilView_2_8_0_0/credits.txt.deploy new file mode 100644 index 0000000..38b3be7 --- /dev/null +++ b/docs/update/Application Files/CilView_2_8_0_0/credits.txt.deploy @@ -0,0 +1,50 @@ +The CIL Tools project uses code from the following third-party projects: + +--- .NET Libraries, ClrMD --- + +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- Newtonsoft.Json --- + +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/docs/update/Application Files/CilView_2_8_0_0/license.txt.deploy b/docs/update/Application Files/CilView_2_8_0_0/license.txt.deploy new file mode 100644 index 0000000..01158e3 --- /dev/null +++ b/docs/update/Application Files/CilView_2_8_0_0/license.txt.deploy @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2020, MSDN.WhiteKnight +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/docs/update/Application Files/CilView_2_8_0_0/readme.txt.deploy b/docs/update/Application Files/CilView_2_8_0_0/readme.txt.deploy new file mode 100644 index 0000000..38cee7b --- /dev/null +++ b/docs/update/Application Files/CilView_2_8_0_0/readme.txt.deploy @@ -0,0 +1,151 @@ +== CilView == + +**Requirements:** .NET Framework 4.5+ +**License:** BSD 3-Clause +**Repository:** https://github.com/MSDN-WhiteKnight/CilTools + +CilView is a windows application to display CIL code of methods in .NET assemblies. The key features are: + +- Displaying CIL code of methods in the specified assembly file or process +- Automatically building C#/VB sources and displaying the resulting CIL +- Displaying contents of CIL assembler source files (*.il) +- Syntax highlighting +- Navigation to the referenced method's code by clicking on the method reference +- Exporting CIL code into file +- Displaying process information and stack traces of managed threads (when process is opened) +- Displaying source code from which the method's CIL was compiled +- Executing methods interactively and inspecting the results + +--------------------------------------------- + +Changelog + +2.1 + +- Update assembly reading mechanism to use CilTools.Metadata instead of loading assemblies directly into the current process. This enables inspecting assemblies for another target framework (such as .NET Standard) or when some dependencies could not be resolved. This also means assemblies can be unloaded from memory when they are no longer needed. +- Add support for method implementation flags when outputting method signatures +- Add support for function pointer types +- Add support for module-level ("global") functions and fields +- Add syntax highlighting for calli instruction's operand +- Add full custom modifiers support (they were previously only supported in standalone signatures) +- Add custom modifier syntax highlighting +- Add pinvokeimpl support +- Add exception block support for dynamic methods +- Add method token resolution for dynamic methods +- Support auto-completion in assembly and type combo boxes +- Improve performance for type combo box when assembly has a lot of types +- Rework search. Search results are now displayed in context menu. Method search is added. +- Format char default values as hex +- Improve custom attribute support (now custom attribute data is properly shown for any attribute) +- Improve empty method body handling. Now empty body is ignored only when method is is abstract, P/Invoke or implemented by runtime. In other cases the error message is displayed. +- Place custom attributes before default parameter values in disassembled method code +- Fix ldloc.s/stloc.s instruction handling +- Fix ldtoken instruction handling with field operand +- Fix exception when method implementation is provided by runtime +- Fix possible null reference exception when reading array/pointer of generic args +- Fix BadImageFormatException on C++/CLI assemblies +- Fix signatures with function pointers being incorrectly displayed in left panel + +2.2 + +- Add support for `constrained.` instruction prefix +- Add type definition disassembler +- Add **Open BCL assembly** dialog +- Add navigation history +- Add partial support for 64-bit processes +- Add support for dynamic assemblies +- Add exception analysis +- Disable wrapping in search textbox +- Method navigation hyperlink now spans only over the method name identifier, instead of the whole method reference syntax +- Method navigation hyperlink is no longer underlined (to fix cases where it was obscuring _ chars in name) +- Improve performance of "Open process" by preloading assemblies from files instead of reading target process memory, where it's possible +- Fix null reference on typedref parameter +- Fix unhandled exception when opening file on background thread +- Fix token resolution bug after navigating to generic method instantiation +- Fix crashes on access to disposed assemblies + +2.3 + +- Escape IL assembler keywords when used as identifiers +- Make search in **Open process** window case-insensitive +- Add support for displaying dynamic assembly names when inspecting process (.NET Framework only) +- Show loaded modules in process info + +2.4 + +- Add support for opening C#/VB code and MSBuild projects +- Add **Show source** support +- Add options to include bytecode size and source code lines (from PDB) in disassembler output +- Add support for opening IL source files +- Add support for .entrypoint directive +- Add **Export type to file** menu command +- Add support for generic constraints +- Add support for disassembling properties +- Add support for interactive method execution +- Use .NET Core runtime directory when resolving dependencies for .NET Core assemblies +- Use runtime directory of the inspected process instead of current runtime directory for assembly resolution when opening a process +- Load assembly images from memory instead of files when opening a process +- When an assembly contains a single type, automatically navigate to that type +- When the type contains only one non-constructor method and no other members (like fields), automatically navigate to that single method when type is selected +- Change member identifier color to more visible with lower brightness +- Fix `ldtoken` syntax for methods +- Fix string literal escaping in disassembler to use ECMA-335 rules + +2.5 + +- Add Source Link support for Portable PDB symbols +- Add source code syntax highlighting +- Add instruction info +- Add IL syntax highlighting in SourceViewWindow +- Add support for viewing assembly manifest and **Export assembly to file** menu command +- Add **Recent files** menu +- Add HTML help +- Change default filter in Open File dialog to include all supported file types (instead of only .dll and .exe) +- Disable formatted view for .il files larger then 1 MB +- Support viewing separate types from .il files +- Load .il files in background +- Support parameters and return type custom attributes +- Support field custom attributes +- Support `.override` and `.vtentry` directives +- Support events in type disassembler +- Support vararg sentinel (...) in method signatures +- Support `specialname` and `rtspecialname` attributes on methods +- Skip assembly name for types in the same assembly +- Escape special characters in identifiers +- Escape slash in string literals +- Fix base type syntax in GetTypeDefSyntax +- Fix extra whitepaces after directive names +- Fix constructors to have void return type in disassembled CIL +- Fix ldtoken syntax for types +- Fix CilParserException when exception handler block closes after the last instruction in the method body +- Fix literal syntax for enum and boolean types +- Fix `serializable` attribute handling + +2.5.0.2 + +- Fix help when running from directory with non-latin characters in path + +2.6 + +- Add support for .pack and .size directives +- Add support for C# verbatim strings in source viewer +- Use .NET Core runtime directory for .NET Standard 2.1 targeting assemblies when navigating to methods from BCL types +- Update disassembler to not escape math symbols in string literals +- Fix syntax highlighting for constant values + +2.6.1 +- Fix TypeLoadException when disassembling property on a type derived from external non-BCL assembly + +2.8 +- Add support for type forwards +- Add support for .vtfixup directives in assembly manifest +- Add syntax highlighting support for some non-standard IlAsm keywords +- Add navigation to labels +- Add support for field offsets for structs with explicit layout +- Add support for RVA fields +- No longer automatically select type when it's the only one in assembly (so user can see assembly manifest) +- Fix members counting to pick only declared members when deciding whether the only method in type should be auto-selected + +--------------------------------------------- + +Copyright (c) 2023, MSDN.WhiteKnight diff --git a/docs/update/CilView.application b/docs/update/CilView.application index f4caf4c..ebf0ebd 100644 --- a/docs/update/CilView.application +++ b/docs/update/CilView.application @@ -1,6 +1,6 @@  - + @@ -14,14 +14,14 @@ - - + + - Ukb/h9LhsjdLH27hWUdEtgHqcC2FtjHRl4GnjEomZNU= + C/kUFdXFpp5TinUnMr7l5/Knj3bITG3sfW1gpOzDszg=