- Katılım
- 12 Kas 2024
- Konular
- 1
- Mesajlar
- 15
- Online süresi
- 1d 13h
- Reaksiyon Skoru
- 2
- Altın Konu
- 0
- TM Yaşı
- 1 Yıl 6 Ay 25 Gün
- Başarım Puanı
- 18
- MmoLira
- 1,544
- DevLira
- 0
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
emmidayı25 dıscort eklermisini yardımcı olurmunuz. çok memnun olurumTarget damage ile birebir aynı sistem tek farkı belirlenen alan içerisindeki tüm moblara saldırı gönderiyoruz.
Python:import frida import pymem import time import math from typing import List, Tuple PLAYER_BASE_PTR = 0x01A4E104 PLAYER_BASE_OFF = 0x14 PLAYER_X_OFF = 0x69C PLAYER_Y_OFF = 0x6A0 MOB_BASE_PTR = 0x1A4E378 MOB_VID_OFF = 0x79C MOB_X_OFF = 0x69C MOB_Y_OFF = 0x6A0 ATTACK_RANGE = 1000 ATTACK_DELAY = 0.1 #Milisaniye class WaitDamage: def __init__(self): self.pm = pymem.Pymem("metin2client.bin") self.base_address = pymem.process.module_from_name(self.pm.process_handle, "metin2client.bin").lpBaseOfDll print(f"[+] Base address: {hex(self.base_address)}") self.session = frida.attach("metin2client.bin") self.script = None self.running = True def read_player_position(self) -> Tuple[float, float]: try: player_base = self.pm.read_int(self.base_address + PLAYER_BASE_PTR) if player_base == 0: return 0, 0 player_ptr = self.pm.read_int(player_base + PLAYER_BASE_OFF) if player_ptr == 0: return 0, 0 player_x = self.pm.read_float(player_ptr + PLAYER_X_OFF) player_y = self.pm.read_float(player_ptr + PLAYER_Y_OFF) return player_x, player_y except Exception as e: print(f"Player konum alınamıyor: {e}") return 0, 0 def get_mob_list(self) -> List[Tuple[int, float, float]]: mobs = [] try: mob_base = self.pm.read_int(self.base_address + MOB_BASE_PTR) if mob_base == 0: return mobs offset = 0 for i in range(300): try: mob_ptr = self.pm.read_int(mob_base + offset) if mob_ptr == 0: break mob_vid = self.pm.read_int(mob_ptr + MOB_VID_OFF) if mob_vid <= 0: offset += 4 continue mob_x = self.pm.read_float(mob_ptr + MOB_X_OFF) mob_y = self.pm.read_float(mob_ptr + MOB_Y_OFF) mobs.append((mob_vid, mob_x, mob_y)) except Exception: offset += 4 continue offset += 4 except Exception as e: print(f"Moblar alınamıyor: {e}") return mobs def is_in_range(self, x1: float, y1: float, x2: float, y2: float) -> bool: distance = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2) return distance <= ATTACK_RANGE def setup_frida_script(self): script_code = """ const BATTLE_CALL_ADDRESS = ptr(0x004BD660); //Send battle attack MOV const NET_POINTER_ADDRESS = ptr(0x01E4E114); //Send battle attack CALL function sendBattleAttack(targetId) { if (targetId <= 0) return false; try { var codeSize = 64; var codePtr = Memory.alloc(codeSize); var netPointer = Memory.readPointer(NET_POINTER_ADDRESS); if (netPointer.isNull()) return false; Memory.patchCode(codePtr, codeSize, function(code) { var writer = new X86Writer(code); writer.putMovRegAddress('ecx', netPointer); writer.putPushU32(targetId); writer.putPushU32(0); writer.putCallAddress(BATTLE_CALL_ADDRESS); writer.putRet(); writer.flush(); }); var execFunc = new NativeFunction(codePtr, 'void', []); execFunc(); return true; } catch (e) { return false; } } rpc.exports = { attack: function(targetId) { return sendBattleAttack(targetId); } }; """ self.script = self.session.create_script(script_code) self.script.load() def run(self): self.setup_frida_script() print("[+] Wait damage başladı") try: while self.running: player_x, player_y = self.read_player_position() if player_x == 0 and player_y == 0: print("[!] Player konumu alınamıyor") time.sleep(1) continue mobs = self.get_mob_list() if not mobs: time.sleep(0.1) continue in_range_mobs = [ mob for mob in mobs if self.is_in_range(player_x, player_y, mob[1], mob[2]) ] for mob_vid, _, _ in in_range_mobs: try: self.script.exports.attack(mob_vid) except Exception as e: print(f"Hata: {mob_vid}: {e}") time.sleep(ATTACK_DELAY) except KeyboardInterrupt: print("\n[*] Program durduruluyor") finally: self.cleanup() def cleanup(self): if self.script: self.script.unload() if self.session: self.session.detach() print("[+] Bağlantı koparıldı") if __name__ == "__main__": attacker = WaitDamage() attacker.run()
ATTACK_RANGE = 1000 -> bu kısmı yükseltirseniz otomatik pelerin çeken sistem olur.
- Katılım
- 21 Eyl 2010
- Konular
- 142
- Mesajlar
- 1,589
- Çözüm
- 47
- Online süresi
- 2mo 8d
- Reaksiyon Skoru
- 628
- Altın Konu
- 34
- Başarım Puanı
- 248
- MmoLira
- 28,050
- DevLira
- 102
Paylaşım için teşekkürler.
- Katılım
- 24 May 2011
- Konular
- 58
- Mesajlar
- 260
- Çözüm
- 4
- Online süresi
- 2mo 7h
- Reaksiyon Skoru
- 57
- Altın Konu
- 0
- TM Yaşı
- 15 Yıl 16 Gün
- Başarım Puanı
- 135
- MmoLira
- 7,757
- DevLira
- 6
Bunu nasıl kullanacağız. Ayrıntılı Bilgi verir misiniz
- Katılım
- 16 Nis 2019
- Konular
- 0
- Mesajlar
- 7
- Online süresi
- 7d 11h
- Reaksiyon Skoru
- 0
- Altın Konu
- 0
- TM Yaşı
- 7 Yıl 1 Ay 23 Gün
- Başarım Puanı
- 57
- MmoLira
- 1,948
- DevLira
- 0
me enseñarías a como encontrar las direcciones gracias
- Katılım
- 30 Eki 2022
- Konular
- 20
- Mesajlar
- 215
- Online süresi
- 15d 15h
- Reaksiyon Skoru
- 56
- Altın Konu
- 0
- TM Yaşı
- 3 Yıl 7 Ay 9 Gün
- Başarım Puanı
- 75
- Yaş
- 32
- MmoLira
- 2,698
- DevLira
- 0
hocam bir vi
Target damage ile birebir aynı sistem tek farkı belirlenen alan içerisindeki tüm moblara saldırı gönderiyoruz.
Python:import frida import pymem import time import math from typing import List, Tuple PLAYER_BASE_PTR = 0x01A4E104 PLAYER_BASE_OFF = 0x14 PLAYER_X_OFF = 0x69C PLAYER_Y_OFF = 0x6A0 MOB_BASE_PTR = 0x1A4E378 MOB_VID_OFF = 0x79C MOB_X_OFF = 0x69C MOB_Y_OFF = 0x6A0 ATTACK_RANGE = 1000 ATTACK_DELAY = 0.1 #Milisaniye class WaitDamage: def __init__(self): self.pm = pymem.Pymem("metin2client.bin") self.base_address = pymem.process.module_from_name(self.pm.process_handle, "metin2client.bin").lpBaseOfDll print(f"[+] Base address: {hex(self.base_address)}") self.session = frida.attach("metin2client.bin") self.script = None self.running = True def read_player_position(self) -> Tuple[float, float]: try: player_base = self.pm.read_int(self.base_address + PLAYER_BASE_PTR) if player_base == 0: return 0, 0 player_ptr = self.pm.read_int(player_base + PLAYER_BASE_OFF) if player_ptr == 0: return 0, 0 player_x = self.pm.read_float(player_ptr + PLAYER_X_OFF) player_y = self.pm.read_float(player_ptr + PLAYER_Y_OFF) return player_x, player_y except Exception as e: print(f"Player konum alınamıyor: {e}") return 0, 0 def get_mob_list(self) -> List[Tuple[int, float, float]]: mobs = [] try: mob_base = self.pm.read_int(self.base_address + MOB_BASE_PTR) if mob_base == 0: return mobs offset = 0 for i in range(300): try: mob_ptr = self.pm.read_int(mob_base + offset) if mob_ptr == 0: break mob_vid = self.pm.read_int(mob_ptr + MOB_VID_OFF) if mob_vid <= 0: offset += 4 continue mob_x = self.pm.read_float(mob_ptr + MOB_X_OFF) mob_y = self.pm.read_float(mob_ptr + MOB_Y_OFF) mobs.append((mob_vid, mob_x, mob_y)) except Exception: offset += 4 continue offset += 4 except Exception as e: print(f"Moblar alınamıyor: {e}") return mobs def is_in_range(self, x1: float, y1: float, x2: float, y2: float) -> bool: distance = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2) return distance <= ATTACK_RANGE def setup_frida_script(self): script_code = """ const BATTLE_CALL_ADDRESS = ptr(0x004BD660); //Send battle attack MOV const NET_POINTER_ADDRESS = ptr(0x01E4E114); //Send battle attack CALL function sendBattleAttack(targetId) { if (targetId <= 0) return false; try { var codeSize = 64; var codePtr = Memory.alloc(codeSize); var netPointer = Memory.readPointer(NET_POINTER_ADDRESS); if (netPointer.isNull()) return false; Memory.patchCode(codePtr, codeSize, function(code) { var writer = new X86Writer(code); writer.putMovRegAddress('ecx', netPointer); writer.putPushU32(targetId); writer.putPushU32(0); writer.putCallAddress(BATTLE_CALL_ADDRESS); writer.putRet(); writer.flush(); }); var execFunc = new NativeFunction(codePtr, 'void', []); execFunc(); return true; } catch (e) { return false; } } rpc.exports = { attack: function(targetId) { return sendBattleAttack(targetId); } }; """ self.script = self.session.create_script(script_code) self.script.load() def run(self): self.setup_frida_script() print("[+] Wait damage başladı") try: while self.running: player_x, player_y = self.read_player_position() if player_x == 0 and player_y == 0: print("[!] Player konumu alınamıyor") time.sleep(1) continue mobs = self.get_mob_list() if not mobs: time.sleep(0.1) continue in_range_mobs = [ mob for mob in mobs if self.is_in_range(player_x, player_y, mob[1], mob[2]) ] for mob_vid, _, _ in in_range_mobs: try: self.script.exports.attack(mob_vid) except Exception as e: print(f"Hata: {mob_vid}: {e}") time.sleep(ATTACK_DELAY) except KeyboardInterrupt: print("\n[*] Program durduruluyor") finally: self.cleanup() def cleanup(self): if self.script: self.script.unload() if self.session: self.session.detach() print("[+] Bağlantı koparıldı") if __name__ == "__main__": attacker = WaitDamage() attacker.run()
ATTACK_RANGE = 1000 -> bu kısmı yükseltirseniz otomatik pelerin çeken siste
kanka bizim gibi hiç bu tarz hile yapmamış sadece c.e ile hile yapmış adamlar için bir video çeksende bizde öğrenip kendi hilemizi yapsak be reisTarget damage ile birebir aynı sistem tek farkı belirlenen alan içerisindeki tüm moblara saldırı gönderiyoruz.
Python:import frida import pymem import time import math from typing import List, Tuple PLAYER_BASE_PTR = 0x01A4E104 PLAYER_BASE_OFF = 0x14 PLAYER_X_OFF = 0x69C PLAYER_Y_OFF = 0x6A0 MOB_BASE_PTR = 0x1A4E378 MOB_VID_OFF = 0x79C MOB_X_OFF = 0x69C MOB_Y_OFF = 0x6A0 ATTACK_RANGE = 1000 ATTACK_DELAY = 0.1 #Milisaniye class WaitDamage: def __init__(self): self.pm = pymem.Pymem("metin2client.bin") self.base_address = pymem.process.module_from_name(self.pm.process_handle, "metin2client.bin").lpBaseOfDll print(f"[+] Base address: {hex(self.base_address)}") self.session = frida.attach("metin2client.bin") self.script = None self.running = True def read_player_position(self) -> Tuple[float, float]: try: player_base = self.pm.read_int(self.base_address + PLAYER_BASE_PTR) if player_base == 0: return 0, 0 player_ptr = self.pm.read_int(player_base + PLAYER_BASE_OFF) if player_ptr == 0: return 0, 0 player_x = self.pm.read_float(player_ptr + PLAYER_X_OFF) player_y = self.pm.read_float(player_ptr + PLAYER_Y_OFF) return player_x, player_y except Exception as e: print(f"Player konum alınamıyor: {e}") return 0, 0 def get_mob_list(self) -> List[Tuple[int, float, float]]: mobs = [] try: mob_base = self.pm.read_int(self.base_address + MOB_BASE_PTR) if mob_base == 0: return mobs offset = 0 for i in range(300): try: mob_ptr = self.pm.read_int(mob_base + offset) if mob_ptr == 0: break mob_vid = self.pm.read_int(mob_ptr + MOB_VID_OFF) if mob_vid <= 0: offset += 4 continue mob_x = self.pm.read_float(mob_ptr + MOB_X_OFF) mob_y = self.pm.read_float(mob_ptr + MOB_Y_OFF) mobs.append((mob_vid, mob_x, mob_y)) except Exception: offset += 4 continue offset += 4 except Exception as e: print(f"Moblar alınamıyor: {e}") return mobs def is_in_range(self, x1: float, y1: float, x2: float, y2: float) -> bool: distance = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2) return distance <= ATTACK_RANGE def setup_frida_script(self): script_code = """ const BATTLE_CALL_ADDRESS = ptr(0x004BD660); //Send battle attack MOV const NET_POINTER_ADDRESS = ptr(0x01E4E114); //Send battle attack CALL function sendBattleAttack(targetId) { if (targetId <= 0) return false; try { var codeSize = 64; var codePtr = Memory.alloc(codeSize); var netPointer = Memory.readPointer(NET_POINTER_ADDRESS); if (netPointer.isNull()) return false; Memory.patchCode(codePtr, codeSize, function(code) { var writer = new X86Writer(code); writer.putMovRegAddress('ecx', netPointer); writer.putPushU32(targetId); writer.putPushU32(0); writer.putCallAddress(BATTLE_CALL_ADDRESS); writer.putRet(); writer.flush(); }); var execFunc = new NativeFunction(codePtr, 'void', []); execFunc(); return true; } catch (e) { return false; } } rpc.exports = { attack: function(targetId) { return sendBattleAttack(targetId); } }; """ self.script = self.session.create_script(script_code) self.script.load() def run(self): self.setup_frida_script() print("[+] Wait damage başladı") try: while self.running: player_x, player_y = self.read_player_position() if player_x == 0 and player_y == 0: print("[!] Player konumu alınamıyor") time.sleep(1) continue mobs = self.get_mob_list() if not mobs: time.sleep(0.1) continue in_range_mobs = [ mob for mob in mobs if self.is_in_range(player_x, player_y, mob[1], mob[2]) ] for mob_vid, _, _ in in_range_mobs: try: self.script.exports.attack(mob_vid) except Exception as e: print(f"Hata: {mob_vid}: {e}") time.sleep(ATTACK_DELAY) except KeyboardInterrupt: print("\n[*] Program durduruluyor") finally: self.cleanup() def cleanup(self): if self.script: self.script.unload() if self.session: self.session.detach() print("[+] Bağlantı koparıldı") if __name__ == "__main__": attacker = WaitDamage() attacker.run()
ATTACK_RANGE = 1000 -> bu kısmı yükseltirseniz otomatik pelerin çeken sistem olur.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
Çalışıyor
[Python] Target Damage Source
- Cevaplar
- 28
- Görüntüleme
- 4K
- Cevaplar
- 6
- Görüntüleme
- 1K
- Cevaplar
- 13
- Görüntüleme
- 1K




