Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Issue with ultimap2 Usage

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
lcineyes
Newbie cheater
Reputation: 0

Joined: 19 May 2025
Posts: 11

PostPosted: Fri Aug 15, 2025 7:42 am    Post subject: Issue with ultimap2 Usage Reply with quote

1.​​DBVM Mode Stability Issue​​

When using DBVM mode instead of IPT mode, the system consistently experiences Blue Screens of Death (BSOD).

2. ​​IPT Mode Limitation​​

The current IPT (Intel Processor Trace) implementation cannot properly handle self-modifying code. Are there more robust alternative solutions available?
Back to top
View user's profile Send private message
AylinCE
Grandmaster Cheater Supreme
Reputation: 37

Joined: 16 Feb 2017
Posts: 1515

PostPosted: Fri Aug 15, 2025 11:36 am    Post subject: Reply with quote

General Description: Problems and some solutions.

DBVM Mode Stability Issue (BSOD) Solution:

DBVM (Direct-Bypass Virtual Machine) mode is a virtual machine technology used in Cheat Engine to provide deeper access to the Windows kernel level. However, this mode can lead to blue screen errors (BSOD) due to system hardware, BIOS settings, and especially Windows updates.
This issue can usually be resolved in the following ways:

Virtual Machine (VT-x/SVM) Settings:

Ensure that virtualization technologies such as Intel VT-x (for Intel processors) or AMD SVM (for AMD processors) are enabled in your BIOS. These settings are required for DBVM to function properly.

Hyper-V and Other Virtualization Services:

Windows' own Hyper-V or other virtual machine software such as VMware or VirtualBox can conflict with DBVM. Ensure that Hyper-V and similar virtualization services are disabled in Windows settings.

Operating System Version:

Cheat Engine is known to experience stability issues with newer Windows versions (e.g., some versions of Windows 11). If this issue persists on your current Windows version, you may want to consider using an older, more stable Windows version.

Driver Issues:

DBVM can cause errors when loading kernel drivers.
In this case, it's important to run Cheat Engine as an administrator or ensure your antivirus program isn't blocking this driver.

IPT Mode Limitation (Self-Modifying Code) Solutions:

IPT (Intel Processor Trace) mode is a hardware-based solution used to trace code execution.

However, it may not be able to accurately track self-modifying code, that is, code that modifies its own commands at runtime.

This is particularly useful for some modern anti-cheat systems and makes tracing difficult. Alternative solutions that can be used to overcome this limitation include:

DBVM (Direct-Bypass Virtual Machine):

DBVM mode can overcome this problem by providing deeper debugging capabilities within the virtual machine environment.
Unlike IPT's hardware-based monitoring mechanism, DBVM captures code at the virtual machine level, which can better manage changes to self-modifying code.
Therefore, if DBVM can be run more stably, it is a better alternative to IPT.

VMM-Based Solutions:

The most effective method for capturing self-modifying code is the more advanced Virtual Machine Monitor (VMM)-based approaches.

These technologies can monitor and manipulate any code changes and execution flow at the lowest level by running the operating system in a virtual environment.

Software Debugging:

Traditional software debugging techniques, such as single-stepping the code and setting breakpoints, can also be used.
These methods allow you to precisely control the flow of execution and help you identify when and how the code changes.

Code Injection:

Once you identify the point at which the problematic code was changed, you can disable the original code or modify its behavior by injecting your own code.

This is a more indirect but effective way to directly address the problem.

_________________
Hi Hitler Different Trainer forms for you!
https://forum.cheatengine.org/viewtopic.php?t=619279
Enthusiastic people: Always one step ahead
Do not underestimate me Master: You were a beginner in the past
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
lcineyes
Newbie cheater
Reputation: 0

Joined: 19 May 2025
Posts: 11

PostPosted: Sun Aug 17, 2025 7:35 pm    Post subject: Reply with quote

1.System: Windows 10

2.dbk64.sys loaded normally

3.DBVM loaded normally

4.Most functions using DBVM are working properly

5.Hyper-V has been disabled. Hyper-V prohibits nested virtualization; if not disabled, DBVM loading cannot be completed.

6.For the Direct-Bypass Virtual Machine approach, which code and corresponding functionality is involved? Is it ultimap1 or ultimap2? I've read a lot of CE's code but haven't found any DBVM-level self-modifying code traces.
Back to top
View user's profile Send private message
AylinCE
Grandmaster Cheater Supreme
Reputation: 37

Joined: 16 Feb 2017
Posts: 1515

PostPosted: Sun Sep 07, 2025 12:44 am    Post subject: Reply with quote

Great question.
DBVM (Direct-Bypass Virtual Machine) is a critical technology in Cheat Engine, and the depth of this topic often remains complex for most users.

In summary, the functionality you're describing doesn't appear directly as a trace of self-modifying code.
This is because this functionality is specific to ultimap2, and it's implemented as a memory management tactic at the virtualization layer rather than a fundamental code modification.

