Selam 2-3gündür wolftü ile uğraşıyorum, forumda çok acayip yollarla csh addressi bulanları gördüm 
Sizler için güzel bir CSH çekicek kod yazdım, umarım işinize yarar.
İlk olarak byteleri kontrol edecek bir bool yazdım;
Şimdi ise asıl kodlara geçelim;
İllaki neden 0x10000 ekliyorsun ? CSH'yi geçip gidebilir arkadaşlar olucaktı, analizim sonucunda CSH addressinin son 4 rakamının "0000" olduğunu öğrendim.
Tarama hem daha hızlı hem daha sağlam olucağı için 0x10000 olarak arttırıyorum.
Sizler için güzel bir CSH çekicek kod yazdım, umarım işinize yarar.
İlk olarak byteleri kontrol edecek bir bool yazdım;
C++:
bool byteAra(byte *kaynak, byte *aranan,int *sıra)
{
int j = 0;
bool bulundu = true;
for (int i = 0; i < 65; i++)
{
bulundu = true;
for (int j = 0; j < 65; j++)
{
if (aranan[j] != kaynak[i+j])
{
bulundu = false;
break;
}
}
if (bulundu)
{
*sıra = i;
return true;
}
}
return false;
}
Şimdi ise asıl kodlara geçelim;
C++:
DWORD CSH; // CSH Pointeri
void GetCSH()
{
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pId); // pId wolftü.bin'in pıd'ı olmak zorunda
byte kaynak[65] = { 0 }; // Byteleri kontrol edecek bir type
BYTE aranacak[] ={0x4D,0x5A,0x90,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0xB8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x0E,0x1F,0xBA}; // CSH byteleri
DWORD baslangic =0x002F0000; // Taramaya 2F0000'dan başliyacak
DWORD bitis = 0x962F0000; // Taramayı 962F0000'de sonlandıracak;
int sıra = 0; // Taradağı address sırası;
while (baslangic <= bitis) // Baslangic bitis'e eşit veya büyük olana kadar döngü
{
ReadProcessMemory(hProc, (LPVOID)baslangic, kaynak, 65, NULL); // Addressdeki byteleri kayna'ğa aktar
if (byteAra(kaynak, aranacak, &sıra)) // Kaynak aranacak bytelere eşit ise
{
CSH = baslangic+sıra; // Baslangic ile sıra'yı toplayıp CSH'ye aktar;
break; // Döngüyü durdur
}
baslangic +=0x10000; // Değilse 0x10000 ekle
}
}
İllaki neden 0x10000 ekliyorsun ? CSH'yi geçip gidebilir arkadaşlar olucaktı, analizim sonucunda CSH addressinin son 4 rakamının "0000" olduğunu öğrendim.
Tarama hem daha hızlı hem daha sağlam olucağı için 0x10000 olarak arttırıyorum.