C++ Oyunda öldüğüm zaman yeniden sürekli başlatmam gerekiyor (Yardım)

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
MrComan
Onaylı Üye
Katılım
14 Şub 2018
Mesajlar
77
Tepki puanı
7
Ödüller
8
8 HİZMET YILI
Oyunu da öldüğüm zaman sürekli olarak yeniden başlatmak zorunda kalıyorum yardımcı olur musunuz?
C++:
//  __  __                                 _    _            _               
// |  \/  |                               | |  | |          | |             
// | \  / | ___ _ __ ___   ___  _ __ _   _| |__| | __ _  ___| | _____ _ __ ___
// | |\/| |/ _ \ '_ ` _ \ / _ \| '__| | | |  __  |/ _` |/ __| |/ / _ \ '__/ __|
// | |  | |  __/ | | | | | (_) | |  | |_| | |  | | (_| | (__|   <  __/ |  \__ \
// |_|  |_|\___|_| |_| |_|\___/|_|   \__, |_|  |_|\__,_|\___|_|\_\___|_|  |___/
//                                    __/ |                                 
//                                   |___/
// Olcay Özdoğan
// JomAngeeel


#include <iostream>
#include <Windows.h>

using namespace std;
int main()
{
    cout << " === === === === === === === === === === === === === Memory Hackers === === === === === === === === === === === === ===" << endl;
    cout << " " << endl;
    cout << " === JomAngeeel === Olcay Ozdogan === " << endl;
    cout << " " << endl;
    cout << " === === === === === === === === === === === === === Memory Hackers === === === === === === === === === === === === ===" << endl;

    int can = 5000;
    int mermi = 5000;
    int zirh = 5000;
    int bomba = 500;
    int jar = 5000;


    HWND hWnd = FindWindowA(NULL, "AssaultCube");
    if (hWnd == NULL)
    {
        cout << "Connot find window." << endl;
        Sleep(3000);
        exit(-1);
    }
    else
    {
        DWORD procId;
        GetWindowThreadProcessId(hWnd, &procId);
        HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, procId);

        if (procId = NULL)
        {
            cout << "Connot obtain process." << endl;
            Sleep(3000);
            exit(-1);
        }
        else
        {
            WriteProcessMemory(handle, (LPVOID)0x0290A5D8, &can, sizeof(can), 0);
            WriteProcessMemory(handle, (LPVOID)0x00E8A5D0, &mermi, sizeof(mermi), 0);
            WriteProcessMemory(handle, (LPVOID)0x00E8A584, &zirh, sizeof(zirh), 0);
            WriteProcessMemory(handle, (LPVOID)0x00E8A5E0, &bomba, sizeof(bomba), 0);
            WriteProcessMemory(handle, (LPVOID)0x00E8A5A8, &jar, sizeof(jar), 0);
        }
    }
    return 0;
}
 
Moderatörün son düzenlenenleri:
Onaylı Üye
Katılım
9 Eyl 2020
Mesajlar
50
Tepki puanı
19
Ödüller
4
5 HİZMET YILI
Arkadaşa özelden yazmıştım buraya da diğer problem yaşayan insanlar için yazıyorum.

Bu kodda error checking var ve hatalı bir durumda konsola uyarı verip 3 saniye sonra kapanmasını sağlıyor.
Eğer oyununuz crash vermeden kapanıyorsa sorun bu yüzdendir konsolu kontrol etmelisiniz(exit(-1) silin).
Eğer crash yiyip yeniden başlıyorsa adreslerinizde sıkıntı var demektir. Başka bir yere veri yazmak isterken yanlışlıkla başka bir yeri tetikliyor olabilirsiniz.
Adresleri güncelleyip her bir adresin doğru veriyi çektiğinden emin olun.

Arkadaşın bana verdiği cevap sadece konsol ekranının kapanması oldu yani aslında ortada bir problem yok kod olması gerektiği gibi çalışıyor. Konsol ekranının kapanmasının sebebi kodda herhangi bir döngünün bulunmaması.
Hilenin sürekli aktif kalıp kalmaması sizin hile yazım şeklinize bağlı GitHub'dan veya bu forumdan araştırarak hile yapımı hakkında bilgi sahibi olabilirsiniz. Size önerim base address nasıl bulunur bunları araştırın ve kendi fonksiyonlarınızı tasarlayarak başka oyunlara da hile yapımı için imkân tanıyın. Sorunuza gelecek olursak herhangi bir problem yok her şey olması gerektiği gibi çalışıyor.
Eğer Cheat Engine ile pointer çekip, oyunda her map değiştirdiğinizde veya oyunu kapatıp açtığınızda kodunuza ilk çektiğiniz pointerı yazıyorsanız, maalesef kodunuz çalışmayacak çünkü oyun başlatıldığında veriler RAM'e yazılır ve veriler dinamik bellek yönetimiyle gerektiğinde RAM'den silinir. Bunun için base address bulmalısınız.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst