mavzermete 1
mavzermete
kralhakan2009 1
kralhakan2009
Bodyguardd 1
Bodyguardd
Vahsi Uzman 1
Vahsi Uzman
[DEV]AB 1
[DEV]AB
R 1
Roksam
Hikaye Ekle

-

  • Konuyu başlatan Konuyu başlatan Tunga
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 22
  • Görüntüleme Görüntüleme 6K
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
A KİŞİSİ "B" ADLI ÇARIYLA HWİD LİSTESİNE "ASD" HWİDİ ile kayıt olur ve bi olaydan dolayı hwid ban yer

bu A KİŞİSİ BAŞKA PC DEN O HESABA GİRMEYE ÇALIŞTIĞINDA başka bi hwid üzerinden banı sorgulandığı için GİRMEYE ÇALIŞTIĞI PC NİN YENİ HWİD Adresi eskisiyle yer değiştirip yeni pc den o hesaba girmesi tekrar engelleniyormu ?
Güzel soru, öncelikle A kişisi asd diye kayıtlı hwid ile asla ama asla giremez.
Yeni bir bilgisayar ile çarına girebilir. Girememesi için account ban da atmanız gerekir.
Hwid list de kayıtlı hwid değişir ancak eski biligsayarın hwid sabit kalır. Farkettiysen ban table da sadece hwid kayıtlı.
 
Güzel soru, öncelikle A kişisi asd diye kayıtlı hwid ile asla ama asla giremez.
Yeni bir bilgisayar ile çarına girebilir. Girememesi için account ban da atmanız gerekir.
Hwid list de kayıtlı hwid değişir ancak eski biligsayarın hwid sabit kalır. Farkettiysen ban table da sadece hwid kayıtlı.

extra bi ban olayı olmadan kişinin karakter hesap adına bağlı ban tablosundaki hwidinin otomatik replace olup yeni pc dende girememesi sağlanca güzel olurdu
 
toparlamak gerekirse sistem eklenince bi kişi binbirçeşit mac adresi ile oyuna girebilir kişi yasaklansa dahi sadece o anki mac adresi ban list girdisi olur sistem sadece ban tablosundaki mac adreslerinin girişlerini yasaklar bi multiple olupta yasaklanan oyuncunun karakter ismi maca bağlanırsa ozaman s*çar.

MAC BAN SYSTEM: ASD SENİN HWİD NEDİR GÜZELİM
ASD: AHA BU 1454545541(YANLIŞ MAC BAN VERDİM KEKOYA)
MAC BAN SYSTEM:MAC BANINA BAKILMAKSIZIN KARAKTER İSMİNİN MAC BAN LİSTESİNDE GİRDİSİ VAR DE S*KTR GİT LO OYUNDAN

sistem hwid banda mac adresi yerine kişinin ismine göre banlama yapsın herkez mutlu mesut yaşasın :D
 
Son düzenleme:
Forumda olmadığını farkettim. Kurulumu basit, uygulaması pratik bir sistemdir.
HWID_List a düşen hwid'leri banned_hwid_list taşıdığınızı engellenir. IP ban gibi değildir. Modemin fişini çekmek fayda etmez :D

Game/src girelim

packet.h açın.
Aşşağıdakini aratın
Kod:
typedef struct command_login3
{
BYTE header;
char login[LOGIN_MAX_LEN + 1];
char passwd[PASSWD_MAX_LEN + 1];
DWORD adwClientKey[4];
} TPacketCGLogin3;
Bu şekilde değiştirin
Kod:
typedef struct command_login3
{
BYTE header;
char login[LOGIN_MAX_LEN + 1];
char passwd[PASSWD_MAX_LEN + 1];
DWORD adwClientKey[4];
char cHWInfo[255 + 1]; // HW INFO
} TPacketCGLogin3
db.cpp açın
Aşşağıdakini aratın
Kod:
if (nPasswordDiff)
{
LoginFailure(d, "WRONGPWD");
sys_log(0, "   WRONGPWD");
M2_DELETE(pinfo);
}
Altına ekleyin
Kod:
else if (!strcmp(szStatus, "HW_BAN"))
{
LoginFailure(d, "HWBANNED");
sys_log(0, "   HWBANNED");
M2_DELETE(pinfo);
}
Aşşağıdakini aratın
Kod:
char szQuery[1024];
snprintf(szQuery, sizeof(szQuery), "UPDATE account SET last_play=NOW() WHERE id=%u", dwID);
std::auto_ptr<SQLMsg> msg( DBManager::instance().DirectQuery(szQuery) );
Altına ekleyin
char szHwid[255 * 2 + 1];
DBManager::instance().EscapeString(szHwid, sizeof(szHwid), pinfo->cHWInfo, strlen(pinfo->cHWInfo));
//std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery("INSERT INTO account.hwid_list (login, hwid) VALUES('%s', '%s')", pinfo->login, szHwid));
std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery("INSERT IGNORE INTO account.hwid_list SET login='%s', hwid='%s', date=NOW()", pinfo->login, szHwid));
std::auto_ptr<SQLMsg> _hwid_msg(DBManager::instance().DirectQuery("SELECT hwid FROM account.banned_hwid_list"));
if (!_hwid_msg->uiSQLErrno) {
if (_hwid_msg->Get()->uiNumRows) {
while (MYSQL_ROW row_hwid = mysql_fetch_row(_hwid_msg->Get()->pSQLResult)) {
if (!strcmp(row_hwid[0], pinfo->cHWInfo)) {
LoginFailure(d, "HWBANNED");
sys_log(0, "   HWBANNED");
M2_DELETE(pinfo);
}
}
}
}
Client source geçelim
packet.h açın
Aşşağıdakini aratın
Kod:
typedef struct command_login3
{
   BYTE header;
   char name[ID_MAX_NUM + 1];
   char pwd[PASS_MAX_NUM + 1];
   DWORD adwClientKey[4];
} TPacketCGLogin3;
Bu şekilde değiştirin
Kod:
typedef struct command_login3
{
   BYTE header;
   char name[ID_MAX_NUM + 1];
   char pwd[PASS_MAX_NUM + 1];
   DWORD adwClientKey[4];
char cHWInfo[255 + 1]; // HW INFO
} TPacketCGLogin3;
accountconnector.cpp açın
Aşşağıdaki kodu #include ların arasına ekleyin.
Kod:
#include <intrin.h>
#include <Iphlpapi.h>
#pragma comment(lib, "iphlpapi.lib")
Aşşağıdakini aratın
Kod:
bool CAccountConnector::__AuthState_RecvEmpty()
{
BYTE byEmpty;
Recv(sizeof(BYTE), &byEmpty);
return true;
}
Altına ekleyin.
Kod:
const char* GetMacAddress(){
PIP_ADAPTER_INFO AdapterInfo;
DWORD dwBufLen = sizeof(AdapterInfo);
char *mac_addr = (char*)malloc(17);
AdapterInfo = (IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO));
if (!AdapterInfo) {
//printf("Error allocating memory needed to call GetAdaptersinfo\n");
return "";
}
// Make an initial call to GetAdaptersInfo to get the necessary size into the dwBufLen     variable
if (GetAdaptersInfo(AdapterInfo, &dwBufLen) == ERROR_BUFFER_OVERFLOW) {
AdapterInfo = (IP_ADAPTER_INFO *)malloc(dwBufLen);
if (!AdapterInfo) {
//printf("Error allocating memory needed to call GetAdaptersinfo\n");
return "";
}
}
CHAR _MACFORMAT[] = { '%', '0', '2', 'X', ':', '%', '0', '2', 'X', ':', '%', '0', '2', 'X', ':', '%', '0', '2', 'X', ':', '%', '0', '2', 'X', ':', '%', '0', '2', 'X', 0x0 }; //"%02X:%02X:%02X:%02X:%02X:%02X"
if (GetAdaptersInfo(AdapterInfo, &dwBufLen) == NO_ERROR) {
PIP_ADAPTER_INFO pAdapterInfo = AdapterInfo;// Contains pointer to current adapter info
do {
sprintf(mac_addr, _MACFORMAT,
pAdapterInfo->Address[0], pAdapterInfo->Address[1],
pAdapterInfo->Address[2], pAdapterInfo->Address[3],
pAdapterInfo->Address[4], pAdapterInfo->Address[5]);
return mac_addr;
pAdapterInfo = pAdapterInfo->Next;
} while (pAdapterInfo);
}
free(AdapterInfo);
}
Aşşağıdakini aratın
Kod:
strncpy(LoginPacket.pwd, m_strPassword.c_str(), PASS_MAX_NUM);
Altına ekleyin
Kod:
strncpy(LoginPacket.cHWInfo, GetMacAddress(), sizeof(LoginPacket.cHWInfo) - 1);
Aşşağıdakini aratın
Kod:
LoginPacket.pwd[PASS_MAX_NUM] = '\0';
Altına ekleyin
Kod:
LoginPacket.cHWInfo[255] = '\0';
Root.eix-epk açın.
root/intrologin.py girin
Aşşağıdakini aratın
Kod:
"AGELIMIT" : localeInfo.LOGIN_FAILURE_SHUTDOWN_TIME,
Altına ekleyin
Kod:
"HWBANNED" : "Bu bilgisayardan erişim engellendi.",
Mysql'de kayıt table açmak gerekiyor. Bu kodu query olarak okutun. Kod çalışmaz ise ENGINE ve CHARSET bölümünü database'in varsayılanına göre ayarlayın.
Kod:
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `hwid_list`;
CREATE TABLE `hwid_list` (
 `login` varchar(30) DEFAULT NULL,
 `hwid` varchar(255) NOT NULL DEFAULT '',
 `date` datetime DEFAULT NULL,
 PRIMARY KEY (`hwid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5;
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `banned_hwid_list`;
CREATE TABLE `banned_hwid_list` (
 `hwid` varchar(255) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin5;
Anlatımda hata mı var ? bu kısımda ne yapacağız
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst