🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #267840

Re: Ciemna strona C++

#267840
From: Seweryn Habdank-Wojewódzki
Date: Wed, 05 Dec 2007 19:45
66 lines
4277 bytes
Witam

Sektor van Skijlen wrote:

> Dnia Tue, 04 Dec 2007 16:16:50 +0100, Seweryn Habdank-Wojewódzki skrobie:
>> Witam
> 
>> Sektor van Skijlen wrote:
> 
>> Trochę się już pogubiłem w wątku, ale ...
> 
>> >> - Dostać się do prywatnych składników obiektu albo modułu.
>> > 
>> > Tego to chyba w żadnej refleksji nie można :)
> 
>> Np. w Javie jest metoda setAccesible(Boolean) i ona pozwala w każdej
>> klasie ustawić dostępność prywatnej metody poprzez zapodanie true jako
>> argument.
> 
> A, tego że można modyfikować kod w czasie wykonywania, to nie wiedziałem.

A no można i to jest "bardzo dobre" ;-).
 
>> Krótko mówiąc prywatność w Javie jest taką samą kwestią jak w Py --
>> szacunek kodera, a nie sprawa języka/kompilatora. W C i C++ tak nie jest,
>> kompilator (np. gcc, ale też inne) zarówno C jak i C++ pozwala module
>> określić co jest widziane na zewnątrz, a co nie. I do tego optymalizatory
>> tak "kaszanią" kod, że interfejs mający 3 metody posiada 9 funkcji o
>> nazwach np. fun001.
> 
> Nie znam takich, ale może i mało widziałem :)

No raz wystawiłem jednemu specowi od programu "IDA" swoje .so i
powiedziałem, aby coś wydłubał z niego. On twierdził, że odbuduje mi cały
kod włącznie z metodami prywatnymi. Do dziś zadanie leży. 

Ale aby się czegoś nauczyć, sam użyłem tego cuda (IDA) do przemiału na
moim .so. I widziałem jedynie ciemność. Nic poza faktycznie upubliczniony
interfejs nie wypełzło. A całość była tak na zagmatwana, że IDA podawała
ładne zależności w asemblerze, ale za nic w świecie nie było tam realnego
układu funkcji/metod. 
Oczywiście haker poradzi sobie tak, że popodpina się ręcznie do jakichś
funkcji i coś będzie wołał, ale życzę powodzenia kiedy wypuszczam nową
wersję .so, funkcje nazywane przez kompilator fun001 teraz nazywają się
fun456, tak więc hakowanie ponowne jest gwarantowane.

>> Oba języki są dynamiczne, więc można robić co się podoba. W szczególności
>> w Py można sobie wszystko napisać w locie, dodawać zmienne, whatever.
>> Wydaje mi się, że Kogut jest o wiele bardziej restrykcyjny.
> 
> No, jak najbardziej, natomiast problemy mogą się pojawić np. na etapie
> zgodności typów.

No ale może to sobie popisać w locie ;-).
 
>> C# ma możliwość bindingsów typu C, Java, cóż wszyscy kochają JNI :-).
> 
> Taaa... już ja słyszałem, jak "kochają".

No właśnie wiem.

Pozdrawiam. 

-- 
|\/\/|   Seweryn Habdank-Wojewódzki
 \/\/
Technical Details
Message-ID: <fj6u7v$il6$1@news.vectranet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.vectranet.pl!not-for-mail
References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi1bs4$nn3$1@bozon2.softax.pl> <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi458p$fmv$1@bozon2.softax.pl> <fi9ckc$2u5$1@kujawiak.man.lodz.pl> <1195918508.27382.40.camel@qrnik> <fiee2a$af0$1@kujawiak.man.lodz.pl> <1196084612.2991.60.camel@qrnik> <fj3el2$j5u$1@kujawiak.man.lodz.pl> <fj3q5a$kvh$1@news.vectranet.pl> <fj6ic3$mij$1@kujawiak.man.lodz.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.vectranet.pl!not-for-mail
From: Seweryn Habdank-Wojewódzki <shw_mail@wp.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Ciemna strona C++
Date: Wed, 05 Dec 2007 20:45:01 +0100
Organization: VectraNET - http://www.vectranet.pl
Lines: 67
Message-ID: <fj6u7v$il6$1@news.vectranet.pl>
References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi1bs4$nn3$1@bozon2.softax.pl> <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi458p$fmv$1@bozon2.softax.pl> <fi9ckc$2u5$1@kujawiak.man.lodz.pl> <1195918508.27382.40.camel@qrnik> <fiee2a$af0$1@kujawiak.man.lodz.pl> <1196084612.2991.60.camel@qrnik> <fj3el2$j5u$1@kujawiak.man.lodz.pl> <fj3q5a$kvh$1@news.vectranet.pl> <fj6ic3$mij$1@kujawiak.man.lodz.pl>
Reply-To: shw_mail@wp.pl
NNTP-Posting-Host: 078088193244.osw.vectranet.pl
Mime-Version: 1.0
X-Trace: news.vectranet.pl 1196883007 19110 78.88.193.244 (5 Dec 2007 19:30:07 GMT)
X-Complaints-To: usenet@news.vectranet.pl
NNTP-Posting-Date: Wed, 5 Dec 2007 19:30:07 +0000 (UTC)
User-Agent: KNode/0.10.5
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit