Krutzo 1
Krutzo
shrpnl 1
shrpnl
Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Çalışmıyor [UCRETSIZ] M2Heat - Istedigin gibi script yaz

3.00 yıldız(lar) 1 Değerlendirme Değerlendirenler
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

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!

M2Heat
Sadece official GF metin2 clienti ile uyumlu istediginiz gibi scriptleyebileceginiz ucretsiz bir hiledir.
[UI]
6HffRuA.png

2NxL2DQ.png

JqU1dwT.png

W0DEazs.png

MIpI0b2.png

DLQTPH9.png

Nasil kullanilir?
  1. Eklentilerden zip dosyasini indirip bir klasore cikartin.
  2. injector.exe'yi yonetici olarak calistirin.
  3. Artik clientleri baslatabilirsiniz. Injector otomatik olarak hileyi inject edecektir.
Python scripti yazmak isteyenler dokuman icin ne tiklayabilir.

Injectoru kendi derlemek isteyenler icin kaynak kodlari;
C++:
#include <Windows.h>
#include <iostream>
#include <string>
#include <thread>
#include <chrono>
#include <TlHelp32.h>
#include <algorithm>

DWORD get_process_id(const std::wstring& process_name)
{
    DWORD process_id = 0;
    HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (snapshot != INVALID_HANDLE_VALUE)
    {
        PROCESSENTRY32 process_entry;
        process_entry.dwSize = sizeof(process_entry);

        if (Process32First(snapshot, &process_entry))
        {
            do
            {
                if (process_name == process_entry.szExeFile)
                {
                    process_id = process_entry.th32ProcessID;
                    break;
                }
            } while (Process32Next(snapshot, &process_entry));
        }
        CloseHandle(snapshot);
    }
    return process_id;
}

bool inject_dlls(const DWORD process_id, const std::vector<std::wstring>& dll_paths)
{
    HANDLE process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, process_id);
    if (!process)
    {
        std::cerr << "Failed to open process." << std::endl;
        return false;
    }

    auto load_library_addr = reinterpret_cast<LPVOID>(GetProcAddress(GetModuleHandleW(L"kernel32.dll"), "LoadLibraryW"));
    if (!load_library_addr)
    {
        std::cerr << "Failed to get LoadLibraryW address." << std::endl;
        CloseHandle(process);
        return false;
    }

    bool injection_success = true;

    for (const auto& dll_path : dll_paths)
    {
        auto remote_string = VirtualAllocEx(process, nullptr, (dll_path.length() + 1) * sizeof(wchar_t), MEM_COMMIT, PAGE_READWRITE);
        if (!remote_string)
        {
            std::wcerr << L"Failed to allocate memory in the target process for DLL: " << dll_path << std::endl;
            injection_success = false;
            continue;
        }

        if (!WriteProcessMemory(process, remote_string, dll_path.c_str(), (dll_path.length() + 1) * sizeof(wchar_t), nullptr))
        {
            std::wcerr << L"Failed to write the DLL path to the target process for DLL: " << dll_path << std::endl;
            VirtualFreeEx(process, remote_string, 0, MEM_RELEASE);
            injection_success = false;
            continue;
        }

        auto remote_thread = CreateRemoteThread(process, nullptr, 0, reinterpret_cast<LPTHREAD_START_ROUTINE>(load_library_addr), remote_string, 0, nullptr);
        if (!remote_thread)
        {
            std::wcerr << L"Failed to create remote thread for DLL: " << dll_path << std::endl;
            VirtualFreeEx(process, remote_string, 0, MEM_RELEASE);
            injection_success = false;
            continue;
        }

        WaitForSingleObject(remote_thread, 1000);

        if(injection_success)
            std::wcout << L"Injected DLL: " << dll_path << std::endl;
        else
            std::wcerr << L"Failed to inject DLL: " << dll_path << std::endl;

        CloseHandle(remote_thread);
        VirtualFreeEx(process, remote_string, 0, MEM_RELEASE);
    }

    CloseHandle(process);
    return injection_success;
}

