在c#程序进程中查找定时器
本文关键字:查找 定时器 进程 程序 | 更新日期: 2023-09-27 17:52:52
我一直在使用作弊引擎读取程序的内存。我找到了计时器,但我无法将其转换为可读时间。这是在4字节,任何其他我尝试给我乱码。
1509949440 = 9:00
2030043136 = 12:06
16777215 = 0:00
2868903936 = 17:12
2801795072 = 16:42
我可以用c#中的任何方程或函数将这些长数字转换回分:秒格式?这与编程语言无关。这就是数学。让我们将列表按顺序排列,并以十六进制数字显示数字,所有内容都应该很明显:
Time Decimal Hex
---------------------------------
00:00 16777215 00FF FFFF
09:00 1509949440 5A00 0000
12:06 2030043136 7900 0000
16:42 2801795072 A700 0000
17:12 2868903936 AB00 0000
以下是一些不同之处:
From To Time Diff Hex Diff Hex Diff / Minute
-------------------------------------------------------------
17:12 16:42 0:30 400 0000 22 2222
12:06 09:00 3:06 1F00 0000 2A AAAA
09:00 00:00 9:00 5900 0001 2A 314D
17:12 09:00 8:12 5100 0000 2A 2576
从这些数字可以看出,每分钟的差值是抖动的。这可以用这样一个事实来解释,即数字在内部具有更高的分辨率(在内存中看到的),而不是在UI中看到的(时间戳)。
所以也许只是玩一点,并应用一些值到内存,看看你的期望是否匹配(例如1677721600应该匹配大约10:00的时间)。
在猜了很多次之后,我找到了答案…
uint oddTimer = 1509949440;
double trueTimer = (oddTimer / 256^3) * 0.1;
return (uint)Math.Ceiling((double)trueTimer);
返回9:00
编辑:此外,当从内存中拉oddTimer时,我必须记住将其设置为一个长,因为给定的数字数量可以打破正常的int32。