Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] Plugin który dziala na danym serwerze?


  • Zamknięty Temat jest zamknięty
19 odpowiedzi w tym temacie

#1 vernon

    Zaawansowany

  • Użytkownik

Reputacja: -9
Nowy

  • Postów:96
  • Lokalizacja:Kraków
Offline

Napisano 16.06.2012 13:31

Witam, jak zro coś takiego żeby plugin działal tylko na serwerze z danym ip podanym w sma pluginu?
  • +
  • -
  • 0

#2 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 16.06.2012 13:53

Spróbuj pobrać IP poprzez http://amxx.pl/topic...ra/#entry343027
I porównaj (np. za pomocą funkcji equal, czy IP jest identyczne od tego, które jest przez Ciebie wymagane).
Możliwe, że get_user_ip(0) wyświetli Ci nazwę "localhost", wtedy możesz ew. ustawić to cvarami.

#3 vernon

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -9
Nowy

  • Postów:96
  • Lokalizacja:Kraków
Offline

Napisano 16.06.2012 14:08

Mi chodzi o coś takiego żeby na początku pluginu dodać

new const IP[] = "jakieś tu ip serwera";


A gdzieś dalej była funkcja odpowiadająca za to, i jeśli ktoś np. ukradł plugin i dodał go na inny serwer to w say pokazuje się taki spam, plugin Został Skradziony
  • +
  • -
  • 0

#4 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 16.06.2012 14:13

new ip[33]
get_user_ip(0,ip,32)
if(!equal(ip,IP)){
// spam
}


Pamiętaj, że get_user_ip(0) nie zawsze będzie działać (może wyświetlać "localhost"), a złodziej (o ile bardziej kumaty) to sobie usunie ten warunek logiczny (albo zmieni numer IP).

edit.
Proponowałbym Ci dodać CVAR z kodem zabezpieczającym i zamaskować kod, żeby złodziejowi odechciało się bawić w "Crack.Me"
Myślę, że jest to lepsze rozwiązanie, niż pobieranie adresu IP, ale decyzja pozostaje dla Ciebie.

#5 vernon

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -9
Nowy

  • Postów:96
  • Lokalizacja:Kraków
Offline

Napisano 16.06.2012 14:17

podał byś jakiegoś linka?
  • +
  • -
  • 0

#6 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 16.06.2012 14:33

A może pobierac nazwe serwera i sprawdzac dane znaki.
Oczywiscie najlepiej w nazwie serwera mieć coś dziwnego ;D
  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#7 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 16.06.2012 16:35


new szIP[ 15 ];
get_cvar_string( "ip", szIP, 14 ); // Pobiera wartość parametru ip z linii komend ( np. +ip 123.456.7.890 )

if( !equali( szIP, "123.456.7.890" ) )
set_failstate( "Ten plugin nie jest przeznaczony dla tego serwera, zostanie więc wyłączony !" );

  • +
  • -
  • 0

marwit-0.png


#8 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 16.06.2012 17:18

Albo, żeby można było go używać na kilku serwerach, bez potrzeby edycji za każdym razem IP w sma zrobić pliki licencyjne, a w nich hash md5 adresu IP serwera, portu i jakiegoś unikalnego, znanego tylko Tobie wyrażenia. Następnie wyliczasz ten sam hash w sma i porównujesz z tym z pliku.
MarWit (16.06.2012 17:30):
Lepszy byłby już blowfish.

  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#9 vernon

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -9
Nowy

  • Postów:96
  • Lokalizacja:Kraków
Offline

Napisano 16.06.2012 17:41

to który lepszy sposób?

To:
new szIP[ 15 ];
get_cvar_string( "ip", szIP, 14 ); // Pobiera wartość parametru ip z linii komend ( np. +ip 123.456.7.890 )

if( !equali( szIP, "123.456.7.890" ) )
set_failstate( "Ten plugin nie jest przeznaczony dla tego serwera, zostanie więc wyłączony !" );


lub propozycja benio101

Proponowałbym Ci dodać CVAR z kodem zabezpieczającym i zamaskować kod, żeby złodziejowi odechciało się bawić w "Crack.Me"
Myślę, że jest to lepsze rozwiązanie, niż pobieranie adresu IP, ale decyzja pozostaje dla Ciebie.

Ale tego up w ogóle nie rozumie
  • +
  • -
  • 0

#10 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 984
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 16.06.2012 17:54

to który lepszy sposób?

brak większej róźnicy
  • +
  • -
  • 0

#11 vernon

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -9
Nowy

  • Postów:96
  • Lokalizacja:Kraków
Offline

Napisano 16.06.2012 18:05

DarkGl, a ty co bys mi polecil?
  • +
  • -
  • 0

#12 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 984
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 16.06.2012 18:19

jakby ktoś był zainteresowany skąd get_user_ip bierze ip serwera
static cell AMX_NATIVE_CALL get_user_ip(AMX *amx, cell *params) /* 3 param */
{
	int index = params[1];
	char *ptr;
	char szIp[32];
	strcpy(szIp, (index < 1 || index > gpGlobals->maxClients) ? CVAR_GET_STRING("net_address") : g_players[index].ip.c_str());
	
	if (params[4] && (ptr = strstr(szIp, ":")) != 0)
		*ptr = '\0';
	
	return set_amxstring(amx, params[2], szIp, params[3]);
}
nie odczujesz różnicy w działaniu obu sposobów a wydajność w tym przypadku nie ma aż takiego znaczenia
  • +
  • -
  • 1

#13 kijkol

    Profesjonalista

  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:174
  • Lokalizacja:Witów
Offline

Napisano 16.06.2012 18:37


/* Plugin generated by AMXX-Studio */



#include <amxmodx>

#include <amxmisc>



#define PLUGIN "New Plug-In"

#define VERSION "1.0"

#define AUTHOR "adam"



new const g_sServerAdress[] = "twoje ip";



public plugin_init() {

register_plugin(PLUGIN, VERSION, AUTHOR)

new sServerAdress[24];

get_user_ip(0, sServerAdress, sizeof sServerAdress - 1);



if(!equali(g_sServerAdress, sServerAdress))

set_fail_state("Nie kopiuj pluginu");

}


  • +
  • -
  • 1

#14 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 16.06.2012 18:47

Warto, żeby IP nie było tak "na sucho" podane, lecz poprzez dość długi ciąg skomplikowanych operacji algorytmicznych, wówczas wydłużysz czas odczytania tego IP / jego zamiany / zniechęcisz złodzieja do kradzieży pluginu.
Podobnie sam warunek przydałoby się mocno skomplikować, bo wystarczy dodać || true i cały wysiłek na marne :)
G[o]Q (16.06.2012 19:01):
skoro gość robi coś takiego to znaczy że będzie udostępniać tylko amxx :P

//kiedyś R3X próbował podmiane zrobić w moim pluginie ale mu chyba nie wyszlo :D
(16.06.2012 19:11):
No domyślam się, że tylko AMXX, o SMA nawet nie pomyślałem.
Mówię tutaj o możliwości niemal natychmiastowego odczytania hasła poprzez disasemblerację i rekompilację ze zmianą IP / warunku logicznego.
Jeśli adres (hasło) będzie na czysto wpisany do zmiennej, to 5 minut i będzie można je odnaleźć i zmienić.


#15 vernon

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -9
Nowy

  • Postów:96
  • Lokalizacja:Kraków
Offline

Napisano 16.06.2012 18:51

nie rozumie benio101, moze jakiś przykladowy plugin bys podal/napisał
(16.06.2012 19:20):
Pomijając pewne kwestie, podanie publicznie rozwiązania mija się chyba z celem.
Istotne jest tutaj, jak cenny jest ten plugin, żeby go aż tak zabezpieczać?

  • +
  • -
  • 0

#16 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 16.06.2012 19:21

AM :: Dekompilacja AMXX na postać pseudoasemblerową

#17 kijkol

    Profesjonalista

  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:174
  • Lokalizacja:Witów
Offline

Napisano 16.06.2012 19:28

Ale po co tak kombinowac ?
Wystarczy w pluginie umiescic reklame www/ip czy cos w tym stylu i juz raczej tego nie wgra ktos na serwer inny niz bylo przypisane
  • +
  • -
  • 1

#18 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 16.06.2012 19:34

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "adam"

new const g_sServerAdress[] = "1.2.3.4";

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
new sServerAdress[24];
get_user_ip(0, sServerAdress, sizeof sServerAdress - 1);

if(!equali(g_sServerAdress, sServerAdress))
set_fail_state("Nie kopiuj pluginu");
}
Niniejszy kod kompilujemy, plik AMXX (nie SMA!) AMXX! poddajemy dekompilacjji i otrzymujemy taki oto widok:

Dołączona grafika

Jak widzimy, nie ma żadnego problemu w uzyskaniu treści zmiennych.
Dekompilator AMXX można pobrać np. stąd: http://forums.allied...02&postcount=38

#19 vernon

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: -9
Nowy

  • Postów:96
  • Lokalizacja:Kraków
Offline

Napisano 17.06.2012 15:18

benio101, sprawdzałem twój sposób i działa, wkleiłem do 1 pluginu ten kod co dałeś wyżej i działa
  • +
  • -
  • 0

#20 MarWit

    The Chosen One

  • Przyjaciel

Reputacja: 843
Czempion

  • Postów:1 485
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Bystrzyca
Offline

Napisano 18.06.2012 12:35

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

marwit-0.png





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych