- 29 Eki 2018
- 223
- 0
Kod:
static **** MP_AddByte(BYTE *dest, int& iOffset, BYTE byte) { CopyMemory(dest+iOffset, &byte, 1); iOffset ++; }
static **** MP_AddShort(BYTE *dest, int& iOffset, short value) { CopyMemory(dest+iOffset, &value, 2); iOffset += 2; }
static **** MP_AddWord(BYTE *dest, int& offset, WORD value) { CopyMemory(dest+offset, &value, 2); offset += 2; }
static **** MP_AddDword(BYTE *dest, int &iOffset, DWORD dword) { CopyMemory(dest+iOffset, &dword, 4); iOffset += 4; }
static **** MP_AddFloat(BYTE *dest, int &iOffset, float value) { CopyMemory(dest+iOffset, &value, 4); iOffset += 4; }
static BYTE& Parse_GetByte(const BYTE* buf, int &iOffset) { iOffset ++; return *(BYTE*)(buf+iOffset-1); }
static short& Parse_GetShort(const BYTE* buf, int& iOffset) { iOffset += 2; return *(short*)(buf+iOffset-2); }
static WORD& Parse_GetWord(const BYTE* buf, int &iOffset) { iOffset += 2; return *(PWORD)(buf+iOffset-2); }
static DWORD& Parse_GetDword(const BYTE* buf, int &iOffset) { iOffset += 4; return *(DWORD*)(buf+iOffset-4); }
DWORD KOFonksiyonGame_PTR;
DWORD KOFonksiyonGame;
DWORD LastBoxID;
DWORD LASTBOX;
**** KOTransferBox(DWORD pBoxID){
BYTE byBuff[100];
int iOffset =0;
LastBoxID=pBoxID;
MP_AddByte(byBuff, iOffset, 0x24);
MP_AddDword(byBuff, iOffset,pBoxID);
SendPacket(byBuff,iOffset);
}
**** KOTransferBoxID(BYTE* pDataPack, int iOffset){
int ID =Parse_GetWord(pDataPack, iOffset);
DWORD BoxID =Parse_GetDword(pDataPack, iOffset);
KOTransferBox(BoxID);
}
**** KOTransferLoot(DWORD LastBoxID,DWORD ItemID,BYTE itemslot){
BYTE byBuff[100];
int iOffset =0;
MP_AddByte(byBuff, iOffset, 0x26);
MP_AddDword(byBuff, iOffset,LastBoxID);
MP_AddDword(byBuff, iOffset,ItemID);
MP_AddByte(byBuff, iOffset, itemslot);
MP_AddByte(byBuff, iOffset, 0x00);
SendPacket(byBuff,iOffset);
}
**** KOTransferParseBox(BYTE* pDataPack, int iOffset){
DWORD BoxID =Parse_GetDword(pDataPack, iOffset);
LASTBOX =BoxID;
DWORD drop_id[4];
DWORD toplalist[1];
for (int i = 0;i<4;i++){
drop_id[i] = *(DWORD*)(pDataPack+(6 + 6*i));
KOTransferLoot(BoxID,drop_id[i],i);
}
}
int __stdcall KOPacketRecvMain(DWORD DataPack, int& iOffset)
{
unsigned long obj = 0;
unsigned int resultrecv=0;
_asm mov obj, ecx
DWORD RecvGamePtr= *(DWORD*)KOFonksiyonGame_PTR;
int iSize = *(DWORD*)(DataPack + 4);
char *pBuf = (char*)*(DWORD*)(DataPack + 8);
BYTE *GelenBuf = pBuf;
if(pBuf == NULL)
goto cikis;
switch(GelenBuf[0]){
case 0x23:{ // mob öldü, kutu düştü
KOTransferBoxID(GelenBuf,1);
return 1;
}
case 0x24:{ // kutu açıldı
KOTransferParseBox(GelenBuf,1);
return 1;
}
break;
}
cikis:
asm{
push iOffset
push DataPack
mov eax, KOFonksiyonGame
mov ecx,obj
call eax
mov resultrecv, eax
}
}
**** AutoRecv(){
KOFonksiyonGame_PTR = RDWORD(RDWORD(KO_DLGA)) + 0x8;
KOFonksiyonGame = RDWORD(KOFonksiyonGame_PTR);
*(DWORD*)KOFonksiyonGame_PTR=(DWORD)KOPacketRecvMain;
}
piyasada çet sitesindeki knight online hilesinin mantığı/kodları :cool