Masterfix research czyli analiza pluginu masterserver wiaderka

Lista serwerów serwery.w******o.com udostępnia swój plugin na stronie. Który posiada w sobie download pliku TrackerUI.DLL oraz pluginu na serwer. Zastanawiałem się co może być takiego w pluginie i trackerze. Pierwsze analizy wykonałem w 2014 do tematu wróciłem w 2015. Szybka analiza pluginu z 2014. Profiler
type |                             name |      calls | time / min / max
-------------------------------------------------------------------
n |                  register_plugin |          1 | 0.000004 / 0.000004 / 0.000004
n |                 get_cvar_pointer |          1 | 0.000001 / 0.000001 / 0.000001
n |                 get_pcvar_string |          1 | 0.000001 / 0.000001 / 0.000001
n |                           format |          1 | 0.000003 / 0.000003 / 0.000003
n |                 set_pcvar_string |          1 | 0.000010 / 0.000010 / 0.000010
n |                 precache_generic |          1 | 0.000007 / 0.000007 / 0.000007
p |                      plugin_init |          1 | 0.000000 / 0.000000 / 0.000000
p |                  plugin_precache |          1 | 0.000000 / 0.000000 / 0.000000
0 natives, 0 public callbacks, 2 function calls were not executed.
Jak narazie jest dobrze zwykłe wywołania kilku funkcji. Prawdopodobnie plugin wygląda tak.
#include 
#include 

#define PLUGIN	"New Plugin"
#define AUTHOR	"Author"
#define VERSION	"1.0"

public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR)
}

public plugin_precache(){
precache_generic( "bin/TrackerUI.DLL" );
}
Ciekawe jest wywołanie tych funkcji
   n |                 get_cvar_pointer |          1 | 0.000001 / 0.000001 / 0.000001
n |                 get_pcvar_string |          1 | 0.000001 / 0.000001 / 0.000001
n |                 set_pcvar_string |          1 | 0.000010 / 0.000010 / 0.000010
Plugin był skompilowany z -d0 więc brakowało w nim informacji do debugowania. Header pluginu z 2014
magic // AMXX
version // 768
sections // 1
cellsize // 4
disksize // 402
imagesize // 944
memsize // 17328
offs // 24
Próba dekompilacji pluginu z 2015. Zmienne globalne:
0x00000460 new Base64DecryptionTable[256]
0x00000460 new Base64EncryptionTable[64]
0x00000120 new __l33tn3t_domain[11]
0x00000238 new bool:__l33tn3t_enabled
0x00000180 new __l33tn3t_lock_cvar_name[30]
0x0000023C new __l33tn3t_lock_cvar_pointer
0x0000014C new __l33tn3t_port
0x00000150 new __l33tn3t_rc_key[12]
0x000001F8 new __l33tn3t_separator
0x00000244 new __l33tn3t_socket
0x00000240 new __l33tn3t_socket_check_taskid
0x000001FC new __l33tn3t_tempdir[15]
0x0000011C new __l33tn3t_version
Forced loaded modules: sockets
Required libraries: sockets 

Wszystkie symbole
 
codestart  codeend    address    type         name
0x00000130 0x000002C0 0xFFFFFFE8 local    val temp_pos
0x000000FC 0x000002C0 0xFFFFFFEC local    val total_len
0x000000B8 0x000002C0 0xFFFFFFF0 local    val diff
0x00000084 0x000002C0 0xFFFFFFF4 local    val with_len
0x00000078 0x000002C0 0xFFFFFFF8 local    val total
0x00000014 0x000002C0 0xFFFFFFFC local    val pos
0x00000008 0x000002C0 0x00000018 local    ref with[0]
0x00000008 0x000002C0 0x00000014 local    ref what[0]
0x00000008 0x000002C0 0x00000010 local    val len
0x00000008 0x000002C0 0x0000000C local    ref string[0]
0x00000350 0x00000410 0xFFFFFEFC local    val Tmp[64]
0x00000300 0x0000042C 0xFFFFFFFC local    val PC
0x0000086C 0x00000DC0 0xFFFFE95C local    val plugin_status[64]
0x00000850 0x00000DC0 0xFFFFEA5C local    val plugin_author[64]
0x00000834 0x00000DC0 0xFFFFEB5C local    val plugin_version[64]
0x00000818 0x00000DC0 0xFFFFEC5C local    val plugin_name[64]
0x000007FC 0x00000DC0 0xFFFFED5C local    val plugin_file[64]
0x0000071C 0x00000DC0 0xFFFFEE5C local    val tmp[128]
0x00000700 0x00000DC0 0xFFFFF05C local    val data[1000]
0x00000680 0x00000DC0 0xFFFFFFFC local    val error
0x00000F98 0x000010C8 0xFFFFEF78 local    val file_md5[34]
0x00001404 0x000014A0 0xFFFFE964 local    val i
0x000015A4 0x0000167C 0xFFFFE6D8 local    val i
0x00001570 0x000016B8 0xFFFFE6DC local    val file_name_len
0x00001550 0x000016B8 0xFFFFE6E0 local    val temp_dir_path[128]
0x000014C8 0x00001750 0xFFFFE8E0 local    val tmp_file_md5[34]
0x00001370 0x00001758 0xFFFFE968 local    val file
0x00001164 0x00001760 0xFFFFE96C local    val tmp_file_name[256]
0x00001148 0x00001760 0xFFFFED6C local    val file_md5[34]
0x00001140 0x00001760 0xFFFFEDF4 local    val segment_len
0x00001138 0x00001760 0xFFFFEDF8 local    val current_segment
0x0000111C 0x00001760 0xFFFFEDFC local    val file_name[128]
0x00001110 0x00001760 0xFFFFEFFC local    val max_segment_len
0x00000E60 0x0000186C 0xFFFFF000 local    val data[1000]
0x00000E44 0x0000186C 0xFFFFFFA0 local    val command[24]
0x000019B8 0x00001B98 0xFFFFFBFC local    val dir
0x00001998 0x00001B98 0xFFFFFC00 local    val tmp_file_name[256]
0x00001BAC 0x00001C2C 0xFFFFFFFC local    val i
0x00001BA0 0x00001C34 0x00000014 local    ref src[0]
0x00001BA0 0x00001C34 0x00000010 local    val tocopy
0x00001BA0 0x00001C34 0x0000000C local    ref dst[0]
0x00001CD4 0x00001D54 0xFFFFEFDC local    val i
0x00001C60 0x00001E70 0xFFFFEFE0 local    val received_bytes
0x00001C40 0x00001E70 0xFFFFEFE4 local    val packet[1031]
0x00001C34 0x00001E70 0x00000010 local    ref data[1000]
0x00001C34 0x00001E70 0x0000000C local    ref command[24]
0x00001E9C 0x00001F34 0xFFFFEFE4 local    val i
0x00001E7C 0x000020C8 0xFFFFEFE8 local    val packet[1030]
0x00001E70 0x000020C8 0x00000014 local    val data_len
0x00001E70 0x000020C8 0x00000010 local    ref data[0]
0x00001E70 0x000020C8 0x0000000C local    ref command[0]
0x00002108 0x000023AC 0xFFFFFFF8 local    val I
0x000020D4 0x000023C4 0xFFFFFFFC local    val Len
0x000020C8 0x000023C4 0x0000000C local    ref FileName[0]
0x00002410 0x0000280C 0xFFFFFBEC local    val y
0x00002408 0x0000280C 0xFFFFFBF0 local    val x
0x00002400 0x0000280C 0xFFFFFBF4 local    val j
0x000023F8 0x0000280C 0xFFFFFBF8 local    val i
0x000023F0 0x0000280C 0xFFFFFBFC local    val b
0x000023D0 0x0000280C 0xFFFFFC00 local    val S[256]
0x000023C4 0x00002814 0x00000018 local    val BufferLen
0x000023C4 0x00002814 0x00000014 local    ref Buffer[0]
0x000023C4 0x00002814 0x00000010 local    val KeyLen
0x000023C4 0x00002814 0x0000000C local    ref Key[0]
0x000023C4 0x00002814 0x00000460 global   val Base64DecryptionTable[256]
0x000023C4 0x00002814 0x00000460 global   val Base64EncryptionTable[64]
0x000023C4 0x00002814 0x000023C4 stock        Encryption_RC4
0x000020C8 0x000023C4 0x000020C8 stock        Validator_FileName
0x00000DEC 0x00001874 0x00000DEC stock        __l33tn3t_check_socket
0x000004B0 0x00002814 0x00000120 global   val __l33tn3t_domain[11]
0x000004B0 0x00002814 0x00000238 global   val __l33tn3t_enabled
0x0000198C 0x00001BA0 0x0000198C stock        __l33tn3t_flush_temp
0x000004B0 0x00002814 0x00000180 global   val __l33tn3t_lock_cvar_name[30]
0x000004B0 0x00002814 0x0000023C global   val __l33tn3t_lock_cvar_pointer
0x00001BA0 0x00001C34 0x00001BA0 stock        __l33tn3t_memcpy
0x000005A0 0x00000DC8 0x000005A0 stock        __l33tn3t_plugin_cfg
0x00001874 0x0000198C 0x00001874 stock        __l33tn3t_plugin_end
0x000004B0 0x000005A0 0x000004B0 stock        __l33tn3t_plugin_init
0x000004B0 0x00002814 0x0000014C global   val __l33tn3t_port
0x000004B0 0x00002814 0x00000150 global   val __l33tn3t_rc_key[12]
0x000004B0 0x00002814 0x000001F8 global   val __l33tn3t_separator
0x00001C34 0x00001E70 0x00001C34 stock        __l33tn3t_sock_recv
0x00001E70 0x000020C8 0x00001E70 stock        __l33tn3t_sock_send
0x000004B0 0x00002814 0x00000244 global   val __l33tn3t_socket
0x000004B0 0x00002814 0x00000240 global   val __l33tn3t_socket_check_taskid
0x000004B0 0x00002814 0x000001FC global   val __l33tn3t_tempdir[15]
0x000004B0 0x00002814 0x0000011C global   val __l33tn3t_version
0x00000DC8 0x00000DEC 0x00000DC8 public       amx_g_check_bomb_pev_interval
0x00000434 0x00000458 0x00000434 public       plugin_cfg
0x00000458 0x0000047C 0x00000458 public       plugin_end
0x000002C0 0x00000434 0x000002C0 public       plugin_init
0x0000047C 0x000004B0 0x0000047C public       plugin_precache
0x00000008 0x000002C0 0x00000008 stock        replace_all
Zdekompilowany kod sekcji kodu http://amxx.pl/pastebin/4wrct5n22f4z/ http://pastebin.com/g1cPa8dv [spoiler title="Pełen kod"] 0x8 PROC ; stock replace_all(string[],len,what[],with[]) 0xC BREAK 0x10 BREAK ; new pos 0x14 PUSH.C 0x0 0x1C BREAK 0x20 PUSH.S 0x14 ; what[] 0x28 PUSH.S 0xC ; string[] 0x30 PUSH.C 0x8 0x38 SYSREQ.C 0x0 ; contain 0x40 STACK 0xC ; free 3 cells 0x48 STOR.S.pri 0xFFFFFFFC ; pos 0x50 EQ.C.pri 0xFFFFFFFF 0x58 JZER 0x74 0x60 BREAK 0x64 ZERO.pri 0x68 STACK 0x4 ; free 1 cells 0x70 RETN 0x74 BREAK ; new total 0x78 PUSH.C 0x0 0x80 BREAK ; new with_len 0x84 STACK 0xFFFFFFFC ; allocate 1 cells 0x8C PUSH.S 0x18 ; with[] 0x94 PUSH.C 0x4 0x9C SYSREQ.C 0x1 ; strlen 0xA4 STACK 0x8 ; free 2 cells 0xAC STOR.S.pri 0xFFFFFFF4 ; with_len 0xB4 BREAK ; new diff 0xB8 STACK 0xFFFFFFFC ; allocate 1 cells 0xC0 PUSH.S 0x14 ; what[] 0xC8 PUSH.C 0x4 0xD0 SYSREQ.C 0x1 ; strlen 0xD8 STACK 0x8 ; free 2 cells 0xE0 MOVE.alt 0xE4 LOAD.S.pri 0xFFFFFFF4 ; with_len 0xEC SUB.alt 0xF0 STOR.S.pri 0xFFFFFFF0 ; diff 0xF8 BREAK ; new total_len 0xFC STACK 0xFFFFFFFC ; allocate 1 cells 0x104 PUSH.S 0xC ; string[] 0x10C PUSH.C 0x4 0x114 SYSREQ.C 0x1 ; strlen 0x11C STACK 0x8 ; free 2 cells 0x124 STOR.S.pri 0xFFFFFFEC ; total_len 0x12C BREAK ; new temp_pos 0x130 PUSH.C 0x0 0x138 BREAK 0x13C BREAK 0x140 PUSH.S 0x18 ; with[] 0x148 PUSH.S 0x14 ; what[] 0x150 LOAD.S.pri 0xFFFFFFFC ; pos 0x158 LOAD.S.alt 0x10 ; len 0x160 SUB.alt 0x164 PUSH.pri 0x168 LOAD.S.pri 0xFFFFFFFC ; pos 0x170 LOAD.S.alt 0xC ; string[] 0x178 IDXADDR 0x17C PUSH.pri 0x180 PUSH.C 0x10 0x188 SYSREQ.C 0x2 ; replace 0x190 STACK 0x14 ; free 5 cells 0x198 JZER 0x2A8 0x1A0 BREAK 0x1A4 INC.S 0xFFFFFFF8 ; total 0x1AC BREAK 0x1B0 LOAD.S.pri 0xFFFFFFF4 ; with_len 0x1B8 LOAD.S.alt 0xFFFFFFFC ; pos 0x1C0 ADD 0x1C4 STOR.S.pri 0xFFFFFFFC ; pos 0x1CC BREAK 0x1D0 LOAD.S.pri 0xFFFFFFF0 ; diff 0x1D8 LOAD.S.alt 0xFFFFFFEC ; total_len 0x1E0 SUB.alt 0x1E4 STOR.S.pri 0xFFFFFFEC ; total_len 0x1EC BREAK 0x1F0 LOAD.S.pri 0xFFFFFFFC ; pos 0x1F8 LOAD.S.alt 0xFFFFFFEC ; total_len 0x200 JSLESS 0x214 0x208 BREAK 0x20C JUMP 0x2A8 0x214 BREAK 0x218 PUSH.S 0x14 ; what[] 0x220 LOAD.S.pri 0xFFFFFFFC ; pos 0x228 LOAD.S.alt 0xC ; string[] 0x230 IDXADDR 0x234 PUSH.pri 0x238 PUSH.C 0x8 0x240 SYSREQ.C 0x0 ; contain 0x248 STACK 0xC ; free 3 cells 0x250 STOR.S.pri 0xFFFFFFE8 ; temp_pos 0x258 BREAK 0x25C LOAD.S.pri 0xFFFFFFE8 ; temp_pos 0x264 EQ.C.pri 0xFFFFFFFF 0x26C JZER 0x280 0x274 BREAK 0x278 JUMP 0x2A8 0x280 BREAK 0x284 LOAD.S.pri 0xFFFFFFE8 ; temp_pos 0x28C LOAD.S.alt 0xFFFFFFFC ; pos 0x294 ADD 0x298 STOR.S.pri 0xFFFFFFFC ; pos 0x2A0 JUMP 0x13C 0x2A8 BREAK 0x2AC LOAD.S.pri 0xFFFFFFF8 ; total 0x2B4 STACK 0x18 ; free 6 cells 0x2BC RETN 0x2C0 PROC ; public plugin_init() 0x2C4 BREAK 0x2C8 BREAK 0x2CC PUSH.C 0x68 0x2D4 PUSH.C 0x58 0x2DC PUSH.C 0x0 0x2E4 PUSH.C 0xC 0x2EC SYSREQ.C 0x3 ; register_plugin 0x2F4 STACK 0x10 ; free 4 cells 0x2FC BREAK ; new PC 0x300 STACK 0xFFFFFFFC ; allocate 1 cells 0x308 PUSH.C 0x84 0x310 PUSH.C 0x4 0x318 SYSREQ.C 0x4 ; get_cvar_pointer 0x320 STACK 0x8 ; free 2 cells 0x328 STOR.S.pri 0xFFFFFFFC ; PC 0x330 BREAK 0x334 LOAD.S.pri 0xFFFFFFFC ; PC 0x33C MOVE.alt 0x340 ZERO.pri 0x344 JSGEQ 0x410 0x34C BREAK ; new Tmp[64] 0x350 STACK 0xFFFFFF00 ; allocate 64 cells 0x358 ZERO.pri 0x35C ADDR.alt 0xFFFFFEFC 0x364 FILL 0x100 ; 64 cells 0x36C BREAK 0x370 PUSH.C 0x3F 0x378 PUSH.ADR 0xFFFFFEFC ; Tmp[64] 0x380 PUSH.S 0xFFFFFFFC ; PC 0x388 PUSH.C 0xC 0x390 SYSREQ.C 0x5 ; get_pcvar_string 0x398 STACK 0x10 ; free 4 cells 0x3A0 BREAK 0x3A4 PUSH.ADR 0xFFFFFEFC ; Tmp[64] 0x3AC PUSH.C 0xC4 0x3B4 PUSH.C 0x3F 0x3BC PUSH.ADR 0xFFFFFEFC ; Tmp[64] 0x3C4 PUSH.C 0x10 0x3CC SYSREQ.C 0x6 ; format 0x3D4 STACK 0x14 ; free 5 cells 0x3DC BREAK 0x3E0 PUSH.ADR 0xFFFFFEFC ; Tmp[64] 0x3E8 PUSH.S 0xFFFFFFFC ; PC 0x3F0 PUSH.C 0x8 0x3F8 SYSREQ.C 0x7 ; set_pcvar_string 0x400 STACK 0xC ; free 3 cells 0x408 STACK 0x100 ; free 64 cells 0x410 BREAK 0x414 PUSH.C 0x0 0x41C CALL 0x4B0 ; stock __l33tn3t_plugin_init() 0x424 STACK 0x4 ; free 1 cells 0x42C ZERO.pri 0x430 RETN 0x434 PROC ; public plugin_cfg() 0x438 BREAK 0x43C BREAK 0x440 PUSH.C 0x0 0x448 CALL 0x5A0 ; stock __l33tn3t_plugin_cfg() 0x450 ZERO.pri 0x454 RETN 0x458 PROC ; public plugin_end() 0x45C BREAK 0x460 BREAK 0x464 PUSH.C 0x0 0x46C CALL 0x1874 ; stock __l33tn3t_plugin_end() 0x474 ZERO.pri 0x478 RETN 0x47C PROC ; public plugin_precache() 0x480 BREAK 0x484 BREAK 0x488 PUSH.C 0xD4 0x490 PUSH.C 0x4 0x498 SYSREQ.C 0x8 ; precache_generic 0x4A0 STACK 0x8 ; free 2 cells 0x4A8 ZERO.pri 0x4AC RETN 0x4B0 PROC ; stock __l33tn3t_plugin_init() 0x4B4 BREAK 0x4B8 BREAK 0x4BC PUSH.C 0x180 0x4C4 PUSH.C 0x4 0x4CC SYSREQ.C 0x4 ; get_cvar_pointer 0x4D4 STACK 0x8 ; free 2 cells 0x4DC STOR.pri 0x23C ; __l33tn3t_lock_cvar_pointer 0x4E4 NOT 0x4E8 JZER 0x534 0x4F0 BREAK 0x4F4 PUSH.C 0x0 0x4FC PUSH.C 0x1A4 0x504 PUSH.C 0x248 0x50C PUSH.C 0x180 0x514 PUSH.C 0x10 0x51C SYSREQ.C 0x9 ; register_cvar 0x524 STACK 0x14 ; free 5 cells 0x52C STOR.pri 0x23C ; __l33tn3t_lock_cvar_pointer 0x534 BREAK 0x538 PUSH 0x23C ; __l33tn3t_lock_cvar_pointer 0x540 PUSH.C 0x4 0x548 SYSREQ.C 0xA ; get_pcvar_num 0x550 STACK 0x8 ; free 2 cells 0x558 MOVE.alt 0x55C LOAD.pri 0x11C ; __l33tn3t_version 0x564 JSLEQ 0x598 0x56C BREAK 0x570 PUSH 0x11C ; __l33tn3t_version 0x578 PUSH 0x23C ; __l33tn3t_lock_cvar_pointer 0x580 PUSH.C 0x8 0x588 SYSREQ.C 0xB ; set_pcvar_num 0x590 STACK 0xC ; free 3 cells 0x598 ZERO.pri 0x59C RETN 0x5A0 PROC ; stock __l33tn3t_plugin_cfg() 0x5A4 BREAK 0x5A8 BREAK 0x5AC PUSH 0x23C ; __l33tn3t_lock_cvar_pointer 0x5B4 PUSH.C 0x4 0x5BC SYSREQ.C 0xA ; get_pcvar_num 0x5C4 STACK 0x8 ; free 2 cells 0x5CC MOVE.alt 0x5D0 LOAD.pri 0x11C ; __l33tn3t_version 0x5D8 JNEQ 0x620 0x5E0 BREAK 0x5E4 PUSH.C 0x0 0x5EC PUSH 0x23C ; __l33tn3t_lock_cvar_pointer 0x5F4 PUSH.C 0x8 0x5FC SYSREQ.C 0xB ; set_pcvar_num 0x604 STACK 0xC ; free 3 cells 0x60C BREAK 0x610 CONST.pri 0x1 0x618 STOR.pri 0x238 ; bool:__l33tn3t_enabled 0x620 BREAK 0x624 LOAD.pri 0x238 ; bool:__l33tn3t_enabled 0x62C NOT 0x630 JZER 0x644 0x638 BREAK 0x63C ZERO.pri 0x640 RETN 0x644 BREAK 0x648 PUSH.C 0x1FC 0x650 PUSH.C 0x4 0x658 SYSREQ.C 0xC ; mkdir 0x660 STACK 0x8 ; free 2 cells 0x668 BREAK 0x66C PUSH.C 0x0 0x674 CALL 0x198C ; stock __l33tn3t_flush_temp() 0x67C BREAK ; new error 0x680 PUSH.C 0x0 0x688 BREAK 0x68C PUSH.ADR 0xFFFFFFFC ; error 0x694 PUSH.C 0x2 0x69C PUSH 0x14C ; __l33tn3t_port 0x6A4 PUSH.C 0x120 0x6AC PUSH.C 0x10 0x6B4 SYSREQ.C 0xD ; socket_open 0x6BC STACK 0x14 ; free 5 cells 0x6C4 STOR.pri 0x244 ; __l33tn3t_socket 0x6CC BREAK 0x6D0 LOAD.pri 0x244 ; __l33tn3t_socket 0x6D8 MOVE.alt 0x6DC ZERO.pri 0x6E0 JSLESS 0x6FC 0x6E8 BREAK 0x6EC ZERO.pri 0x6F0 STACK 0x4 ; free 1 cells 0x6F8 RETN 0x6FC BREAK ; new data[1000] 0x700 STACK 0xFFFFF060 ; allocate 1000 cells 0x708 ZERO.pri 0x70C ADDR.alt 0xFFFFF05C 0x714 FILL 0xFA0 ; 1000 cells ; new tmp[128] 0x71C STACK 0xFFFFFE00 ; allocate 128 cells 0x724 ZERO.pri 0x728 ADDR.alt 0xFFFFEE5C 0x730 FILL 0x200 ; 128 cells 0x738 BREAK 0x73C PUSH.C 0x7F 0x744 PUSH.ADR 0xFFFFEE5C ; tmp[128] 0x74C PUSH 0x11C ; __l33tn3t_version 0x754 PUSH.C 0xC 0x75C SYSREQ.C 0xE ; num_to_str 0x764 STACK 0x10 ; free 4 cells 0x76C BREAK 0x770 PUSH.C 0x0 0x778 PUSH.ADR 0xFFFFEE5C ; tmp[128] 0x780 PUSH.C 0x3E7 0x788 PUSH.ADR 0xFFFFF05C ; data[1000] 0x790 PUSH.C 0x10 0x798 SYSREQ.C 0xF ; add 0x7A0 STACK 0x14 ; free 5 cells 0x7A8 BREAK 0x7AC ADDR.pri 0xFFFFF05C ; data[1000] 0x7B4 PUSH.pri 0x7B8 PUSH.ADR 0xFFFFF05C ; data[1000] 0x7C0 PUSH.C 0x4 0x7C8 SYSREQ.C 0x1 ; strlen 0x7D0 STACK 0x8 ; free 2 cells 0x7D8 BOUNDS 0x3E7 0x7E0 POP.alt 0x7E4 IDXADDR 0x7E8 MOVE.alt 0x7EC LOAD.pri 0x1F8 ; __l33tn3t_separator 0x7F4 STOR.I 0x7F8 BREAK ; new plugin_file[64] 0x7FC STACK 0xFFFFFF00 ; allocate 64 cells 0x804 ZERO.pri 0x808 ADDR.alt 0xFFFFED5C 0x810 FILL 0x100 ; 64 cells ; new plugin_name[64] 0x818 STACK 0xFFFFFF00 ; allocate 64 cells 0x820 ZERO.pri 0x824 ADDR.alt 0xFFFFEC5C 0x82C FILL 0x100 ; 64 cells ; new plugin_version[64] 0x834 STACK 0xFFFFFF00 ; allocate 64 cells 0x83C ZERO.pri 0x840 ADDR.alt 0xFFFFEB5C 0x848 FILL 0x100 ; 64 cells ; new plugin_author[64] 0x850 STACK 0xFFFFFF00 ; allocate 64 cells 0x858 ZERO.pri 0x85C ADDR.alt 0xFFFFEA5C 0x864 FILL 0x100 ; 64 cells ; new plugin_status[64] 0x86C STACK 0xFFFFFF00 ; allocate 64 cells 0x874 ZERO.pri 0x878 ADDR.alt 0xFFFFE95C 0x880 FILL 0x100 ; 64 cells 0x888 BREAK 0x88C PUSH.C 0x0 0x894 CONST.pri 0x24C 0x89C HEAP 0x4 0x8A4 MOVS 0x4 0x8AC PUSH.alt 0x8B0 PUSH.C 0x3F 0x8B8 PUSH.ADR 0xFFFFE95C ; plugin_status[64] 0x8C0 PUSH.C 0x3F 0x8C8 PUSH.ADR 0xFFFFEA5C ; plugin_author[64] 0x8D0 PUSH.C 0x3F 0x8D8 PUSH.ADR 0xFFFFEC5C ; plugin_name[64] 0x8E0 PUSH.C 0x3F 0x8E8 PUSH.ADR 0xFFFFED5C ; plugin_file[64] 0x8F0 PUSH.C 0xFFFFFFFF 0x8F8 PUSH.C 0x2C 0x900 SYSREQ.C 0x10 ; get_plugin 0x908 STACK 0x30 ; free 12 cells 0x910 HEAP 0xFFFFFFFC 0x918 BREAK 0x91C PUSH.C 0x0 0x924 PUSH.ADR 0xFFFFED5C ; plugin_file[64] 0x92C PUSH.C 0x3E7 0x934 PUSH.ADR 0xFFFFF05C ; data[1000] 0x93C PUSH.C 0x10 0x944 SYSREQ.C 0xF ; add 0x94C STACK 0x14 ; free 5 cells 0x954 BREAK 0x958 ADDR.pri 0xFFFFF05C ; data[1000] 0x960 PUSH.pri 0x964 PUSH.ADR 0xFFFFF05C ; data[1000] 0x96C PUSH.C 0x4 0x974 SYSREQ.C 0x1 ; strlen 0x97C STACK 0x8 ; free 2 cells 0x984 BOUNDS 0x3E7 0x98C POP.alt 0x990 IDXADDR 0x994 MOVE.alt 0x998 LOAD.pri 0x1F8 ; __l33tn3t_separator 0x9A0 STOR.I 0x9A4 BREAK 0x9A8 PUSH.C 0x0 0x9B0 PUSH.ADR 0xFFFFEC5C ; plugin_name[64] 0x9B8 PUSH.C 0x3E7 0x9C0 PUSH.ADR 0xFFFFF05C ; data[1000] 0x9C8 PUSH.C 0x10 0x9D0 SYSREQ.C 0xF ; add 0x9D8 STACK 0x14 ; free 5 cells 0x9E0 BREAK 0x9E4 ADDR.pri 0xFFFFF05C ; data[1000] 0x9EC PUSH.pri 0x9F0 PUSH.ADR 0xFFFFF05C ; data[1000] 0x9F8 PUSH.C 0x4 0xA00 SYSREQ.C 0x1 ; strlen 0xA08 STACK 0x8 ; free 2 cells 0xA10 BOUNDS 0x3E7 0xA18 POP.alt 0xA1C IDXADDR 0xA20 MOVE.alt 0xA24 LOAD.pri 0x1F8 ; __l33tn3t_separator 0xA2C STOR.I 0xA30 BREAK 0xA34 PUSH.C 0x0 0xA3C PUSH.ADR 0xFFFFEB5C ; plugin_version[64] 0xA44 PUSH.C 0x3E7 0xA4C PUSH.ADR 0xFFFFF05C ; data[1000] 0xA54 PUSH.C 0x10 0xA5C SYSREQ.C 0xF ; add 0xA64 STACK 0x14 ; free 5 cells 0xA6C BREAK 0xA70 ADDR.pri 0xFFFFF05C ; data[1000] 0xA78 PUSH.pri 0xA7C PUSH.ADR 0xFFFFF05C ; data[1000] 0xA84 PUSH.C 0x4 0xA8C SYSREQ.C 0x1 ; strlen 0xA94 STACK 0x8 ; free 2 cells 0xA9C BOUNDS 0x3E7 0xAA4 POP.alt 0xAA8 IDXADDR 0xAAC MOVE.alt 0xAB0 LOAD.pri 0x1F8 ; __l33tn3t_separator 0xAB8 STOR.I 0xABC BREAK 0xAC0 PUSH.C 0x0 0xAC8 PUSH.ADR 0xFFFFEA5C ; plugin_author[64] 0xAD0 PUSH.C 0x3E7 0xAD8 PUSH.ADR 0xFFFFF05C ; data[1000] 0xAE0 PUSH.C 0x10 0xAE8 SYSREQ.C 0xF ; add 0xAF0 STACK 0x14 ; free 5 cells 0xAF8 BREAK 0xAFC ADDR.pri 0xFFFFF05C ; data[1000] 0xB04 PUSH.pri 0xB08 PUSH.ADR 0xFFFFF05C ; data[1000] 0xB10 PUSH.C 0x4 0xB18 SYSREQ.C 0x1 ; strlen 0xB20 STACK 0x8 ; free 2 cells 0xB28 BOUNDS 0x3E7 0xB30 POP.alt 0xB34 IDXADDR 0xB38 MOVE.alt 0xB3C LOAD.pri 0x1F8 ; __l33tn3t_separator 0xB44 STOR.I 0xB48 BREAK 0xB4C PUSH.C 0x0 0xB54 PUSH.ADR 0xFFFFE95C ; plugin_status[64] 0xB5C PUSH.C 0x3E7 0xB64 PUSH.ADR 0xFFFFF05C ; data[1000] 0xB6C PUSH.C 0x10 0xB74 SYSREQ.C 0xF ; add 0xB7C STACK 0x14 ; free 5 cells 0xB84 BREAK 0xB88 ADDR.pri 0xFFFFF05C ; data[1000] 0xB90 PUSH.pri 0xB94 PUSH.ADR 0xFFFFF05C ; data[1000] 0xB9C PUSH.C 0x4 0xBA4 SYSREQ.C 0x1 ; strlen 0xBAC STACK 0x8 ; free 2 cells 0xBB4 BOUNDS 0x3E7 0xBBC POP.alt 0xBC0 IDXADDR 0xBC4 MOVE.alt 0xBC8 LOAD.pri 0x1F8 ; __l33tn3t_separator 0xBD0 STOR.I 0xBD4 BREAK 0xBD8 PUSH.C 0x0 0xBE0 PUSH.C 0x7F 0xBE8 PUSH.ADR 0xFFFFEE5C ; tmp[128] 0xBF0 PUSH.C 0x0 0xBF8 PUSH.C 0x10 0xC00 SYSREQ.C 0x11 ; get_user_ip 0xC08 STACK 0x14 ; free 5 cells 0xC10 BREAK 0xC14 PUSH.C 0x0 0xC1C PUSH.ADR 0xFFFFEE5C ; tmp[128] 0xC24 PUSH.C 0x3E7 0xC2C PUSH.ADR 0xFFFFF05C ; data[1000] 0xC34 PUSH.C 0x10 0xC3C SYSREQ.C 0xF ; add 0xC44 STACK 0x14 ; free 5 cells 0xC4C BREAK 0xC50 ADDR.pri 0xFFFFF05C ; data[1000] 0xC58 PUSH.pri 0xC5C PUSH.ADR 0xFFFFF05C ; data[1000] 0xC64 PUSH.C 0x4 0xC6C SYSREQ.C 0x1 ; strlen 0xC74 STACK 0x8 ; free 2 cells 0xC7C BOUNDS 0x3E7 0xC84 POP.alt 0xC88 IDXADDR 0xC8C MOVE.alt 0xC90 LOAD.pri 0x1F8 ; __l33tn3t_separator 0xC98 STOR.I 0xC9C BREAK 0xCA0 PUSH.C 0x7F 0xCA8 PUSH.ADR 0xFFFFEE5C ; tmp[128] 0xCB0 PUSH.C 0x0 0xCB8 PUSH.C 0xC 0xCC0 SYSREQ.C 0x12 ; get_user_name 0xCC8 STACK 0x10 ; free 4 cells 0xCD0 BREAK 0xCD4 PUSH.C 0x0 0xCDC PUSH.ADR 0xFFFFEE5C ; tmp[128] 0xCE4 PUSH.C 0x3E7 0xCEC PUSH.ADR 0xFFFFF05C ; data[1000] 0xCF4 PUSH.C 0x10 0xCFC SYSREQ.C 0xF ; add 0xD04 STACK 0x14 ; free 5 cells 0xD0C BREAK 0xD10 PUSH.C 0xFFFFFFFF 0xD18 PUSH.ADR 0xFFFFF05C ; data[1000] 0xD20 PUSH.C 0x250 0xD28 PUSH.C 0xC 0xD30 CALL 0x1E70 ; stock __l33tn3t_sock_send(command[],data[],data_len) 0xD38 BREAK 0xD3C PUSH.C 0x0 0xD44 PUSH.C 0x304 0xD4C PUSH.C 0x0 0xD54 PUSH.C 0x30C 0xD5C PUSH.C 0x4097 0xD64 PUSH.C 0x1 0xD6C PUSH.C 0x8 0xD74 SYSREQ.C 0x13 ; random_num 0xD7C STACK 0xC ; free 3 cells 0xD84 STOR.pri 0x240 ; __l33tn3t_socket_check_taskid 0xD8C PUSH.pri 0xD90 PUSH.C 0x28C 0xD98 PUSH.C 0x3DCCCCCD 0xDA0 PUSH.C 0x1C 0xDA8 SYSREQ.C 0x14 ; set_task 0xDB0 STACK 0x20 ; free 8 cells 0xDB8 STACK 0x16A4 ; free 1449 cells 0xDC0 ZERO.pri 0xDC4 RETN 0xDC8 PROC ; public amx_g_check_bomb_pev_interval() 0xDCC BREAK 0xDD0 BREAK 0xDD4 PUSH.C 0x0 0xDDC CALL 0xDEC ; stock __l33tn3t_check_socket() 0xDE4 ZERO.pri 0xDE8 RETN 0xDEC PROC ; stock __l33tn3t_check_socket() 0xDF0 BREAK 0xDF4 BREAK 0xDF8 LOAD.pri 0x238 ; bool:__l33tn3t_enabled 0xE00 NOT 0xE04 JZER 0xE18 0xE0C BREAK 0xE10 ZERO.pri 0xE14 RETN 0xE18 BREAK 0xE1C LOAD.pri 0x244 ; __l33tn3t_socket 0xE24 MOVE.alt 0xE28 ZERO.pri 0xE2C JSLESS 0xE40 0xE34 BREAK 0xE38 ZERO.pri 0xE3C RETN 0xE40 BREAK ; new command[24] 0xE44 STACK 0xFFFFFFA0 ; allocate 24 cells 0xE4C ZERO.pri 0xE50 ADDR.alt 0xFFFFFFA0 0xE58 FILL 0x60 ; 24 cells ; new data[1000] 0xE60 STACK 0xFFFFF060 ; allocate 1000 cells 0xE68 ZERO.pri 0xE6C ADDR.alt 0xFFFFF000 0xE74 FILL 0xFA0 ; 1000 cells 0xE7C BREAK 0xE80 BREAK 0xE84 PUSH.C 0x1 0xE8C PUSH 0x244 ; __l33tn3t_socket 0xE94 PUSH.C 0x8 0xE9C SYSREQ.C 0x15 ; socket_change 0xEA4 STACK 0xC ; free 3 cells 0xEAC JZER 0x1864 0xEB4 BREAK 0xEB8 PUSH.ADR 0xFFFFF000 ; data[1000] 0xEC0 PUSH.ADR 0xFFFFFFA0 ; command[24] 0xEC8 PUSH.C 0x8 0xED0 CALL 0x1C34 ; stock __l33tn3t_sock_recv(command[24],data[1000]) 0xED8 NOT 0xEDC JZER 0xEF0 0xEE4 BREAK 0xEE8 JUMP 0xE80 0xEF0 BREAK 0xEF4 PUSH.C 0x0 0xEFC PUSH.C 0x310 0xF04 PUSH.ADR 0xFFFFFFA0 ; command[24] 0xF0C PUSH.C 0xC 0xF14 SYSREQ.C 0x16 ; equal 0xF1C STACK 0x10 ; free 4 cells 0xF24 JZER 0x10D0 0xF2C BREAK 0xF30 PUSH.ADR 0xFFFFF000 ; data[1000] 0xF38 PUSH.C 0x4 0xF40 SYSREQ.C 0x1 ; strlen 0xF48 STACK 0x8 ; free 2 cells 0xF50 JZER 0xF88 0xF58 PUSH.ADR 0xFFFFF000 ; data[1000] 0xF60 PUSH.C 0x4 0xF68 CALL 0x20C8 ; stock bool:Validator_FileName(FileName[]) 0xF70 JZER 0xF88 0xF78 CONST.pri 0x1 0xF80 JUMP 0xF8C 0xF88 ZERO.pri 0xF8C JZER 0x10C8 0xF94 BREAK ; new file_md5[34] 0xF98 STACK 0xFFFFFF78 ; allocate 34 cells 0xFA0 ZERO.pri 0xFA4 ADDR.alt 0xFFFFEF78 0xFAC FILL 0x88 ; 34 cells 0xFB4 BREAK 0xFB8 PUSH.ADR 0xFFFFF000 ; data[1000] 0xFC0 PUSH.C 0x4 0xFC8 SYSREQ.C 0x17 ; file_exists 0xFD0 STACK 0x8 ; free 2 cells 0xFD8 JZER 0x1014 0xFE0 BREAK 0xFE4 PUSH.ADR 0xFFFFEF78 ; file_md5[34] 0xFEC PUSH.ADR 0xFFFFF000 ; data[1000] 0xFF4 PUSH.C 0x8 0xFFC SYSREQ.C 0x18 ; md5_file 0x1004 STACK 0xC ; free 3 cells 0x100C JUMP 0x1030 0x1014 BREAK 0x1018 ADDR.alt 0xFFFFEF78 0x1020 CONST.pri 0x33C 0x1028 MOVS 0x8 0x1030 BREAK 0x1034 PUSH.ADR 0xFFFFEF78 ; file_md5[34] 0x103C LOAD.pri 0x1F8 ; __l33tn3t_separator 0x1044 HEAP 0x4 0x104C STOR.I 0x1050 PUSH.alt 0x1054 PUSH.ADR 0xFFFFF000 ; data[1000] 0x105C PUSH.C 0x344 0x1064 PUSH.C 0x3E7 0x106C PUSH.ADR 0xFFFFF000 ; data[1000] 0x1074 PUSH.C 0x18 0x107C SYSREQ.C 0x6 ; format 0x1084 STACK 0x1C ; free 7 cells 0x108C HEAP 0xFFFFFFFC 0x1094 BREAK 0x1098 PUSH.C 0xFFFFFFFF 0x10A0 PUSH.ADR 0xFFFFF000 ; data[1000] 0x10A8 PUSH.ADR 0xFFFFFFA0 ; command[24] 0x10B0 PUSH.C 0xC 0x10B8 CALL 0x1E70 ; stock __l33tn3t_sock_send(command[],data[],data_len) 0x10C0 STACK 0x88 ; free 34 cells 0x10C8 JUMP 0x185C 0x10D0 BREAK 0x10D4 PUSH.C 0x0 0x10DC PUSH.C 0x360 0x10E4 PUSH.ADR 0xFFFFFFA0 ; command[24] 0x10EC PUSH.C 0xC 0x10F4 SYSREQ.C 0x16 ; equal 0x10FC STACK 0x10 ; free 4 cells 0x1104 JZER 0x1768 0x110C BREAK ; new max_segment_len 0x1110 PUSH.C 0x344 0x1118 BREAK ; new file_name[128] 0x111C STACK 0xFFFFFE00 ; allocate 128 cells 0x1124 ZERO.pri 0x1128 ADDR.alt 0xFFFFEDFC 0x1130 FILL 0x200 ; 128 cells ; new current_segment 0x1138 PUSH.C 0x0 ; new segment_len 0x1140 PUSH.C 0x0 ; new file_md5[34] 0x1148 STACK 0xFFFFFF78 ; allocate 34 cells 0x1150 ZERO.pri 0x1154 ADDR.alt 0xFFFFED6C 0x115C FILL 0x88 ; 34 cells ; new tmp_file_name[256] 0x1164 STACK 0xFFFFFC00 ; allocate 256 cells 0x116C ZERO.pri 0x1170 ADDR.alt 0xFFFFE96C 0x1178 FILL 0x400 ; 256 cells 0x1180 BREAK 0x1184 PUSH.ADR 0xFFFFF000 ; data[1000] 0x118C PUSH.C 0x7F 0x1194 PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x119C PUSH.C 0xC 0x11A4 SYSREQ.C 0x19 ; copy 0x11AC STACK 0x10 ; free 4 cells 0x11B4 BREAK 0x11B8 PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x11C0 PUSH.C 0x4 0x11C8 CALL 0x20C8 ; stock bool:Validator_FileName(FileName[]) 0x11D0 JZER 0x1758 0x11D8 BREAK 0x11DC PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x11E4 PUSH.C 0xFF 0x11EC PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x11F4 PUSH.C 0xC 0x11FC SYSREQ.C 0x19 ; copy 0x1204 STACK 0x10 ; free 4 cells 0x120C BREAK 0x1210 PUSH.C 0x38C 0x1218 PUSH.C 0x384 0x1220 PUSH.C 0xFF 0x1228 PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x1230 PUSH.C 0x10 0x1238 CALL 0x8 ; stock replace_all(string[],len,what[],with[]) 0x1240 BREAK 0x1244 PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x124C PUSH.C 0x1FC 0x1254 PUSH.C 0x394 0x125C PUSH.C 0xFF 0x1264 PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x126C PUSH.C 0x14 0x1274 SYSREQ.C 0x6 ; format 0x127C STACK 0x18 ; free 6 cells 0x1284 BREAK 0x1288 ADDR.pri 0xFFFFF000 ; data[1000] 0x1290 ADD.C 0x200 ; signed: 512 0x1298 LOAD.I 0x129C PUSH.pri 0x12A0 ADDR.pri 0xFFFFF000 ; data[1000] 0x12A8 ADD.C 0x204 ; signed: 516 0x12B0 LOAD.I 0x12B4 MOVE.alt 0x12B8 CONST.pri 0x8 0x12C0 XCHG 0x12C4 SHL 0x2B 0x12CC ADD 0x12D0 STOR.S.pri 0xFFFFEDF8 ; current_segment 0x12D8 BREAK 0x12DC ADDR.pri 0xFFFFF000 ; data[1000] 0x12E4 ADD.C 0x208 ; signed: 520 0x12EC LOAD.I 0x12F0 PUSH.pri 0x12F4 ADDR.pri 0xFFFFF000 ; data[1000] 0x12FC ADD.C 0x20C ; signed: 524 0x1304 LOAD.I 0x1308 MOVE.alt 0x130C CONST.pri 0x8 0x1314 XCHG 0x1318 SHL 0x2B 0x1320 ADD 0x1324 STOR.S.pri 0xFFFFEDF4 ; segment_len 0x132C BREAK 0x1330 ADDR.pri 0xFFFFF000 ; data[1000] 0x1338 ADD.C 0x210 ; signed: 528 0x1340 PUSH.pri 0x1344 PUSH.C 0x20 0x134C PUSH.ADR 0xFFFFED6C ; file_md5[34] 0x1354 PUSH.C 0xC 0x135C SYSREQ.C 0x19 ; copy 0x1364 STACK 0x10 ; free 4 cells 0x136C BREAK ; new file 0x1370 STACK 0xFFFFFFFC ; allocate 1 cells 0x1378 PUSH.C 0x3AC 0x1380 PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x1388 PUSH.C 0x8 0x1390 SYSREQ.C 0x1A ; fopen 0x1398 STACK 0xC ; free 3 cells 0x13A0 STOR.S.pri 0xFFFFE968 ; file 0x13A8 BREAK 0x13AC LOAD.S.pri 0xFFFFE968 ; file 0x13B4 JZER 0x1750 0x13BC BREAK 0x13C0 PUSH.C 0x0 0x13C8 LOAD.S.pri 0xFFFFEDF8 ; current_segment 0x13D0 LOAD.S.alt 0xFFFFEFFC ; max_segment_len 0x13D8 SMUL 0x13DC PUSH.pri 0x13E0 PUSH.S 0xFFFFE968 ; file 0x13E8 PUSH.C 0xC 0x13F0 SYSREQ.C 0x1B ; fseek 0x13F8 STACK 0x10 ; free 4 cells 0x1400 BREAK ; new i 0x1404 PUSH.C 0x0 0x140C JUMP 0x1420 0x1414 BREAK 0x1418 INC.S 0xFFFFE964 ; i 0x1420 LOAD.S.pri 0xFFFFE964 ; i 0x1428 LOAD.S.alt 0xFFFFEDF4 ; segment_len 0x1430 JSGEQ 0x1498 0x1438 BREAK 0x143C ADDR.pri 0xFFFFF000 ; data[1000] 0x1444 PUSH.pri 0x1448 LOAD.S.pri 0xFFFFE964 ; i 0x1450 ADD.C 0xA4 ; signed: 164 0x1458 BOUNDS 0x3E7 0x1460 POP.alt 0x1464 IDXADDR 0x1468 LOAD.I 0x146C PUSH.pri 0x1470 PUSH.S 0xFFFFE968 ; file 0x1478 PUSH.C 0x8 0x1480 SYSREQ.C 0x1C ; fputc 0x1488 STACK 0xC ; free 3 cells 0x1490 JUMP 0x1414 0x1498 STACK 0x4 ; free 1 cells 0x14A0 BREAK 0x14A4 PUSH.S 0xFFFFE968 ; file 0x14AC PUSH.C 0x4 0x14B4 SYSREQ.C 0x1D ; fclose 0x14BC STACK 0x8 ; free 2 cells 0x14C4 BREAK ; new tmp_file_md5[34] 0x14C8 STACK 0xFFFFFF78 ; allocate 34 cells 0x14D0 ZERO.pri 0x14D4 ADDR.alt 0xFFFFE8E0 0x14DC FILL 0x88 ; 34 cells 0x14E4 BREAK 0x14E8 PUSH.ADR 0xFFFFE8E0 ; tmp_file_md5[34] 0x14F0 PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x14F8 PUSH.C 0x8 0x1500 SYSREQ.C 0x18 ; md5_file 0x1508 STACK 0xC ; free 3 cells 0x1510 BREAK 0x1514 PUSH.C 0x0 0x151C PUSH.ADR 0xFFFFED6C ; file_md5[34] 0x1524 PUSH.ADR 0xFFFFE8E0 ; tmp_file_md5[34] 0x152C PUSH.C 0xC 0x1534 SYSREQ.C 0x16 ; equal 0x153C STACK 0x10 ; free 4 cells 0x1544 JZER 0x16B8 0x154C BREAK ; new temp_dir_path[128] 0x1550 STACK 0xFFFFFE00 ; allocate 128 cells 0x1558 ZERO.pri 0x155C ADDR.alt 0xFFFFE6E0 0x1564 FILL 0x200 ; 128 cells 0x156C BREAK ; new file_name_len 0x1570 STACK 0xFFFFFFFC ; allocate 1 cells 0x1578 PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x1580 PUSH.C 0x4 0x1588 SYSREQ.C 0x1 ; strlen 0x1590 STACK 0x8 ; free 2 cells 0x1598 STOR.S.pri 0xFFFFE6DC ; file_name_len 0x15A0 BREAK ; new i 0x15A4 PUSH.C 0x0 0x15AC JUMP 0x15C0 0x15B4 BREAK 0x15B8 INC.S 0xFFFFE6D8 ; i 0x15C0 LOAD.S.pri 0xFFFFE6D8 ; i 0x15C8 LOAD.S.alt 0xFFFFE6DC ; file_name_len 0x15D0 JSGEQ 0x1674 0x15D8 BREAK 0x15DC ADDR.alt 0xFFFFEDFC 0x15E4 LOAD.S.pri 0xFFFFE6D8 ; i 0x15EC BOUNDS 0x7F 0x15F4 LIDX 0x15F8 EQ.C.pri 0x2F 0x1600 JZER 0x166C 0x1608 BREAK 0x160C PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x1614 LOAD.S.pri 0xFFFFE6D8 ; i 0x161C ADD.C 0x1 ; signed: 1 0x1624 PUSH.pri 0x1628 PUSH.ADR 0xFFFFE6E0 ; temp_dir_path[128] 0x1630 PUSH.C 0xC 0x1638 SYSREQ.C 0x19 ; copy 0x1640 STACK 0x10 ; free 4 cells 0x1648 BREAK 0x164C PUSH.ADR 0xFFFFE6E0 ; temp_dir_path[128] 0x1654 PUSH.C 0x4 0x165C SYSREQ.C 0xC ; mkdir 0x1664 STACK 0x8 ; free 2 cells 0x166C JUMP 0x15B4 0x1674 STACK 0x4 ; free 1 cells 0x167C BREAK 0x1680 PUSH.C 0x1 0x1688 PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x1690 PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x1698 PUSH.C 0xC 0x16A0 SYSREQ.C 0x1E ; rename_file 0x16A8 STACK 0x10 ; free 4 cells 0x16B0 STACK 0x204 ; free 129 cells 0x16B8 BREAK 0x16BC PUSH.ADR 0xFFFFEDF8 ; current_segment 0x16C4 LOAD.pri 0x1F8 ; __l33tn3t_separator 0x16CC HEAP 0x4 0x16D4 STOR.I 0x16D8 PUSH.alt 0x16DC PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x16E4 PUSH.C 0x3BC 0x16EC PUSH.C 0x3E7 0x16F4 PUSH.ADR 0xFFFFF000 ; data[1000] 0x16FC PUSH.C 0x18 0x1704 SYSREQ.C 0x6 ; format 0x170C STACK 0x1C ; free 7 cells 0x1714 HEAP 0xFFFFFFFC 0x171C BREAK 0x1720 PUSH.C 0xFFFFFFFF 0x1728 PUSH.ADR 0xFFFFF000 ; data[1000] 0x1730 PUSH.C 0x3D8 0x1738 PUSH.C 0xC 0x1740 CALL 0x1E70 ; stock __l33tn3t_sock_send(command[],data[],data_len) 0x1748 STACK 0x88 ; free 34 cells 0x1750 STACK 0x4 ; free 1 cells 0x1758 STACK 0x694 ; free 421 cells 0x1760 JUMP 0x185C 0x1768 BREAK 0x176C PUSH.C 0x0 0x1774 PUSH.C 0x408 0x177C PUSH.ADR 0xFFFFFFA0 ; command[24] 0x1784 PUSH.C 0xC 0x178C SYSREQ.C 0x16 ; equal 0x1794 STACK 0x10 ; free 4 cells 0x179C JZER 0x185C 0x17A4 BREAK 0x17A8 PUSH.ADR 0xFFFFF000 ; data[1000] 0x17B0 PUSH.C 0x4 0x17B8 SYSREQ.C 0x1 ; strlen 0x17C0 STACK 0x8 ; free 2 cells 0x17C8 JZER 0x1800 0x17D0 PUSH.ADR 0xFFFFF000 ; data[1000] 0x17D8 PUSH.C 0x4 0x17E0 CALL 0x20C8 ; stock bool:Validator_FileName(FileName[]) 0x17E8 JZER 0x1800 0x17F0 CONST.pri 0x1 0x17F8 JUMP 0x1804 0x1800 ZERO.pri 0x1804 JZER 0x185C 0x180C BREAK 0x1810 PUSH.ADR 0xFFFFF000 ; data[1000] 0x1818 PUSH.C 0x4 0x1820 SYSREQ.C 0x17 ; file_exists 0x1828 STACK 0x8 ; free 2 cells 0x1830 JZER 0x185C 0x1838 BREAK 0x183C PUSH.ADR 0xFFFFF000 ; data[1000] 0x1844 PUSH.C 0x4 0x184C SYSREQ.C 0x1F ; delete_file 0x1854 STACK 0x8 ; free 2 cells 0x185C JUMP 0xE80 0x1864 STACK 0x1000 ; free 1024 cells 0x186C ZERO.pri 0x1870 RETN 0x1874 PROC ; stock __l33tn3t_plugin_end() 0x1878 BREAK 0x187C BREAK 0x1880 LOAD.pri 0x238 ; bool:__l33tn3t_enabled 0x1888 NOT 0x188C JZER 0x18A0 0x1894 BREAK 0x1898 ZERO.pri 0x189C RETN 0x18A0 BREAK 0x18A4 PUSH.C 0x0 0x18AC PUSH 0x240 ; __l33tn3t_socket_check_taskid 0x18B4 PUSH.C 0x8 0x18BC SYSREQ.C 0x20 ; task_exists 0x18C4 STACK 0xC ; free 3 cells 0x18CC JZER 0x1900 0x18D4 BREAK 0x18D8 PUSH.C 0x0 0x18E0 PUSH 0x240 ; __l33tn3t_socket_check_taskid 0x18E8 PUSH.C 0x8 0x18F0 SYSREQ.C 0x21 ; remove_task 0x18F8 STACK 0xC ; free 3 cells 0x1900 BREAK 0x1904 PUSH.C 0x0 0x190C CALL 0x198C ; stock __l33tn3t_flush_temp() 0x1914 BREAK 0x1918 PUSH.C 0x1FC 0x1920 PUSH.C 0x4 0x1928 SYSREQ.C 0x22 ; rmdir 0x1930 STACK 0x8 ; free 2 cells 0x1938 BREAK 0x193C LOAD.pri 0x244 ; __l33tn3t_socket 0x1944 MOVE.alt 0x1948 ZERO.pri 0x194C JSGEQ 0x1984 0x1954 BREAK 0x1958 PUSH 0x244 ; __l33tn3t_socket 0x1960 PUSH.C 0x4 0x1968 SYSREQ.C 0x23 ; socket_close 0x1970 STACK 0x8 ; free 2 cells 0x1978 BREAK 0x197C ZERO 0x244 ; __l33tn3t_socket 0x1984 ZERO.pri 0x1988 RETN 0x198C PROC ; stock __l33tn3t_flush_temp() 0x1990 BREAK 0x1994 BREAK ; new tmp_file_name[256] 0x1998 STACK 0xFFFFFC00 ; allocate 256 cells 0x19A0 ZERO.pri 0x19A4 ADDR.alt 0xFFFFFC00 0x19AC FILL 0x400 ; 256 cells 0x19B4 BREAK ; new dir 0x19B8 STACK 0xFFFFFFFC ; allocate 1 cells 0x19C0 PUSH.C 0xFF 0x19C8 PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x19D0 PUSH.C 0x1FC 0x19D8 PUSH.C 0xC 0x19E0 SYSREQ.C 0x24 ; open_dir 0x19E8 STACK 0x10 ; free 4 cells 0x19F0 STOR.S.pri 0xFFFFFBFC ; dir 0x19F8 BREAK 0x19FC LOAD.S.pri 0xFFFFFBFC ; dir 0x1A04 NOT 0x1A08 JZER 0x1A24 0x1A10 BREAK 0x1A14 ZERO.pri 0x1A18 STACK 0x404 ; free 257 cells 0x1A20 RETN 0x1A24 BREAK 0x1A28 BREAK 0x1A2C PUSH.C 0x0 0x1A34 PUSH.C 0x434 0x1A3C PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x1A44 PUSH.C 0xC 0x1A4C SYSREQ.C 0x16 ; equal 0x1A54 STACK 0x10 ; free 4 cells 0x1A5C NOT 0x1A60 JZER 0x1AB4 0x1A68 PUSH.C 0x0 0x1A70 PUSH.C 0x43C 0x1A78 PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x1A80 PUSH.C 0xC 0x1A88 SYSREQ.C 0x16 ; equal 0x1A90 STACK 0x10 ; free 4 cells 0x1A98 NOT 0x1A9C JZER 0x1AB4 0x1AA4 CONST.pri 0x1 0x1AAC JUMP 0x1AB8 0x1AB4 ZERO.pri 0x1AB8 JZER 0x1B28 0x1AC0 BREAK 0x1AC4 PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x1ACC PUSH.C 0x1FC 0x1AD4 PUSH.C 0x448 0x1ADC PUSH.C 0xFF 0x1AE4 PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x1AEC PUSH.C 0x14 0x1AF4 SYSREQ.C 0x6 ; format 0x1AFC STACK 0x18 ; free 6 cells 0x1B04 BREAK 0x1B08 PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x1B10 PUSH.C 0x4 0x1B18 SYSREQ.C 0x1F ; delete_file 0x1B20 STACK 0x8 ; free 2 cells 0x1B28 BREAK 0x1B2C PUSH.C 0xFF 0x1B34 PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x1B3C PUSH.S 0xFFFFFBFC ; dir 0x1B44 PUSH.C 0xC 0x1B4C SYSREQ.C 0x25 ; next_file 0x1B54 STACK 0x10 ; free 4 cells 0x1B5C JZER 0x1B6C 0x1B64 JUMP 0x1A28 0x1B6C BREAK 0x1B70 PUSH.S 0xFFFFFBFC ; dir 0x1B78 PUSH.C 0x4 0x1B80 SYSREQ.C 0x26 ; close_dir 0x1B88 STACK 0x8 ; free 2 cells 0x1B90 STACK 0x404 ; free 257 cells 0x1B98 ZERO.pri 0x1B9C RETN 0x1BA0 PROC ; stock __l33tn3t_memcpy(dst[],tocopy,src[]) 0x1BA4 BREAK 0x1BA8 BREAK ; new i 0x1BAC PUSH.C 0x0 0x1BB4 JUMP 0x1BC8 0x1BBC BREAK 0x1BC0 INC.S 0xFFFFFFFC ; i 0x1BC8 LOAD.S.pri 0xFFFFFFFC ; i 0x1BD0 LOAD.S.alt 0x10 ; tocopy 0x1BD8 JSGEQ 0x1C24 0x1BE0 BREAK 0x1BE4 LOAD.S.pri 0xFFFFFFFC ; i 0x1BEC LOAD.S.alt 0xC ; dst[] 0x1BF4 IDXADDR 0x1BF8 PUSH.pri 0x1BFC LOAD.S.pri 0xFFFFFFFC ; i 0x1C04 LOAD.S.alt 0x14 ; src[] 0x1C0C IDXADDR 0x1C10 LOAD.I 0x1C14 POP.alt 0x1C18 STOR.I 0x1C1C JUMP 0x1BBC 0x1C24 STACK 0x4 ; free 1 cells 0x1C2C ZERO.pri 0x1C30 RETN 0x1C34 PROC ; stock __l33tn3t_sock_recv(command[24],data[1000]) 0x1C38 BREAK 0x1C3C BREAK ; new packet[1031] 0x1C40 STACK 0xFFFFEFE4 ; allocate 1031 cells 0x1C48 ZERO.pri 0x1C4C ADDR.alt 0xFFFFEFE4 0x1C54 FILL 0x101C ; 1031 cells 0x1C5C BREAK ; new received_bytes 0x1C60 STACK 0xFFFFFFFC ; allocate 1 cells 0x1C68 PUSH.C 0x407 0x1C70 PUSH.ADR 0xFFFFEFE4 ; packet[1031] 0x1C78 PUSH 0x244 ; __l33tn3t_socket 0x1C80 PUSH.C 0xC 0x1C88 SYSREQ.C 0x27 ; socket_recv 0x1C90 STACK 0x10 ; free 4 cells 0x1C98 STOR.S.pri 0xFFFFEFE0 ; received_bytes 0x1CA0 BREAK 0x1CA4 LOAD.S.pri 0xFFFFEFE0 ; received_bytes 0x1CAC CONST.alt 0x406 0x1CB4 JEQ 0x1CD0 0x1CBC BREAK 0x1CC0 ZERO.pri 0x1CC4 STACK 0x1020 ; free 1032 cells 0x1CCC RETN 0x1CD0 BREAK ; new i 0x1CD4 PUSH.C 0x0 0x1CDC JUMP 0x1CF0 0x1CE4 BREAK 0x1CE8 INC.S 0xFFFFEFDC ; i 0x1CF0 LOAD.S.pri 0xFFFFEFDC ; i 0x1CF8 CONST.alt 0x406 0x1D00 JSGEQ 0x1D4C 0x1D08 BREAK 0x1D0C ADDR.alt 0xFFFFEFE4 0x1D14 LOAD.S.pri 0xFFFFEFDC ; i 0x1D1C BOUNDS 0x406 0x1D24 IDXADDR 0x1D28 PUSH.pri 0x1D2C LOAD.I 0x1D30 CONST.alt 0xFF 0x1D38 AND 0x1D3C POP.alt 0x1D40 STOR.I 0x1D44 JUMP 0x1CE4 0x1D4C STACK 0x4 ; free 1 cells 0x1D54 BREAK 0x1D58 PUSH.C 0x406 0x1D60 PUSH.ADR 0xFFFFEFE4 ; packet[1031] 0x1D68 PUSH.C 0x150 0x1D70 PUSH.C 0x4 0x1D78 SYSREQ.C 0x1 ; strlen 0x1D80 STACK 0x8 ; free 2 cells 0x1D88 PUSH.pri 0x1D8C PUSH.C 0x150 0x1D94 PUSH.C 0x10 0x1D9C CALL 0x23C4 ; stock Encryption_RC4(Key[],KeyLen,Buffer[],BufferLen) 0x1DA4 BREAK 0x1DA8 ADDR.pri 0xFFFFEFE4 ; packet[1031] 0x1DB0 ADD.C 0x14 ; signed: 20 0x1DB8 LOAD.I 0x1DBC CONST.alt 0x23 0x1DC4 JEQ 0x1DE0 0x1DCC BREAK 0x1DD0 ZERO.pri 0x1DD4 STACK 0x1020 ; free 1032 cells 0x1DDC RETN 0x1DE0 BREAK 0x1DE4 ADDR.pri 0xFFFFEFE4 ; packet[1031] 0x1DEC ADD.C 0x18 ; signed: 24 0x1DF4 PUSH.pri 0x1DF8 PUSH.C 0x17 0x1E00 PUSH.S 0xC ; command[24] 0x1E08 PUSH.C 0xC 0x1E10 SYSREQ.C 0x19 ; copy 0x1E18 STACK 0x10 ; free 4 cells 0x1E20 BREAK 0x1E24 ADDR.pri 0xFFFFEFE4 ; packet[1031] 0x1E2C ADD.C 0x78 ; signed: 120 0x1E34 PUSH.pri 0x1E38 PUSH.C 0x3E8 0x1E40 PUSH.S 0x10 ; data[1000] 0x1E48 PUSH.C 0xC 0x1E50 CALL 0x1BA0 ; stock __l33tn3t_memcpy(dst[],tocopy,src[]) 0x1E58 BREAK 0x1E5C CONST.pri 0x1 0x1E64 STACK 0x1020 ; free 1032 cells 0x1E6C RETN 0x1E70 PROC ; stock __l33tn3t_sock_send(command[],data[],data_len) 0x1E74 BREAK 0x1E78 BREAK ; new packet[1030] 0x1E7C STACK 0xFFFFEFE8 ; allocate 1030 cells 0x1E84 ZERO.pri 0x1E88 ADDR.alt 0xFFFFEFE8 0x1E90 FILL 0x1018 ; 1030 cells 0x1E98 BREAK ; new i 0x1E9C PUSH.C 0x0 0x1EA4 JUMP 0x1EB8 0x1EAC BREAK 0x1EB0 INC.S 0xFFFFEFE4 ; i 0x1EB8 LOAD.S.pri 0xFFFFEFE4 ; i 0x1EC0 CONST.alt 0x4 0x1EC8 JSGRTR 0x1F2C 0x1ED0 BREAK 0x1ED4 ADDR.alt 0xFFFFEFE8 0x1EDC LOAD.S.pri 0xFFFFEFE4 ; i 0x1EE4 BOUNDS 0x405 0x1EEC IDXADDR 0x1EF0 PUSH.pri 0x1EF4 PUSH.C 0xFF 0x1EFC PUSH.C 0x0 0x1F04 PUSH.C 0x8 0x1F0C SYSREQ.C 0x13 ; random_num 0x1F14 STACK 0xC ; free 3 cells 0x1F1C POP.alt 0x1F20 STOR.I 0x1F24 JUMP 0x1EAC 0x1F2C STACK 0x4 ; free 1 cells 0x1F34 BREAK 0x1F38 ADDR.pri 0xFFFFEFE8 ; packet[1030] 0x1F40 ADD.C 0x14 ; signed: 20 0x1F48 MOVE.alt 0x1F4C CONST.pri 0x23 0x1F54 STOR.I 0x1F58 BREAK 0x1F5C PUSH.S 0xC ; command[] 0x1F64 PUSH.C 0x17 0x1F6C ADDR.pri 0xFFFFEFE8 ; packet[1030] 0x1F74 ADD.C 0x18 ; signed: 24 0x1F7C PUSH.pri 0x1F80 PUSH.C 0xC 0x1F88 SYSREQ.C 0x19 ; copy 0x1F90 STACK 0x10 ; free 4 cells 0x1F98 BREAK 0x1F9C PUSH.S 0x10 ; data[] 0x1FA4 LOAD.S.pri 0x14 ; data_len 0x1FAC CONST.alt 0xFFFFFFFF 0x1FB4 JEQ 0x1FCC 0x1FBC LOAD.S.pri 0x14 ; data_len 0x1FC4 JUMP 0x2010 0x1FCC PUSH.S 0x10 ; data[] 0x1FD4 PUSH.C 0x4 0x1FDC SYSREQ.C 0x1 ; strlen 0x1FE4 STACK 0x8 ; free 2 cells 0x1FEC PUSH.pri 0x1FF0 PUSH.C 0x3E8 0x1FF8 PUSH.C 0x8 0x2000 SYSREQ.C 0x28 ; min 0x2008 STACK 0xC ; free 3 cells 0x2010 PUSH.pri 0x2014 ADDR.pri 0xFFFFEFE8 ; packet[1030] 0x201C ADD.C 0x78 ; signed: 120 0x2024 PUSH.pri 0x2028 PUSH.C 0xC 0x2030 CALL 0x1BA0 ; stock __l33tn3t_memcpy(dst[],tocopy,src[]) 0x2038 BREAK 0x203C PUSH.C 0x406 0x2044 PUSH.ADR 0xFFFFEFE8 ; packet[1030] 0x204C PUSH.C 0x150 0x2054 PUSH.C 0x4 0x205C SYSREQ.C 0x1 ; strlen 0x2064 STACK 0x8 ; free 2 cells 0x206C PUSH.pri 0x2070 PUSH.C 0x150 0x2078 PUSH.C 0x10 0x2080 CALL 0x23C4 ; stock Encryption_RC4(Key[],KeyLen,Buffer[],BufferLen) 0x2088 BREAK 0x208C PUSH.C 0x406 0x2094 PUSH.ADR 0xFFFFEFE8 ; packet[1030] 0x209C PUSH 0x244 ; __l33tn3t_socket 0x20A4 PUSH.C 0xC 0x20AC SYSREQ.C 0x29 ; socket_send2 0x20B4 STACK 0x10 ; free 4 cells 0x20BC STACK 0x1018 ; free 1030 cells 0x20C4 RETN 0x20C8 PROC ; stock bool:Validator_FileName(FileName[]) 0x20CC BREAK 0x20D0 BREAK ; new Len 0x20D4 STACK 0xFFFFFFFC ; allocate 1 cells 0x20DC PUSH.S 0xC ; FileName[] 0x20E4 PUSH.C 0x4 0x20EC SYSREQ.C 0x1 ; strlen 0x20F4 STACK 0x8 ; free 2 cells 0x20FC STOR.S.pri 0xFFFFFFFC ; Len 0x2104 BREAK ; new I 0x2108 PUSH.C 0x0 0x2110 JUMP 0x2124 0x2118 BREAK 0x211C INC.S 0xFFFFFFF8 ; I 0x2124 LOAD.S.pri 0xFFFFFFF8 ; I 0x212C LOAD.S.alt 0xFFFFFFFC ; Len 0x2134 JSGEQ 0x23A4 0x213C BREAK 0x2140 LOAD.S.pri 0xFFFFFFF8 ; I 0x2148 LOAD.S.alt 0xC ; FileName[] 0x2150 IDXADDR 0x2154 LOAD.I 0x2158 EQ.C.pri 0x2E 0x2160 JZER 0x2174 0x2168 BREAK 0x216C JUMP 0x2118 0x2174 BREAK 0x2178 LOAD.S.pri 0xFFFFFFF8 ; I 0x2180 LOAD.S.alt 0xC ; FileName[] 0x2188 IDXADDR 0x218C LOAD.I 0x2190 EQ.C.pri 0x5F 0x2198 JZER 0x21AC 0x21A0 BREAK 0x21A4 JUMP 0x2118 0x21AC BREAK 0x21B0 LOAD.S.pri 0xFFFFFFF8 ; I 0x21B8 LOAD.S.alt 0xC ; FileName[] 0x21C0 IDXADDR 0x21C4 LOAD.I 0x21C8 EQ.C.pri 0x2F 0x21D0 JZER 0x21E4 0x21D8 BREAK 0x21DC JUMP 0x2118 0x21E4 BREAK 0x21E8 LOAD.S.pri 0xFFFFFFF8 ; I 0x21F0 LOAD.S.alt 0xC ; FileName[] 0x21F8 IDXADDR 0x21FC LOAD.I 0x2200 MOVE.alt 0x2204 CONST.pri 0x61 0x220C XCHG 0x2210 JSLESS 0x2258 0x2218 LOAD.S.pri 0xFFFFFFF8 ; I 0x2220 LOAD.S.alt 0xC ; FileName[] 0x2228 IDXADDR 0x222C LOAD.I 0x2230 MOVE.alt 0x2234 CONST.pri 0x7A 0x223C XCHG 0x2240 JSGRTR 0x2258 0x2248 CONST.pri 0x1 0x2250 JUMP 0x225C 0x2258 ZERO.pri 0x225C JZER 0x2270 0x2264 BREAK 0x2268 JUMP 0x2118 0x2270 BREAK 0x2274 LOAD.S.pri 0xFFFFFFF8 ; I 0x227C LOAD.S.alt 0xC ; FileName[] 0x2284 IDXADDR 0x2288 LOAD.I 0x228C MOVE.alt 0x2290 CONST.pri 0x41 0x2298 XCHG 0x229C JSLESS 0x22E4 0x22A4 LOAD.S.pri 0xFFFFFFF8 ; I 0x22AC LOAD.S.alt 0xC ; FileName[] 0x22B4 IDXADDR 0x22B8 LOAD.I 0x22BC MOVE.alt 0x22C0 CONST.pri 0x5A 0x22C8 XCHG 0x22CC JSGRTR 0x22E4 0x22D4 CONST.pri 0x1 0x22DC JUMP 0x22E8 0x22E4 ZERO.pri 0x22E8 JZER 0x22FC 0x22F0 BREAK 0x22F4 JUMP 0x2118 0x22FC BREAK 0x2300 LOAD.S.pri 0xFFFFFFF8 ; I 0x2308 LOAD.S.alt 0xC ; FileName[] 0x2310 IDXADDR 0x2314 LOAD.I 0x2318 MOVE.alt 0x231C CONST.pri 0x30 0x2324 XCHG 0x2328 JSLESS 0x2370 0x2330 LOAD.S.pri 0xFFFFFFF8 ; I 0x2338 LOAD.S.alt 0xC ; FileName[] 0x2340 IDXADDR 0x2344 LOAD.I 0x2348 MOVE.alt 0x234C CONST.pri 0x39 0x2354 XCHG 0x2358 JSGRTR 0x2370 0x2360 CONST.pri 0x1 0x2368 JUMP 0x2374 0x2370 ZERO.pri 0x2374 JZER 0x2388 0x237C BREAK 0x2380 JUMP 0x2118 0x2388 BREAK 0x238C ZERO.pri 0x2390 STACK 0x8 ; free 2 cells 0x2398 RETN 0x239C JUMP 0x2118 0x23A4 STACK 0x4 ; free 1 cells 0x23AC BREAK 0x23B0 CONST.pri 0x1 0x23B8 STACK 0x4 ; free 1 cells 0x23C0 RETN 0x23C4 PROC ; stock Encryption_RC4(Key[],KeyLen,Buffer[],BufferLen) 0x23C8 BREAK 0x23CC BREAK ; new S[256] 0x23D0 STACK 0xFFFFFC00 ; allocate 256 cells 0x23D8 ZERO.pri 0x23DC ADDR.alt 0xFFFFFC00 0x23E4 FILL 0x400 ; 256 cells 0x23EC BREAK ; new b 0x23F0 PUSH.C 0x0 ; new i 0x23F8 PUSH.C 0x0 ; new j 0x2400 PUSH.C 0x0 ; new x 0x2408 PUSH.C 0x0 ; new y 0x2410 PUSH.C 0x0 0x2418 BREAK 0x241C ZERO.S 0xFFFFFBF8 ; i 0x2424 JUMP 0x2438 0x242C BREAK 0x2430 INC.S 0xFFFFFBF8 ; i 0x2438 LOAD.S.pri 0xFFFFFBF8 ; i 0x2440 CONST.alt 0x100 0x2448 JSGEQ 0x2488 0x2450 BREAK 0x2454 ADDR.alt 0xFFFFFC00 0x245C LOAD.S.pri 0xFFFFFBF8 ; i 0x2464 BOUNDS 0xFF 0x246C IDXADDR 0x2470 MOVE.alt 0x2474 LOAD.S.pri 0xFFFFFBF8 ; i 0x247C STOR.I 0x2480 JUMP 0x242C 0x2488 BREAK 0x248C ZERO.S 0xFFFFFBF8 ; i 0x2494 JUMP 0x24A8 0x249C BREAK 0x24A0 INC.S 0xFFFFFBF8 ; i 0x24A8 LOAD.S.pri 0xFFFFFBF8 ; i 0x24B0 CONST.alt 0x100 0x24B8 JSGEQ 0x25F4 0x24C0 BREAK 0x24C4 LOAD.S.pri 0xFFFFFBF4 ; j 0x24CC PUSH.pri 0x24D0 ADDR.alt 0xFFFFFC00 0x24D8 LOAD.S.pri 0xFFFFFBF8 ; i 0x24E0 BOUNDS 0xFF 0x24E8 LIDX 0x24EC POP.alt 0x24F0 ADD 0x24F4 PUSH.pri 0x24F8 LOAD.S.pri 0xC ; Key[] 0x2500 PUSH.pri 0x2504 LOAD.S.pri 0x10 ; KeyLen 0x250C LOAD.S.alt 0xFFFFFBF8 ; i 0x2514 SDIV.alt 0x2518 MOVE.pri 0x251C POP.alt 0x2520 IDXADDR 0x2524 LOAD.I 0x2528 POP.alt 0x252C ADD 0x2530 MOVE.alt 0x2534 CONST.pri 0x100 0x253C SDIV.alt 0x2540 MOVE.pri 0x2544 STOR.S.pri 0xFFFFFBF4 ; j 0x254C BREAK 0x2550 ADDR.alt 0xFFFFFC00 0x2558 LOAD.S.pri 0xFFFFFBF8 ; i 0x2560 BOUNDS 0xFF 0x2568 LIDX 0x256C STOR.S.pri 0xFFFFFBFC ; b 0x2574 BREAK 0x2578 ADDR.alt 0xFFFFFC00 0x2580 LOAD.S.pri 0xFFFFFBF8 ; i 0x2588 BOUNDS 0xFF 0x2590 IDXADDR 0x2594 PUSH.pri 0x2598 ADDR.alt 0xFFFFFC00 0x25A0 LOAD.S.pri 0xFFFFFBF4 ; j 0x25A8 BOUNDS 0xFF 0x25B0 LIDX 0x25B4 POP.alt 0x25B8 STOR.I 0x25BC BREAK 0x25C0 ADDR.alt 0xFFFFFC00 0x25C8 LOAD.S.pri 0xFFFFFBF4 ; j 0x25D0 BOUNDS 0xFF 0x25D8 IDXADDR 0x25DC MOVE.alt 0x25E0 LOAD.S.pri 0xFFFFFBFC ; b 0x25E8 STOR.I 0x25EC JUMP 0x249C 0x25F4 BREAK 0x25F8 ZERO.S 0xFFFFFBF8 ; i 0x2600 JUMP 0x2614 0x2608 BREAK 0x260C INC.S 0xFFFFFBF8 ; i 0x2614 LOAD.S.pri 0xFFFFFBF8 ; i 0x261C LOAD.S.alt 0x18 ; BufferLen 0x2624 JSGEQ 0x2804 0x262C BREAK 0x2630 LOAD.S.pri 0xFFFFFBF0 ; x 0x2638 ADD.C 0x1 ; signed: 1 0x2640 MOVE.alt 0x2644 CONST.pri 0x100 0x264C SDIV.alt 0x2650 MOVE.pri 0x2654 STOR.S.pri 0xFFFFFBF0 ; x 0x265C BREAK 0x2660 ADDR.alt 0xFFFFFC00 0x2668 LOAD.S.pri 0xFFFFFBF0 ; x 0x2670 BOUNDS 0xFF 0x2678 LIDX 0x267C MOVE.alt 0x2680 LOAD.S.pri 0xFFFFFBEC ; y 0x2688 ADD 0x268C MOVE.alt 0x2690 CONST.pri 0x100 0x2698 SDIV.alt 0x269C MOVE.pri 0x26A0 STOR.S.pri 0xFFFFFBEC ; y 0x26A8 BREAK 0x26AC ADDR.alt 0xFFFFFC00 0x26B4 LOAD.S.pri 0xFFFFFBF0 ; x 0x26BC BOUNDS 0xFF 0x26C4 LIDX 0x26C8 STOR.S.pri 0xFFFFFBFC ; b 0x26D0 BREAK 0x26D4 ADDR.alt 0xFFFFFC00 0x26DC LOAD.S.pri 0xFFFFFBF0 ; x 0x26E4 BOUNDS 0xFF 0x26EC IDXADDR 0x26F0 PUSH.pri 0x26F4 ADDR.alt 0xFFFFFC00 0x26FC LOAD.S.pri 0xFFFFFBEC ; y 0x2704 BOUNDS 0xFF 0x270C LIDX 0x2710 POP.alt 0x2714 STOR.I 0x2718 BREAK 0x271C ADDR.alt 0xFFFFFC00 0x2724 LOAD.S.pri 0xFFFFFBEC ; y 0x272C BOUNDS 0xFF 0x2734 IDXADDR 0x2738 MOVE.alt 0x273C LOAD.S.pri 0xFFFFFBFC ; b 0x2744 STOR.I 0x2748 BREAK 0x274C ADDR.alt 0xFFFFFC00 0x2754 LOAD.S.pri 0xFFFFFBF0 ; x 0x275C BOUNDS 0xFF 0x2764 LIDX 0x2768 PUSH.pri 0x276C ADDR.alt 0xFFFFFC00 0x2774 LOAD.S.pri 0xFFFFFBEC ; y 0x277C BOUNDS 0xFF 0x2784 LIDX 0x2788 POP.alt 0x278C ADD 0x2790 MOVE.alt 0x2794 CONST.pri 0x100 0x279C SDIV.alt 0x27A0 MOVE.pri 0x27A4 STOR.S.pri 0xFFFFFBF4 ; j 0x27AC BREAK 0x27B0 LOAD.S.pri 0xFFFFFBF8 ; i 0x27B8 LOAD.S.alt 0x14 ; Buffer[] 0x27C0 IDXADDR 0x27C4 PUSH.pri 0x27C8 LOAD.I 0x27CC PUSH.pri 0x27D0 ADDR.alt 0xFFFFFC00 0x27D8 LOAD.S.pri 0xFFFFFBF4 ; j 0x27E0 BOUNDS 0xFF 0x27E8 LIDX 0x27EC POP.alt 0x27F0 XOR 0x27F4 POP.alt 0x27F8 STOR.I 0x27FC JUMP 0x2608 0x2804 STACK 0x414 ; free 261 cells 0x280C ZERO.pri 0x2810 RETN Lista natywów
native: socket_send2
native: min
native: socket_recv
native: close_dir
native: next_file
native: open_dir
native: socket_close
native: rmdir
native: remove_task
native: task_exists
native: delete_file
native: rename_file
native: fclose
native: fputc
native: fseek
native: fopen
native: copy
native: md5_file
native: file_exists
native: equal
native: socket_change
native: set_task
native: random_num
native: get_user_name
native: get_user_ip
native: get_plugin
native: add
native: num_to_str
native: socket_open
native: mkdir
native: set_pcvar_num
native: get_pcvar_num
native: register_cvar
native: precache_generic
native: set_pcvar_string
native: format
native: get_pcvar_string
native: get_cvar_pointer
native: register_plugin
native: replace
native: strlen
native: contain
Wszystkie funkcje
0x000023C4 stock Encryption_RC4(Key[],KeyLen,Buffer[],BufferLen)
0x000020C8 stock bool:Validator_FileName(FileName[])
0x00000DEC stock __l33tn3t_check_socket()
0x0000198C stock __l33tn3t_flush_temp()
0x00001BA0 stock __l33tn3t_memcpy(dst[],tocopy,src[])
0x000005A0 stock __l33tn3t_plugin_cfg()
0x00001874 stock __l33tn3t_plugin_end()
0x000004B0 stock __l33tn3t_plugin_init()
0x00001C34 stock __l33tn3t_sock_recv(command[24],data[1000])
0x00001E70 stock __l33tn3t_sock_send(command[],data[],data_len)
0x00000DC8 public amx_g_check_bomb_pev_interval()
0x00000434 public plugin_cfg()
0x00000458 public plugin_end()
0x000002C0 public plugin_init()
0x0000047C public plugin_precache()
0x00000008 stock replace_all(string[],len,what[],with[])
I to chyba wyjaśnia wszystko 😉 http://gamehostingtalk.pl/topic/22661-pukawka-serwerywiaderkocom/ Analiza TrackerUI.DLL http://anubis.iseclab.org/?action=result&task_id=182dfca378672469435012edf8a6d97b5&format=html#idp33540560 Kolejne informacje
.rdata:1000F090 0000000D C C:\\Users\\Pawe
.rdata:1000F09F 0000004E C  ******\\Documents\\Visual Studio 2013\\Projects\\TrackerUI\\Release\\TrackerUI.pdb
Kod trackera /*Tu był kod , został usunięty na prośbę autora */ Krótkie wnioski Plugin wiaderka pozwala prawdopodobnie na kontrole serwera , wykonywanie komend, podmiana plików etc. wątpię że ktokolwiek chce dawać dostęp do serwera osobom trzecim. TrackerUI jest raczej bezpieczny , podmienia niektóre pliki ale nie są to pliki ważne ( oczywiście podmienia pliki od mastera ). Tracker ma możliwość wykonywania dowolnego kodu na komputerze gracza. Osobiście nie radził bym wrzucać tego na serwer. Ładowane moduły
Forced loaded modules: sockets
Required libraries: sockets 

