Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch HEMEN TIKLA!
@LunaUI 'ın daha önce paylaşmış olduğu "C++ MoveToDestPosition" kodlarının Python'a çevrilmiş halidir.
Adresler GF için 22.07.2026 tarihi itibariyle günceldir. Güncel adresler için teşekkürler @n9z3
Adresler GF için 22.07.2026 tarihi itibariyle günceldir. Güncel adresler için teşekkürler @n9z3
Python:
import ctypes
import struct
import time
import win32api
import win32process
# ================================================================
# ADRESLER
# ================================================================
PROCESS_NAME = "metin2client.exe"
CPYTHON_CHARACTER_MANAGER = 0x2EACEC0
INSTANCE_OFFSET = 0x14
MOVE_TO_DEST_POSITION = 0x24CEA30
# ================================================================
PROCESS_ALL_ACCESS = 0x1F0FFF
MEM_COMMIT = 0x1000
MEM_RESERVE = 0x2000
MEM_RELEASE = 0x8000
PAGE_EXECUTE_READWRITE = 0x40
class MoveToDest(ctypes.Structure):
_fields_ = [("x", ctypes.c_float),
("y", ctypes.c_float),
("z", ctypes.c_float)]
class RotaTest:
def __init__(self, process_name=PROCESS_NAME):
self.pid = self.get_pid(process_name)
if not self.pid:
print("[-] Process bulunamadi!")
return
self.h_process = ctypes.windll.kernel32.OpenProcess(PROCESS_ALL_ACCESS, False, self.pid)
self.client = self.get_base_address()
print(f"[+] PID: {self.pid}")
print(f"[+] Client (Base): 0x{self.client:08X}")
print(f"[+] CPythonCharacterManager: 0x{self.client + CPYTHON_CHARACTER_MANAGER:08X}")
print(f"[+] MoveToDestPosition: 0x{self.client + MOVE_TO_DEST_POSITION:08X}")
def get_pid(self, name):
for pid in win32process.EnumProcesses():
try:
h = win32api.OpenProcess(PROCESS_ALL_ACCESS, False, pid)
exe = win32process.GetModuleFileNameEx(h, 0)
if name.lower() in exe.lower():
return pid
except:
continue
return None
def get_base_address(self):
modules = win32process.EnumProcessModules(self.h_process)
return modules[0]
def read(self, addr, fmt="<I"):
buf = ctypes.create_string_buffer(struct.calcsize(fmt))
rd = ctypes.c_size_t(0)
ok = ctypes.windll.kernel32.ReadProcessMemory(
self.h_process,
ctypes.c_void_p(addr & 0xFFFFFFFF),
buf,
len(buf),
ctypes.byref(rd)
)
if ok:
return struct.unpack(fmt, buf.raw)[0]
return 0
def get_main_actor_ptr(self):
cpython_mgr_ptr = self.client + CPYTHON_CHARACTER_MANAGER
cpython_mgr = self.read(cpython_mgr_ptr)
print(f"[DEBUG] CPythonCharacterManager: 0x{cpython_mgr:08X}")
if not cpython_mgr:
return 0
instance = self.read(cpython_mgr + INSTANCE_OFFSET)
print(f"[DEBUG] Instance: 0x{instance:08X}")
return instance
def execute_sc(self, sc_template, data=b''):
total = len(sc_template) + len(data)
remote = ctypes.windll.kernel32.VirtualAllocEx(
self.h_process, 0, total,
MEM_COMMIT | MEM_RESERVE,
PAGE_EXECUTE_READWRITE
)
if not remote:
return False
remote_u32 = ctypes.c_uint32(remote).value
sc = sc_template
if data:
data_addr = (remote_u32 + len(sc_template)) & 0xFFFFFFFF
sc = sc_template.replace(b'\xAA\xAA\xAA\xAA', struct.pack('<I', data_addr))
ctypes.windll.kernel32.WriteProcessMemory(self.h_process, remote, sc, len(sc), None)
ctypes.windll.kernel32.WriteProcessMemory(self.h_process, remote + len(sc_template), data, len(data), None)
else:
ctypes.windll.kernel32.WriteProcessMemory(self.h_process, remote, sc, len(sc), None)
ht = ctypes.windll.kernel32.CreateRemoteThread(self.h_process, None, 0, remote, 0, 0, None)
if not ht:
ctypes.windll.kernel32.VirtualFreeEx(self.h_process, remote, 0, MEM_RELEASE)
return False
result = ctypes.windll.kernel32.WaitForSingleObject(ht, 5000)
ctypes.windll.kernel32.CloseHandle(ht)
ctypes.windll.kernel32.VirtualFreeEx(self.h_process, remote, 0, MEM_RELEASE)
return result == 0
def move_to_dest(self, x, y, z):
instance = self.get_main_actor_ptr()
if not instance:
print("[-] Instance bulunamadi!")
return False
fn_addr = self.client + MOVE_TO_DEST_POSITION
print(f"[DEBUG] Fonksiyon: 0x{fn_addr:08X}")
print(f"[DEBUG] Hedef: X={x}, Y={y}, Z={z}")
sc = (
b"\xB9" + struct.pack("<I", instance) +
b"\xB8\xAA\xAA\xAA\xAA" +
b"\x50" +
b"\xB8" + struct.pack("<I", fn_addr) +
b"\xFF\xD0" +
b"\xC3"
)
data = struct.pack("<fff", x, y, z)
return self.execute_sc(sc, data)
def run(self):
print("[+] WalkToFarm baslatildi!")
print("[+] Sabit koordinata gidiliyor...\n")
target = MoveToDest()
target.x = 3.5
target.y = -1.3
target.z = 31.3
while True:
success = self.move_to_dest(target.x, target.y, target.z)
print(f"[+] Sonuc: {'Basarili' if success else 'Basarisiz'}\n")
time.sleep(0.3)
if __name__ == "__main__":
bot = RotaTest()
if bot.pid:
bot.run()
else:
print("[-] Baslatilamadi.")
Ekli dosyalar
Rica ederim yardımım dokunuyorsa sizlere@LunaUI 'ın daha önce paylaşmış olduğu "C++ MoveToDestPosition" kodlarının Python'a çevrilmiş halidir.
Adresler GF için 22.07.2026 tarihi itibariyle günceldir. Güncel adresler için teşekkürler @n9z3
Python:import ctypes import struct import time import win32api import win32process # ================================================================ # ADRESLER # ================================================================ PROCESS_NAME = "metin2client.exe" CPYTHON_CHARACTER_MANAGER = 0x2EACEC0 INSTANCE_OFFSET = 0x14 MOVE_TO_DEST_POSITION = 0x24CEA30 # ================================================================ PROCESS_ALL_ACCESS = 0x1F0FFF MEM_COMMIT = 0x1000 MEM_RESERVE = 0x2000 MEM_RELEASE = 0x8000 PAGE_EXECUTE_READWRITE = 0x40 class MoveToDest(ctypes.Structure): _fields_ = [("x", ctypes.c_float), ("y", ctypes.c_float), ("z", ctypes.c_float)] class RotaTest: def __init__(self, process_name=PROCESS_NAME): self.pid = self.get_pid(process_name) if not self.pid: print("[-] Process bulunamadi!") return self.h_process = ctypes.windll.kernel32.OpenProcess(PROCESS_ALL_ACCESS, False, self.pid) self.client = self.get_base_address() print(f"[+] PID: {self.pid}") print(f"[+] Client (Base): 0x{self.client:08X}") print(f"[+] CPythonCharacterManager: 0x{self.client + CPYTHON_CHARACTER_MANAGER:08X}") print(f"[+] MoveToDestPosition: 0x{self.client + MOVE_TO_DEST_POSITION:08X}") def get_pid(self, name): for pid in win32process.EnumProcesses(): try: h = win32api.OpenProcess(PROCESS_ALL_ACCESS, False, pid) exe = win32process.GetModuleFileNameEx(h, 0) if name.lower() in exe.lower(): return pid except: continue return None def get_base_address(self): modules = win32process.EnumProcessModules(self.h_process) return modules[0] def read(self, addr, fmt="<I"): buf = ctypes.create_string_buffer(struct.calcsize(fmt)) rd = ctypes.c_size_t(0) ok = ctypes.windll.kernel32.ReadProcessMemory( self.h_process, ctypes.c_void_p(addr & 0xFFFFFFFF), buf, len(buf), ctypes.byref(rd) ) if ok: return struct.unpack(fmt, buf.raw)[0] return 0 def get_main_actor_ptr(self): cpython_mgr_ptr = self.client + CPYTHON_CHARACTER_MANAGER cpython_mgr = self.read(cpython_mgr_ptr) print(f"[DEBUG] CPythonCharacterManager: 0x{cpython_mgr:08X}") if not cpython_mgr: return 0 instance = self.read(cpython_mgr + INSTANCE_OFFSET) print(f"[DEBUG] Instance: 0x{instance:08X}") return instance def execute_sc(self, sc_template, data=b''): total = len(sc_template) + len(data) remote = ctypes.windll.kernel32.VirtualAllocEx( self.h_process, 0, total, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE ) if not remote: return False remote_u32 = ctypes.c_uint32(remote).value sc = sc_template if data: data_addr = (remote_u32 + len(sc_template)) & 0xFFFFFFFF sc = sc_template.replace(b'\xAA\xAA\xAA\xAA', struct.pack('<I', data_addr)) ctypes.windll.kernel32.WriteProcessMemory(self.h_process, remote, sc, len(sc), None) ctypes.windll.kernel32.WriteProcessMemory(self.h_process, remote + len(sc_template), data, len(data), None) else: ctypes.windll.kernel32.WriteProcessMemory(self.h_process, remote, sc, len(sc), None) ht = ctypes.windll.kernel32.CreateRemoteThread(self.h_process, None, 0, remote, 0, 0, None) if not ht: ctypes.windll.kernel32.VirtualFreeEx(self.h_process, remote, 0, MEM_RELEASE) return False result = ctypes.windll.kernel32.WaitForSingleObject(ht, 5000) ctypes.windll.kernel32.CloseHandle(ht) ctypes.windll.kernel32.VirtualFreeEx(self.h_process, remote, 0, MEM_RELEASE) return result == 0 def move_to_dest(self, x, y, z): instance = self.get_main_actor_ptr() if not instance: print("[-] Instance bulunamadi!") return False fn_addr = self.client + MOVE_TO_DEST_POSITION print(f"[DEBUG] Fonksiyon: 0x{fn_addr:08X}") print(f"[DEBUG] Hedef: X={x}, Y={y}, Z={z}") sc = ( b"\xB9" + struct.pack("<I", instance) + b"\xB8\xAA\xAA\xAA\xAA" + b"\x50" + b"\xB8" + struct.pack("<I", fn_addr) + b"\xFF\xD0" + b"\xC3" ) data = struct.pack("<fff", x, y, z) return self.execute_sc(sc, data) def run(self): print("[+] WalkToFarm baslatildi!") print("[+] Sabit koordinata gidiliyor...\n") target = MoveToDest() target.x = 3.5 target.y = -1.3 target.z = 31.3 while True: success = self.move_to_dest(target.x, target.y, target.z) print(f"[+] Sonuc: {'Basarili' if success else 'Basarisiz'}\n") time.sleep(0.3) if __name__ == "__main__": bot = RotaTest() if bot.pid: bot.run() else: print("[-] Baslatilamadi.")
TeşekkürlerEline sağlık
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 27
- Görüntüleme
- 1K
- Cevaplar
- 15
- Görüntüleme
- 713
- Cevaplar
- 22
- Görüntüleme
- 4K
- Cevaplar
- 0
- Görüntüleme
- 76
Metin2 Hile İstek
Metin2'de Genel anlamda hile nasıl kodlanır?
- Cevaplar
- 0
- Görüntüleme
- 257
