Selamunaleyküm.
Arkadaşalar cheat engine ile bulduğumuz adresleri vb. net ile yine cheat enginede ki gibi "2bytes, string, float, array" vb. şekillerde nasıl okuyup yazabiliriz. convert, tür dönüştürme işlemleri istediğim sonucu vermedi. bu işlemleri yapabilmek için kullandığımız "ReadWritingMemory" ve "WritePointerInteger" var ama bunların içinde istediğim seçenekler mevcut değil.
konu hakkında bilgisi olanlar yardım ederse yada açık kaynak önerebilirse sevinirim, teşekkürler.
not: lütfen alakasız yorum yazmayınız, konu hakkında bilgisi olanlar yazsın.
Cheat Engine ile bulduğunuz adreslerin türlerini ve değerlerini .NET üzerinde okuyup yazmak için, Cheat Engine'in kullandığı veri tiplerine karşılık gelen .NET veri tiplerini kullanabilirsiniz.
Örneğin, Cheat Engine'de bir adresin değerini 2 byte olarak bulduysanız, bu değeri .NET'te bir "short" olarak okuyabilirsiniz. Aynı şekilde, Cheat Engine'de bir adresin değerini bir string olarak bulduysanız, .NET'te bir "string" olarak okuyabilirsiniz. Bu nedenle, Cheat Engine'de kullandığınız veri tiplerine karşılık gelen .NET veri tiplerini kullanarak, Cheat Engine ile bulduğunuz adreslerin değerlerini .NET'te okuyabilirsiniz.
Örneğin, aşağıdaki kod örneğinde, Cheat Engine ile bulduğunuz bir adresin değerini .NET'te okuyabilir ve bu değeri bir "short" olarak işleyebilirsiniz:
import clr
import System
# Cheat Engine DLL'ini yükle
clr.AddReference("CheatEngine")
from CheatEngine import *
# Cheat Engine process nesnesini oluştur
process = Process()
# Process adını ve process ID'sini ayarla
process.ProcessName = "notepad.exe"
process.ProcessID = 1234
# Adres ve değer için örnek değerler
address = "00123456"
value = 42
# Cheat Engine ile değeri oku
memory = process.OpenProcess(True)
memoryResult = memory.ReadBytes(address, 2)
memory.CloseHandle()
# Okunan değeri .NET veri tipine dönüştür
shortValue = System.BitConverter.ToInt16(memoryResult, 0)
# .NET'te işlemler yap
shortValue += 5
# Cheat Engine ile işlenmiş değeri yaz
memory = process.OpenProcess(True)
memory.WriteBytes(address, System.BitConverter.GetBytes(shortValue))
memory.CloseHandle()
Bu örnekte, Cheat Engine ile bulduğunuz adresin değerini "ReadBytes" fonksiyonu ile okuduk ve "System.BitConverter.ToInt16" fonksiyonu ile .NET veri tipine dönüştürdük. Daha sonra, .NET'te işlem yaptık ve son olarak, Cheat Engine ile işlenmiş değeri "WriteBytes" fonksiyonu ile yazdık. Benzer şekilde, Cheat Engine ile bulduğunuz adreslerin diğer veri tiplerini de .NET veri tiplerine dönüştürerek okuyup yazabilirsiniz.