1
0
mirror of https://github.com/valinet/ExplorerPatcher.git synced 2024-11-27 17:00:59 +01:00

Updated Symbols (markdown)

Valentin-Gabriel Radu 2021-11-24 14:31:11 +02:00
parent 0c4cb1bb8e
commit 2fedc6e75c

@ -102,7 +102,7 @@ Yes and no. We can discuss this more in a separate thread, but to keep it short
* For things in `twinui.pcshell.dll`, there would be 2 alternatives: reimplementing the functions used from there, like a `Win`+`X` menu builder, code that adds and removes owner drawing for contextual menus etc, or shipping a version of the DLL with known symbol data with the program. The former is doable, although it's not on the roadmap and would take a while, while the latter would be much more practical, but it's kind of impossible since I do not have a license to redistribute Microsoft's binaries.
* For things in `StartDocked.dll`, it's actually much more complicated, since I need the symbols to know where to hook and modify the behavior of certain of its function in order to achieve the functionality described above. Much much harder to do without symbols, almost impossible I'd say.
For offering certain capabilities, using symbols is mostly the way to go. For example, Start11 reimplemented the whole Windows 11 Start menu on their own just so that they did not have to bother with this, plus the OC Windows 11 menu is pretty opaque and developing something from scratch is much easier than spending endless days tryin to figure out some obfuscated instructions in Microsoft's binaries.
For offering certain capabilities, using symbols is mostly the way to go. For example, Start11 reimplemented the whole Windows 11 Start menu on their own just so that they did not have to bother with this, plus the OC Windows 11 menu is pretty opaque and developing something from scratch is much easier than spending endless days trying to figure out some obfuscated instructions in Microsoft's binaries.
## Does the symbol file contain the actual source code?
No, as I said, it just contains some pointers, some very succinct information about various things in a program. Symbols are usually generated by the compiler when the binary is created, and are usually distributed in one form or another with it by the vendor, although that's not always the case. Debugging or exploring an executable without symbol information is harder because you have to deduct from the instructions alone what that block of code might do. Although, it's not impossible to figure out what happens then either.