- Katılım
- 24 Şub 2023
- Konular
- 5
- Mesajlar
- 38
- Online süresi
- 2d 18h
- Reaksiyon Skoru
- 33
- Altın Konu
- 0
- TM Yaşı
- 3 Yıl 3 Ay 11 Gün
- Başarım Puanı
- 39
- MmoLira
- 1,496
- 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!
Adresler "Celestial - World 2.0" sunucusu için günceldir | 29.06.2025
[CODE lang="python" title="Target Damage"]import frida
process_name = "1.exe"
script_code = f'''
const NET_POINTER_ADDRESS = Module.findBaseAddress("{process_name}").add(0x458044); //Send battle attack MOV
const BATTLE_CALL_ADDRESS = Module.findBaseAddress("{process_name}").add(0xDF970); //Send battle attack CALL
const TARGET_BASE_ADDRESS = Module.findBaseAddress("{process_name}").add(0x4580B0); //GetTargetVID MOV
const TARGET_OFFSET = 0x4E3EC; //GetTargetVID CALL -> MOV
var running = true;
function getTargetVID() {{
try {{
var basePtr = Memory.readPointer(TARGET_BASE_ADDRESS);
if (basePtr.isNull()) {{
return 0;
}}
return Memory.readInt(basePtr.add(TARGET_OFFSET));
}} catch (e) {{
console.log("[!] Error reading target VID:", e.message);
return 0;
}}
}}
function sendBattleAttack(targetId) {{
if (targetId <= 0) {{
return false; // Invalid target
}}
try {{
var codeSize = 64; // 64 bytes should be enough
var codePtr = Memory.alloc(codeSize);
var netPointer = Memory.readPointer(NET_POINTER_ADDRESS);
console.log("[DEBUG] netPointer value:", netPointer);
if (netPointer.isNull()) {{
console.log("[!] Invalid network pointer");
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();
}});
console.log("[DEBUG] Executing assembly at", codePtr);
var execFunc = new NativeFunction(codePtr, 'void', []);
execFunc();
return true;
}} catch (e) {{
console.log("[!] Error in sendBattleAttack:", e.message);
console.log("[!] Stack trace:", e.stack);
return false;
}}
}}
function attackLoop() {{
if (!running) return;
var targetId = getTargetVID();
if (targetId > 0) {{
console.log("[+] Attacking target:", targetId);
sendBattleAttack(targetId);
}} else {{
console.log("[*] No valid target");
}}
setTimeout(attackLoop, 60);
}}
console.log("[+] Target damage loop starting...");
setTimeout(attackLoop, 60);
rpc.exports = {{
stop: function() {{
running = false;
console.log("[+] Target damage stopped");
}},
start: function() {{
if (!running) {{
running = true;
attackLoop();
console.log("[+] Target damage restarted");
}}
}},
isRunning: function() {{
return running;
}}
}};
'''
session = frida.attach(process_name)
script = session.create_script(script_code)
def on_message(message, data):
if message['type'] == 'send':
print("[*] {}".format(message['payload']))
elif message['type'] == 'error':
print("[!] Error: {}".format(message['description']))
else:
print("[!] {}".format(message))
script.on('message', on_message)
script.load()
print("Target damage başladı")
print("Durdurmak ve çıkmak için Enter'a basın")
input()
script.exports.stop()
script.unload()
session.detach()
print("İşlem sonlandırıldı")[/CODE]
Frida, Javascript kodlarını Python'da kullanmaya olanak sağlayan bir kütüphanedir. Sadece Target Damage değil C++'da yazılmış herhangi bir kodu yapay zeka'dan yardım alarak Javascript koduna çevirip Python'da kullanabilirsiniz.
**1.exe isimli dosyayı "Celestial World 2.0" oyunun klasörüne atıp bununla oyuna giriş yapın daha sonra kodu çalıştırın.
**1.exe isimli dosyayı "Celestial World 2.0" oyunun klasörüne atıp bununla oyuna giriş yapın daha sonra kodu çalıştırın.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Ekli dosyalar
Son düzenleme:
En Çok Reaksiyon Alan Mesajlar
Konudaki kod fridanin güncel sürümlerinde çalışmıyordu. Birkaç saatlik uğraş sonucunda en güncel sürümünde çalışacak şekilde düzelttim. Yeni kullanıcak arkadaşlar iki halinide deneyip kullanabilir. Ayrıca arayüz ekledim. bütün offsetleri ve processname'i arayüz üzerinden girip insert tuşuyla başlatıp durdurabilirsiniz.
Öğeyi görmek için üye olmalısınız.
[CODE title="damage"]import frida
import customtkinter as ctk
import keyboard
from tkinter import messagebox
ctk.set_appearance_mode("dark")
ctk.set_default_color_theme("blue")
class App(ctk.CTk):
def __init__(self):
super().__init__()
self.title("Target Damage Controller")
self.geometry("420x380")
self.resizable(False, False)
self.grid_columnconfigure(1, weight=1)
ctk.CTkLabel(self, text="Process Adı:").grid(row=0, column=0, padx=10, pady=(20,5), sticky="e")
self.process_entry = ctk.CTkEntry(self)
self.process_entry.grid(row=0, column=1, padx=10, pady=(20,5), sticky="we")
self.process_entry.insert(0, "1.exe")
ctk.CTkLabel(self, text="NET_POINTER_ADDRESS offset (hex):").grid(row=1, column=0, padx=10, pady=5, sticky="e")
self.net_pointer_entry = ctk.CTkEntry(self)
self.net_pointer_entry.grid(row=1, column=1, padx=10, pady=5, sticky="we")
self.net_pointer_entry.insert(0, "0x458044")
ctk.CTkLabel(self, text="BATTLE_CALL_ADDRESS offset (hex):").grid(row=2, column=0, padx=10, pady=5, sticky="e")
self.battle_call_entry = ctk.CTkEntry(self)
self.battle_call_entry.grid(row=2, column=1, padx=10, pady=5, sticky="we")
self.battle_call_entry.insert(0, "0xDF970")
ctk.CTkLabel(self, text="TARGET_BASE_ADDRESS offset (hex):").grid(row=3, column=0, padx=10, pady=5, sticky="e")
self.target_base_entry = ctk.CTkEntry(self)
self.target_base_entry.grid(row=3, column=1, padx=10, pady=5, sticky="we")
self.target_base_entry.insert(0, "0x4580AC")
ctk.CTkLabel(self, text="TARGET_OFFSET (hex):").grid(row=4, column=0, padx=10, pady=5, sticky="e")
self.target_offset_entry = ctk.CTkEntry(self)
self.target_offset_entry.grid(row=4, column=1, padx=10, pady=5, sticky="we")
self.target_offset_entry.insert(0, "0x4E3E8")
self.start_button = ctk.CTkButton(self, text="Başlat", command=self.start_attack)
self.start_button.grid(row=5, column=0, padx=20, pady=20, sticky="we")
self.stop_button = ctk.CTkButton(self, text="Durdur", command=self.stop_attack, state="disabled")
self.stop_button.grid(row=5, column=1, padx=20, pady=20, sticky="we")
self.status_label = ctk.CTkLabel(self, text="Durum: Durduruldu", font=ctk.CTkFont(size=14, weight="bold"))
self.status_label.grid(row=6, column=0, columnspan=2, pady=(10, 20))
self.session = None
self.script = None
keyboard.on_press_key("insert", lambda e: self.after(0, self.toggle_attack))
self.bind('<Insert>', self.toggle_attack)
self.protocol("WM_DELETE_WINDOW", self.close)
def build_script_code(self, process_name, net_ptr_offset, battle_call_offset, target_base_offset, target_offset):
return f'''
const base = Process.getModuleByName("{process_name}").base;
const NET_POINTER_ADDRESS = base.add({net_ptr_offset});
const BATTLE_CALL_ADDRESS = base.add({battle_call_offset});
const TARGET_BASE_ADDRESS = base.add({target_base_offset});
const TARGET_OFFSET = {target_offset};
var running = false;
function getTargetVID() {{
try {{
var basePtr = TARGET_BASE_ADDRESS.readPointer();
if (basePtr.isNull && basePtr.isNull()) {{
return 0;
}}
var targetAddress = basePtr.add(TARGET_OFFSET);
if (typeof targetAddress.readInt !== "function") {{
return 0;
}}
var targetId = targetAddress.readInt();
return (typeof targetId === "number" && targetId > 0) ? targetId : 0;
}} catch (e) {{
return 0;
}}
}}
function sendBattleAttack(targetId) {{
if (targetId <= 0) return false;
try {{
var netPointer = NET_POINTER_ADDRESS.readPointer();
if ((typeof netPointer.isNull === "function" && netPointer.isNull()) || netPointer.equals(ptr('0x0'))) {{
return false;
}}
var codeSize = 64;
var codePtr = Memory.alloc(codeSize);
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;
}}
}}
function attackLoop() {{
if (!running) return;
var targetId = getTargetVID();
if (targetId > 0) {{
sendBattleAttack(targetId);
}}
setTimeout(attackLoop, 60);
}}
rpc.exports = {{
start: function() {{
if (!running) {{
running = true;
attackLoop();
return "started";
}}
return "already running";
}},
stop: function() {{
running = false;
return "stopped";
}},
isrunning: function() {{
return running;
}}
}};
'''
def on_message(self, message, data):
if message['type'] == 'send':
print("", message['payload'])
elif message['type'] == 'error':
print("[!][ERROR]", message['stack'])
def start_attack(self):
if self.session:
messagebox.showwarning("Uyarı", "Zaten bir işlem bağlı!")
return
process_name = self.process_entry.get().strip()
net_ptr = self.net_pointer_entry.get().strip()
battle_call = self.battle_call_entry.get().strip()
target_base = self.target_base_entry.get().strip()
target_offset = self.target_offset_entry.get().strip()
def norm_hex(s):
return s if s.startswith("0x") else "0x" + s
net_ptr = norm_hex(net_ptr)
battle_call = norm_hex(battle_call)
target_base = norm_hex(target_base)
target_offset = norm_hex(target_offset)
try:
script_code = self.build_script_code(process_name, net_ptr, battle_call, target_base, target_offset)
self.session = frida.attach(process_name)
self.script = self.session.create_script(script_code)
self.script.on('message', self.on_message)
self.script.load()
result = self.script.exports_sync.start()
if result == "started":
self.status_label.configure(text="Durum: Çalışıyor")
self.start_button.configure(state="disabled")
self.stop_button.configure(state="normal")
else:
self.status_label.configure(text="Durum: Zaten çalışıyor")
except Exception as e:
messagebox.showerror("Hata", f"Başlatma başarısız: {e}")
self.cleanup()
def stop_attack(self):
if not self.session:
messagebox.showinfo("Bilgi", "Çalışan bir işlem yok.")
return
try:
result = self.script.exports_sync.stop()
if result == "stopped":
self.status_label.configure(text="Durum: Durduruldu")
self.start_button.configure(state="normal")
self.stop_button.configure(state="disabled")
else:
self.status_label.configure(text="Durum: Zaten durdurulmuş")
except Exception as e:
messagebox.showerror("Hata", f"Durdurma hatası: {e}")
self.cleanup()
def cleanup(self):
try:
if self.script:
self.script.unload()
if self.session:
self.session.detach()
except:
pass
self.script = None
self.session = None
def toggle_attack(self, event=None):
if self.session and self.script:
try:
running = self.script.exports_sync.isrunning()
if running:
self.stop_attack()
else:
self.start_attack()
except Exception as e:
self.after(0, lambda: messagebox.showerror("Hata", f"Durum kontrol hatası: {e}"))
else:
self.start_attack()
def close(self):
self.stop_attack()
self.destroy()
if __name__ == "__main__":
app = App()
app.mainloop()
[/CODE]
Offsetler değişmiş paylaştığın offsetlerde çalışmıyor.
Elinize sağlık, paylaşım için teşekkürler.
Siz yanlış anladınız, ben Celestial World için hile vermedim, ben örnek olarak Celestial World sunucusunda gösterdim.Öğeyi görmek için üye olmalısınız.
Kullanmak isteyenler için
Ek olarak uğraştığın için teşekkürler çalışmıyor tagını kaldırdım
- Katılım
- 22 Tem 2011
- Konular
- 176
- Mesajlar
- 1,595
- Online süresi
- 18d 43m
- Reaksiyon Skoru
- 143
- Altın Konu
- 0
- Başarım Puanı
- 179
- MmoLira
- 2,895
- DevLira
- 0
Paylaşım için teşekkürler
- Katılım
- 13 Ocak 2020
- Konular
- 1,420
- Mesajlar
- 9,988
- Çözüm
- 81
- Online süresi
- 1y 1mo
- Reaksiyon Skoru
- 7,277
- Altın Konu
- 309
- TM Yaşı
- 6 Yıl 4 Ay 25 Gün
- Başarım Puanı
- 393
- MmoLira
- 6,221
- DevLira
- 15
Teşekkürler üye olamıyorum üye nasıl olabiliyorrsunuz
- Katılım
- 22 Tem 2011
- Konular
- 176
- Mesajlar
- 1,595
- Online süresi
- 18d 43m
- Reaksiyon Skoru
- 143
- Altın Konu
- 0
- Başarım Puanı
- 179
- MmoLira
- 2,895
- DevLira
- 0
Offsetler değişmiş paylaştığın offsetlerde çalışmıyor.
- Katılım
- 24 Şub 2023
- Konular
- 5
- Mesajlar
- 38
- Online süresi
- 2d 18h
- Reaksiyon Skoru
- 33
- Altın Konu
- 0
- TM Yaşı
- 3 Yıl 3 Ay 11 Gün
- Başarım Puanı
- 39
- MmoLira
- 1,496
- DevLira
- 0
Cheat Engine ile çok kolay bir şekilde offsetleri bulabilirsiniz veya konuya benim kullandığım exe'yi ekleyebilirim istersenizOffsetler değişmiş paylaştığın offsetlerde çalışmıyor.
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 17
- Görüntüleme
- 2K
Metin2 Hile İstek
Pro Damege Hk. Yardım ve Fikir + Source
- Cevaplar
- 12
- Görüntüleme
- 718