jesseemond / cheat-and-gin Goto Github PK
View Code? Open in Web Editor NEWC++ cheat engine (memory scanner)
C++ cheat engine (memory scanner)
Should be done after #24 to have cleaner tests.
Create a test program that exits when a certain variable reaches a certain value, interact with the CheatEngine to attach to that program and change the value to the desired one.
Would probably need unit tests for the cin/cout interaction before doing that though.
Need to properly test on windows as I fully expect to break it through refactoring without Windows CI running.
and update docs
And add images on the README.
The choice menu:
1 - byte(1)
2 - word(2)
3 - dword(4)
4 - qword(8)
5 - float(4)
6 - double(8)
is a bit confusing with numbers. Might be better with A
, B
, C
, ...
Should also update documentation.
Page where the value is doesn't fit the current criteria? What is going on here?
We should verify that a write
does not cross a page's boundary with the provided new value
size. We are currently okay because our values are fixed size, but it would be better to check that when the user enters a new value.
Is it difficult to realize this idea?
Might be the cause for some values that are not found while testing in Minecraft.
Solution: store the bytesRead
and only work with that (updating the memory block).
Not obvious what we're supposed to enter here. y/n
? 1/0
?
Would be nice to have [Y]/n
(default option).
& update docs
Could be interesting to add the "string" value type to search. Would read an std::string and search for the sequence of characters (excluding the null terminator).
Instead of only the # of memory pages
& update docs
& update docs
I think it would be cleaner if we had a class that takes care of holding the "state" of the cheat. This way, we could refactor CheatEngine to be relatively stateless:
auto matches = engine.search(value);
// ...
matches = engine.narrowDown(value, matches);
Many cases where we just use std::cerr and exit(1). It would be better to bubble up via custom exceptions in these cases. Let the main application take care of the error messages.
Happened when trying it with Minecraft. Doesn't look like it's easily reproduce-able. Finding out what the error is would be the first step... Next, it might be good to understand the conditions that lead to the crash and make a program that reproduces it.
memory pag(es)
should be memory page(s)
.
& update docs
Test the string search there.
just some a basic UTs setup for now:
See CheatEngine.cpp
and point to it from main README
Hello Jesse,
First of all, thank you for sharing your work with us.
I am having trouble with something in helper.h file ; in 44 line that is
template
using Reader = std::function<std::istream&(std::istream&, T&)>;
while (!read(std::cin, t) || !validate(t))
I understood that t
is loaded by user input via console in Reader function, however i want to bind t with string via programmatically like t= Soccer
... How can I do that? Thank you for your help...
How about a polymorphic ValueType
class? It would make the implementation of #4 easier and less distinct from the normal integer types.
First, common code that goes through a chunk of memory and searches for a specific value should be refactored to be reused on windows/linux.
Second, it would be much cleaner to have a vector of bytes for the chunk of memory and std::search with a vector of bytes representing the value.
Hello Jesse,
First of all, thank you for sharing your work with us.
I just wanted to know that where did you do implementation of pure virtual functions like readPage(), getChetablePages() etc.
Give build instructions for premake.
We should be able to search for this is a test
. The problem here is that we are asking the std::string
via std::cin >>
. We should use getline
for a String
ValueType
.
i doing my own cheat engine scanner i do the first scan but i do not know how can i get unknown value,
i tried to get all values for ex 8 bit
value in all regoins but it take along time in cheat engine it did not take 1 second
so what is the idea of unknown value ??
Will isolate the communication with the OS and will allow to easily test the app logic through mocking.
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.