The key difference between ultimap1 and ultimap2 is as follows:

ultimap1: This method hides the virtualization artifact by copying pages.
However, changes made to one page don't affect the other; therefore, the "Direct-Bypass" feature isn't fully achieved.

ultimap2: This forces the virtual machine and the host operating system to use the same physical memory pages.
This allows memory writes and reads to pass directly through the virtual machine layer in real time.
Therefore, any memory changes made under the DBVM are immediately visible to the host operating system.
This is why searching for a "self-modifying code" trace is futile, as the operation is performed through a kernel-level virtualization trick, not a change in the code itself.

Therefore, this functionality is associated with ultimap2 and is primarily enabled by the EMULATE_VIRTUAL_MACHINE command.
You can find the code traces within the DBVM kernel module that controls how physical memory pages are shared by the virtual machine.

I hope this clarifies the issue. Feel free to ask any further questions.

_________________
Hi Hitler Different Trainer forms for you!
https://forum.cheatengine.org/viewtopic.php?t=619279
Enthusiastic people: Always one step ahead
Do not underestimate me Master: You were a beginner in the past
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Dark Byte
Site Admin
Reputation: 470

Joined: 09 May 2003
Posts: 25777
Location: The netherlands

PostPosted: Sun Sep 07, 2025 3:45 am    Post subject: Reply with quote

nope
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
AylinCE
Grandmaster Cheater Supreme
Reputation: 37

Joined: 16 Feb 2017
Posts: 1515

PostPosted: Sun Sep 07, 2025 5:43 am    Post subject: Reply with quote

Dark Byte wrote:
nope


Hi DB,

I'm one of the users who tried to answer the question about DBVM. I saw your "no" and would like to ask why, so I can better understand the topic.

My initial thought was that the "Direct-Bypass" functionality is specific to ultimap2 because it uses the same physical memory pages for both the host OS and the VM. This, in my view, bypasses the need for self-modifying code by manipulating memory at the kernel level.

Is the reason for your "no" that the core functionality isn't related to the ultimap approaches at all, or perhaps that the term "Direct-Bypass" is not the correct one to use for ultimap2's core function?

I'm trying to figure out if my fundamental understanding is flawed or if I'm just using the wrong terminology.

Thanks for your time.

_________________
Hi Hitler Different Trainer forms for you!
https://forum.cheatengine.org/viewtopic.php?t=619279
Enthusiastic people: Always one step ahead
Do not underestimate me Master: You were a beginner in the past
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Dark Byte
Site Admin
Reputation: 470

Joined: 09 May 2003
Posts: 25777
Location: The netherlands

PostPosted: Sun Sep 07, 2025 8:58 am    Post subject: Reply with quote

ultimap2 doesn't need dbvm to function.(except if you use one specific function most people don't) It only uses IPT but unlike the windows variant it is capable of suspending the target process when the buffer is full. But make sure not to run the latest windows versions as those have closed off interrupt handlers

Self modifying code isn't possible with IPT as the log only states if a branch was taken or not taken. There's no indication of how many instructions inbetween so if it got changed since last disassembly it won't know where the instruction pointer is

If you encounter such a thing the break and trace option is better suited, though if you're in kernelmode and have to rely on dbvm.break and trace you won't see the instructions as there the read is delayed till after retrieving the log

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
AylinCE
Grandmaster Cheater Supreme
Reputation: 37

Joined: 16 Feb 2017
Posts: 1515

PostPosted: Sun Sep 07, 2025 9:09 am    Post subject: Reply with quote

As I understand it, ultimap2's core functionality utilizes Intel Processor Trace (IPT) technology, largely without relying on the DBVM.
And most importantly, what's called "Direct-Bypass" has nothing to do with "self-modifying code."
It's more about monitoring memory accesses and controlling interrupts.
This explains exactly why my search for a "self-modifying code" trace failed.

Your point out that the break and trace option is more suitable than ultimap2's is also very valuable.
Your explanation of how this functionality works, even in kernel mode, further demonstrates the complexity of this technology.

Thanks for the reply. I think I've been overly superficial. Shocked

_________________
Hi Hitler Different Trainer forms for you!
https://forum.cheatengine.org/viewtopic.php?t=619279
Enthusiastic people: Always one step ahead
Do not underestimate me Master: You were a beginner in the past
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
lcineyes
Newbie cheater
Reputation: 0

Joined: 19 May 2025
Posts: 11

PostPosted: Tue Sep 09, 2025 8:30 pm    Post subject: Reply with quote

I previously considered a more complex solution based on EPT (Extended Page Tables), which involves recording executed pages. Once a page that has been executed is modified, it is flagged. The next time that page is executed, the new version of the page is snapshotted. Finally, by combining this with TSC (Time Stamp Counter) records from Intel PT (Processor Tracing), synchronization could be achieved.
However, I feel this would require a significant amount of engineering effort. Additionally, I am currently learning how to use Bochs to debug DBVM (Database Virtual Machine). It would be great if I had a JTAG debugger
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites