MEGAMIND

  • Hero Member
  • Developer of "Web-Net" search engine
  • Posts: 569
how will ya
«  »
hey everyone how can we do a function that if a player join and he has an .asi file or any other external stuff running behind him
so how we will be able to kick him right when he joins?

vitogta

  • Jr. Member
  • Posts: 62
Re: how will ya
« Reply #1,  »
https://forum.vc-mp.org/?topic=5872.0
Quote
Added a GetPlayerModuleList plugin call to get a list of loaded modules (i.e. DLLs) on a player's game without crashing the client. Use the OnPlayerModuleList plugin callback to receive the list and parse it.
so use player.RequestModuleList() in onplayerjoin and use event OnPlayerModuleList(player, str) to get list of files

But note - after all servers will start to kick players for .asi files obviously there will be no any player with .asi files in his report log and cheaters will use spoofing to send to server fake data to hide their .asi/.dlls or another methods.

MEGAMIND

  • Hero Member
  • Developer of "Web-Net" search engine
  • Posts: 569
Re: how will ya
« Reply #2,  »
Quote from vitogta on July 4th, 01:32 PM
https://forum.vc-mp.org/?topic=5872.0
Quote
Added a GetPlayerModuleList plugin call to get a list of loaded modules (i.e. DLLs) on a player's game without crashing the client. Use the OnPlayerModuleList plugin callback to receive the list and parse it.
so use player.RequestModuleList() in onplayerjoin and use event OnPlayerModuleList(player, str) to get list of files

But note - after all servers will start to kick players for .asi files obviously there will be no any player with .asi files in his report log and cheaters will use spoofing to send to server fake data to hide their .asi/.dlls or another methods.
ok i got ur point so how will we still able to get him kicked when we get to know using your system that he/she uses .asi??

vitogta

  • Jr. Member
  • Posts: 62
Re: how will ya
« Reply #3,  »
Code: [Select]
function onPlayerJoin(player){
player.RequestModuleList();
}
function onPlayerModuleList(player, list){
local rows = ::split(list, "\n");
foreach(row in rows){
row = row.tolower();
local row_search = ::regexp(@"\w+\.asi$").search(row);
if(null != row_search){
local asi = row.slice(row_search.begin,row_search.end);
if("mp3dec.asi" != asi){
player.Kick();
return;
}
}
}
}

MEGAMIND

  • Hero Member
  • Developer of "Web-Net" search engine
  • Posts: 569
Re: how will ya
« Reply #4,  »
Quote from vitogta on July 5th, 10:43 AM
Code: [Select]
function onPlayerJoin(player){
player.RequestModuleList();
}
function onPlayerModuleList(player, list){
local rows = ::split(list, "\n");
foreach(row in rows){
row = row.tolower();
local row_search = ::regexp(@"\w+\.asi$").search(row);
if(null != row_search){
local asi = row.slice(row_search.begin,row_search.end);
if("mp3dec.asi" != asi){
player.Kick();
return;
}
}
}
}
it kicks without any reason i dont even have an .asi , plus i removed that mp3dec.asi to other asi name which still gets me kicked even other players get kicked without any reason

vitogta

  • Jr. Member
  • Posts: 62
Re: how will ya
« Reply #5,  »
Quote from MEGAMIND on July 5th, 11:31 AM
it kicks without any reason i dont even have an .asi , plus i removed that mp3dec.asi to other asi name which still gets me kicked even other players get kicked without any reason
then there is some .asi files, i dont know. you can check reason in such way:
Code: [Select]
if("mp3dec.asi" != asi){
 Message(player.Name +" kicked for "+ asi);
 player.Kick();