Cheat Tool Set

Cheat tool set (CTS) is a tool like CE written in #C .NET

Current version: 1.12 Changelog:

Cheat tool set Professional version is available. Requires an account.

Developing the software takes a lot of time. As of May 2019 the software has been developed for about two years without donations.
You can donate using this link:


Memory scanner
Memory viewer / editor (Pro)
Pointer scanner (Pro)
IAT (Import Address Table) tool
Debug viewer (Pro)
Windows debugger: Read, Write. The professional version has instruction execute (Find out what addresses this instruction accessess).
Disassembler (Pro) - Includes built-in signature maker plugin that attempts to generate signatures just like the original IDA sigmaker plugin.
Dump strings tool



What is the difference compared to Cheat Engine (CE)?

- A better signature maker vs AOB scan
- One of a kind memory viewer/editor
- The software has unique functionality that you cannot currently do with other similar programs.
- Debug viewer is a lot more advanced vs CE's pointer scanner memory rescan feature "Value to find"
- Pointer scanner has new functionality such as "Custom pointer path scan" and is more user-friendly
- The main view has "A sequence of values" scan type.
- Currently not as fast because of (4) static threads. The scanning speed is still reasonably fast.
- The core functionality is pretty much the same.
- CE has a lot more advanced debugging features

Memory viewer itself in the tool makes the distinction to the competition.

To cut a long story short: Previously unfound values can be found with the tool. The tool is a work in progress.

The purpose of the program is to enhance the functionality of the CE. That's why the software has only the most important CE equivalent features
and new features that are not available in other similar programs.

To mention one enhanced functionality: Pointer scanner level one scan takes less than five seconds and memory consumption is almost non-existent.







How do I get the tool?

To get the updated version of the software. You must register an account and "order" the software via the system. All this is free of charge.
Once your "order" has been approved, the download will be activated to your account.


The first review: Thanks.


Runs on: Windows 7/10 64-bit
Requires .NET Framework 4.7.2 or newer

The software is a portable application. No installation is required. The software does not modify your computer registry.
The tool supports only x64 (64-bit) processes.
Offsets are mainly entered as hex values.

No personal data is sent upon checking for an update.

When you use the "Include the result if the value has changed ...", you can no longer press the next scan button because the number of times the value has changed
is not saved in the result files.

By default the disassembler disassembles the current and the next function.

"Array of bytes" scan supports the following formats:


83 E0 01
\x83 \xE0 \x01
0x83 0xE0 0x01
8B 8C 82 ? ? ? ? 48 01 D1 FF E1 C6 46 38 01

"Exact value" float scan: "Value to find" is automatically truncated to four decimal places double value. No rounding is done to that value.

Pointer scanner

"Generate a pointer map" feature is almost mandatory for scans larger than a level 3 and 0x0400. You do not have generate a pointer map for a custom path scan.
"The first element of pointer must point to virtual function table" enables "Class pointer rule check". Pros: Those pointers paths are more likely valid after game has been restarted.


Currently only one HWBP (hardware breakpoint) is supported.



Data types

Byte: 0 - 255
2 Bytes: -32768 - 32767
4 Bytes: -2147483648 - 2147483647

If you like the software, you can donate via PayPal

The source code

The source code is not available to maintain the uniqueness of the software. Therefore the executable is heavily obfuscated. This may result in false positives in AV's.

CREDITS: See the about box.

If you find a bug or a logic issue. Always mention which CTS version and briefly describe the issue.
mooreb6672 wrote:
06/21/2018 19:03 - 361 days 5 hours 30 minutes
#44 #44
I don't even know where to begin to learn how to get this working through net code or even how to write it.. you sir are a genius.
Title: Cheat Tool Set v1.01
06/26/2018 15:19 - 356 days 9 hours 14 minutes
#50 #50
Changelog for 1.01:

- Fixed an issue with "A sequence of values" scan with value type "Hex".
- "A sequence of values" scan supports now also the following data types: "Byte" and "2 Bytes"
- "A sequence of values" scan can now find values that are padded by "n" bytes
- Added "2 Byte" alignment in memory viewer
- Added "Browse this address in memory viewer" option in main view
x3noic wrote:
06/28/2018 00:25 - 355 days 0 hours 8 minutes
#52 #52
i get error in w10 x64 when try open this
A visitor wrote:
06/28/2018 01:42 - 354 days 22 hours 51 minutes
#53 #53
#52 Originally posted by x3noic :

Which windows 10 version? I just verified. The software started normally on Windows 10 Pro 1709 x64.

