Skip to content
This repository has been archived by the owner on Mar 17, 2024. It is now read-only.

Start of the Registry Editor #328

Closed
wants to merge 24 commits into from
Closed

Start of the Registry Editor #328

wants to merge 24 commits into from

Conversation

yankejustin
Copy link
Contributor

Current Progess

- This is just the start of the Registry Editor feature. It needs a bit of work before it functions as intended. It needs a bit more logic to view, as well as all of the logic to add, edit, and delete registry keys. - This addition is a good example of how the feature addition should continue; I merely have provided the building blocks necessary for its continued development.

To-Do

1. Correctly add sub-keys to the TreeView. - Order: Correctly maintain the order when making use of the keys sent to the server by the user. I was trying to research the best way to do so, as the collections I normally use to preserve the tree structures are in .NET v4.0 :( - In this situation, it is likely the best idea to use the Tag to maintain the order in the TreeView. As much as I would not like to send the related tag to the Client, it would be the easiest way to ensure order of the returned keys. - Root nodes currently work. It is more of a proof-of-concept to show the current logic works, but needs more added to it. 2. Connect the logic to correctly display the value on the ListView. 3. Adding, Editing, or Deleting the RegistryKeys: - This should come after the order is correctly preserved in the TreeView. - This feature addition also means creating more Forms for the corresponding RegistryKey data type. - This feature addition also means implementing a few more events and packet types when the Client deletes, adds, or edits a RegistryKey. Note: Comments where left in the code to help find more little things that need to be added to the Registry Editor to make it more complete. To find such comments, locate comments that begin with ToDo:.

Questions/Answers

1. Why did I make an additional CommandHandler just for the Registry Editor? - The logic for the Registry Editor feature can grow quite significantly as intended features to add in the feature (add, delete, and edit) are added. It is both the actual logic to handle these requests and responses that can be rather extensive and specific; it is likely to be ~300-500 lines or so of code. 2. Why not just finish implementing the Registry Editor? - There is a huge amount of features to add to make it complete. Besides my lack of time (especially with college coming up very soon), I also feel that others would be more suited for specific tasks. An example for a task that will need to be done would be the creation of nice graphics for the Registry Editor (ehm, @MaxXor) ;) 3. Why must we add more events and types of packets? - In Windows' Registry Editor, it is clearly quite a responsive design. Unfortunately, a responsive design often will require many events to be fired. 4. Am I going bye-bye? - Nope! I will very likely not be able to contribute much for a month or two, but I figured I would post my current progress so any others that wish to help implement this can make it happen.

MaxXor, please do not merge this into master!

I wish to merge this into a new branch for the Registry Editor addition to be worked on more.

Added a .resx file for the Registry Editor Form.
Added logic to portray Registry Key traversal. Most will soon migrate
over to the Client for obvious reasons. Most of this logic is to prove
correct traversal of the Registry Hive. This logic also helps show that
the TreeNodes are being created correctly.
Note: Still needs to retrieve Key Values and should then parse them into
ListViewItems.
Added end-tag that disappeared...
Will not yet build. This is part 1 of 2 for the big changes; the
Registry Editor addition.
I need to connect the logic together and it should work. Stay tuned. :)
Merge with recent master branch
Part 2/2 of the major additions for the Registry Editor feature.
Here are the basic building blocks of the Registry Editor feature.
Implementation still must be extended but this is a good start to the
Registry Editor.
Released under the GNU General Public License v2.0 (GPL-2.0), we aren't
required to give this much credit. However, the works of CrackSoft has
saved me time and effort with my current progress in the Registry Editor
feature. This is my show of appreciation for making their work open
source, and placing it under such a non-restrictive license.
Thank you, CrackSoft.
So it is slightly easier to read. :)
Merge with recent changes
Disambiguation between the definition of Registry.
Updated the project file to match the project file of the updated base
repository (these classes were moved to a more appropriate location).
Fixed an issue that caused matches to not be added.
We check to make sure SearchComplete is subscribed to. If it is not,
there is no reason to add a match to the list of matches since it will
not be used anyways.
A few fixes, and send the registry keys obtained by each registry key
instead of all at once.
Finally found the issue with serialization.
While the RegSeekerMatches could be serialized, the RegSeekerParams
(settings for the Registry Seeking class) could not be due to the
RegistryKey array of root keys to base the search off of.
These changes finally demonstrate proper searching and the ability to
add the Registry Keys from the Client to the Server. It needs work on
proper order and searching, as well as proper parsing, but this is the
start of it.
@yankejustin
Copy link
Contributor Author

Closing this until I make more progress. Progress on the Registry Editor feature will be tracked on the initial issue created for the suggestion to have this feature added.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant