C++ Auto Loot Algoritması + Recv

HeRoTurk

Özel Üye
Katılım
21 Eyl 2012
Mesajlar
1,442
Tepkime puanı
0
Puanları
0
Web sitesi
p1c-m4rsel.org
C++ Knight OnLine Auto Loot Algoritması + Recv


DLL İçin Yazılmıştır..


Kod:
// KO Fonksiyonları..

 	static	void	MP_AddByte(BYTE *dest, int& iOffset, BYTE byte) { CopyMemory(dest+iOffset, &byte, 1); iOffset ++; }
	static	void	MP_AddShort(BYTE *dest, int& iOffset, short value) { CopyMemory(dest+iOffset, &value, 2); iOffset += 2; }
	static	void	MP_AddWord(BYTE *dest, int& offset, WORD value) { CopyMemory(dest+offset, &value, 2); offset += 2; }
	static	void	MP_AddDword(BYTE *dest, int &iOffset, DWORD dword) { CopyMemory(dest+iOffset, &dword, 4); iOffset += 4; }
	static	void	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;

void KOTransferBox(DWORD pBoxID){
BYTE byBuff[100];
int iOffset =0;
LastBoxID=pBoxID;
MP_AddByte(byBuff, iOffset, 0x24);
MP_AddDword(byBuff, iOffset,pBoxID);
SendPacket(byBuff,iOffset);
}



void KOTransferBoxID(BYTE* pDataPack, int iOffset){
int ID =Parse_GetWord(pDataPack, iOffset);
DWORD BoxID =Parse_GetDword(pDataPack, iOffset);
KOTransferBox(BoxID);
}


void 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);
}


void 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
	}
}


void AutoRecv(){
KOFonksiyonGame_PTR = RDWORD(RDWORD(KO_DLGA)) + 0x8;
KOFonksiyonGame = RDWORD(KOFonksiyonGame_PTR);
*(DWORD*)KOFonksiyonGame_PTR=(DWORD)KOPacketRecvMain;
}
 

mersin escort bodrum escort alanya escort kayseri escort konya escort marmaris escort bodrum escort tto dermodicos vozol puff
Üst
Copyright® Ajanlar.org 2012