Type "winver" into the Start menu, and press Enter to find out which version.
x3noic wrote:
06/29/2018 00:24 - 354 days 0 hours 10 minutes
#56 #56
A quote. #53 Originally posted by A visitor

#52 Originally posted by x3noic :

Which windows 10 version? I just verified. The software started normally on Windows 10 Pro 1709 x64.

Type "winver" into the Start menu, and press Enter to find out which version.

my w10 version is 17134.112 x64

maybe is this.

06/30/2018 21:46 - 352 days 2 hours 48 minutes
#58 #58
#56 Originally posted by x3noic :

What version it exactly is? Please provide a screenshot of "winver" output.

The fix is simple that I've applied. If that does not fix it for you, I have no idea.

You will have to wait for 1.02.
Title: Cheat Tool Set v1.02
07/02/2018 21:39 - 350 days 2 hours 54 minutes
#69 #69
Changelog for 1.02:

- Synchronize concurrent dictionary entries (in memory results of a current scan) accordingly with main view.

- Fixed a possible crash (unhandled exception) upon starting the software that occurred on some systems:

- Unknown initial value scan supports now also the following data types: "Byte" and "2 Bytes"

- Added an option to narrow down results in main view based on a value times changed count

The last feature requires a little more explanation:

Normally when you scan for a byte value (0 or 1). This scan type is the most difficult due to the fact there are a lot more of results compared to any other scan.

You usually use game mechanics to get values changed according to your preference i.e opening or closing something in the menu.

What if those values are constantly changing between 0,1 or changing between any other byte values and there are several hundred or thousands of results and you can't get the list any smaller?

This is exactly where this feature is coming from. You know the exact count as you're using game mechanics ...

Title: Cheat Tool Set v1.03
07/11/2018 22:45 - 341 days 1 hours 49 minutes
#94 #94
Changelog for 1.03:


Fixed an issue with exact float value scan
Fixed an issue with "Unknown initial value" scan
Fixed an issue with "Decreased value by ..." scan
Fixed an issue with "Increased value by ..." scan

Value finder: Various bug fixes.
Memory viewer: Added 1 Byte alignment

Use interlocked increment in threads instead of a lock.
Title: Cheat Tool Set v1.04
07/24/2018 19:55 - 328 days 4 hours 38 minutes
#110 #110
Changelog for 1.04:


Disable I/O counter for now as it seemed to cause delays in usage update
Fixed an issue with "A sequence of values ..." scan. Produce results according to the scan.

Memory viewer:

