- Katılım
- 13 Ara 2019
- Konular
- 32
- Mesajlar
- 345
- Çözüm
- 2
- Online süresi
- 7d 12h
- Reaksiyon Skoru
- 103
- Altın Konu
- 0
- TM Yaşı
- 6 Yıl 5 Ay 24 Gün
- Başarım Puanı
- 119
- Yaş
- 27
- MmoLira
- 2,441
- DevLira
- 21
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!
Merhaba arkadaşlar bir desteğe ihtiyacım var c# da DINPUT.DLL ile oto toplama yapmayı çözmeyi düşüyorum c# uygulamamı x64 olarak derliyorum lakin oto toplama için tuş ataması yapamıyorum.
DINPUT8.dll+30218 Oyun ekrana tıkladığımda değer 4 Bytes da 1 oluyor ekrandan cıkınca 0 oluyor (Belkide yanlış adresdeyimdir.)
DINPUT8.dll+30281 ise " tuşuna ait olduğunu düşünüyorum (Belkide yanlıştır dicem " ya basınca değer 128 oluyor (4Bytes))
DINPUT8.dll+30283 ise Z tuşuna ait olduğunu düşündüğüm (değer olarak 32768 veriyor)
Böyle bir örneklendirme öğrendim
public class DInputHelper
{
[DllImport("kernel32.dll", SetLastError = true)]
private static extern bool WriteProcessMemory(
IntPtr hProcess,
IntPtr lpBaseAddress,
ref int lpBuffer,
int dwSize,
out IntPtr lpNumberOfBytesWritten);
private Process _process;
private IntPtr _addrZ;
private IntPtr _addrQuote;
public DInputHelper(string processName, int offsetQuote, int offsetZ)
{
_process = Process.GetProcessesByName(processName).FirstOrDefault();
if (_process == null)
throw new Exception("Process bulunamadı!");
var module = _process.Modules
.Cast<ProcessModule>()
.FirstOrDefault(m => m.ModuleName.ToLower() == "dinput8.dll");
if (module == null)
throw new Exception("Oyunda DINPUT8.dll bulunamadı!");
IntPtr baseAddress = module.BaseAddress;
// Offsetler
_addrQuote = IntPtr.Add(baseAddress, offsetQuote); // " tuşu
_addrZ = IntPtr.Add(baseAddress, offsetZ); // Z tuşu
}
private void PressKey(IntPtr addr)
{
if (addr == IntPtr.Zero) return;
int value = 32768; // Engine de gördüğün değer
WriteProcessMemory(_process.Handle, addr, ref value, 4, out _);
Thread.Sleep(30);
value = 0; // Key
WriteProcessMemory(_process.Handle, addr, ref value, 4, out _);
}
public void PressQuote() => PressKey(_addrQuote);
public void PressZ() => PressKey(_addrZ);
public void PressBoth()
{
PressQuote();
Thread.Sleep(30);
PressZ();
}
}
Ve mobdun ölümünden sonra tuş ataması için
private void Farm()
{
Logger.Log("FarmBot başlatıldı.");
bool isStopping = false;
DInputHelper dinput = null;
try
{
// Güncel offsetler: " = 0x30281, Z = 0x30283
dinput = new DInputHelper("Origins", 0x30281, 0x30283);
}
catch (Exception ex)
{
Logger.LogError(ex, "DInputHelper başlatılırken hata oluştu.");
}
... Sonrasında
_lastTargetVid = 0;
if (dinput != null)
{
try
{
for (int i = 0; i < 3; i++)
{
dinput.PressBoth();
Thread.Sleep(50);
}
}
catch (Exception exKey)
{
Logger.LogError(exKey, "Tuşlara basılırken hata oluştu.");
}
}
}
Desteklerinizi bekliyorum iyi formlar arkadaşlar, bunu öğretebilecek vasa mantğınıda çok sevinirim iyi geceler.
DINPUT8.dll+30218 Oyun ekrana tıkladığımda değer 4 Bytes da 1 oluyor ekrandan cıkınca 0 oluyor (Belkide yanlış adresdeyimdir.)
DINPUT8.dll+30281 ise " tuşuna ait olduğunu düşünüyorum (Belkide yanlıştır dicem " ya basınca değer 128 oluyor (4Bytes))
DINPUT8.dll+30283 ise Z tuşuna ait olduğunu düşündüğüm (değer olarak 32768 veriyor)
Böyle bir örneklendirme öğrendim
public class DInputHelper
{
[DllImport("kernel32.dll", SetLastError = true)]
private static extern bool WriteProcessMemory(
IntPtr hProcess,
IntPtr lpBaseAddress,
ref int lpBuffer,
int dwSize,
out IntPtr lpNumberOfBytesWritten);
private Process _process;
private IntPtr _addrZ;
private IntPtr _addrQuote;
public DInputHelper(string processName, int offsetQuote, int offsetZ)
{
_process = Process.GetProcessesByName(processName).FirstOrDefault();
if (_process == null)
throw new Exception("Process bulunamadı!");
var module = _process.Modules
.Cast<ProcessModule>()
.FirstOrDefault(m => m.ModuleName.ToLower() == "dinput8.dll");
if (module == null)
throw new Exception("Oyunda DINPUT8.dll bulunamadı!");
IntPtr baseAddress = module.BaseAddress;
// Offsetler
_addrQuote = IntPtr.Add(baseAddress, offsetQuote); // " tuşu
_addrZ = IntPtr.Add(baseAddress, offsetZ); // Z tuşu
}
private void PressKey(IntPtr addr)
{
if (addr == IntPtr.Zero) return;
int value = 32768; // Engine de gördüğün değer
WriteProcessMemory(_process.Handle, addr, ref value, 4, out _);
Thread.Sleep(30);
value = 0; // Key
WriteProcessMemory(_process.Handle, addr, ref value, 4, out _);
}
public void PressQuote() => PressKey(_addrQuote);
public void PressZ() => PressKey(_addrZ);
public void PressBoth()
{
PressQuote();
Thread.Sleep(30);
PressZ();
}
}
Ve mobdun ölümünden sonra tuş ataması için
private void Farm()
{
Logger.Log("FarmBot başlatıldı.");
bool isStopping = false;
DInputHelper dinput = null;
try
{
// Güncel offsetler: " = 0x30281, Z = 0x30283
dinput = new DInputHelper("Origins", 0x30281, 0x30283);
}
catch (Exception ex)
{
Logger.LogError(ex, "DInputHelper başlatılırken hata oluştu.");
}
... Sonrasında
_lastTargetVid = 0;
if (dinput != null)
{
try
{
for (int i = 0; i < 3; i++)
{
dinput.PressBoth();
Thread.Sleep(50);
}
}
catch (Exception exKey)
{
Logger.LogError(exKey, "Tuşlara basılırken hata oluştu.");
}
}
}
Desteklerinizi bekliyorum iyi formlar arkadaşlar, bunu öğretebilecek vasa mantğınıda çok sevinirim iyi geceler.
- Katılım
- 10 Ara 2019
- Konular
- 43
- Mesajlar
- 130
- Online süresi
- 15d 4h
- Reaksiyon Skoru
- 26
- Altın Konu
- 0
- TM Yaşı
- 6 Yıl 5 Ay 28 Gün
- Başarım Puanı
- 91
- MmoLira
- 4,780
- DevLira
- 0
Adresin yanlış muhtemelen sağa sola gidip öyle dene
- Katılım
- 2 May 2019
- Konular
- 0
- Mesajlar
- 64
- Online süresi
- 27d 4h
- Reaksiyon Skoru
- 16
- Altın Konu
- 0
- Başarım Puanı
- 64
- MmoLira
- 2,583
- DevLira
- 0
DM kontrol edin
- Katılım
- 13 Ara 2019
- Konular
- 32
- Mesajlar
- 345
- Çözüm
- 2
- Online süresi
- 7d 12h
- Reaksiyon Skoru
- 103
- Altın Konu
- 0
- TM Yaşı
- 6 Yıl 5 Ay 24 Gün
- Başarım Puanı
- 119
- Yaş
- 27
- MmoLira
- 2,441
- DevLira
- 21
Adreslerin doğru olduğunu düşünüyorum çünkü başka benzeyen bir şey yokkiAdresin yanlış muhtemelen sağa sola gidip öyle dene
- Katılım
- 10 Şub 2024
- Konular
- 17
- Mesajlar
- 158
- Online süresi
- 29d 18h
- Reaksiyon Skoru
- 89
- Altın Konu
- 0
- TM Yaşı
- 2 Yıl 3 Ay 24 Gün
- Başarım Puanı
- 68
- MmoLira
- 999
- DevLira
- 0
ilk olarak kullandığın dinput adresi yanlış dinput adresleri her pvp sunucuda aynıdır bunları sana birazdan atacağım ikinci olarak x64 uygulamadan x86 uygulamaya _process.Modules kullanarak x86 uygulamanın modüllerine erişemezsin CreateToolhelp32Snapshot TH32CS_SNAPMODULE32 kullanarak DINPUT8.dll modülbasesini alabilirsin bunu yaptıktan sonra mesajboxda kontrol ettir doğru modül adresi çektiğinden emin olduktan sonra aşağıdaki vericeğim kodları inceliyebilirsin elimde c# kodlar yok fakat mantığı anlamana yardımcı olacaktır
[CODE title="oto toplama"]state.processInfo.dinput8Base = GetModuleBase("DINPUT8.dll", state.processInfo.processId);
if (state.processInfo.dinput8Base != 0) {
state.processInfo.dinputz = state.processInfo.dinput8Base + 0x30280;
state.processInfo.bypassBackground = state.processInfo.dinput8Base + 0x30234;
state.processInfo.dinputctrl = state.processInfo.dinput8Base + 0x30274;
state.processInfo.dinputg = state.processInfo.dinput8Base + 0x3027a;
state.processInfo.dinput1 = state.processInfo.dinput8Base + 0x3025a;
state.processInfo.dinput2 = state.processInfo.dinput8Base + 0x3025a;
state.processInfo.dinput3 = state.processInfo.dinput8Base + 0x3025c;
state.processInfo.dinput4 = state.processInfo.dinput8Base + 0x3025c;
state.processInfo.dinputf1 = state.processInfo.dinput8Base + 0x30292;
state.processInfo.dinputf2 = state.processInfo.dinput8Base + 0x30294;
state.processInfo.dinputf3 = state.processInfo.dinput8Base + 0x30294;
state.processInfo.dinputf4 = state.processInfo.dinput8Base + 0x30296;
state.processInfo.dinputspace = state.processInfo.dinput8Base + 0x30290;
}
void OtoToplamaVoid(UIState& state) {
if (!state.processInfo.processHandle || state.processInfo.dinputz == 0) return;
try {
WriteInt(state.processInfo.dinputz, 32768, state.processInfo.processHandle);
std::this_thread::sleep_for(std::chrono::milliseconds(200));
WriteInt(state.processInfo.dinputz, 0, state.processInfo.processHandle);
} catch (...) {}
}
bool WriteInt(uintptr_t address, int value, HANDLE hProcess) {
if (!hProcess) return false;
return WriteProcessMemory(hProcess, reinterpret_cast<LPVOID>(address), &value, sizeof(int), nullptr);
}[/CODE]
[CODE title="oto toplama"]state.processInfo.dinput8Base = GetModuleBase("DINPUT8.dll", state.processInfo.processId);
if (state.processInfo.dinput8Base != 0) {
state.processInfo.dinputz = state.processInfo.dinput8Base + 0x30280;
state.processInfo.bypassBackground = state.processInfo.dinput8Base + 0x30234;
state.processInfo.dinputctrl = state.processInfo.dinput8Base + 0x30274;
state.processInfo.dinputg = state.processInfo.dinput8Base + 0x3027a;
state.processInfo.dinput1 = state.processInfo.dinput8Base + 0x3025a;
state.processInfo.dinput2 = state.processInfo.dinput8Base + 0x3025a;
state.processInfo.dinput3 = state.processInfo.dinput8Base + 0x3025c;
state.processInfo.dinput4 = state.processInfo.dinput8Base + 0x3025c;
state.processInfo.dinputf1 = state.processInfo.dinput8Base + 0x30292;
state.processInfo.dinputf2 = state.processInfo.dinput8Base + 0x30294;
state.processInfo.dinputf3 = state.processInfo.dinput8Base + 0x30294;
state.processInfo.dinputf4 = state.processInfo.dinput8Base + 0x30296;
state.processInfo.dinputspace = state.processInfo.dinput8Base + 0x30290;
}
void OtoToplamaVoid(UIState& state) {
if (!state.processInfo.processHandle || state.processInfo.dinputz == 0) return;
try {
WriteInt(state.processInfo.dinputz, 32768, state.processInfo.processHandle);
std::this_thread::sleep_for(std::chrono::milliseconds(200));
WriteInt(state.processInfo.dinputz, 0, state.processInfo.processHandle);
} catch (...) {}
}
bool WriteInt(uintptr_t address, int value, HANDLE hProcess) {
if (!hProcess) return false;
return WriteProcessMemory(hProcess, reinterpret_cast<LPVOID>(address), &value, sizeof(int), nullptr);
}[/CODE]
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 3
- Görüntüleme
- 1K
- Cevaplar
- 5
- Görüntüleme
- 602
- Cevaplar
- 8
- Görüntüleme
- 2K
Kontrol Ediliyor
hile yapacakların işine yarayacak paylaşım
- Cevaplar
- 2
- Görüntüleme
- 612
- 5.00 yıldız(lar) 1 Değerlendirme
- Cevaplar
- 4
- Görüntüleme
- 329


