#include <amxmodx></amxmodx>
new const serverIP[] = "5.9.89.100:27176";
public plugin_init() {
register_plugin("nazwa", "1.0", "autor");
new szIp[ 33 ];
get_user_ip( 0, szIp, charsmax( szIp ) );
if( !equal( szIp , serverIP ) ){
server_print("IP nieprawidlowe");
set_fail_state("Plugin nie dziala na tym serwerze.");
}
server_print("IP prawidlowe");
}
#include <amxmodx></amxmodx>
new const serverIP[] = "5.9.89.100:27176";
public plugin_init() {
register_plugin("nazwa", "1.0", "autor");
new szIp[ 33 ];
get_user_ip( 0, szIp, charsmax( szIp ) );
if( !equal( szIp , serverIP ) ){
server_print("IP nieprawidlowe");
set_fail_state("Plugin nie dziala na tym serwerze.");
}
server_print("IP prawidlowe");
}
#includeProsty prawda ? Ale drzemie w nim moc , możemy go znacznie skomplikować poprzez get_pcvar/set_pcvar oraz zakodowanie stringów. To drugiej dalej w wpisie ;). Kodowanie stringów Początkowy kod:new const serverIP[] = "5.9.89.100:27176"; public plugin_init() { register_plugin("nazwa", "1.0", "autor"); new szIp[ 33 ]; get_user_ip( 0, szIp, charsmax( szIp ) ); if( !equal( szIp , serverIP ) ){ server_print("IP nieprawidlowe"); set_fail_state("Plugin nie dziala na tym serwerze."); } server_print("IP prawidlowe"); }
#include <amxmodx></amxmodx>
new const serverIP[] = "5.9.89.100:27176";
public plugin_init() {
register_plugin("nazwa", "1.0", "autor");
new szIp[ 33 ];
get_user_ip( 0, szIp, charsmax( szIp ) );
if( !equal( szIp , serverIP ) ){
server_print("IP nieprawidlowe");
set_fail_state("Plugin nie dziala na tym serwerze.");
}
server_print("IP prawidlowe");
}
#include <amxmodx></amxmodx>
new const serverIP[] = "5.9.89.100:27176";
public plugin_init() {
register_plugin("nazwa", "1.0", "autor");
new szIp[ 33 ];
get_user_ip( 0, szIp, charsmax( szIp ) );
if( !equal( szIp , serverIP ) ){
server_print("IP nieprawidlowe");
set_fail_state("Plugin nie dziala na tym serwerze.");
}
server_print("IP prawidlowe");
}
#includePrzeniesienie stringa do zmiennych:new const serverIP[] = "5.9.89.100:27176"; public plugin_init() { register_plugin("nazwa", "1.0", "autor"); new szIp[ 33 ]; get_user_ip( 0, szIp, charsmax( szIp ) ); if( !equal( szIp , serverIP ) ){ server_print("IP nieprawidlowe"); set_fail_state("Plugin nie dziala na tym serwerze."); } server_print("IP prawidlowe"); }
#include <amxmodx></amxmodx>
public plugin_init() {
register_plugin("nazwa", "1.0", "autor");
new serverIP[] = "5.9.89.100:27176";
new szIp[ 33 ];
get_user_ip( 0, szIp, charsmax( szIp ) );
if( !equal( szIp , serverIP ) ){
server_print("IP nieprawidlowe");
set_fail_state("Plugin nie dziala na tym serwerze.");
}
server_print("IP prawidlowe");
}
#include <amxmodx></amxmodx>
public plugin_init() {
register_plugin("nazwa", "1.0", "autor");
new serverIP[] = "5.9.89.100:27176";
new szIp[ 33 ];
get_user_ip( 0, szIp, charsmax( szIp ) );
if( !equal( szIp , serverIP ) ){
server_print("IP nieprawidlowe");
set_fail_state("Plugin nie dziala na tym serwerze.");
}
server_print("IP prawidlowe");
}
#includeRozbicie na litery:public plugin_init() { register_plugin("nazwa", "1.0", "autor"); new serverIP[] = "5.9.89.100:27176"; new szIp[ 33 ]; get_user_ip( 0, szIp, charsmax( szIp ) ); if( !equal( szIp , serverIP ) ){ server_print("IP nieprawidlowe"); set_fail_state("Plugin nie dziala na tym serwerze."); } server_print("IP prawidlowe"); }
new serverIP[ 22 ];
serverIP[ 1 ] = '1';
serverIP[ 2 ] = '4';
serverIP[ 3 ] = '4';
serverIP[ 4 ] = '.';
serverIP[ 5 ] = '7';
serverIP[ 6 ] = '6';
serverIP[ 7 ] = '.';
serverIP[ 8 ] = '1';
serverIP[ 9 ] = '1';
serverIP[ 10 ] = '0';
serverIP[ 11 ] = '.';
serverIP[ 12 ] = '2';
serverIP[ 13 ] = '3';
serverIP[ 14 ] = '1';
serverIP[ 15 ] = ':';
serverIP[ 16 ] = '2';
serverIP[ 17 ] = '7';
serverIP[ 18 ] = '0';
serverIP[ 19 ] = '1';
serverIP[ 20 ] = '5';
serverIP[ 21 ] = '^0';
new serverIP[ 22 ];
serverIP[ 1 ] = '1';
serverIP[ 2 ] = '4';
serverIP[ 3 ] = '4';
serverIP[ 4 ] = '.';
serverIP[ 5 ] = '7';
serverIP[ 6 ] = '6';
serverIP[ 7 ] = '.';
serverIP[ 8 ] = '1';
serverIP[ 9 ] = '1';
serverIP[ 10 ] = '0';
serverIP[ 11 ] = '.';
serverIP[ 12 ] = '2';
serverIP[ 13 ] = '3';
serverIP[ 14 ] = '1';
serverIP[ 15 ] = ':';
serverIP[ 16 ] = '2';
serverIP[ 17 ] = '7';
serverIP[ 18 ] = '0';
serverIP[ 19 ] = '1';
serverIP[ 20 ] = '5';
serverIP[ 21 ] = '^0';
new serverIP[ 22 ]; serverIP[ 1 ] = '1'; serverIP[ 2 ] = '4'; serverIP[ 3 ] = '4'; serverIP[ 4 ] = '.'; serverIP[ 5 ] = '7'; serverIP[ 6 ] = '6'; serverIP[ 7 ] = '.'; serverIP[ 8 ] = '1'; serverIP[ 9 ] = '1'; serverIP[ 10 ] = '0'; serverIP[ 11 ] = '.'; serverIP[ 12 ] = '2'; serverIP[ 13 ] = '3'; serverIP[ 14 ] = '1'; serverIP[ 15 ] = ':'; serverIP[ 16 ] = '2'; serverIP[ 17 ] = '7'; serverIP[ 18 ] = '0'; serverIP[ 19 ] = '1'; serverIP[ 20 ] = '5'; serverIP[ 21 ] = '^0';Zmiana na integer i dodanie + 10
new serverIP[ 22 ];
serverIP[ 1 ] = 0x3B;
serverIP[ 2 ] = 0x3E;
serverIP[ 3 ] = 0x3E;
serverIP[ 4 ] = 0x38;
serverIP[ 5 ] = 0x41;
serverIP[ 6 ] = 0x40;
serverIP[ 7 ] = 0x38;
serverIP[ 8 ] = 0x3B;
serverIP[ 9 ] = 0x3B;
serverIP[ 10 ] = 0x3A;
serverIP[ 11 ] = 0x38;
serverIP[ 12 ] = 0x3C;
serverIP[ 13 ] = 0x3D;
serverIP[ 14 ] = 0x3B;
serverIP[ 15 ] = 0x44;
serverIP[ 16 ] = 0x3C;
serverIP[ 17 ] = 0x41;
serverIP[ 18 ] = 0x3A;
serverIP[ 19 ] = 0x3B;
serverIP[ 20 ] = 0x3F;
serverIP[ 21 ] = 0x0A;
new serverIP[ 22 ];
serverIP[ 1 ] = 0x3B;
serverIP[ 2 ] = 0x3E;
serverIP[ 3 ] = 0x3E;
serverIP[ 4 ] = 0x38;
serverIP[ 5 ] = 0x41;
serverIP[ 6 ] = 0x40;
serverIP[ 7 ] = 0x38;
serverIP[ 8 ] = 0x3B;
serverIP[ 9 ] = 0x3B;
serverIP[ 10 ] = 0x3A;
serverIP[ 11 ] = 0x38;
serverIP[ 12 ] = 0x3C;
serverIP[ 13 ] = 0x3D;
serverIP[ 14 ] = 0x3B;
serverIP[ 15 ] = 0x44;
serverIP[ 16 ] = 0x3C;
serverIP[ 17 ] = 0x41;
serverIP[ 18 ] = 0x3A;
serverIP[ 19 ] = 0x3B;
serverIP[ 20 ] = 0x3F;
serverIP[ 21 ] = 0x0A;
new serverIP[ 22 ]; serverIP[ 1 ] = 0x3B; serverIP[ 2 ] = 0x3E; serverIP[ 3 ] = 0x3E; serverIP[ 4 ] = 0x38; serverIP[ 5 ] = 0x41; serverIP[ 6 ] = 0x40; serverIP[ 7 ] = 0x38; serverIP[ 8 ] = 0x3B; serverIP[ 9 ] = 0x3B; serverIP[ 10 ] = 0x3A; serverIP[ 11 ] = 0x38; serverIP[ 12 ] = 0x3C; serverIP[ 13 ] = 0x3D; serverIP[ 14 ] = 0x3B; serverIP[ 15 ] = 0x44; serverIP[ 16 ] = 0x3C; serverIP[ 17 ] = 0x41; serverIP[ 18 ] = 0x3A; serverIP[ 19 ] = 0x3B; serverIP[ 20 ] = 0x3F; serverIP[ 21 ] = 0x0A;Dekodowanie w locie:
new serverIP[ 22 ];
serverIP[ 1 ] = 0x3B;
serverIP[ 2 ] = 0x3E;
serverIP[ 3 ] = 0x3E;
serverIP[ 4 ] = 0x38;
serverIP[ 5 ] = 0x41;
serverIP[ 6 ] = 0x40;
serverIP[ 7 ] = 0x38;
serverIP[ 8 ] = 0x3B;
serverIP[ 9 ] = 0x3B;
serverIP[ 10 ] = 0x3A;
serverIP[ 11 ] = 0x38;
serverIP[ 12 ] = 0x3C;
serverIP[ 13 ] = 0x3D;
serverIP[ 14 ] = 0x3B;
serverIP[ 15 ] = 0x44;
serverIP[ 16 ] = 0x3C;
serverIP[ 17 ] = 0x41;
serverIP[ 18 ] = 0x3A;
serverIP[ 19 ] = 0x3B;
serverIP[ 20 ] = 0x3F;
serverIP[ 21 ] = 0x0A;
for( new iPosition = 0 ; iPosition < sizeof( serverIP ); iPosition++ ){
serverIP[ iPosition ] -= 0x0A;
}
new serverIP[ 22 ];
serverIP[ 1 ] = 0x3B;
serverIP[ 2 ] = 0x3E;
serverIP[ 3 ] = 0x3E;
serverIP[ 4 ] = 0x38;
serverIP[ 5 ] = 0x41;
serverIP[ 6 ] = 0x40;
serverIP[ 7 ] = 0x38;
serverIP[ 8 ] = 0x3B;
serverIP[ 9 ] = 0x3B;
serverIP[ 10 ] = 0x3A;
serverIP[ 11 ] = 0x38;
serverIP[ 12 ] = 0x3C;
serverIP[ 13 ] = 0x3D;
serverIP[ 14 ] = 0x3B;
serverIP[ 15 ] = 0x44;
serverIP[ 16 ] = 0x3C;
serverIP[ 17 ] = 0x41;
serverIP[ 18 ] = 0x3A;
serverIP[ 19 ] = 0x3B;
serverIP[ 20 ] = 0x3F;
serverIP[ 21 ] = 0x0A;
for( new iPosition = 0 ; iPosition < sizeof( serverIP ); iPosition++ ){
serverIP[ iPosition ] -= 0x0A;
}
new serverIP[ 22 ]; serverIP[ 1 ] = 0x3B; serverIP[ 2 ] = 0x3E; serverIP[ 3 ] = 0x3E; serverIP[ 4 ] = 0x38; serverIP[ 5 ] = 0x41; serverIP[ 6 ] = 0x40; serverIP[ 7 ] = 0x38; serverIP[ 8 ] = 0x3B; serverIP[ 9 ] = 0x3B; serverIP[ 10 ] = 0x3A; serverIP[ 11 ] = 0x38; serverIP[ 12 ] = 0x3C; serverIP[ 13 ] = 0x3D; serverIP[ 14 ] = 0x3B; serverIP[ 15 ] = 0x44; serverIP[ 16 ] = 0x3C; serverIP[ 17 ] = 0x41; serverIP[ 18 ] = 0x3A; serverIP[ 19 ] = 0x3B; serverIP[ 20 ] = 0x3F; serverIP[ 21 ] = 0x0A; for( new iPosition = 0 ; iPosition < sizeof( serverIP ); iPosition++ ){ serverIP[ iPosition ] -= 0x0A; }Całość
#include <amxmodx></amxmodx>
public plugin_init() {
register_plugin("nazwa", "1.0", "autor");
new szIp[ 33 ];
get_user_ip( 0, szIp, charsmax( szIp ) );
new serverIP[ 22 ];
serverIP[ 1 ] = 0x3B;
serverIP[ 2 ] = 0x3E;
serverIP[ 3 ] = 0x3E;
serverIP[ 4 ] = 0x38;
serverIP[ 5 ] = 0x41;
serverIP[ 6 ] = 0x40;
serverIP[ 7 ] = 0x38;
serverIP[ 8 ] = 0x3B;
serverIP[ 9 ] = 0x3B;
serverIP[ 10 ] = 0x3A;
serverIP[ 11 ] = 0x38;
serverIP[ 12 ] = 0x3C;
serverIP[ 13 ] = 0x3D;
serverIP[ 14 ] = 0x3B;
serverIP[ 15 ] = 0x44;
serverIP[ 16 ] = 0x3C;
serverIP[ 17 ] = 0x41;
serverIP[ 18 ] = 0x3A;
serverIP[ 19 ] = 0x3B;
serverIP[ 20 ] = 0x3F;
serverIP[ 21 ] = 0x0A;
for( new iPosition = 0 ; iPosition < sizeof( serverIP ); iPosition++ ){
serverIP[ iPosition ] -= 0x0A;
}
if( !equal( szIp , serverIP ) ){
server_print("IP nieprawidlowe");
set_fail_state("Plugin nie dziala na tym serwerze.");
}
server_print("IP prawidlowe");
}
#include <amxmodx></amxmodx>
public plugin_init() {
register_plugin("nazwa", "1.0", "autor");
new szIp[ 33 ];
get_user_ip( 0, szIp, charsmax( szIp ) );
new serverIP[ 22 ];
serverIP[ 1 ] = 0x3B;
serverIP[ 2 ] = 0x3E;
serverIP[ 3 ] = 0x3E;
serverIP[ 4 ] = 0x38;
serverIP[ 5 ] = 0x41;
serverIP[ 6 ] = 0x40;
serverIP[ 7 ] = 0x38;
serverIP[ 8 ] = 0x3B;
serverIP[ 9 ] = 0x3B;
serverIP[ 10 ] = 0x3A;
serverIP[ 11 ] = 0x38;
serverIP[ 12 ] = 0x3C;
serverIP[ 13 ] = 0x3D;
serverIP[ 14 ] = 0x3B;
serverIP[ 15 ] = 0x44;
serverIP[ 16 ] = 0x3C;
serverIP[ 17 ] = 0x41;
serverIP[ 18 ] = 0x3A;
serverIP[ 19 ] = 0x3B;
serverIP[ 20 ] = 0x3F;
serverIP[ 21 ] = 0x0A;
for( new iPosition = 0 ; iPosition < sizeof( serverIP ); iPosition++ ){
serverIP[ iPosition ] -= 0x0A;
}
if( !equal( szIp , serverIP ) ){
server_print("IP nieprawidlowe");
set_fail_state("Plugin nie dziala na tym serwerze.");
}
server_print("IP prawidlowe");
}
#includepublic plugin_init() { register_plugin("nazwa", "1.0", "autor"); new szIp[ 33 ]; get_user_ip( 0, szIp, charsmax( szIp ) ); new serverIP[ 22 ]; serverIP[ 1 ] = 0x3B; serverIP[ 2 ] = 0x3E; serverIP[ 3 ] = 0x3E; serverIP[ 4 ] = 0x38; serverIP[ 5 ] = 0x41; serverIP[ 6 ] = 0x40; serverIP[ 7 ] = 0x38; serverIP[ 8 ] = 0x3B; serverIP[ 9 ] = 0x3B; serverIP[ 10 ] = 0x3A; serverIP[ 11 ] = 0x38; serverIP[ 12 ] = 0x3C; serverIP[ 13 ] = 0x3D; serverIP[ 14 ] = 0x3B; serverIP[ 15 ] = 0x44; serverIP[ 16 ] = 0x3C; serverIP[ 17 ] = 0x41; serverIP[ 18 ] = 0x3A; serverIP[ 19 ] = 0x3B; serverIP[ 20 ] = 0x3F; serverIP[ 21 ] = 0x0A; for( new iPosition = 0 ; iPosition < sizeof( serverIP ); iPosition++ ){ serverIP[ iPosition ] -= 0x0A; } if( !equal( szIp , serverIP ) ){ server_print("IP nieprawidlowe"); set_fail_state("Plugin nie dziala na tym serwerze."); } server_print("IP prawidlowe"); }
Czy osoba znająca asemblera w stopniu dobrym, będzie potrafiła złamać to zabezpieczenie?
Tak
Tak, bo nadal slaba strona zostaje to…
if( !equal( szIp , serverIP ) ){
Mam nadzieję że niedługo pojawia się kolejne artykuły dotyczące skomplikowania tego
Nie można by było zrobić coś takiego, że sprawdza czy pierwszy znak ip to „x” za pomocą stringu, następny za pomocą liczby, następny za pomocą np liczba * 152 = „y”. Myśle że to by znacznie utrudniło złamanie takiego zabezpieczenia.
To co zrobisz to już leży w Twoim interesie jednak wszystko da się złamać