const std::wstring get_path()
{
    wchar_t file_path[MAX_PATH];
    GetModuleFileNameW(NULL, file_path, MAX_PATH);

    std::wstring file_dir(file_path);
    size_t last_slash_pos = file_dir.find_last_of(L"\\/");
    if (last_slash_pos != std::wstring::npos)
    {
        file_dir = file_dir.substr(0, last_slash_pos + 1);
    }

    return file_dir;
}

std::vector<DWORD> get_process_ids_from_window(const std::wstring& window_title)
{
    std::vector<DWORD> process_ids;
    HWND window_handle = NULL;

    while ((window_handle = FindWindowExW(NULL, window_handle, NULL, window_title.c_str())) != NULL)
    {
        DWORD process_id;
        GetWindowThreadProcessId(window_handle, &process_id);
        process_ids.push_back(process_id);
    }

    return process_ids;
}

int main()
{
    const std::wstring path = get_path();
    const std::wstring target_window_title = L"METIN2";

    const std::vector<std::wstring> dll_names = { L"boost_python27-vc143-mt-x32-1_83.dll", L"m2heat.dll" };

    std::vector<std::wstring> dll_paths;
    for (const auto& dll_name : dll_names)
    {
        dll_paths.push_back(path + dll_name);
    }

    std::wcout << L"Watching for window: " << target_window_title << std::endl;

    std::vector<DWORD> injected_process_ids;

    while (true)
    {
        std::vector<DWORD> process_ids = get_process_ids_from_window(target_window_title);

        using namespace std::chrono_literals;

        for (const auto& process_id : process_ids)
        {
            if (std::find(injected_process_ids.begin(), injected_process_ids.end(), process_id) == injected_process_ids.end())
            {
                std::cout << "Target window found. Process ID: " << process_id << std::endl;

                injected_process_ids.push_back(process_id);

                std::thread injection_thread([=] {
                    std::this_thread::sleep_for(5s);
                    inject_dlls(process_id, dll_paths);
                });
                injection_thread.detach();
            }
        }

        std::this_thread::sleep_for(1s);
    }

    return 0;
}

Not bazi ozellikleri aktif edebilmeniz icin script yazmaniz gerekebilir UI'de olmadigindan dolayi. Gerekli bilgi dokumanlarda bulunmaktadir.
Ornek;

Yazdiginiz scriptleri m2heat.dll'nin oldugu klasordeki scripts klasorune koyabilirsiniz. Hile otomatik olarak sizin icin load edecektir ve hot reloading ozelligi de mevcuttur yani kaydettiginiz zaman otomatik olarak modulu reload eder bu sayede oyunu kapatip acmaniz gerekmez. Bu ozelligin bazi limitleri mevcuttur ve bu durumlarda calismayabilir. Son olarak scripts klasorunun yerini degistirmek isterseniz git vb. durumlar icin m2heat.dll'nin oldugu klasorde custom.txt olusturup icine istediginiz klasor yolunu girebilirsiniz.

Kullanim videosu



Exploit videosu



Planlanan degisiklikler ve eklenecek ozellikler
  • Scriptler ve API bastan yazilacak. (✓)
  • API dokumanlari paylasilacak. (✓)
  • Sunucu limitini bypasslamak icin damage exploiti eklenecek. (✓)
  • Kullanici deneyimi iyilestirilecek ve istediginiz kadar client baslatip kontrol edebileceginiz oyun disi UI eklenecek.
Projeyle ilgilenen kisi sayisina gore uzerinde daha cok calisabilirim bu yuzden konuya tepki vermeyi unutmayin.

Unutmadan virustotal sonuclari




hello will be available in the chit function energy bot?
 
Deneyen varsa çalışıyor mu aktifmi söyler seviniriz.
 
Güncelleme gelecek mi?
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

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

Geri
Üst