reclassnet / reclass.net Goto Github PK
View Code? Open in Web Editor NEWMore than a ReClass port to the .NET platform.
License: MIT License
More than a ReClass port to the .NET platform.
License: MIT License
How do I set the color for the side bar with the classes dropdown?
Not an issue, rather a suggestion.
It would be nice to have a bool type. Yeah I know we could just use uint8_t but still, that's not the same.
Thanks
@DrP3pp3r
The update method uses the wrong address. All values use the address of the first value.
First hello, and i have to tell you that i love this project
2nt why i cant open this process, i didnt compile right ?
i mean i cant compile the project "NativeCore.Unix"
I mean i have problems when i try to compile it
but i dont care its Unix i use windogayos(jk windows)
i really wanna find some cool pointers on this reclassers Becuase this reclasser is so much sexy and good and made in germny XDD
Thank you for the Software, and pleaseee Help i cant find the game :9
Hello KN4CK3R, First of all I want to express my gratitude for this software. I liked the UI design and good code quality.
And the question. I want modify code for myself than Pointer Preview popup work for each row. I need this this, because i use read/write kernel driver, and i dont know where exactly is pointer.
I try to find this in MemoryPreviewPopUp & HotSpot classes. Tell me please, where can I find this code verification for pointer. Thx!
Hello !
i am very happy to see a guy like u/or guys idk..
i saw this project few mounths ago and i always see updates there
thanks for the project !
Hi there,
I apologize in advance if this has already been answered before, or if it is just a stupid question.
I have tried to build from source, but VS2017 complains about SQLite.
How do I install this dependency? I think this is all that's missing.
Thanks,
Mockba the Borg,
Tried using it with a real game example and a simple application I wrote.
Works with cheat engine on both occasions doesn't work with ReClass.NET
Very rare bug, not sure it can be/should be fixed.
I got a bug with reading string from memory, reading more bytes after string cause to fail reading at all.
Just check my video: https://dl.dropboxusercontent.com/s/zrkpuvh4x6njohz/2018-05-08_05-44-40.mp4
I think the problem that reclass trying to read memory that goes out of memory page region and can't be read it at all.
I got this problem in my program, then I find out that this problem present in reclass too.
ReClass.Net is missing the exectuable I'm trying to attach into
Hi. Just another loading issue.
Currently I'm facing long loading time when creating class pointer / renaming class. Is that possible to fix this as well?
i dont know why but bf4.exe (x64) is not showing at the process list
Hi,
unfortunately it seems that the Array of Pointer Node does only support Class Instances. I need an Array of Pointer where every Pointer points to another Pointer of a specific class.
I know that you (@KN4CK3R ) know the Unreal Engine so you are aware of the TArray struct.
Imagine the ULevel::Actors
member which is a TArray<AActor*>
I wanted to create a class in ReClass that is able to visualize exactly this. The first member in the TArray
is a Pointer to the Pointer Table. However I am only able to put another class which is already defined in the Array of Pointers instead of a here required Class Pointer of AActor.
Do you get what I mean?
Is it possible to implement that?
Thanks in advance
At resolutions > 1080p, interface is difficult to read. Font is downright miniscule at 4k.
I want to extend the TypeInfo plugin for FrostBite games with the members of each class. For that I need to know the "base address" of the current class.
So for example when I want to read the membername of address AB37C8B8 the method INodeInfoReader.ReadNodeInfo gets called with the BaseNode of this item and the IntPtr with value AB37CAF8. From these values there is no way (atleast I haven't found one) to get the needed base address AB37C870.
See:
From this address I could check if it's a TypeInfo address/class and with the offset inside the BaseNode I can get the exact member.
So basically, I'm missing a way to get the current address of a BaseNode. Since I can get the base address of a class by subtracting from the address of a BaseNode the offset of the BaseNode.
@KN4CK3R Is there any way you can add the address to a BaseNode?
I hope everyone understood what I want, I had hard times writing this up :'D
Hi, how to create arrays for primitive datatypes like int32 for example or float or whatever?
I mean I could just put two int32 in row but they must have different names then... or I would have to create a new class with two int32 members which is also crappy.
Lots of processes are omitted when trying to attach to something. Any specific reason for this?
The debugger crashes 90% of steam games because the steamstub hidings threads. Would it be possible to add VEH debugger like CE?
Is there a way to add a function return type? Like when defining a Virtual Table you get a list of functions. On code generator for C++ it all comes out to virtual void FunctionN();
. This does not compile, because it is looking for a definition.
For building a class it would be needing to define it as virtual void FunctionN() { };
, and for a int return type would be virtual int FunctionN() { return -1; };
(-1 just for the sake as placeholder).
The same goes into parameters: users should be able to type in the parameters (even for classes that does not exist in ReClass) so on code generator does not clear all our changes after the C&P to our SDK (think on 100+ classes and they are not always on the same order, so to re-add manually a bunch of virtual methods is kind of damned).
Thanks for the attention.
Recently had an issue where a unicode char accidentally ended up in the title of a class pointer. When attempting to save the program would error: "System.ArgumentException: '�', hexadecimal value 0x1F, is an invalid character."(http://pastebin.com/ALdGLN1m)
Reclass would remain open but with just knowing there was a invalid char somewhere and not where made it difficult to find. (I didn't realize at the time I could unzip the attempted save and see what class it cut off)
Reclass could still generate class files.
Tried filtering out unicode chars during the AddText function, which worked but the char remains in the stream that writes the XML. Leading me to let you know about the issue.
i've tried to attach reclass to an certain game and it crashed, then i debugged and found that it crashes here:
const auto temp = converter{}.from_bytes(src + srcOffset);
at ReclassNET_plugin.hpp line 285
i've only able to fix the problem using the MultiByteToWideChar
API with CP_ACP
option.
here's my fix for now:
unsigned long minSize = ::MultiByteToWideChar(CP_ACP, 0, src, -1, NULL, 0);
::MultiByteToWideChar(CP_ACP, 0, src, -1, ( LPWSTR )dst, minSize);
I am not sure if this is intended or not(and i really hope it isn't) but when you change the type of an address to something bigger than what it was before, for example hex32 -> Vector3 it pushes all the already defined/named offset positions by the size leftover effectively making them all point to the wrong offsets which makes using this kind of cumbersome at times because i have to fix all my offsets over and over again.
In debugger floating registers are missing
Hi, probably many of users who was working on projects with more than 40 classes noticed how annoying is the current selection of custom node types (for example choosing to which class should the node point). At the moment my fullhd screen can handle 45 classes in the tooltip at a time. Scrolling the tooltip almost every time when i want to choose new class is extremally uncomfortable.
Here comes my idea and proof of concept:
So what is basically happening:
Adventages:
Disadventages:
i'm trying to attach to Reclass.Net to a game Called Black Desert i can successfully attach to the game right away after running the process but in 10 secs i lose the ability to scan the memory / Check the modules with 0 Error Message.. i was able to attach the Normal Reclass without any problem as you can see in the attached image that ReClass.NET still attached to the process but i can't view it's modules or run memory scan also tried with the pipe plugin but it's crashing the exe after attaching ( tried attaching to other exe files but crashing also ) and wasn't able to use Handle Hijacking plugin can you tell me exactly how to use it ?
At the moment ReClass.NET (and every ReClass port I know) crashes if you try to build a class like this:
class X
{
X instance;
}
It will overflow while calculating the memory size of this class. A simple check if the target class of the instance is the same as the instance prevents this error. But if you do something like this:
class X
{
Y instance;
}
class Y
{
X instance;
}
Then the check will pass but the overflow will occur again.
We will need a method to check parents and (!) members for conflicts. Because this is only a theoretical problem because you can't find such classes in the wild, I will just leave this issue here for the future.
Todo: Move to .NET Core 3.0 with WinForms support.
This will make Span available for the memory scanner.
===================================
Method not found: 'System.__Canon System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(IntPtr)'. (ReClass.NET)
For help, click: https://github.com/KN4CK3R/ReClass.NET/issues
Program Location:
at ReClassNET.Core.NativeCoreWrapper.GetFunctionDelegate[TDelegate](IntPtr handle, String function)
at ReClassNET.Core.NativeCoreWrapper..ctor(IntPtr handle)
at ReClassNET.Core.InternalCoreFunctions..ctor(IntPtr handle)
at ReClassNET.Core.CoreFunctionsManager..ctor()
at ReClassNET.Program.Main()
The "Get More Plugins" link label (getMoreLinkLabel) doesn't do anything.
Not sure what was your original idea with it (open a URL or just the /Plugins folder) but currently it just does nothing when you click on it.
Thanks.
Currently the NodeDissector can only be used with the "root" class because the MemoryClass only holds the memory of that class. The memory class of nested objects gets created on the fly while drawing them. Maybe extract this process into a different method in order to access it from outside the drawing logic.
Unhandled Exception: System.IO.FileNotFoundException: Failed to load native core functions! Couldnt find at location /home/shiruba/ReClass.NET/ReClass.NET/bin/Debug/x64/NativeCore.so
Compiled and then moved the NativeCore shared object to the directory of the executable and ran it with mono (tried with root as well).
Distro: Kubuntu 18.10
Mono version: 5.18.0.225
Hi,
Thanks again for a program.
I just wanted to ask if it's possible to add LOCK node feature. When you lock node it's offset can't be broken after deleting/inserting bytes before/under it.
Sometimes we don't need to define types in whole structure, just some nodes at start, middle and end of structure.
Also this feature gives us other new awesome feature - we can delete some byte range we don't need (like "hide" in old reclass).
I know, this can be not easy task, just wanted to ask if this is possible.
Thanks you.
Hello :)
I'm having an issue with ReClass on Linux:
When I try to start it I get :
$ sudo mono ReClass.NET.exe
[sudo] password for x:
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: cHRM chunk does not match sRGB
System.ArgumentOutOfRangeException: '0' is not a valid value for 'Value'. 'Value' should be between 'Minimum' and 'Maximum'
Parameter name: Value
at System.Windows.Forms.ScrollBar.set_Value (System.Int32 value) [0x00027] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.ScrollBar.set_Value(int)
at System.Windows.Forms.ScrollableControl.Recalculate (System.Boolean doLayout) [0x00177] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ScrollableControl.AdjustFormScrollbars (System.Boolean displayScrollbars) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ContainerControl.AdjustFormScrollbars (System.Boolean displayScrollbars) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ScrollableControl.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x0000e] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ContainerControl.OnLayout (System.Windows.Forms.LayoutEventArgs e) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.PerformLayout (System.ComponentModel.IComponent affectedComponent, System.String affectedProperty) [0x0004c] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) [0x00019] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control.PerformLayout(System.Windows.Forms.Control,string)
at System.Windows.Forms.Control.set_Visible (System.Boolean value) [0x00018] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control.set_Visible(bool)
at System.Windows.Forms.ScrollProperties.set_Visible (System.Boolean value) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at ReClassNET.UI.MemoryViewControl.OnLoad (System.EventArgs e) [0x0003e] in <6e871db55e124b25b9ed8171cafecdf7>:0
at System.Windows.Forms.UserControl.OnCreateControl () [0x00006] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.CreateControl () [0x00082] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.WmShowWindow (System.Windows.Forms.Message& m) [0x00036] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00214] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ContainerControl.WndProc (System.Windows.Forms.Message& m) [0x00029] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.UserControl.WndProc (System.Windows.Forms.Message& m) [0x00027] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at ReClassNET.UI.ScrollableCustomControl.WndProc (System.Windows.Forms.Message& msg) [0x0005f] in <6e871db55e124b25b9ed8171cafecdf7>:0
at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x0000b] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.NativeWindow.WndProc (System.IntPtr hWnd, System.Windows.Forms.Msg msg, System.IntPtr wParam, System.IntPtr lParam) [0x00085] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
System.ArgumentOutOfRangeException: '0' is not a valid value for 'Value'. 'Value' should be between 'Minimum' and 'Maximum'
Parameter name: Value
at System.Windows.Forms.ScrollBar.set_Value (System.Int32 value) [0x00027] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.ScrollBar.set_Value(int)
at System.Windows.Forms.ScrollableControl.Recalculate (System.Boolean doLayout) [0x00177] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ScrollableControl.AdjustFormScrollbars (System.Boolean displayScrollbars) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ContainerControl.AdjustFormScrollbars (System.Boolean displayScrollbars) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ScrollableControl.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x0000e] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ContainerControl.OnLayout (System.Windows.Forms.LayoutEventArgs e) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.PerformLayout (System.ComponentModel.IComponent affectedComponent, System.String affectedProperty) [0x0004c] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) [0x00019] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x0000e] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00008] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00053] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x0001a] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00008] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00053] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x0001a] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00008] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00053] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x0001a] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Form.OnVisibleChanged (System.EventArgs e) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.WmShowWindow (System.Windows.Forms.Message& m) [0x0010e] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00214] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.ContainerControl.WndProc (System.Windows.Forms.Message& m) [0x00029] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Form.WndProc (System.Windows.Forms.Message& m) [0x00166] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x0000b] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
at System.Windows.Forms.NativeWindow.WndProc (System.IntPtr hWnd, System.Windows.Forms.Msg msg, System.IntPtr wParam, System.IntPtr lParam) [0x00085] in <7bab0583cf6f48a1abb93c02b7fcb973>:0
Can you help me out please ?
Thanks for adding the function node type first off. I've found an issue however, picture Is worth a thousand words:
Good:
http://i.imgur.com/C5Jz0ql.png
Bad:
http://i.imgur.com/EWXBtYS.png
As you can see when adding the new function node type the class fails to generate. It would also be nice if the function node type had an option to generate a method body (just a text box) and had reserved keywords to insert the address of a class into that method body, example:
SomeOtherClass* AFunction()
{ <- Everything In brackets is inside a textbox
SomeOtherClass* pOtherClass = * * (SomeOtherClass*)%SomeOtherClassAddress%
return pOtherClass;
}
in this case %SomeOtherClassAddress% would be replaced by reclass with the address of that class. This would make it easy to write singletons that are updated automatically, as it is now you have to generate the class and write you own singletons which is just a waste of time.
Add a new node type which represents a pointer to native types (int*, float*, Matrix*, ...) not just classes.
Theorectical Problems: ArrayNode, Serialization, Pointer to nothing (void*) ?
What is the recommended build environment for compiling this on linux? A small guide would be appreciated
Since it usually takes a long time loading project file, it's better to add a progress bar instead of "no responding"
Hi,
First of all many thanks for a program.
I found a bug in code with checking virtual method table (VMT), you are reading three times only first pointer of possible function:
https://github.com/ReClassNET/ReClass.NET/blob/master/ReClass.NET/Memory/NodeDissector.cs#L129
In other words "address" should be incremented (by 4 or 8 obviously).
Cheers.
Is there a way to prepend (and append) some text inside the code generator?
Use case: #pragma once
or include guards; including extra Headers and such.
I see a possible way after the Created with ReClass.NET 1.1 by KN4CK3R
comment, but it would be good to be customizable and saved per project.
It would be nice if you could add a class by right clicking in the left panel.
GOOD JOB !
I'm no expert on C# and .NET so maybe I've missed something completely obvious but when I try to open up the forms in this project in design mode (MainForm.cs
for example) I'm greeted by this lovely screen:
This happens for every form I've tried. Any idea why this is happening?
I'm using the latest Visual Studio 2017 and I have the C# for desktop applications packages installed. The project compiles fine.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.