- 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!
Artık beni ilgilendirmiyor, python'da tarafında hile yapmak isteyen varsa mevcut kaynaklara baksın mevcut kaynaklar yetmiyorsa ellerini açıp Allah'tan yardım istesin benden yardım beklemesinler. Özelden bana yazmayın, Discord üzerinden bana yazmayın kimseye yardım etmeyeceğim.aslında yardım edebilirsin ama hazır olamaması gerekiyor fikir vermek diyebiliriz
- Katılım
- 22 Tem 2011
- Konular
- 176
- Mesajlar
- 1,593
- Online süresi
- 18d 33m
- Reaksiyon Skoru
- 142
- Altın Konu
- 0
- Başarım Puanı
- 179
- MmoLira
- 2,892
- DevLira
- 0
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.
[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]
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
[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]
Son düzenleme:
- Katılım
- 30 Nis 2011
- Konular
- 1,324
- Mesajlar
- 5,827
- Çözüm
- 20
- Online süresi
- 6mo 6d
- Reaksiyon Skoru
- 5,735
- Altın Konu
- 235
- Başarım Puanı
- 379
- MmoLira
- 27,336
- DevLira
- 27
Elinize sağlık, paylaşım için teşekkürler.
Ş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