[Native] sXe-Injected
#1
Native sXe-Injected


[Imagen: sigline.png]

ChangeLog:
  • 1.0 - Lanzamiento de la native

Introduction:

Hacía mucho que no tocaba pawn, y estando aburrido le hice esta native para los que quieran laburar con el sXe y el HID. Solamente se me ocurrieron dos natives, getHID (Devuelve el HID del player) y checkGlobalBan (Devuelve 1 si tuvo algun ban global, 0 si no tuvo ninguno). Se aceptan sugerencias para agregar mas natives y hacer entre todos un buen .inc sobre sXe.

.sma:

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <sockets>

const TASK_REQUEST 1111

new cvar_output;
new 
g_hid[40];
new 
g_socket[33];

new global;

public 
plugin_init() 
{
    
cvar_output =  get_cvar_pointer("__sxei_output");
}

public 
plugin_natives()

    
register_native("getHID""native_getHID"1
    
register_native("checkGlobalBan""native_checkGlobalBan"1


public 
native_getHID(id)
{
    
server_cmd("sxe_userhid #%d"get_user_userid(id))
    
server_exec()
    
get_pcvar_string(cvar_outputg_hidcharsmax(g_hid))
    
    return 
g_hid;
}

public 
native_checkGlobalBan(id)
{
    
server_cmd("sxe_userhid #%d"get_user_userid(id))
    
server_exec()
    
get_pcvar_string(cvar_outputg_hidcharsmax(g_hid))
    
    if(
strlen(g_hid) < 27)
    {
        return 
PLUGIN_HANDLED;
    }
    else {
        global = 
0;
        
send_request(id, global)
    }
    
    return global;
    
}

send_request(id, global)
{    
    new 
error;
    
g_socket[id] = socket_open("onlyarg.com"80SOCKET_TCPerror)
    
    if(!
g_socket[id] || error)
    {
        
log_to_file("sxe_profile.log""Error socket: %d"error)
    }
    
    new 
send[128]
    
formatex(sendcharsmax(send), "GET /sxeprofile/sxe_profile.php?request&hid=%s HTTP/1.0^r^nHost: www.onlyarg.com^r^n^r^n"g_hid[id])
    
    
//socket_send(g_socket[id], send)
    
socket_send(g_socket[id], send0
    
    
set_task(2.0"get_request"id+TASK_REQUEST)
    
    return global;
}

public 
get_request(id, global)
{
    
id -= TASK_REQUEST
    
    
if(socket_change(g_socket[id], 0))
    {
        static 
data[512]
        
data[0] = 0
        socket_recv
(g_socket[id], datacharsmax(data))
        if(!
data[0]) return
        
        new 
len contain(data"Data:")
        
        if(
len == -1)
            
log_to_file("sxe_profile.log""error get_request 2")
        else {
            global = 
1;
        }
    }
    else 
log_to_file("sxe_profile.log""error get_request 1")
    

    
socket_close(g_socket[id])
    
g_socket[id] = 0


Creditos:
  • Destro - Sockets y todo el code para el checkeo de Global Ban


Archivos adjuntos
.sma   Descargar AMXX / sXeNative.sma (Tamaño: 1.84 KB / Descargas: 119)
.inc   sXe.inc (Tamaño: 150 bytes / Descargas: 32)
Responder
#2
Código:
Host: www.onlyarg.com^
Why?
(19/06/2014, 11:08 PM)01011001 escribió: No tiene niveles infinitos, llega hasta 2147483648 (Y despues hace un integer overflow)

(19/06/2014, 11:08 PM)[R]ak escribió: Mis conocimientos aumentaron un 500% con este post
Responder
#3
(09/12/2014, 12:57 PM)Kane escribió:
Código:
Host: www.onlyarg.com^
Why?

Porque está usando el script que creó Destro en vez de usar la url original. La tenía por algún lado pero no recuerdo dónde. Sniffeando el exe del sXe se puede obtener fácilmente si se entra a las opciones.
[Imagen: paypalqr.png]
Responder
#4
Lo que te dijo Nel, use el script que creó Destro, en un futuro lo cambie para usar la url original.
Responder
#5
Igual, por lo que veo, destro tomó la data de: http://www.sxe-injected.com/profile-44/v...4C569-4,AR y obtiene los datos con expresiones regulares, no utiliza la url que menciono... luego la busco.
[Imagen: paypalqr.png]
Responder
#6
joder.. y pensar que esto inicio cuando yo able en un tread sobre hwID .. y matrix lo dibulgo.. y temino aca .. jajaajajaja Gran sonrisa .. si en verdad funciona eso .. es re util...

saludos Gran sonrisa
Responder
#7
http://www.sxe-injected.com/banlist-45
esa seria la URL?
Responder
#8
No, la url original sería:

http://www.sxe-injected.com/profile-44/v/TODOELHID
Responder
#9
Pensandolo mejor, la native está bastante al pedo... si el usuario tuviera globalban no podría entrar al server, osea que a cualquier usuario que se envíe dirá que no está baneado.
[Imagen: paypalqr.png]
Responder
#10
Nono, la native devuelve 0 si no tuvo global ban. Eso es porque algunos servidores excluyen a los usuarios que tuvieron global.
Responder
#11
(11/12/2014, 10:29 AM)wiD escribió: Nono, la native devuelve 0 si no tuvo global ban. Eso es porque algunos servidores excluyen a los usuarios que tuvieron global.
Ah, en el histórico decís? Ahora tiene más sentido.
[Imagen: paypalqr.png]
Responder
#12
(11/12/2014, 12:47 PM)Neeeeeeeeeel.- escribió:
(11/12/2014, 10:29 AM)wiD escribió: Nono, la native devuelve 0 si no tuvo global ban. Eso es porque algunos servidores excluyen a los usuarios que tuvieron global.
Ah, en el histórico decís? Ahora tiene más sentido.

Claro, es el historial. Devuelve 0 si nunca tuvo un ban global, devuelve 1 si lo tiene o si tuvo.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)