Added the following types: Matrix 4x4, Matrix 3x4 and Matrix 3x3
Fixed an issue with switching between types before clearing the type
Added "Browse this address in memory viewer"
Smokahontas wrote:
08/02/2018 23:56 - 319 days 0 hours 38 minutes
#118 #118
Would be amazing if you implement a ultimap-like tool, based in this program ( , (

Cause Ultimap is a shit xD
08/03/2018 17:14 - 318 days 7 hours 20 minutes
#122 #122
A quote. #118 Originally posted by Smokahontas

Would be amazing if you implement a ultimap-like tool, based in this program ( , (

Cause Ultimap is a shit xD

If you just want to get those values, seemed to me a way too complicated method. There are more important features in my list to be implemented.

Implementing debugger related features are the most difficult and time consuming. However my plan is to add CE equivalent VEH debugger (most of it has already been implemented a long time ago) but I haven't wrote a GUI for it yet.

I have improvements in my mind for CE feature "Find out what addresses this instruction accesses" that I need.

PS. What comes to function call count in the video. What for you need that? Are not you more interested about the calling function etc.? CE's "dissect" etc. What IDA does with XREF's and so forth ...
Title: Cheat Tool Set v1.05
08/14/2018 20:28 - 307 days 4 hours 6 minutes
#137 #137
Changelog for 1.05:


"A sequence of values ..." scan for float values can be used like an exact float value scan ie. Value1: 5.6119 Value2: -0.1688

Added the "Smaller than ..." and "Bigger than ..." comparison for "Next scan"

"Change value of the selected address" supports now the same data types as "Memory viewer" editor

Fixed most of the UI lag during a scan

"Exact value" float scan is actually a double value scan allowing you to find values that has more than 7 significant digits. This logic also applies for "A sequence of values ..." float scan.

Pointer scanner:

Load results file accordingly to a stored pointer path (no more extra "0x00"'s in a pointer path)

Fixed an issue with re-scan after loading a results file

Fixed an issue with class pointer rule check

Added an option to load plain text results file (results will be converted to a binary format "RESULTS.PTR" upon loading)

Memory viewer:

Resolve imports is now as an option rather than attempting automatically resolve api names

Truncate float values to double values (four decimal places) by default instead of rounding

Added support for displaying unicode strings. A " L " sequence.

Value finder:

Fixed an issue with class pointer rule check
Title: Just wondering why not make this work with 32bit???
A visitor wrote:
08/19/2018 03:19 - 302 days 21 hours 15 minutes
#140 #140
Would love to try this tool, but most things I want to play around with are 32bit. Is there any particular reason you didn't add comparability. I figure it makes things much harder, but just wondering (as a future coder)

Either way, glad I found this. Will keep this in mind for whenever I do plan on hacking away at a 64bit app.

Great work

08/19/2018 20:56 - 302 days 3 hours 38 minutes
#144 #144
#140 Originally posted by A visitor :

It's 2018 ... Are not major games only x64? I never designed the tool for both. After thinking about this. It would be simpler to write a separate version that is x32 only.

However I've no time for that. Unless someone hire me for that. I won't be bothering with anything less than $2499 for that version. Otherwise it is very unlikely to happen that I come with a version that supports 32-bit processes.

There are various features to be added and fixes to be done in the current x64 version. I add each features/fix in an order I need most.

Adding support for 32-bit processes in the current version would just make the software a way too complicated and even more prone to bugs.

I try to provide as soon as possible the source code of the software as a commercial source.

I never realized until now that coding a software like this is a full day job. What I mean by this? A software like this is not an ordinary software that is easy to code.

It requires experience from reverse engineering community. I say this so you know that adding a support for 32-bit processes does not happen by snapping a fingers especially when the software was never designed this way.

Title: Cheat Tool Set v1.06
08/24/2018 16:47 - 297 days 7 hours 47 minutes
#147 #147

Added "Array of bytes" scan

Pointer scanner:

Pointer map generation is significantly faster than in any prior release
Fixed issues when "Generate a pointer map" was enabled
Results are sortable by a column

Value finder:

The maximum offset can be bigger than 0x7FFF
Fixed an issue with re-scan

Memory viewer:

Execute "Add" on a background thread to avoid UI thread "Stopped from responding" when adding a 102400 bytes
Title: lack......
A visitor wrote:
09/10/2018 16:34 - 280 days 7 hours 59 minutes
#160 #160
Three things,

the first: Manual

Second: Spanish language translator please

Third: I congratulate you, it's a great job.
09/27/2018 10:27 - 263 days 14 hours 7 minutes
#181 #181
A quote. #160 Originally posted by A visitor

Three things,

the first: Manual

Second: Spanish language translator please

Third: I congratulate you, it's a great job.

The source code of the software is available for purchase. You can translate it yourself. I only maintain english version of the software.
Title: Cheat Tool Set v1.07
09/27/2018 10:33 - 263 days 14 hours 1 minutes
#182 #182

Fixed a 'NullReferenceException' upon finishing a "A sequence of values ..." scan
Fixed an issue in "A sequence of values ..." float scan when (3) values were entered
Fixed an issue with "A sequence of values ..." scan
Fixed an issue with "Unknown initial value" scan "Next scan button" after first scan was completed

Added windows debugger. "Find out what accesses this address" and "Find out what writes to this address"

Pointer scanner:

Added "Keep pointer map in memory" feature for faster subsequent scans
Added a re-scan feature: "Dereference pointer paths continuously"
Fixed an issue while tranforming pointer paths smaller than the maximum level
Fixed an issue with loading plain text result file
Fixed an issue with "The smallest pointer path" after completing a re-scan
Fixed a problem with loading the results file when a pointer map was generated

Memory viewer:

Fixed an unhandled exception 'Cannot access a disposed object.' This should fix also occasional "Cheat Tool Set has stopped from responding" issue

Value Finder:

Use concurrent dictionary instead of a list to avoid "InvalidOperationException" exception while updating the list.

Synchronize concurrent dictionary entries (in memory results of a current scan) accordingly with a view.

Source code:

Various code cleanups and added more documentation.
Title: Cheat Tool Set v1.08
10/15/2018 19:10 - 245 days 5 hours 23 minutes
#212 #212

"First scan" has been optimized a bit and is at least two times faster than in any prior release
"Next scan" has been optimized and is considerably faster than in any prior release

"Unknown initial value" scan: Added an option to dump process memory to file instead of using an in memory copy

"Unknown initial value" scan: Added "Smaller than ..." and "Bigger than ..." comparison
Renamed "Value finder" to "Debug viewer" as it is more appropriate name
Restored I/O stats (seems to work reliably now)

The cancel button should work now


Resolve prior assembly instruction more reliably

Added 'Replace with code that does nothing (NOP)'
Added 'Restore the original instruction' for your convenience
Fixed an issue that prevented some instructions from appearing in the list
Attempt to show also "register + offset" value in the output

Debug viewer:

Fixed an issue with "String value" scan that prevented results from appearing in the list
Added unicode string support

Minor other bug fixes
Title: Cheat Tool Set v1.09
11/05/2018 14:26 - 224 days 9 hours 8 minutes
#252 #252
The main view:

Added INI settings file
Added general settings to the edit menu
Added general setting "Remember window positions" and an option to save current positions with a click of a button
Added general setting "Check for update at program startup". The default is to check for update.
Added general setting "Minimize console upon starting the software".

Added "String" scan including Unicode (UTF-16) string support
Added "Pointer scan for this address"

"Unknown initial value" scan has been optimized. "First scan" and "Next scan" is considerably faster than in any prior version.
"A sequence of values" scan has been optimized. It is about 3 times faster than in any prior version.
Added 8 Bytes support for "A sequence of values ..." scan

Added an option to add address manually to the list


Resolve prior assembly instruction correctly.

Memory viewer:

Added "Scan for pointers for this address"
Added "Scan for pointers for pointer value"
01/14/2019 01:25 - 154 days 22 hours 9 minutes
#508 #508
I've taken the download off for now ...
teknically wrote:
01/19/2019 18:32 - 149 days 5 hours 2 minutes
#532 #532
When will the tool be back
Title: Cheat Tool Set v1.10
02/07/2019 11:37 - 130 days 11 hours 57 minutes
#582 #582
Added "Dump strings" tool

The main view:

Added support for double value scans
Addressess can now be sorted by a column
Fixed an issue when adding a 8 bytes value manually
Fixed an issue when removing manually added addresses

Memory viewer:

Fixed an issue with the "Clear type" for the following types: Vector2, Vector3 and Vector4
Display possible double values when alignment is 8 bytes
Added an option to restore the original value

Added a disassembler. "Disassemble this memory region"

Pointer scanner:

Fixed an issue when "Include pointers that point to my module" was enabled

Debug viewer:

Added "Unknown initial value" scan
Removed string scan type
Added support for hex values

Rescan can now scan for: Increased value, Increased value by, Decreased value, Decreased value by, Changed value, Unchanged value, Smaller than, Bigger than


Some of the features are only available in the professional version, which will be available later. Professional version requires registration.
Title: Cheat Tool Set v1.11
03/06/2019 22:00 - 103 days 1 hours 33 minutes
#630 #630
Memory editor: Added "Modify the value as double value"
Debug viewer: Added support for double value scans

Debugger: Fixed an issue with GUI when items are added to list

Settings: Added "Use this directory for result files"

Dump strings:

Remove new line characters from a string
Added "Match case".


The professional version will soon be available under a different name. It's free but requires registration.
Title: Cheat Tool Set v1.12 Professional
04/28/2019 13:48 - 50 days 10 hours 46 minutes
#714 #714

The main view:

Allow a wildcard byte "?" in "Array of bytes" scan. (Applies also to the free version)
Added a mini disassembler
Process list: Verify that the current process has rights to open a process before listing it

Memory viewer:

Added "Disassemble from this address"
Added "Round values". By default the values are truncated to a 4 decimal places without rounding
Added "Virtual function table (vtable)" support

Added "Copy hex value". This works when the mode is "Disassembly" or when the type has been defined as Virtual function table (vtable)

Added the signature maker in the disassembler
Minor bug fixes

The professional version is available but requires registration.
x3noic wrote:
05/01/2019 02:23 - 47 days 22 hours 10 minutes
#717 #717
the debug function is detected when is used in bfv?
05/02/2019 18:10 - 46 days 6 hours 24 minutes
#721 #721 This thread is for CTS support. Please keep questions related to the software.

Post a comment

Registered users do not have to enter captcha. A line in the code tag is currently limited to maxium of 160 characters.
Posting guidelines: You may not post any personal information. If you report a crash or any other issue: Always mention which Overlay Hack version and operating system and briefly describe the issue. Any support request post that does not include this information will be removed as spam without a reply.
Tags You may use the following tags: [QUOTE] [/QUOTE] [B] [/B] [URL] [/URL] [CODE] [/CODE]
Captcha Please enter the text you see (case insensitive). The listed characters must be entered clockwise starting from twelve o'clock.
Comments are moderated Y