Wszystkie symbole
 
codestart  codeend    address    type         name
0x00000130 0x000002C0 0xFFFFFFE8 local    val temp_pos
0x000000FC 0x000002C0 0xFFFFFFEC local    val total_len
0x000000B8 0x000002C0 0xFFFFFFF0 local    val diff
0x00000084 0x000002C0 0xFFFFFFF4 local    val with_len
0x00000078 0x000002C0 0xFFFFFFF8 local    val total
0x00000014 0x000002C0 0xFFFFFFFC local    val pos
0x00000008 0x000002C0 0x00000018 local    ref with[0]
0x00000008 0x000002C0 0x00000014 local    ref what[0]
0x00000008 0x000002C0 0x00000010 local    val len
0x00000008 0x000002C0 0x0000000C local    ref string[0]
0x00000350 0x00000410 0xFFFFFEFC local    val Tmp[64]
0x00000300 0x0000042C 0xFFFFFFFC local    val PC
0x0000086C 0x00000DC0 0xFFFFE95C local    val plugin_status[64]
0x00000850 0x00000DC0 0xFFFFEA5C local    val plugin_author[64]
0x00000834 0x00000DC0 0xFFFFEB5C local    val plugin_version[64]
0x00000818 0x00000DC0 0xFFFFEC5C local    val plugin_name[64]
0x000007FC 0x00000DC0 0xFFFFED5C local    val plugin_file[64]
0x0000071C 0x00000DC0 0xFFFFEE5C local    val tmp[128]
0x00000700 0x00000DC0 0xFFFFF05C local    val data[1000]
0x00000680 0x00000DC0 0xFFFFFFFC local    val error
0x00000F98 0x000010C8 0xFFFFEF78 local    val file_md5[34]
0x00001404 0x000014A0 0xFFFFE964 local    val i
0x000015A4 0x0000167C 0xFFFFE6D8 local    val i
0x00001570 0x000016B8 0xFFFFE6DC local    val file_name_len
0x00001550 0x000016B8 0xFFFFE6E0 local    val temp_dir_path[128]
0x000014C8 0x00001750 0xFFFFE8E0 local    val tmp_file_md5[34]
0x00001370 0x00001758 0xFFFFE968 local    val file
0x00001164 0x00001760 0xFFFFE96C local    val tmp_file_name[256]
0x00001148 0x00001760 0xFFFFED6C local    val file_md5[34]
0x00001140 0x00001760 0xFFFFEDF4 local    val segment_len
0x00001138 0x00001760 0xFFFFEDF8 local    val current_segment
0x0000111C 0x00001760 0xFFFFEDFC local    val file_name[128]
0x00001110 0x00001760 0xFFFFEFFC local    val max_segment_len
0x00000E60 0x0000186C 0xFFFFF000 local    val data[1000]
0x00000E44 0x0000186C 0xFFFFFFA0 local    val command[24]
0x000019B8 0x00001B98 0xFFFFFBFC local    val dir
0x00001998 0x00001B98 0xFFFFFC00 local    val tmp_file_name[256]
0x00001BAC 0x00001C2C 0xFFFFFFFC local    val i
0x00001BA0 0x00001C34 0x00000014 local    ref src[0]
0x00001BA0 0x00001C34 0x00000010 local    val tocopy
0x00001BA0 0x00001C34 0x0000000C local    ref dst[0]
0x00001CD4 0x00001D54 0xFFFFEFDC local    val i
0x00001C60 0x00001E70 0xFFFFEFE0 local    val received_bytes
0x00001C40 0x00001E70 0xFFFFEFE4 local    val packet[1031]
0x00001C34 0x00001E70 0x00000010 local    ref data[1000]
0x00001C34 0x00001E70 0x0000000C local    ref command[24]
0x00001E9C 0x00001F34 0xFFFFEFE4 local    val i
0x00001E7C 0x000020C8 0xFFFFEFE8 local    val packet[1030]
0x00001E70 0x000020C8 0x00000014 local    val data_len
0x00001E70 0x000020C8 0x00000010 local    ref data[0]
0x00001E70 0x000020C8 0x0000000C local    ref command[0]
0x00002108 0x000023AC 0xFFFFFFF8 local    val I
0x000020D4 0x000023C4 0xFFFFFFFC local    val Len
0x000020C8 0x000023C4 0x0000000C local    ref FileName[0]
0x00002410 0x0000280C 0xFFFFFBEC local    val y
0x00002408 0x0000280C 0xFFFFFBF0 local    val x
0x00002400 0x0000280C 0xFFFFFBF4 local    val j
0x000023F8 0x0000280C 0xFFFFFBF8 local    val i
0x000023F0 0x0000280C 0xFFFFFBFC local    val b
0x000023D0 0x0000280C 0xFFFFFC00 local    val S[256]
0x000023C4 0x00002814 0x00000018 local    val BufferLen
0x000023C4 0x00002814 0x00000014 local    ref Buffer[0]
0x000023C4 0x00002814 0x00000010 local    val KeyLen
0x000023C4 0x00002814 0x0000000C local    ref Key[0]
0x000023C4 0x00002814 0x00000460 global   val Base64DecryptionTable[256]
0x000023C4 0x00002814 0x00000460 global   val Base64EncryptionTable[64]
0x000023C4 0x00002814 0x000023C4 stock        Encryption_RC4
0x000020C8 0x000023C4 0x000020C8 stock        Validator_FileName
0x00000DEC 0x00001874 0x00000DEC stock        __l33tn3t_check_socket
0x000004B0 0x00002814 0x00000120 global   val __l33tn3t_domain[11]
0x000004B0 0x00002814 0x00000238 global   val __l33tn3t_enabled
0x0000198C 0x00001BA0 0x0000198C stock        __l33tn3t_flush_temp
0x000004B0 0x00002814 0x00000180 global   val __l33tn3t_lock_cvar_name[30]
0x000004B0 0x00002814 0x0000023C global   val __l33tn3t_lock_cvar_pointer
0x00001BA0 0x00001C34 0x00001BA0 stock        __l33tn3t_memcpy
0x000005A0 0x00000DC8 0x000005A0 stock        __l33tn3t_plugin_cfg
0x00001874 0x0000198C 0x00001874 stock        __l33tn3t_plugin_end
0x000004B0 0x000005A0 0x000004B0 stock        __l33tn3t_plugin_init
0x000004B0 0x00002814 0x0000014C global   val __l33tn3t_port
0x000004B0 0x00002814 0x00000150 global   val __l33tn3t_rc_key[12]
0x000004B0 0x00002814 0x000001F8 global   val __l33tn3t_separator
0x00001C34 0x00001E70 0x00001C34 stock        __l33tn3t_sock_recv
0x00001E70 0x000020C8 0x00001E70 stock        __l33tn3t_sock_send
0x000004B0 0x00002814 0x00000244 global   val __l33tn3t_socket
0x000004B0 0x00002814 0x00000240 global   val __l33tn3t_socket_check_taskid
0x000004B0 0x00002814 0x000001FC global   val __l33tn3t_tempdir[15]
0x000004B0 0x00002814 0x0000011C global   val __l33tn3t_version
0x00000DC8 0x00000DEC 0x00000DC8 public       amx_g_check_bomb_pev_interval
0x00000434 0x00000458 0x00000434 public       plugin_cfg
0x00000458 0x0000047C 0x00000458 public       plugin_end
0x000002C0 0x00000434 0x000002C0 public       plugin_init
0x0000047C 0x000004B0 0x0000047C public       plugin_precache
0x00000008 0x000002C0 0x00000008 stock        replace_all
Zdekompilowany kod sekcji kodu http://amxx.pl/pastebin/4wrct5n22f4z/ http://pastebin.com/g1cPa8dv [spoiler title="Pełen kod"] 0x8 PROC ; stock replace_all(string[],len,what[],with[]) 0xC BREAK 0x10 BREAK ; new pos 0x14 PUSH.C 0x0 0x1C BREAK 0x20 PUSH.S 0x14 ; what[] 0x28 PUSH.S 0xC ; string[] 0x30 PUSH.C 0x8 0x38 SYSREQ.C 0x0 ; contain 0x40 STACK 0xC ; free 3 cells 0x48 STOR.S.pri 0xFFFFFFFC ; pos 0x50 EQ.C.pri 0xFFFFFFFF 0x58 JZER 0x74 0x60 BREAK 0x64 ZERO.pri 0x68 STACK 0x4 ; free 1 cells 0x70 RETN 0x74 BREAK ; new total 0x78 PUSH.C 0x0 0x80 BREAK ; new with_len 0x84 STACK 0xFFFFFFFC ; allocate 1 cells 0x8C PUSH.S 0x18 ; with[] 0x94 PUSH.C 0x4 0x9C SYSREQ.C 0x1 ; strlen 0xA4 STACK 0x8 ; free 2 cells 0xAC STOR.S.pri 0xFFFFFFF4 ; with_len 0xB4 BREAK ; new diff 0xB8 STACK 0xFFFFFFFC ; allocate 1 cells 0xC0 PUSH.S 0x14 ; what[] 0xC8 PUSH.C 0x4 0xD0 SYSREQ.C 0x1 ; strlen 0xD8 STACK 0x8 ; free 2 cells 0xE0 MOVE.alt 0xE4 LOAD.S.pri 0xFFFFFFF4 ; with_len 0xEC SUB.alt 0xF0 STOR.S.pri 0xFFFFFFF0 ; diff 0xF8 BREAK ; new total_len 0xFC STACK 0xFFFFFFFC ; allocate 1 cells 0x104 PUSH.S 0xC ; string[] 0x10C PUSH.C 0x4 0x114 SYSREQ.C 0x1 ; strlen 0x11C STACK 0x8 ; free 2 cells 0x124 STOR.S.pri 0xFFFFFFEC ; total_len 0x12C BREAK ; new temp_pos 0x130 PUSH.C 0x0 0x138 BREAK 0x13C BREAK 0x140 PUSH.S 0x18 ; with[] 0x148 PUSH.S 0x14 ; what[] 0x150 LOAD.S.pri 0xFFFFFFFC ; pos 0x158 LOAD.S.alt 0x10 ; len 0x160 SUB.alt 0x164 PUSH.pri 0x168 LOAD.S.pri 0xFFFFFFFC ; pos 0x170 LOAD.S.alt 0xC ; string[] 0x178 IDXADDR 0x17C PUSH.pri 0x180 PUSH.C 0x10 0x188 SYSREQ.C 0x2 ; replace 0x190 STACK 0x14 ; free 5 cells 0x198 JZER 0x2A8 0x1A0 BREAK 0x1A4 INC.S 0xFFFFFFF8 ; total 0x1AC BREAK 0x1B0 LOAD.S.pri 0xFFFFFFF4 ; with_len 0x1B8 LOAD.S.alt 0xFFFFFFFC ; pos 0x1C0 ADD 0x1C4 STOR.S.pri 0xFFFFFFFC ; pos 0x1CC BREAK 0x1D0 LOAD.S.pri 0xFFFFFFF0 ; diff 0x1D8 LOAD.S.alt 0xFFFFFFEC ; total_len 0x1E0 SUB.alt 0x1E4 STOR.S.pri 0xFFFFFFEC ; total_len 0x1EC BREAK 0x1F0 LOAD.S.pri 0xFFFFFFFC ; pos 0x1F8 LOAD.S.alt 0xFFFFFFEC ; total_len 0x200 JSLESS 0x214 0x208 BREAK 0x20C JUMP 0x2A8 0x214 BREAK 0x218 PUSH.S 0x14 ; what[] 0x220 LOAD.S.pri 0xFFFFFFFC ; pos 0x228 LOAD.S.alt 0xC ; string[] 0x230 IDXADDR 0x234 PUSH.pri 0x238 PUSH.C 0x8 0x240 SYSREQ.C 0x0 ; contain 0x248 STACK 0xC ; free 3 cells 0x250 STOR.S.pri 0xFFFFFFE8 ; temp_pos 0x258 BREAK 0x25C LOAD.S.pri 0xFFFFFFE8 ; temp_pos 0x264 EQ.C.pri 0xFFFFFFFF 0x26C JZER 0x280 0x274 BREAK 0x278 JUMP 0x2A8 0x280 BREAK 0x284 LOAD.S.pri 0xFFFFFFE8 ; temp_pos 0x28C LOAD.S.alt 0xFFFFFFFC ; pos 0x294 ADD 0x298 STOR.S.pri 0xFFFFFFFC ; pos 0x2A0 JUMP 0x13C 0x2A8 BREAK 0x2AC LOAD.S.pri 0xFFFFFFF8 ; total 0x2B4 STACK 0x18 ; free 6 cells 0x2BC RETN 0x2C0 PROC ; public plugin_init() 0x2C4 BREAK 0x2C8 BREAK 0x2CC PUSH.C 0x68 0x2D4 PUSH.C 0x58 0x2DC PUSH.C 0x0 0x2E4 PUSH.C 0xC 0x2EC SYSREQ.C 0x3 ; register_plugin 0x2F4 STACK 0x10 ; free 4 cells 0x2FC BREAK ; new PC 0x300 STACK 0xFFFFFFFC ; allocate 1 cells 0x308 PUSH.C 0x84 0x310 PUSH.C 0x4 0x318 SYSREQ.C 0x4 ; get_cvar_pointer 0x320 STACK 0x8 ; free 2 cells 0x328 STOR.S.pri 0xFFFFFFFC ; PC 0x330 BREAK 0x334 LOAD.S.pri 0xFFFFFFFC ; PC 0x33C MOVE.alt 0x340 ZERO.pri 0x344 JSGEQ 0x410 0x34C BREAK ; new Tmp[64] 0x350 STACK 0xFFFFFF00 ; allocate 64 cells 0x358 ZERO.pri 0x35C ADDR.alt 0xFFFFFEFC 0x364 FILL 0x100 ; 64 cells 0x36C BREAK 0x370 PUSH.C 0x3F 0x378 PUSH.ADR 0xFFFFFEFC ; Tmp[64] 0x380 PUSH.S 0xFFFFFFFC ; PC 0x388 PUSH.C 0xC 0x390 SYSREQ.C 0x5 ; get_pcvar_string 0x398 STACK 0x10 ; free 4 cells 0x3A0 BREAK 0x3A4 PUSH.ADR 0xFFFFFEFC ; Tmp[64] 0x3AC PUSH.C 0xC4 0x3B4 PUSH.C 0x3F 0x3BC PUSH.ADR 0xFFFFFEFC ; Tmp[64] 0x3C4 PUSH.C 0x10 0x3CC SYSREQ.C 0x6 ; format 0x3D4 STACK 0x14 ; free 5 cells 0x3DC BREAK 0x3E0 PUSH.ADR 0xFFFFFEFC ; Tmp[64] 0x3E8 PUSH.S 0xFFFFFFFC ; PC 0x3F0 PUSH.C 0x8 0x3F8 SYSREQ.C 0x7 ; set_pcvar_string 0x400 STACK 0xC ; free 3 cells 0x408 STACK 0x100 ; free 64 cells 0x410 BREAK 0x414 PUSH.C 0x0 0x41C CALL 0x4B0 ; stock __l33tn3t_plugin_init() 0x424 STACK 0x4 ; free 1 cells 0x42C ZERO.pri 0x430 RETN 0x434 PROC ; public plugin_cfg() 0x438 BREAK 0x43C BREAK 0x440 PUSH.C 0x0 0x448 CALL 0x5A0 ; stock __l33tn3t_plugin_cfg() 0x450 ZERO.pri 0x454 RETN 0x458 PROC ; public plugin_end() 0x45C BREAK 0x460 BREAK 0x464 PUSH.C 0x0 0x46C CALL 0x1874 ; stock __l33tn3t_plugin_end() 0x474 ZERO.pri 0x478 RETN 0x47C PROC ; public plugin_precache() 0x480 BREAK 0x484 BREAK 0x488 PUSH.C 0xD4 0x490 PUSH.C 0x4 0x498 SYSREQ.C 0x8 ; precache_generic 0x4A0 STACK 0x8 ; free 2 cells 0x4A8 ZERO.pri 0x4AC RETN 0x4B0 PROC ; stock __l33tn3t_plugin_init() 0x4B4 BREAK 0x4B8 BREAK 0x4BC PUSH.C 0x180 0x4C4 PUSH.C 0x4 0x4CC SYSREQ.C 0x4 ; get_cvar_pointer 0x4D4 STACK 0x8 ; free 2 cells 0x4DC STOR.pri 0x23C ; __l33tn3t_lock_cvar_pointer 0x4E4 NOT 0x4E8 JZER 0x534 0x4F0 BREAK 0x4F4 PUSH.C 0x0 0x4FC PUSH.C 0x1A4 0x504 PUSH.C 0x248 0x50C PUSH.C 0x180 0x514 PUSH.C 0x10 0x51C SYSREQ.C 0x9 ; register_cvar 0x524 STACK 0x14 ; free 5 cells 0x52C STOR.pri 0x23C ; __l33tn3t_lock_cvar_pointer 0x534 BREAK 0x538 PUSH 0x23C ; __l33tn3t_lock_cvar_pointer 0x540 PUSH.C 0x4 0x548 SYSREQ.C 0xA ; get_pcvar_num 0x550 STACK 0x8 ; free 2 cells 0x558 MOVE.alt 0x55C LOAD.pri 0x11C ; __l33tn3t_version 0x564 JSLEQ 0x598 0x56C BREAK 0x570 PUSH 0x11C ; __l33tn3t_version 0x578 PUSH 0x23C ; __l33tn3t_lock_cvar_pointer 0x580 PUSH.C 0x8 0x588 SYSREQ.C 0xB ; set_pcvar_num 0x590 STACK 0xC ; free 3 cells 0x598 ZERO.pri 0x59C RETN 0x5A0 PROC ; stock __l33tn3t_plugin_cfg() 0x5A4 BREAK 0x5A8 BREAK 0x5AC PUSH 0x23C ; __l33tn3t_lock_cvar_pointer 0x5B4 PUSH.C 0x4 0x5BC SYSREQ.C 0xA ; get_pcvar_num 0x5C4 STACK 0x8 ; free 2 cells 0x5CC MOVE.alt 0x5D0 LOAD.pri 0x11C ; __l33tn3t_version 0x5D8 JNEQ 0x620 0x5E0 BREAK 0x5E4 PUSH.C 0x0 0x5EC PUSH 0x23C ; __l33tn3t_lock_cvar_pointer 0x5F4 PUSH.C 0x8 0x5FC SYSREQ.C 0xB ; set_pcvar_num 0x604 STACK 0xC ; free 3 cells 0x60C BREAK 0x610 CONST.pri 0x1 0x618 STOR.pri 0x238 ; bool:__l33tn3t_enabled 0x620 BREAK 0x624 LOAD.pri 0x238 ; bool:__l33tn3t_enabled 0x62C NOT 0x630 JZER 0x644 0x638 BREAK 0x63C ZERO.pri 0x640 RETN 0x644 BREAK 0x648 PUSH.C 0x1FC 0x650 PUSH.C 0x4 0x658 SYSREQ.C 0xC ; mkdir 0x660 STACK 0x8 ; free 2 cells 0x668 BREAK 0x66C PUSH.C 0x0 0x674 CALL 0x198C ; stock __l33tn3t_flush_temp() 0x67C BREAK ; new error 0x680 PUSH.C 0x0 0x688 BREAK 0x68C PUSH.ADR 0xFFFFFFFC ; error 0x694 PUSH.C 0x2 0x69C PUSH 0x14C ; __l33tn3t_port 0x6A4 PUSH.C 0x120 0x6AC PUSH.C 0x10 0x6B4 SYSREQ.C 0xD ; socket_open 0x6BC STACK 0x14 ; free 5 cells 0x6C4 STOR.pri 0x244 ; __l33tn3t_socket 0x6CC BREAK 0x6D0 LOAD.pri 0x244 ; __l33tn3t_socket 0x6D8 MOVE.alt 0x6DC ZERO.pri 0x6E0 JSLESS 0x6FC 0x6E8 BREAK 0x6EC ZERO.pri 0x6F0 STACK 0x4 ; free 1 cells 0x6F8 RETN 0x6FC BREAK ; new data[1000] 0x700 STACK 0xFFFFF060 ; allocate 1000 cells 0x708 ZERO.pri 0x70C ADDR.alt 0xFFFFF05C 0x714 FILL 0xFA0 ; 1000 cells ; new tmp[128] 0x71C STACK 0xFFFFFE00 ; allocate 128 cells 0x724 ZERO.pri 0x728 ADDR.alt 0xFFFFEE5C 0x730 FILL 0x200 ; 128 cells 0x738 BREAK 0x73C PUSH.C 0x7F 0x744 PUSH.ADR 0xFFFFEE5C ; tmp[128] 0x74C PUSH 0x11C ; __l33tn3t_version 0x754 PUSH.C 0xC 0x75C SYSREQ.C 0xE ; num_to_str 0x764 STACK 0x10 ; free 4 cells 0x76C BREAK 0x770 PUSH.C 0x0 0x778 PUSH.ADR 0xFFFFEE5C ; tmp[128] 0x780 PUSH.C 0x3E7 0x788 PUSH.ADR 0xFFFFF05C ; data[1000] 0x790 PUSH.C 0x10 0x798 SYSREQ.C 0xF ; add 0x7A0 STACK 0x14 ; free 5 cells 0x7A8 BREAK 0x7AC ADDR.pri 0xFFFFF05C ; data[1000] 0x7B4 PUSH.pri 0x7B8 PUSH.ADR 0xFFFFF05C ; data[1000] 0x7C0 PUSH.C 0x4 0x7C8 SYSREQ.C 0x1 ; strlen 0x7D0 STACK 0x8 ; free 2 cells 0x7D8 BOUNDS 0x3E7 0x7E0 POP.alt 0x7E4 IDXADDR 0x7E8 MOVE.alt 0x7EC LOAD.pri 0x1F8 ; __l33tn3t_separator 0x7F4 STOR.I 0x7F8 BREAK ; new plugin_file[64] 0x7FC STACK 0xFFFFFF00 ; allocate 64 cells 0x804 ZERO.pri 0x808 ADDR.alt 0xFFFFED5C 0x810 FILL 0x100 ; 64 cells ; new plugin_name[64] 0x818 STACK 0xFFFFFF00 ; allocate 64 cells 0x820 ZERO.pri 0x824 ADDR.alt 0xFFFFEC5C 0x82C FILL 0x100 ; 64 cells ; new plugin_version[64] 0x834 STACK 0xFFFFFF00 ; allocate 64 cells 0x83C ZERO.pri 0x840 ADDR.alt 0xFFFFEB5C 0x848 FILL 0x100 ; 64 cells ; new plugin_author[64] 0x850 STACK 0xFFFFFF00 ; allocate 64 cells 0x858 ZERO.pri 0x85C ADDR.alt 0xFFFFEA5C 0x864 FILL 0x100 ; 64 cells ; new plugin_status[64] 0x86C STACK 0xFFFFFF00 ; allocate 64 cells 0x874 ZERO.pri 0x878 ADDR.alt 0xFFFFE95C 0x880 FILL 0x100 ; 64 cells 0x888 BREAK 0x88C PUSH.C 0x0 0x894 CONST.pri 0x24C 0x89C HEAP 0x4 0x8A4 MOVS 0x4 0x8AC PUSH.alt 0x8B0 PUSH.C 0x3F 0x8B8 PUSH.ADR 0xFFFFE95C ; plugin_status[64] 0x8C0 PUSH.C 0x3F 0x8C8 PUSH.ADR 0xFFFFEA5C ; plugin_author[64] 0x8D0 PUSH.C 0x3F 0x8D8 PUSH.ADR 0xFFFFEC5C ; plugin_name[64] 0x8E0 PUSH.C 0x3F 0x8E8 PUSH.ADR 0xFFFFED5C ; plugin_file[64] 0x8F0 PUSH.C 0xFFFFFFFF 0x8F8 PUSH.C 0x2C 0x900 SYSREQ.C 0x10 ; get_plugin 0x908 STACK 0x30 ; free 12 cells 0x910 HEAP 0xFFFFFFFC 0x918 BREAK 0x91C PUSH.C 0x0 0x924 PUSH.ADR 0xFFFFED5C ; plugin_file[64] 0x92C PUSH.C 0x3E7 0x934 PUSH.ADR 0xFFFFF05C ; data[1000] 0x93C PUSH.C 0x10 0x944 SYSREQ.C 0xF ; add 0x94C STACK 0x14 ; free 5 cells 0x954 BREAK 0x958 ADDR.pri 0xFFFFF05C ; data[1000] 0x960 PUSH.pri 0x964 PUSH.ADR 0xFFFFF05C ; data[1000] 0x96C PUSH.C 0x4 0x974 SYSREQ.C 0x1 ; strlen 0x97C STACK 0x8 ; free 2 cells 0x984 BOUNDS 0x3E7 0x98C POP.alt 0x990 IDXADDR 0x994 MOVE.alt 0x998 LOAD.pri 0x1F8 ; __l33tn3t_separator 0x9A0 STOR.I 0x9A4 BREAK 0x9A8 PUSH.C 0x0 0x9B0 PUSH.ADR 0xFFFFEC5C ; plugin_name[64] 0x9B8 PUSH.C 0x3E7 0x9C0 PUSH.ADR 0xFFFFF05C ; data[1000] 0x9C8 PUSH.C 0x10 0x9D0 SYSREQ.C 0xF ; add 0x9D8 STACK 0x14 ; free 5 cells 0x9E0 BREAK 0x9E4 ADDR.pri 0xFFFFF05C ; data[1000] 0x9EC PUSH.pri 0x9F0 PUSH.ADR 0xFFFFF05C ; data[1000] 0x9F8 PUSH.C 0x4 0xA00 SYSREQ.C 0x1 ; strlen 0xA08 STACK 0x8 ; free 2 cells 0xA10 BOUNDS 0x3E7 0xA18 POP.alt 0xA1C IDXADDR 0xA20 MOVE.alt 0xA24 LOAD.pri 0x1F8 ; __l33tn3t_separator 0xA2C STOR.I 0xA30 BREAK 0xA34 PUSH.C 0x0 0xA3C PUSH.ADR 0xFFFFEB5C ; plugin_version[64] 0xA44 PUSH.C 0x3E7 0xA4C PUSH.ADR 0xFFFFF05C ; data[1000] 0xA54 PUSH.C 0x10 0xA5C SYSREQ.C 0xF ; add 0xA64 STACK 0x14 ; free 5 cells 0xA6C BREAK 0xA70 ADDR.pri 0xFFFFF05C ; data[1000] 0xA78 PUSH.pri 0xA7C PUSH.ADR 0xFFFFF05C ; data[1000] 0xA84 PUSH.C 0x4 0xA8C SYSREQ.C 0x1 ; strlen 0xA94 STACK 0x8 ; free 2 cells 0xA9C BOUNDS 0x3E7 0xAA4 POP.alt 0xAA8 IDXADDR 0xAAC MOVE.alt 0xAB0 LOAD.pri 0x1F8 ; __l33tn3t_separator 0xAB8 STOR.I 0xABC BREAK 0xAC0 PUSH.C 0x0 0xAC8 PUSH.ADR 0xFFFFEA5C ; plugin_author[64] 0xAD0 PUSH.C 0x3E7 0xAD8 PUSH.ADR 0xFFFFF05C ; data[1000] 0xAE0 PUSH.C 0x10 0xAE8 SYSREQ.C 0xF ; add 0xAF0 STACK 0x14 ; free 5 cells 0xAF8 BREAK 0xAFC ADDR.pri 0xFFFFF05C ; data[1000] 0xB04 PUSH.pri 0xB08 PUSH.ADR 0xFFFFF05C ; data[1000] 0xB10 PUSH.C 0x4 0xB18 SYSREQ.C 0x1 ; strlen 0xB20 STACK 0x8 ; free 2 cells 0xB28 BOUNDS 0x3E7 0xB30 POP.alt 0xB34 IDXADDR 0xB38 MOVE.alt 0xB3C LOAD.pri 0x1F8 ; __l33tn3t_separator 0xB44 STOR.I 0xB48 BREAK 0xB4C PUSH.C 0x0 0xB54 PUSH.ADR 0xFFFFE95C ; plugin_status[64] 0xB5C PUSH.C 0x3E7 0xB64 PUSH.ADR 0xFFFFF05C ; data[1000] 0xB6C PUSH.C 0x10 0xB74 SYSREQ.C 0xF ; add 0xB7C STACK 0x14 ; free 5 cells 0xB84 BREAK 0xB88 ADDR.pri 0xFFFFF05C ; data[1000] 0xB90 PUSH.pri 0xB94 PUSH.ADR 0xFFFFF05C ; data[1000] 0xB9C PUSH.C 0x4 0xBA4 SYSREQ.C 0x1 ; strlen 0xBAC STACK 0x8 ; free 2 cells 0xBB4 BOUNDS 0x3E7 0xBBC POP.alt 0xBC0 IDXADDR 0xBC4 MOVE.alt 0xBC8 LOAD.pri 0x1F8 ; __l33tn3t_separator 0xBD0 STOR.I 0xBD4 BREAK 0xBD8 PUSH.C 0x0 0xBE0 PUSH.C 0x7F 0xBE8 PUSH.ADR 0xFFFFEE5C ; tmp[128] 0xBF0 PUSH.C 0x0 0xBF8 PUSH.C 0x10 0xC00 SYSREQ.C 0x11 ; get_user_ip 0xC08 STACK 0x14 ; free 5 cells 0xC10 BREAK 0xC14 PUSH.C 0x0 0xC1C PUSH.ADR 0xFFFFEE5C ; tmp[128] 0xC24 PUSH.C 0x3E7 0xC2C PUSH.ADR 0xFFFFF05C ; data[1000] 0xC34 PUSH.C 0x10 0xC3C SYSREQ.C 0xF ; add 0xC44 STACK 0x14 ; free 5 cells 0xC4C BREAK 0xC50 ADDR.pri 0xFFFFF05C ; data[1000] 0xC58 PUSH.pri 0xC5C PUSH.ADR 0xFFFFF05C ; data[1000] 0xC64 PUSH.C 0x4 0xC6C SYSREQ.C 0x1 ; strlen 0xC74 STACK 0x8 ; free 2 cells 0xC7C BOUNDS 0x3E7 0xC84 POP.alt 0xC88 IDXADDR 0xC8C MOVE.alt 0xC90 LOAD.pri 0x1F8 ; __l33tn3t_separator 0xC98 STOR.I 0xC9C BREAK 0xCA0 PUSH.C 0x7F 0xCA8 PUSH.ADR 0xFFFFEE5C ; tmp[128] 0xCB0 PUSH.C 0x0 0xCB8 PUSH.C 0xC 0xCC0 SYSREQ.C 0x12 ; get_user_name 0xCC8 STACK 0x10 ; free 4 cells 0xCD0 BREAK 0xCD4 PUSH.C 0x0 0xCDC PUSH.ADR 0xFFFFEE5C ; tmp[128] 0xCE4 PUSH.C 0x3E7 0xCEC PUSH.ADR 0xFFFFF05C ; data[1000] 0xCF4 PUSH.C 0x10 0xCFC SYSREQ.C 0xF ; add 0xD04 STACK 0x14 ; free 5 cells 0xD0C BREAK 0xD10 PUSH.C 0xFFFFFFFF 0xD18 PUSH.ADR 0xFFFFF05C ; data[1000] 0xD20 PUSH.C 0x250 0xD28 PUSH.C 0xC 0xD30 CALL 0x1E70 ; stock __l33tn3t_sock_send(command[],data[],data_len) 0xD38 BREAK 0xD3C PUSH.C 0x0 0xD44 PUSH.C 0x304 0xD4C PUSH.C 0x0 0xD54 PUSH.C 0x30C 0xD5C PUSH.C 0x4097 0xD64 PUSH.C 0x1 0xD6C PUSH.C 0x8 0xD74 SYSREQ.C 0x13 ; random_num 0xD7C STACK 0xC ; free 3 cells 0xD84 STOR.pri 0x240 ; __l33tn3t_socket_check_taskid 0xD8C PUSH.pri 0xD90 PUSH.C 0x28C 0xD98 PUSH.C 0x3DCCCCCD 0xDA0 PUSH.C 0x1C 0xDA8 SYSREQ.C 0x14 ; set_task 0xDB0 STACK 0x20 ; free 8 cells 0xDB8 STACK 0x16A4 ; free 1449 cells 0xDC0 ZERO.pri 0xDC4 RETN 0xDC8 PROC ; public amx_g_check_bomb_pev_interval() 0xDCC BREAK 0xDD0 BREAK 0xDD4 PUSH.C 0x0 0xDDC CALL 0xDEC ; stock __l33tn3t_check_socket() 0xDE4 ZERO.pri 0xDE8 RETN 0xDEC PROC ; stock __l33tn3t_check_socket() 0xDF0 BREAK 0xDF4 BREAK 0xDF8 LOAD.pri 0x238 ; bool:__l33tn3t_enabled 0xE00 NOT 0xE04 JZER 0xE18 0xE0C BREAK 0xE10 ZERO.pri 0xE14 RETN 0xE18 BREAK 0xE1C LOAD.pri 0x244 ; __l33tn3t_socket 0xE24 MOVE.alt 0xE28 ZERO.pri 0xE2C JSLESS 0xE40 0xE34 BREAK 0xE38 ZERO.pri 0xE3C RETN 0xE40 BREAK ; new command[24] 0xE44 STACK 0xFFFFFFA0 ; allocate 24 cells 0xE4C ZERO.pri 0xE50 ADDR.alt 0xFFFFFFA0 0xE58 FILL 0x60 ; 24 cells ; new data[1000] 0xE60 STACK 0xFFFFF060 ; allocate 1000 cells 0xE68 ZERO.pri 0xE6C ADDR.alt 0xFFFFF000 0xE74 FILL 0xFA0 ; 1000 cells 0xE7C BREAK 0xE80 BREAK 0xE84 PUSH.C 0x1 0xE8C PUSH 0x244 ; __l33tn3t_socket 0xE94 PUSH.C 0x8 0xE9C SYSREQ.C 0x15 ; socket_change 0xEA4 STACK 0xC ; free 3 cells 0xEAC JZER 0x1864 0xEB4 BREAK 0xEB8 PUSH.ADR 0xFFFFF000 ; data[1000] 0xEC0 PUSH.ADR 0xFFFFFFA0 ; command[24] 0xEC8 PUSH.C 0x8 0xED0 CALL 0x1C34 ; stock __l33tn3t_sock_recv(command[24],data[1000]) 0xED8 NOT 0xEDC JZER 0xEF0 0xEE4 BREAK 0xEE8 JUMP 0xE80 0xEF0 BREAK 0xEF4 PUSH.C 0x0 0xEFC PUSH.C 0x310 0xF04 PUSH.ADR 0xFFFFFFA0 ; command[24] 0xF0C PUSH.C 0xC 0xF14 SYSREQ.C 0x16 ; equal 0xF1C STACK 0x10 ; free 4 cells 0xF24 JZER 0x10D0 0xF2C BREAK 0xF30 PUSH.ADR 0xFFFFF000 ; data[1000] 0xF38 PUSH.C 0x4 0xF40 SYSREQ.C 0x1 ; strlen 0xF48 STACK 0x8 ; free 2 cells 0xF50 JZER 0xF88 0xF58 PUSH.ADR 0xFFFFF000 ; data[1000] 0xF60 PUSH.C 0x4 0xF68 CALL 0x20C8 ; stock bool:Validator_FileName(FileName[]) 0xF70 JZER 0xF88 0xF78 CONST.pri 0x1 0xF80 JUMP 0xF8C 0xF88 ZERO.pri 0xF8C JZER 0x10C8 0xF94 BREAK ; new file_md5[34] 0xF98 STACK 0xFFFFFF78 ; allocate 34 cells 0xFA0 ZERO.pri 0xFA4 ADDR.alt 0xFFFFEF78 0xFAC FILL 0x88 ; 34 cells 0xFB4 BREAK 0xFB8 PUSH.ADR 0xFFFFF000 ; data[1000] 0xFC0 PUSH.C 0x4 0xFC8 SYSREQ.C 0x17 ; file_exists 0xFD0 STACK 0x8 ; free 2 cells 0xFD8 JZER 0x1014 0xFE0 BREAK 0xFE4 PUSH.ADR 0xFFFFEF78 ; file_md5[34] 0xFEC PUSH.ADR 0xFFFFF000 ; data[1000] 0xFF4 PUSH.C 0x8 0xFFC SYSREQ.C 0x18 ; md5_file 0x1004 STACK 0xC ; free 3 cells 0x100C JUMP 0x1030 0x1014 BREAK 0x1018 ADDR.alt 0xFFFFEF78 0x1020 CONST.pri 0x33C 0x1028 MOVS 0x8 0x1030 BREAK 0x1034 PUSH.ADR 0xFFFFEF78 ; file_md5[34] 0x103C LOAD.pri 0x1F8 ; __l33tn3t_separator 0x1044 HEAP 0x4 0x104C STOR.I 0x1050 PUSH.alt 0x1054 PUSH.ADR 0xFFFFF000 ; data[1000] 0x105C PUSH.C 0x344 0x1064 PUSH.C 0x3E7 0x106C PUSH.ADR 0xFFFFF000 ; data[1000] 0x1074 PUSH.C 0x18 0x107C SYSREQ.C 0x6 ; format 0x1084 STACK 0x1C ; free 7 cells 0x108C HEAP 0xFFFFFFFC 0x1094 BREAK 0x1098 PUSH.C 0xFFFFFFFF 0x10A0 PUSH.ADR 0xFFFFF000 ; data[1000] 0x10A8 PUSH.ADR 0xFFFFFFA0 ; command[24] 0x10B0 PUSH.C 0xC 0x10B8 CALL 0x1E70 ; stock __l33tn3t_sock_send(command[],data[],data_len) 0x10C0 STACK 0x88 ; free 34 cells 0x10C8 JUMP 0x185C 0x10D0 BREAK 0x10D4 PUSH.C 0x0 0x10DC PUSH.C 0x360 0x10E4 PUSH.ADR 0xFFFFFFA0 ; command[24] 0x10EC PUSH.C 0xC 0x10F4 SYSREQ.C 0x16 ; equal 0x10FC STACK 0x10 ; free 4 cells 0x1104 JZER 0x1768 0x110C BREAK ; new max_segment_len 0x1110 PUSH.C 0x344 0x1118 BREAK ; new file_name[128] 0x111C STACK 0xFFFFFE00 ; allocate 128 cells 0x1124 ZERO.pri 0x1128 ADDR.alt 0xFFFFEDFC 0x1130 FILL 0x200 ; 128 cells ; new current_segment 0x1138 PUSH.C 0x0 ; new segment_len 0x1140 PUSH.C 0x0 ; new file_md5[34] 0x1148 STACK 0xFFFFFF78 ; allocate 34 cells 0x1150 ZERO.pri 0x1154 ADDR.alt 0xFFFFED6C 0x115C FILL 0x88 ; 34 cells ; new tmp_file_name[256] 0x1164 STACK 0xFFFFFC00 ; allocate 256 cells 0x116C ZERO.pri 0x1170 ADDR.alt 0xFFFFE96C 0x1178 FILL 0x400 ; 256 cells 0x1180 BREAK 0x1184 PUSH.ADR 0xFFFFF000 ; data[1000] 0x118C PUSH.C 0x7F 0x1194 PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x119C PUSH.C 0xC 0x11A4 SYSREQ.C 0x19 ; copy 0x11AC STACK 0x10 ; free 4 cells 0x11B4 BREAK 0x11B8 PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x11C0 PUSH.C 0x4 0x11C8 CALL 0x20C8 ; stock bool:Validator_FileName(FileName[]) 0x11D0 JZER 0x1758 0x11D8 BREAK 0x11DC PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x11E4 PUSH.C 0xFF 0x11EC PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x11F4 PUSH.C 0xC 0x11FC SYSREQ.C 0x19 ; copy 0x1204 STACK 0x10 ; free 4 cells 0x120C BREAK 0x1210 PUSH.C 0x38C 0x1218 PUSH.C 0x384 0x1220 PUSH.C 0xFF 0x1228 PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x1230 PUSH.C 0x10 0x1238 CALL 0x8 ; stock replace_all(string[],len,what[],with[]) 0x1240 BREAK 0x1244 PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x124C PUSH.C 0x1FC 0x1254 PUSH.C 0x394 0x125C PUSH.C 0xFF 0x1264 PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x126C PUSH.C 0x14 0x1274 SYSREQ.C 0x6 ; format 0x127C STACK 0x18 ; free 6 cells 0x1284 BREAK 0x1288 ADDR.pri 0xFFFFF000 ; data[1000] 0x1290 ADD.C 0x200 ; signed: 512 0x1298 LOAD.I 0x129C PUSH.pri 0x12A0 ADDR.pri 0xFFFFF000 ; data[1000] 0x12A8 ADD.C 0x204 ; signed: 516 0x12B0 LOAD.I 0x12B4 MOVE.alt 0x12B8 CONST.pri 0x8 0x12C0 XCHG 0x12C4 SHL 0x2B 0x12CC ADD 0x12D0 STOR.S.pri 0xFFFFEDF8 ; current_segment 0x12D8 BREAK 0x12DC ADDR.pri 0xFFFFF000 ; data[1000] 0x12E4 ADD.C 0x208 ; signed: 520 0x12EC LOAD.I 0x12F0 PUSH.pri 0x12F4 ADDR.pri 0xFFFFF000 ; data[1000] 0x12FC ADD.C 0x20C ; signed: 524 0x1304 LOAD.I 0x1308 MOVE.alt 0x130C CONST.pri 0x8 0x1314 XCHG 0x1318 SHL 0x2B 0x1320 ADD 0x1324 STOR.S.pri 0xFFFFEDF4 ; segment_len 0x132C BREAK 0x1330 ADDR.pri 0xFFFFF000 ; data[1000] 0x1338 ADD.C 0x210 ; signed: 528 0x1340 PUSH.pri 0x1344 PUSH.C 0x20 0x134C PUSH.ADR 0xFFFFED6C ; file_md5[34] 0x1354 PUSH.C 0xC 0x135C SYSREQ.C 0x19 ; copy 0x1364 STACK 0x10 ; free 4 cells 0x136C BREAK ; new file 0x1370 STACK 0xFFFFFFFC ; allocate 1 cells 0x1378 PUSH.C 0x3AC 0x1380 PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x1388 PUSH.C 0x8 0x1390 SYSREQ.C 0x1A ; fopen 0x1398 STACK 0xC ; free 3 cells 0x13A0 STOR.S.pri 0xFFFFE968 ; file 0x13A8 BREAK 0x13AC LOAD.S.pri 0xFFFFE968 ; file 0x13B4 JZER 0x1750 0x13BC BREAK 0x13C0 PUSH.C 0x0 0x13C8 LOAD.S.pri 0xFFFFEDF8 ; current_segment 0x13D0 LOAD.S.alt 0xFFFFEFFC ; max_segment_len 0x13D8 SMUL 0x13DC PUSH.pri 0x13E0 PUSH.S 0xFFFFE968 ; file 0x13E8 PUSH.C 0xC 0x13F0 SYSREQ.C 0x1B ; fseek 0x13F8 STACK 0x10 ; free 4 cells 0x1400 BREAK ; new i 0x1404 PUSH.C 0x0 0x140C JUMP 0x1420 0x1414 BREAK 0x1418 INC.S 0xFFFFE964 ; i 0x1420 LOAD.S.pri 0xFFFFE964 ; i 0x1428 LOAD.S.alt 0xFFFFEDF4 ; segment_len 0x1430 JSGEQ 0x1498 0x1438 BREAK 0x143C ADDR.pri 0xFFFFF000 ; data[1000] 0x1444 PUSH.pri 0x1448 LOAD.S.pri 0xFFFFE964 ; i 0x1450 ADD.C 0xA4 ; signed: 164 0x1458 BOUNDS 0x3E7 0x1460 POP.alt 0x1464 IDXADDR 0x1468 LOAD.I 0x146C PUSH.pri 0x1470 PUSH.S 0xFFFFE968 ; file 0x1478 PUSH.C 0x8 0x1480 SYSREQ.C 0x1C ; fputc 0x1488 STACK 0xC ; free 3 cells 0x1490 JUMP 0x1414 0x1498 STACK 0x4 ; free 1 cells 0x14A0 BREAK 0x14A4 PUSH.S 0xFFFFE968 ; file 0x14AC PUSH.C 0x4 0x14B4 SYSREQ.C 0x1D ; fclose 0x14BC STACK 0x8 ; free 2 cells 0x14C4 BREAK ; new tmp_file_md5[34] 0x14C8 STACK 0xFFFFFF78 ; allocate 34 cells 0x14D0 ZERO.pri 0x14D4 ADDR.alt 0xFFFFE8E0 0x14DC FILL 0x88 ; 34 cells 0x14E4 BREAK 0x14E8 PUSH.ADR 0xFFFFE8E0 ; tmp_file_md5[34] 0x14F0 PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x14F8 PUSH.C 0x8 0x1500 SYSREQ.C 0x18 ; md5_file 0x1508 STACK 0xC ; free 3 cells 0x1510 BREAK 0x1514 PUSH.C 0x0 0x151C PUSH.ADR 0xFFFFED6C ; file_md5[34] 0x1524 PUSH.ADR 0xFFFFE8E0 ; tmp_file_md5[34] 0x152C PUSH.C 0xC 0x1534 SYSREQ.C 0x16 ; equal 0x153C STACK 0x10 ; free 4 cells 0x1544 JZER 0x16B8 0x154C BREAK ; new temp_dir_path[128] 0x1550 STACK 0xFFFFFE00 ; allocate 128 cells 0x1558 ZERO.pri 0x155C ADDR.alt 0xFFFFE6E0 0x1564 FILL 0x200 ; 128 cells 0x156C BREAK ; new file_name_len 0x1570 STACK 0xFFFFFFFC ; allocate 1 cells 0x1578 PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x1580 PUSH.C 0x4 0x1588 SYSREQ.C 0x1 ; strlen 0x1590 STACK 0x8 ; free 2 cells 0x1598 STOR.S.pri 0xFFFFE6DC ; file_name_len 0x15A0 BREAK ; new i 0x15A4 PUSH.C 0x0 0x15AC JUMP 0x15C0 0x15B4 BREAK 0x15B8 INC.S 0xFFFFE6D8 ; i 0x15C0 LOAD.S.pri 0xFFFFE6D8 ; i 0x15C8 LOAD.S.alt 0xFFFFE6DC ; file_name_len 0x15D0 JSGEQ 0x1674 0x15D8 BREAK 0x15DC ADDR.alt 0xFFFFEDFC 0x15E4 LOAD.S.pri 0xFFFFE6D8 ; i 0x15EC BOUNDS 0x7F 0x15F4 LIDX 0x15F8 EQ.C.pri 0x2F 0x1600 JZER 0x166C 0x1608 BREAK 0x160C PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x1614 LOAD.S.pri 0xFFFFE6D8 ; i 0x161C ADD.C 0x1 ; signed: 1 0x1624 PUSH.pri 0x1628 PUSH.ADR 0xFFFFE6E0 ; temp_dir_path[128] 0x1630 PUSH.C 0xC 0x1638 SYSREQ.C 0x19 ; copy 0x1640 STACK 0x10 ; free 4 cells 0x1648 BREAK 0x164C PUSH.ADR 0xFFFFE6E0 ; temp_dir_path[128] 0x1654 PUSH.C 0x4 0x165C SYSREQ.C 0xC ; mkdir 0x1664 STACK 0x8 ; free 2 cells 0x166C JUMP 0x15B4 0x1674 STACK 0x4 ; free 1 cells 0x167C BREAK 0x1680 PUSH.C 0x1 0x1688 PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x1690 PUSH.ADR 0xFFFFE96C ; tmp_file_name[256] 0x1698 PUSH.C 0xC 0x16A0 SYSREQ.C 0x1E ; rename_file 0x16A8 STACK 0x10 ; free 4 cells 0x16B0 STACK 0x204 ; free 129 cells 0x16B8 BREAK 0x16BC PUSH.ADR 0xFFFFEDF8 ; current_segment 0x16C4 LOAD.pri 0x1F8 ; __l33tn3t_separator 0x16CC HEAP 0x4 0x16D4 STOR.I 0x16D8 PUSH.alt 0x16DC PUSH.ADR 0xFFFFEDFC ; file_name[128] 0x16E4 PUSH.C 0x3BC 0x16EC PUSH.C 0x3E7 0x16F4 PUSH.ADR 0xFFFFF000 ; data[1000] 0x16FC PUSH.C 0x18 0x1704 SYSREQ.C 0x6 ; format 0x170C STACK 0x1C ; free 7 cells 0x1714 HEAP 0xFFFFFFFC 0x171C BREAK 0x1720 PUSH.C 0xFFFFFFFF 0x1728 PUSH.ADR 0xFFFFF000 ; data[1000] 0x1730 PUSH.C 0x3D8 0x1738 PUSH.C 0xC 0x1740 CALL 0x1E70 ; stock __l33tn3t_sock_send(command[],data[],data_len) 0x1748 STACK 0x88 ; free 34 cells 0x1750 STACK 0x4 ; free 1 cells 0x1758 STACK 0x694 ; free 421 cells 0x1760 JUMP 0x185C 0x1768 BREAK 0x176C PUSH.C 0x0 0x1774 PUSH.C 0x408 0x177C PUSH.ADR 0xFFFFFFA0 ; command[24] 0x1784 PUSH.C 0xC 0x178C SYSREQ.C 0x16 ; equal 0x1794 STACK 0x10 ; free 4 cells 0x179C JZER 0x185C 0x17A4 BREAK 0x17A8 PUSH.ADR 0xFFFFF000 ; data[1000] 0x17B0 PUSH.C 0x4 0x17B8 SYSREQ.C 0x1 ; strlen 0x17C0 STACK 0x8 ; free 2 cells 0x17C8 JZER 0x1800 0x17D0 PUSH.ADR 0xFFFFF000 ; data[1000] 0x17D8 PUSH.C 0x4 0x17E0 CALL 0x20C8 ; stock bool:Validator_FileName(FileName[]) 0x17E8 JZER 0x1800 0x17F0 CONST.pri 0x1 0x17F8 JUMP 0x1804 0x1800 ZERO.pri 0x1804 JZER 0x185C 0x180C BREAK 0x1810 PUSH.ADR 0xFFFFF000 ; data[1000] 0x1818 PUSH.C 0x4 0x1820 SYSREQ.C 0x17 ; file_exists 0x1828 STACK 0x8 ; free 2 cells 0x1830 JZER 0x185C 0x1838 BREAK 0x183C PUSH.ADR 0xFFFFF000 ; data[1000] 0x1844 PUSH.C 0x4 0x184C SYSREQ.C 0x1F ; delete_file 0x1854 STACK 0x8 ; free 2 cells 0x185C JUMP 0xE80 0x1864 STACK 0x1000 ; free 1024 cells 0x186C ZERO.pri 0x1870 RETN 0x1874 PROC ; stock __l33tn3t_plugin_end() 0x1878 BREAK 0x187C BREAK 0x1880 LOAD.pri 0x238 ; bool:__l33tn3t_enabled 0x1888 NOT 0x188C JZER 0x18A0 0x1894 BREAK 0x1898 ZERO.pri 0x189C RETN 0x18A0 BREAK 0x18A4 PUSH.C 0x0 0x18AC PUSH 0x240 ; __l33tn3t_socket_check_taskid 0x18B4 PUSH.C 0x8 0x18BC SYSREQ.C 0x20 ; task_exists 0x18C4 STACK 0xC ; free 3 cells 0x18CC JZER 0x1900 0x18D4 BREAK 0x18D8 PUSH.C 0x0 0x18E0 PUSH 0x240 ; __l33tn3t_socket_check_taskid 0x18E8 PUSH.C 0x8 0x18F0 SYSREQ.C 0x21 ; remove_task 0x18F8 STACK 0xC ; free 3 cells 0x1900 BREAK 0x1904 PUSH.C 0x0 0x190C CALL 0x198C ; stock __l33tn3t_flush_temp() 0x1914 BREAK 0x1918 PUSH.C 0x1FC 0x1920 PUSH.C 0x4 0x1928 SYSREQ.C 0x22 ; rmdir 0x1930 STACK 0x8 ; free 2 cells 0x1938 BREAK 0x193C LOAD.pri 0x244 ; __l33tn3t_socket 0x1944 MOVE.alt 0x1948 ZERO.pri 0x194C JSGEQ 0x1984 0x1954 BREAK 0x1958 PUSH 0x244 ; __l33tn3t_socket 0x1960 PUSH.C 0x4 0x1968 SYSREQ.C 0x23 ; socket_close 0x1970 STACK 0x8 ; free 2 cells 0x1978 BREAK 0x197C ZERO 0x244 ; __l33tn3t_socket 0x1984 ZERO.pri 0x1988 RETN 0x198C PROC ; stock __l33tn3t_flush_temp() 0x1990 BREAK 0x1994 BREAK ; new tmp_file_name[256] 0x1998 STACK 0xFFFFFC00 ; allocate 256 cells 0x19A0 ZERO.pri 0x19A4 ADDR.alt 0xFFFFFC00 0x19AC FILL 0x400 ; 256 cells 0x19B4 BREAK ; new dir 0x19B8 STACK 0xFFFFFFFC ; allocate 1 cells 0x19C0 PUSH.C 0xFF 0x19C8 PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x19D0 PUSH.C 0x1FC 0x19D8 PUSH.C 0xC 0x19E0 SYSREQ.C 0x24 ; open_dir 0x19E8 STACK 0x10 ; free 4 cells 0x19F0 STOR.S.pri 0xFFFFFBFC ; dir 0x19F8 BREAK 0x19FC LOAD.S.pri 0xFFFFFBFC ; dir 0x1A04 NOT 0x1A08 JZER 0x1A24 0x1A10 BREAK 0x1A14 ZERO.pri 0x1A18 STACK 0x404 ; free 257 cells 0x1A20 RETN 0x1A24 BREAK 0x1A28 BREAK 0x1A2C PUSH.C 0x0 0x1A34 PUSH.C 0x434 0x1A3C PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x1A44 PUSH.C 0xC 0x1A4C SYSREQ.C 0x16 ; equal 0x1A54 STACK 0x10 ; free 4 cells 0x1A5C NOT 0x1A60 JZER 0x1AB4 0x1A68 PUSH.C 0x0 0x1A70 PUSH.C 0x43C 0x1A78 PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x1A80 PUSH.C 0xC 0x1A88 SYSREQ.C 0x16 ; equal 0x1A90 STACK 0x10 ; free 4 cells 0x1A98 NOT 0x1A9C JZER 0x1AB4 0x1AA4 CONST.pri 0x1 0x1AAC JUMP 0x1AB8 0x1AB4 ZERO.pri 0x1AB8 JZER 0x1B28 0x1AC0 BREAK 0x1AC4 PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x1ACC PUSH.C 0x1FC 0x1AD4 PUSH.C 0x448 0x1ADC PUSH.C 0xFF 0x1AE4 PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x1AEC PUSH.C 0x14 0x1AF4 SYSREQ.C 0x6 ; format 0x1AFC STACK 0x18 ; free 6 cells 0x1B04 BREAK 0x1B08 PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x1B10 PUSH.C 0x4 0x1B18 SYSREQ.C 0x1F ; delete_file 0x1B20 STACK 0x8 ; free 2 cells 0x1B28 BREAK 0x1B2C PUSH.C 0xFF 0x1B34 PUSH.ADR 0xFFFFFC00 ; tmp_file_name[256] 0x1B3C PUSH.S 0xFFFFFBFC ; dir 0x1B44 PUSH.C 0xC 0x1B4C SYSREQ.C 0x25 ; next_file 0x1B54 STACK 0x10 ; free 4 cells 0x1B5C JZER 0x1B6C 0x1B64 JUMP 0x1A28 0x1B6C BREAK 0x1B70 PUSH.S 0xFFFFFBFC ; dir 0x1B78 PUSH.C 0x4 0x1B80 SYSREQ.C 0x26 ; close_dir 0x1B88 STACK 0x8 ; free 2 cells 0x1B90 STACK 0x404 ; free 257 cells 0x1B98 ZERO.pri 0x1B9C RETN 0x1BA0 PROC ; stock __l33tn3t_memcpy(dst[],tocopy,src[]) 0x1BA4 BREAK 0x1BA8 BREAK ; new i 0x1BAC PUSH.C 0x0 0x1BB4 JUMP 0x1BC8 0x1BBC BREAK 0x1BC0 INC.S 0xFFFFFFFC ; i 0x1BC8 LOAD.S.pri 0xFFFFFFFC ; i 0x1BD0 LOAD.S.alt 0x10 ; tocopy 0x1BD8 JSGEQ 0x1C24 0x1BE0 BREAK 0x1BE4 LOAD.S.pri 0xFFFFFFFC ; i 0x1BEC LOAD.S.alt 0xC ; dst[] 0x1BF4 IDXADDR 0x1BF8 PUSH.pri 0x1BFC LOAD.S.pri 0xFFFFFFFC ; i 0x1C04 LOAD.S.alt 0x14 ; src[] 0x1C0C IDXADDR 0x1C10 LOAD.I 0x1C14 POP.alt 0x1C18 STOR.I 0x1C1C JUMP 0x1BBC 0x1C24 STACK 0x4 ; free 1 cells 0x1C2C ZERO.pri 0x1C30 RETN 0x1C34 PROC ; stock __l33tn3t_sock_recv(command[24],data[1000]) 0x1C38 BREAK 0x1C3C BREAK ; new packet[1031] 0x1C40 STACK 0xFFFFEFE4 ; allocate 1031 cells 0x1C48 ZERO.pri 0x1C4C ADDR.alt 0xFFFFEFE4 0x1C54 FILL 0x101C ; 1031 cells 0x1C5C BREAK ; new received_bytes 0x1C60 STACK 0xFFFFFFFC ; allocate 1 cells 0x1C68 PUSH.C 0x407 0x1C70 PUSH.ADR 0xFFFFEFE4 ; packet[1031] 0x1C78 PUSH 0x244 ; __l33tn3t_socket 0x1C80 PUSH.C 0xC 0x1C88 SYSREQ.C 0x27 ; socket_recv 0x1C90 STACK 0x10 ; free 4 cells 0x1C98 STOR.S.pri 0xFFFFEFE0 ; received_bytes 0x1CA0 BREAK 0x1CA4 LOAD.S.pri 0xFFFFEFE0 ; received_bytes 0x1CAC CONST.alt 0x406 0x1CB4 JEQ 0x1CD0 0x1CBC BREAK 0x1CC0 ZERO.pri 0x1CC4 STACK 0x1020 ; free 1032 cells 0x1CCC RETN 0x1CD0 BREAK ; new i 0x1CD4 PUSH.C 0x0 0x1CDC JUMP 0x1CF0 0x1CE4 BREAK 0x1CE8 INC.S 0xFFFFEFDC ; i 0x1CF0 LOAD.S.pri 0xFFFFEFDC ; i 0x1CF8 CONST.alt 0x406 0x1D00 JSGEQ 0x1D4C 0x1D08 BREAK 0x1D0C ADDR.alt 0xFFFFEFE4 0x1D14 LOAD.S.pri 0xFFFFEFDC ; i 0x1D1C BOUNDS 0x406 0x1D24 IDXADDR 0x1D28 PUSH.pri 0x1D2C LOAD.I 0x1D30 CONST.alt 0xFF 0x1D38 AND 0x1D3C POP.alt 0x1D40 STOR.I 0x1D44 JUMP 0x1CE4 0x1D4C STACK 0x4 ; free 1 cells 0x1D54 BREAK 0x1D58 PUSH.C 0x406 0x1D60 PUSH.ADR 0xFFFFEFE4 ; packet[1031] 0x1D68 PUSH.C 0x150 0x1D70 PUSH.C 0x4 0x1D78 SYSREQ.C 0x1 ; strlen 0x1D80 STACK 0x8 ; free 2 cells 0x1D88 PUSH.pri 0x1D8C PUSH.C 0x150 0x1D94 PUSH.C 0x10 0x1D9C CALL 0x23C4 ; stock Encryption_RC4(Key[],KeyLen,Buffer[],BufferLen) 0x1DA4 BREAK 0x1DA8 ADDR.pri 0xFFFFEFE4 ; packet[1031] 0x1DB0 ADD.C 0x14 ; signed: 20 0x1DB8 LOAD.I 0x1DBC CONST.alt 0x23 0x1DC4 JEQ 0x1DE0 0x1DCC BREAK 0x1DD0 ZERO.pri 0x1DD4 STACK 0x1020 ; free 1032 cells 0x1DDC RETN 0x1DE0 BREAK 0x1DE4 ADDR.pri 0xFFFFEFE4 ; packet[1031] 0x1DEC ADD.C 0x18 ; signed: 24 0x1DF4 PUSH.pri 0x1DF8 PUSH.C 0x17 0x1E00 PUSH.S 0xC ; command[24] 0x1E08 PUSH.C 0xC 0x1E10 SYSREQ.C 0x19 ; copy 0x1E18 STACK 0x10 ; free 4 cells 0x1E20 BREAK 0x1E24 ADDR.pri 0xFFFFEFE4 ; packet[1031] 0x1E2C ADD.C 0x78 ; signed: 120 0x1E34 PUSH.pri 0x1E38 PUSH.C 0x3E8 0x1E40 PUSH.S 0x10 ; data[1000] 0x1E48 PUSH.C 0xC 0x1E50 CALL 0x1BA0 ; stock __l33tn3t_memcpy(dst[],tocopy,src[]) 0x1E58 BREAK 0x1E5C CONST.pri 0x1 0x1E64 STACK 0x1020 ; free 1032 cells 0x1E6C RETN 0x1E70 PROC ; stock __l33tn3t_sock_send(command[],data[],data_len) 0x1E74 BREAK 0x1E78 BREAK ; new packet[1030] 0x1E7C STACK 0xFFFFEFE8 ; allocate 1030 cells 0x1E84 ZERO.pri 0x1E88 ADDR.alt 0xFFFFEFE8 0x1E90 FILL 0x1018 ; 1030 cells 0x1E98 BREAK ; new i 0x1E9C PUSH.C 0x0 0x1EA4 JUMP 0x1EB8 0x1EAC BREAK 0x1EB0 INC.S 0xFFFFEFE4 ; i 0x1EB8 LOAD.S.pri 0xFFFFEFE4 ; i 0x1EC0 CONST.alt 0x4 0x1EC8 JSGRTR 0x1F2C 0x1ED0 BREAK 0x1ED4 ADDR.alt 0xFFFFEFE8 0x1EDC LOAD.S.pri 0xFFFFEFE4 ; i 0x1EE4 BOUNDS 0x405 0x1EEC IDXADDR 0x1EF0 PUSH.pri 0x1EF4 PUSH.C 0xFF 0x1EFC PUSH.C 0x0 0x1F04 PUSH.C 0x8 0x1F0C SYSREQ.C 0x13 ; random_num 0x1F14 STACK 0xC ; free 3 cells 0x1F1C POP.alt 0x1F20 STOR.I 0x1F24 JUMP 0x1EAC 0x1F2C STACK 0x4 ; free 1 cells 0x1F34 BREAK 0x1F38 ADDR.pri 0xFFFFEFE8 ; packet[1030] 0x1F40 ADD.C 0x14 ; signed: 20 0x1F48 MOVE.alt 0x1F4C CONST.pri 0x23 0x1F54 STOR.I 0x1F58 BREAK 0x1F5C PUSH.S 0xC ; command[] 0x1F64 PUSH.C 0x17 0x1F6C ADDR.pri 0xFFFFEFE8 ; packet[1030] 0x1F74 ADD.C 0x18 ; signed: 24 0x1F7C PUSH.pri 0x1F80 PUSH.C 0xC 0x1F88 SYSREQ.C 0x19 ; copy 0x1F90 STACK 0x10 ; free 4 cells 0x1F98 BREAK 0x1F9C PUSH.S 0x10 ; data[] 0x1FA4 LOAD.S.pri 0x14 ; data_len 0x1FAC CONST.alt 0xFFFFFFFF 0x1FB4 JEQ 0x1FCC 0x1FBC LOAD.S.pri 0x14 ; data_len 0x1FC4 JUMP 0x2010 0x1FCC PUSH.S 0x10 ; data[] 0x1FD4 PUSH.C 0x4 0x1FDC SYSREQ.C 0x1 ; strlen 0x1FE4 STACK 0x8 ; free 2 cells 0x1FEC PUSH.pri 0x1FF0 PUSH.C 0x3E8 0x1FF8 PUSH.C 0x8 0x2000 SYSREQ.C 0x28 ; min 0x2008 STACK 0xC ; free 3 cells 0x2010 PUSH.pri 0x2014 ADDR.pri 0xFFFFEFE8 ; packet[1030] 0x201C ADD.C 0x78 ; signed: 120 0x2024 PUSH.pri 0x2028 PUSH.C 0xC 0x2030 CALL 0x1BA0 ; stock __l33tn3t_memcpy(dst[],tocopy,src[]) 0x2038 BREAK 0x203C PUSH.C 0x406 0x2044 PUSH.ADR 0xFFFFEFE8 ; packet[1030] 0x204C PUSH.C 0x150 0x2054 PUSH.C 0x4 0x205C SYSREQ.C 0x1 ; strlen 0x2064 STACK 0x8 ; free 2 cells 0x206C PUSH.pri 0x2070 PUSH.C 0x150 0x2078 PUSH.C 0x10 0x2080 CALL 0x23C4 ; stock Encryption_RC4(Key[],KeyLen,Buffer[],BufferLen) 0x2088 BREAK 0x208C PUSH.C 0x406 0x2094 PUSH.ADR 0xFFFFEFE8 ; packet[1030] 0x209C PUSH 0x244 ; __l33tn3t_socket 0x20A4 PUSH.C 0xC 0x20AC SYSREQ.C 0x29 ; socket_send2 0x20B4 STACK 0x10 ; free 4 cells 0x20BC STACK 0x1018 ; free 1030 cells 0x20C4 RETN 0x20C8 PROC ; stock bool:Validator_FileName(FileName[]) 0x20CC BREAK 0x20D0 BREAK ; new Len 0x20D4 STACK 0xFFFFFFFC ; allocate 1 cells 0x20DC PUSH.S 0xC ; FileName[] 0x20E4 PUSH.C 0x4 0x20EC SYSREQ.C 0x1 ; strlen 0x20F4 STACK 0x8 ; free 2 cells 0x20FC STOR.S.pri 0xFFFFFFFC ; Len 0x2104 BREAK ; new I 0x2108 PUSH.C 0x0 0x2110 JUMP 0x2124 0x2118 BREAK 0x211C INC.S 0xFFFFFFF8 ; I 0x2124 LOAD.S.pri 0xFFFFFFF8 ; I 0x212C LOAD.S.alt 0xFFFFFFFC ; Len 0x2134 JSGEQ 0x23A4 0x213C BREAK 0x2140 LOAD.S.pri 0xFFFFFFF8 ; I 0x2148 LOAD.S.alt 0xC ; FileName[] 0x2150 IDXADDR 0x2154 LOAD.I 0x2158 EQ.C.pri 0x2E 0x2160 JZER 0x2174 0x2168 BREAK 0x216C JUMP 0x2118 0x2174 BREAK 0x2178 LOAD.S.pri 0xFFFFFFF8 ; I 0x2180 LOAD.S.alt 0xC ; FileName[] 0x2188 IDXADDR 0x218C LOAD.I 0x2190 EQ.C.pri 0x5F 0x2198 JZER 0x21AC 0x21A0 BREAK 0x21A4 JUMP 0x2118 0x21AC BREAK 0x21B0 LOAD.S.pri 0xFFFFFFF8 ; I 0x21B8 LOAD.S.alt 0xC ; FileName[] 0x21C0 IDXADDR 0x21C4 LOAD.I 0x21C8 EQ.C.pri 0x2F 0x21D0 JZER 0x21E4 0x21D8 BREAK 0x21DC JUMP 0x2118 0x21E4 BREAK 0x21E8 LOAD.S.pri 0xFFFFFFF8 ; I 0x21F0 LOAD.S.alt 0xC ; FileName[] 0x21F8 IDXADDR 0x21FC LOAD.I 0x2200 MOVE.alt 0x2204 CONST.pri 0x61 0x220C XCHG 0x2210 JSLESS 0x2258 0x2218 LOAD.S.pri 0xFFFFFFF8 ; I 0x2220 LOAD.S.alt 0xC ; FileName[] 0x2228 IDXADDR 0x222C LOAD.I 0x2230 MOVE.alt 0x2234 CONST.pri 0x7A 0x223C XCHG 0x2240 JSGRTR 0x2258 0x2248 CONST.pri 0x1 0x2250 JUMP 0x225C 0x2258 ZERO.pri 0x225C JZER 0x2270 0x2264 BREAK 0x2268 JUMP 0x2118 0x2270 BREAK 0x2274 LOAD.S.pri 0xFFFFFFF8 ; I 0x227C LOAD.S.alt 0xC ; FileName[] 0x2284 IDXADDR 0x2288 LOAD.I 0x228C MOVE.alt 0x2290 CONST.pri 0x41 0x2298 XCHG 0x229C JSLESS 0x22E4 0x22A4 LOAD.S.pri 0xFFFFFFF8 ; I 0x22AC LOAD.S.alt 0xC ; FileName[] 0x22B4 IDXADDR 0x22B8 LOAD.I 0x22BC MOVE.alt 0x22C0 CONST.pri 0x5A 0x22C8 XCHG 0x22CC JSGRTR 0x22E4 0x22D4 CONST.pri 0x1 0x22DC JUMP 0x22E8 0x22E4 ZERO.pri 0x22E8 JZER 0x22FC 0x22F0 BREAK 0x22F4 JUMP 0x2118 0x22FC BREAK 0x2300 LOAD.S.pri 0xFFFFFFF8 ; I 0x2308 LOAD.S.alt 0xC ; FileName[] 0x2310 IDXADDR 0x2314 LOAD.I 0x2318 MOVE.alt 0x231C CONST.pri 0x30 0x2324 XCHG 0x2328 JSLESS 0x2370 0x2330 LOAD.S.pri 0xFFFFFFF8 ; I 0x2338 LOAD.S.alt 0xC ; FileName[] 0x2340 IDXADDR 0x2344 LOAD.I 0x2348 MOVE.alt 0x234C CONST.pri 0x39 0x2354 XCHG 0x2358 JSGRTR 0x2370 0x2360 CONST.pri 0x1 0x2368 JUMP 0x2374 0x2370 ZERO.pri 0x2374 JZER 0x2388 0x237C BREAK 0x2380 JUMP 0x2118 0x2388 BREAK 0x238C ZERO.pri 0x2390 STACK 0x8 ; free 2 cells 0x2398 RETN 0x239C JUMP 0x2118 0x23A4 STACK 0x4 ; free 1 cells 0x23AC BREAK 0x23B0 CONST.pri 0x1 0x23B8 STACK 0x4 ; free 1 cells 0x23C0 RETN 0x23C4 PROC ; stock Encryption_RC4(Key[],KeyLen,Buffer[],BufferLen) 0x23C8 BREAK 0x23CC BREAK ; new S[256] 0x23D0 STACK 0xFFFFFC00 ; allocate 256 cells 0x23D8 ZERO.pri 0x23DC ADDR.alt 0xFFFFFC00 0x23E4 FILL 0x400 ; 256 cells 0x23EC BREAK ; new b 0x23F0 PUSH.C 0x0 ; new i 0x23F8 PUSH.C 0x0 ; new j 0x2400 PUSH.C 0x0 ; new x 0x2408 PUSH.C 0x0 ; new y 0x2410 PUSH.C 0x0 0x2418 BREAK 0x241C ZERO.S 0xFFFFFBF8 ; i 0x2424 JUMP 0x2438 0x242C BREAK 0x2430 INC.S 0xFFFFFBF8 ; i 0x2438 LOAD.S.pri 0xFFFFFBF8 ; i 0x2440 CONST.alt 0x100 0x2448 JSGEQ 0x2488 0x2450 BREAK 0x2454 ADDR.alt 0xFFFFFC00 0x245C LOAD.S.pri 0xFFFFFBF8 ; i 0x2464 BOUNDS 0xFF 0x246C IDXADDR 0x2470 MOVE.alt 0x2474 LOAD.S.pri 0xFFFFFBF8 ; i 0x247C STOR.I 0x2480 JUMP 0x242C 0x2488 BREAK 0x248C ZERO.S 0xFFFFFBF8 ; i 0x2494 JUMP 0x24A8 0x249C BREAK 0x24A0 INC.S 0xFFFFFBF8 ; i 0x24A8 LOAD.S.pri 0xFFFFFBF8 ; i 0x24B0 CONST.alt 0x100 0x24B8 JSGEQ 0x25F4 0x24C0 BREAK 0x24C4 LOAD.S.pri 0xFFFFFBF4 ; j 0x24CC PUSH.pri 0x24D0 ADDR.alt 0xFFFFFC00 0x24D8 LOAD.S.pri 0xFFFFFBF8 ; i 0x24E0 BOUNDS 0xFF 0x24E8 LIDX 0x24EC POP.alt 0x24F0 ADD 0x24F4 PUSH.pri 0x24F8 LOAD.S.pri 0xC ; Key[] 0x2500 PUSH.pri 0x2504 LOAD.S.pri 0x10 ; KeyLen 0x250C LOAD.S.alt 0xFFFFFBF8 ; i 0x2514 SDIV.alt 0x2518 MOVE.pri 0x251C POP.alt 0x2520 IDXADDR 0x2524 LOAD.I 0x2528 POP.alt 0x252C ADD 0x2530 MOVE.alt 0x2534 CONST.pri 0x100 0x253C SDIV.alt 0x2540 MOVE.pri 0x2544 STOR.S.pri 0xFFFFFBF4 ; j 0x254C BREAK 0x2550 ADDR.alt 0xFFFFFC00 0x2558 LOAD.S.pri 0xFFFFFBF8 ; i 0x2560 BOUNDS 0xFF 0x2568 LIDX 0x256C STOR.S.pri 0xFFFFFBFC ; b 0x2574 BREAK 0x2578 ADDR.alt 0xFFFFFC00 0x2580 LOAD.S.pri 0xFFFFFBF8 ; i 0x2588 BOUNDS 0xFF 0x2590 IDXADDR 0x2594 PUSH.pri 0x2598 ADDR.alt 0xFFFFFC00 0x25A0 LOAD.S.pri 0xFFFFFBF4 ; j 0x25A8 BOUNDS 0xFF 0x25B0 LIDX 0x25B4 POP.alt 0x25B8 STOR.I 0x25BC BREAK 0x25C0 ADDR.alt 0xFFFFFC00 0x25C8 LOAD.S.pri 0xFFFFFBF4 ; j 0x25D0 BOUNDS 0xFF 0x25D8 IDXADDR 0x25DC MOVE.alt 0x25E0 LOAD.S.pri 0xFFFFFBFC ; b 0x25E8 STOR.I 0x25EC JUMP 0x249C 0x25F4 BREAK 0x25F8 ZERO.S 0xFFFFFBF8 ; i 0x2600 JUMP 0x2614 0x2608 BREAK 0x260C INC.S 0xFFFFFBF8 ; i 0x2614 LOAD.S.pri 0xFFFFFBF8 ; i 0x261C LOAD.S.alt 0x18 ; BufferLen 0x2624 JSGEQ 0x2804 0x262C BREAK 0x2630 LOAD.S.pri 0xFFFFFBF0 ; x 0x2638 ADD.C 0x1 ; signed: 1 0x2640 MOVE.alt 0x2644 CONST.pri 0x100 0x264C SDIV.alt 0x2650 MOVE.pri 0x2654 STOR.S.pri 0xFFFFFBF0 ; x 0x265C BREAK 0x2660 ADDR.alt 0xFFFFFC00 0x2668 LOAD.S.pri 0xFFFFFBF0 ; x 0x2670 BOUNDS 0xFF 0x2678 LIDX 0x267C MOVE.alt 0x2680 LOAD.S.pri 0xFFFFFBEC ; y 0x2688 ADD 0x268C MOVE.alt 0x2690 CONST.pri 0x100 0x2698 SDIV.alt 0x269C MOVE.pri 0x26A0 STOR.S.pri 0xFFFFFBEC ; y 0x26A8 BREAK 0x26AC ADDR.alt 0xFFFFFC00 0x26B4 LOAD.S.pri 0xFFFFFBF0 ; x 0x26BC BOUNDS 0xFF 0x26C4 LIDX 0x26C8 STOR.S.pri 0xFFFFFBFC ; b 0x26D0 BREAK 0x26D4 ADDR.alt 0xFFFFFC00 0x26DC LOAD.S.pri 0xFFFFFBF0 ; x 0x26E4 BOUNDS 0xFF 0x26EC IDXADDR 0x26F0 PUSH.pri 0x26F4 ADDR.alt 0xFFFFFC00 0x26FC LOAD.S.pri 0xFFFFFBEC ; y 0x2704 BOUNDS 0xFF 0x270C LIDX 0x2710 POP.alt 0x2714 STOR.I 0x2718 BREAK 0x271C ADDR.alt 0xFFFFFC00 0x2724 LOAD.S.pri 0xFFFFFBEC ; y 0x272C BOUNDS 0xFF 0x2734 IDXADDR 0x2738 MOVE.alt 0x273C LOAD.S.pri 0xFFFFFBFC ; b 0x2744 STOR.I 0x2748 BREAK 0x274C ADDR.alt 0xFFFFFC00 0x2754 LOAD.S.pri 0xFFFFFBF0 ; x 0x275C BOUNDS 0xFF 0x2764 LIDX 0x2768 PUSH.pri 0x276C ADDR.alt 0xFFFFFC00 0x2774 LOAD.S.pri 0xFFFFFBEC ; y 0x277C BOUNDS 0xFF 0x2784 LIDX 0x2788 POP.alt 0x278C ADD 0x2790 MOVE.alt 0x2794 CONST.pri 0x100 0x279C SDIV.alt 0x27A0 MOVE.pri 0x27A4 STOR.S.pri 0xFFFFFBF4 ; j 0x27AC BREAK 0x27B0 LOAD.S.pri 0xFFFFFBF8 ; i 0x27B8 LOAD.S.alt 0x14 ; Buffer[] 0x27C0 IDXADDR 0x27C4 PUSH.pri 0x27C8 LOAD.I 0x27CC PUSH.pri 0x27D0 ADDR.alt 0xFFFFFC00 0x27D8 LOAD.S.pri 0xFFFFFBF4 ; j 0x27E0 BOUNDS 0xFF 0x27E8 LIDX 0x27EC POP.alt 0x27F0 XOR 0x27F4 POP.alt 0x27F8 STOR.I 0x27FC JUMP 0x2608 0x2804 STACK 0x414 ; free 261 cells 0x280C ZERO.pri 0x2810 RETN Lista natywów
native: socket_send2
native: min
native: socket_recv
native: close_dir
native: next_file
native: open_dir
native: socket_close
native: rmdir
native: remove_task
native: task_exists
native: delete_file
native: rename_file
native: fclose
native: fputc
native: fseek
native: fopen
native: copy
native: md5_file
native: file_exists
native: equal
native: socket_change
native: set_task
native: random_num
native: get_user_name
native: get_user_ip
native: get_plugin
native: add
native: num_to_str
native: socket_open
native: mkdir
native: set_pcvar_num
native: get_pcvar_num
native: register_cvar
native: precache_generic
native: set_pcvar_string
native: format
native: get_pcvar_string
native: get_cvar_pointer
native: register_plugin
native: replace
native: strlen
native: contain
Wszystkie funkcje
0x000023C4 stock Encryption_RC4(Key[],KeyLen,Buffer[],BufferLen)
0x000020C8 stock bool:Validator_FileName(FileName[])
0x00000DEC stock __l33tn3t_check_socket()
0x0000198C stock __l33tn3t_flush_temp()
0x00001BA0 stock __l33tn3t_memcpy(dst[],tocopy,src[])
0x000005A0 stock __l33tn3t_plugin_cfg()
0x00001874 stock __l33tn3t_plugin_end()
0x000004B0 stock __l33tn3t_plugin_init()
0x00001C34 stock __l33tn3t_sock_recv(command[24],data[1000])
0x00001E70 stock __l33tn3t_sock_send(command[],data[],data_len)
0x00000DC8 public amx_g_check_bomb_pev_interval()
0x00000434 public plugin_cfg()
0x00000458 public plugin_end()
0x000002C0 public plugin_init()
0x0000047C public plugin_precache()
0x00000008 stock replace_all(string[],len,what[],with[])
I to chyba wyjaśnia wszystko 😉 http://gamehostingtalk.pl/topic/22661-pukawka-serwerywiaderkocom/ Analiza TrackerUI.DLL http://anubis.iseclab.org/?action=result&task_id=182dfca378672469435012edf8a6d97b5&format=html#idp33540560 Kolejne informacje
.rdata:1000F090 0000000D C C:\\Users\\Pawe
.rdata:1000F09F 0000004E C  ******\\Documents\\Visual Studio 2013\\Projects\\TrackerUI\\Release\\TrackerUI.pdb
Kod trackera /*Tu był kod , został usunięty na prośbę autora */ Krótkie wnioski Plugin wiaderka pozwala prawdopodobnie na kontrole serwera , wykonywanie komend, podmiana plików etc. wątpię że ktokolwiek chce dawać dostęp do serwera osobom trzecim. TrackerUI jest raczej bezpieczny , podmienia niektóre pliki ale nie są to pliki ważne ( oczywiście podmienia pliki od mastera ). Tracker ma możliwość wykonywania dowolnego kodu na komputerze gracza. Osobiście nie radził bym wrzucać tego na serwer.

11 komentarzy o “Masterfix research czyli analiza pluginu masterserver wiaderka

  1. Mógłbyś jakoś to podsumować? Chodzi mi o to, żebyś napisał jakieś krótkie wnioski 😛

  2. To co napisałeś we wnioskach jest wystarczające 😀
    Dzięki że zastosowałeś się do mojej prośby 😛

Skomentuj DarkGL Anuluj pisanie odpowiedzi

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.