noisiv 1
noisiv
Manwe Work 1
Manwe Work
Almira2 1
Almira2
romegames 1
romegames
D 1
delimuratt
melankolıa18 1
melankolıa18
shrpnl 1
shrpnl
Fethi Polat 1
Fethi Polat
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Best Studio 1
Best Studio
Agora Metin2 1
Agora Metin2
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Çalışıyor [Python] Target Damage Source

5.00 yıldız(lar) 2 Değerlendirme Değerlendirenler

AhtapotNecmi

Level 1
Banlı
Üye
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
Ticaret - 0%
0   0   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.




 

Ekli dosyalar

  • 1.exe
    1.exe
    4.6 MB · Görüntüleme: 0
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]
Teşekkürler üye olamıyorum üye nasıl olabiliyorrsunuz
 
Offsetler değişmiş paylaştığın offsetlerde çalışmıyor.
Cheat Engine ile çok kolay bir şekilde offsetleri bulabilirsiniz veya konuya benim kullandığım exe'yi ekleyebilirim isterseniz
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst