Knight Online - Oto Z C++ Güncel

seukaiwokeo

Onaylı Üye
Katılım
25 Mar 2017
Mesajlar
56
Beğeni Puanı
11
Puanları
208
C++:
#include <Windows.h>
#include <iostream>
#include <string>

using namespace std;

HANDLE hProc = NULL;

#define KO_PTR_CHR    0x00E61920
#define KO_PTR_DLG 0x00E47878
#define KO_FLDB    KO_PTR_CHR - 0x4
#define KO_OFF_MOB 0x644
#define KO_OFF_ID 0x680
#define KO_OFF_NATION 0x6A8
#define KO_OFF_NAME_LEN 0x698
#define KO_OFF_NAME 0x688

DWORD KO_ADR_CHR = 0x0;
DWORD KO_ADR_DLG = 0x0;

DWORD Read4Bytes(DWORD paddy) {
    int ret;
    ReadProcessMemory(hProc, (LPVOID)paddy, &ret, 4, 0);
    return (DWORD)ret;
}


void GetEntitiyList() {
    while (hProc == NULL) hProc = GetCurrentProcess();
    while (true) {
        if (KO_ADR_CHR == 0x0 || KO_ADR_DLG == 0x0) {
            KO_ADR_CHR = Read4Bytes(KO_PTR_CHR);
            KO_ADR_DLG = Read4Bytes(KO_PTR_DLG);
        }
        DWORD EBP, ESI, EAX, FEnd, Tick, base_addr, namelen, mobid;
        string name;
        EBP = Read4Bytes(Read4Bytes(KO_FLDB) + 0x34);
        FEnd = Read4Bytes(Read4Bytes(EBP + 4) + 4);
        ESI = Read4Bytes(EBP);
        Tick = GetTickCount();
        do {
            base_addr = Read4Bytes(ESI + 0x10);
            if (base_addr == 0) continue;

            mobid = Read4Bytes(base_addr + KO_OFF_ID);
            namelen = Read4Bytes(base_addr + KO_OFF_NAME_LEN);

            EAX = Read4Bytes(ESI + 8);
            if (Read4Bytes(ESI + 8) != FEnd) {
                do {
                    EAX = Read4Bytes(EAX);
                } while (Read4Bytes(EAX) != FEnd && GetTickCount() - Tick < 150);
                ESI = EAX;
            }
            else {
                EAX = Read4Bytes(ESI + 4);
                do {
                    ESI = EAX;
                    EAX = Read4Bytes(EAX + 4);
                } while (ESI = Read4Bytes(EAX + 8) && GetTickCount() - Tick < 150);
                if (Read4Bytes(ESI + 8) != EAX) ESI = EAX;
            }
        } while (ESI != EBP && GetTickCount() - Tick < 150);
        WriteProcessMemory(hProc, (LPVOID)(KO_ADR_CHR + KO_OFF_MOB), &mobid, 4, 0);
    }
}
 

Sydra

Üye
Katılım
17 Ağu 2016
Mesajlar
18
Beğeni Puanı
1
Puanları
203
hocam bu kodları nasıl kullanıyoruz ufak bir bilgilendirme var mıdır
 

spiqe1234

Üye
Katılım
20 Nis 2019
Mesajlar
14
Beğeni Puanı
2
Puanları
3
Yaş
23
knıght a artık key siz bi koxp gibi bişi lazım ya böyle olmuyor
 
Katılım
9 Şub 2019
Mesajlar
20
Beğeni Puanı
6
Puanları
3
Yaş
34
ilk cıktığında kıngt bu oyun yaramaz dedim counquer online devam dedim kac sene oldu vay be
 
Katılım
21 Ağu 2019
Mesajlar
1
Beğeni Puanı
0
Puanları
1
Yaş
25
C++:
while (hProc == NULL) hProc = GetCurrentProcess();
bu kodu kullanmissin projen dll sanirsam.egerki dll seklinde bir proje yaptiysan ReadProcessMemory apisini kullanman pekde verimli olmayabilir.
su sekilde bir kod kullanman bence daha verimli olacaktir.

C++:
DWORD RDWORD(DWORD dwAddr)
{
    if (!IsBadReadPtr((void*)dwAddr,sizeof(DWORD)))
        return *(DWORD*)dwAddr;
    return 0;
}
dll projesi oldugu icin hafizada bir adrese erisim icin hile yapilacak uygulamanin handle degerini bulmana gerek yok zaten senin .dll o ugulamanin(oyun,program) bir parcasi kendi adresine erisiyormus gibi uygulamanin adresine erisebilirsin.
 

Enigm4

Onaylı Üye
Katılım
30 Mar 2019
Mesajlar
63
Beğeni Puanı
11
Puanları
8
Upgrade botu çok işe yarar, onu yapabilicek bir babayiğit var mıdır aramızda
 

Üst Alt