Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Ovo mi se baš ne sviđa. Gde je tu privatnost?

[es] :: C/C++ programiranje :: Ovo mi se baš ne sviđa. Gde je tu privatnost?

[ Pregleda: 2487 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.143.eunet.yu.



+9 Profil

icon Ovo mi se baš ne sviđa. Gde je tu privatnost?06.12.2005. u 18:44 - pre 223 meseci
Code:

#include <iostream>
using namespace std;

class cls
{
    public:
    cls(){x = 13; y = 6;};
    private: /* private!!! */
    int x;
    int y;
};

class goranche : public cls
{
    public:
    goranche(){};
    void ret()
    {
        int *p = (int*)this;
        cout << *p;
        cout << *(p+1);
    };
};

int main(int argc, char *argv[])
{
    goranche obj;
    obj.ret(); /* vrednost x i y bice ispisani... */
}


U principu, ispada da ako znamo deklaraciju klase i imamo eventualno adresu objekta te klase, možemo da uhvatimo svaki podatak...
Ja sam konkretno naveo primer kod nasleđivanja...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.ptt.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Ovo mi se baš ne sviđa. Gde je tu privatnost?06.12.2005. u 19:02 - pre 223 meseci
kada se u OOP govori o nekakvoj enkapsulaciji ili zaštiti (private, protected), tu
se ne radi o zaštiti u smislu SIGURNOSTI I NEDOSTUPNOSTI tim podacima.

To je obicna organizaciona tehnika, koja ne dozvoljava ili dozvoljava pristupanje
podacima na uobicajene nacine.

Čitanjem steka ili bilo kog drugog dela memorije moze se menjati maltene sve sto
ti padne na pamet.

Objekat sa svojim podacima je nista drugo nego parce memorije koje je ispunjeno
nekakvim podacima. Ako znas velicinu objekta (a znas), mozes sve u njemu da
ubijes u petlji.

Ako znas i gde se sta nalazi, sa <dynamic_cast>, <static_cast> i
<reinterpret_cast> mozes jos i da izvlacis podatke...

 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.143.eunet.yu.



+9 Profil

icon Re: Ovo mi se baš ne sviđa. Gde je tu privatnost?06.12.2005. u 19:23 - pre 223 meseci
Pa...da... tako je :)
Ali možda je ponekad potrebno zaštititi podatke... kako bi onda trebalo nastupiti?
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
195.252.89.*



Profil

icon Re: Ovo mi se baš ne sviđa. Gde je tu privatnost?06.12.2005. u 23:43 - pre 223 meseci
Podatke i program je nemoguce zastitii. Dokaz za to su ti razne zastite, koje neki znalci razbijaju.

public, private i protected su izmisljeni da bi olaksali planiranje i programiranje. Kada pravis neku klasu, postavi se u ulogu nekoga ko tu klasu treba da koristi i dizajniraj njen interface tako da bude sto laksa za upotrebu. Samim tim, potencijalni korisnik nece pokusati da procita nesto sto si ti stavio kao protected ili private.

dodatak:
Sad sam pogledao tvoj site i video projekat wood. Mislim da sam skapirao sta u stari zelis, a to je da jedan igrac ne moze da pristupi podacima koje drugi igrac ima. Resenje je da sakrijes implementaciju od interface-a, tj. da napravi pure virtual klasu (interface) a da zatim izvedes i napravis implementaciju. Ukratko:

Code:

class IPlayer
{
public:
 IPlayer(){};
 virtual ~IPlayer(){};
 virtual int Metoda1(IPlayer* p) = 0;
 virtual void Metoda2(int param1) = 0;
...
} ;


Zatim negde napravi implementaciju:

Code:

class PlayerV1: public IPlayer
{
 public:
 Player();
 virtual ~Player();
// implementacija metoda interface-a
 virtual int Metoda1(IPlayer* p);
 virtual void Metoda2(int param1);
private:
 // promenljive koje implementacija koristi u svom radu.
};



napravi isto i za class PlayerV2, PlayerV3,...a zatim:

Code:

IPlayer* p1 = new PlayerV1;
IPlayer* p2 = new PlayerV2;
IPlayer* p3 = new PlayerV3;


Ako sada napises
Code:

p1->Metoda1(p3); 


funkcija PlayerV1::Metoda1 nema sansi da sazna koja se implementacija nalazi iza parametra p (osim ako se ne koristi RTTI), kao sto ne moze da sazna ni koliko se bajtova nalazi u private ili protected delu.




yooyo

[Ovu poruku je menjao yooyo dana 07.12.2005. u 00:57 GMT+1]
[Sadowed: obrisan nepotreban citat.]

[Ovu poruku je menjao Shadowed dana 07.12.2005. u 07:45 GMT+1]
 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.79.EUnet.yu.



+9 Profil

icon Re: Ovo mi se baš ne sviđa. Gde je tu privatnost?07.12.2005. u 09:59 - pre 223 meseci
Aha... hvala veliko na izdvojenom vremenu :) Pogledaću... mada to nije svež header tamo... okačiću skoriji source.. :)
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.ptt.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Ovo mi se baš ne sviđa. Gde je tu privatnost?07.12.2005. u 10:16 - pre 223 meseci
Dok sam se bavio raznih tehnikama zastite, negde sam procitao jednu
studentsku "teoremu", o razbijanju koja je glasila otprilike ovako:

"treba sačekati da se neki podatak raspakuje u MEMORIJI i onda ga možeš videti,
uzeti, analizirati i promeniti".

Drugim recim, koliko god se trudio da nesto kriptujes, u jednom trenutku ces morati
da svoj podataka u PRAVOM obliku prosledis nekoj funkciji. I tada je kraj svim
predjasnjim naporima programera.

Odavno nisam gledao sta sve ima novo od hakerskih alata, ali verujem da danas
postoje toliko dobri GRABBERI da si totalno razoruzan.

SoftIce je jedno vreme bio strah i trepet.
 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.195.eunet.yu.



+9 Profil

icon Re: Ovo mi se baš ne sviđa. Gde je tu privatnost?08.12.2005. u 09:52 - pre 223 meseci
Sviđa mi se konstatacija... Well, na kraju krajeva, mogu dati taj deo koda kao object code gde niko neće videti šta je ispod... :)) Pa sam koliko toliko zaštićen :)
 
Odgovor na temu

[es] :: C/C++ programiranje :: Ovo mi se baš ne sviđa. Gde je tu privatnost?

[ Pregleda: 2487 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.