You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I see some issues in the TLS fix implementation
First is that you add a dependency called MSPDBX which I don't like at all since I want to keep this project simple as possible
The second is that the structure "LDR_DATA_TABLE_ENTRY" that you are using is quite old and current structure is bigger which will cause ntdll crash pretty fast trying to access invalid memory outside the buffer (a more complex implementation supporting different OS maybe needed)
and finally speaking about the invalid memory, did you test it?, you are doing a malloc in the injector process for the ldr buffer
while you will use this buffer in a different process and will not exist
Review it in any case I'm glad to see that someone want to bring the TLS support and I will accept it when it looks better
Thanks again for the feedback. I’ve taken the time to address all the points raised, and the following improvements have been made:
MSPDBX Dependency
As requested, I’ve removed the MSPDBX module. The offsets are now hardcoded, which simplifies the project and aligns with your preference for minimal dependencies. This will, of course, require manual updates when new versions are released, but the implementation is now leaner as per your feedback.
LDR_DATA_TABLE_ENTRY Structure
To ensure compatibility across various Windows versions, I’ve significantly increased the memory allocation for LDR_DATA_TABLE_ENTRY. This guarantees no struct overrun will occur, regardless of OS version.
Memory Allocation (Global VirtualAllocEx):
I’ve corrected the memory allocation oversight by switching from malloc to a more global solution using VirtualAllocEx. This ensures that memory is properly allocated within the target process, eliminating the cross-process memory issue.
Summary of Updates:
Removed MSPDBX and hardcoded the necessary offsets.
Replaced malloc with VirtualAllocEx for safe cross-process memory allocation.
Allocated extra memory for LDR_DATA_TABLE_ENTRY to prevent overruns across different OS versions.
All these changes have been implemented, and the issues have been resolved. I look forward to hearing your thoughts after you review the updated version!
Tried to implement this but I still crash on: static std::map<ImGuiID, float> anim;
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.