🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #16805

Re: Groovy

#16805
From: Piotr Kobzda
Date: Mon, 14 May 2007 19:50
97 lines
5325 bytes
Seweryn Habdank-Wojewódzki wrote:

>> Z innej odnogi wątku widzę, że nie rozumiesz!
> 
> A czy ja Ci coś powiedziałem o JNI?

Jako, że skomentowałeś mój tekst odnośnie JNI, tak uznałem.  A wniosek 
wysnułem ma podstawie tego:

> Nie musi Pan życzyć powodzenia. Piotr Kobzda wyraźnie napisał, że jak Pan
> poprosi się o lanie i pogrzebie w JNI (a Pan w swoich przykładach robi coś
> dokładnie na tym poziomie), to Pan może wszystko zrobić.


>  
>>> W sumie to jest jedyna rzecz którą znam która to może wywalić JVM.
>>> Ale jak to powiadam zazwyczaj o C używanym w C++ - "Jak ktoś przecina
>>> przewody paliwa w samochodzie co niech nie płacze, że nie jedzie."
>> W Javie jest różnica taka, że nawet jeśli będziesz próbował poprzecinać,
>> to jedynie może Cię prąd kopnie, kable zostaną całe!!
> 
> Prąd nie płynie w przewodach paliwowych ;-)

Tak.  O przewodach myślałem, a o kablach napisałem... :-) (Lekko 
rozpraszające otoczenie miałem wokół siebie przez chwilę... dzieci 
czasem nagle dużo pytają... ;) )

>  
>>> Tu też to odnoszę więc JNI nie podaję jako przykład.
>> Bo to nie jest żaden przykład!
> 
> Wiesz przestałem Cię rozumieć. Po co ten wykrzyknik?

Wykrzyknik, by zwrócić uwagę na Twój, w moim odczuciu istotny, błąd w 
rozumowaniu.  JNI nie możesz podać jako przykład, bo nie jest to dziura 
Javy.  A nie dlatego, że tak nie powinno się robić, co właśnie sugeruje 
Twoja przypowieść o przewodach (do której odnosisz).

> 
>> To, że z natywa możesz rozwalić wszystko, to już nie 
>> jest problem Javy, a natywa własnie (napisanego np. w C++)!
> 
> Widzisz. Ja nie pokazuję dziur w Javie. Chociaż Ty to tak zinterpretowałeś.

Nie, nie zinterpretowałem tak Twoich słów.

> Powiedziałem, że jak ktoś się stara, to każdy kod wywali.

No i właśnie w tym tkwi błąd, że nie każdy!  (Tu te same emocje, co z 
poprzednim wykrzyknikiem).


> Uwaga, którą
> piszesz na początku zapewne odnosi się do mojej odpowiedzi do Pana A.K.

Również.

> Sam mówiłeś, że pisałeś w C++ (dawno temu). Zatem trochę go znasz i dobrze
> wiesz co Pan A.K. pokazał w swoim kodzie. 

Oczywiście, że wiem.  M.in. dlatego przestałem bawić się w szczegółową 
ochronę w C++, zanim jeszcze pożegnałem się z tym językiem na dobre...

> Praca z #define to jest jak dłubanie w JNI i sed'owanie kodu i to na bardzo
> niskim poziomie.

Otóż nie.  W Javie najniższy poziom to bajtkod.  Wszystko poniżej, to 
już nie Java, a maszyna, na której ów kod działa.  Na poziomie JNI nie 
podłubiesz, ani w źródłach Javy, ani nawet w bajtkodzie.

> Bo jak przejadę kod programu Javy sedem i zamienię private
> na public, to też wszystko walnie w łeb.

Nie, nic nie "walnie".  Co najwyżej skompilujesz wadliwie swój kod, 
który i tak weryfikator bajtkodu odrzuci w runtime, ze względu na 
binarną niekompatybilność z kodem, do którego się odwołuje (nawiasem 
mówiąc, na to już wcześniej Pan A.L. zwrócił uwagę...).

> A tak właśnie działa #define,
> tylko, że lokalnie.

Podobnie oszukuje kompilator, tyle, że oszustwo w przypadku binariów C++ 
najczęściej przechodzi płazem.

> Szkoda, że nie rozumiesz mojej postawy, bo nie pokazuje, że Java jest
> dziurawa, tylko pokazuje, że w każdym języku możesz zrobić badziewie z kodu
> jak się postarasz, a tak właśnie robi Pan A.K.

A no widzisz, po to właśnie jest cała ta ochrona kodu w Javie, aby nawet 
jeśli ktoś się uprze i napisze, jak to nazwałeś "badziewie", to i tak ja 
mogę być bezpieczny, że nie ma dostępu do chronionych spraw mojego kodu, 
choćby i tylko w opcode-ach pisał.

Mam nadzieję, że teraz rozumiesz skąd mój wykrzyknik?  ;)


piotr
Technical Details
Message-ID: <f2aej2$hk4$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <f1tdl6$2s4$1@inews.gazeta.pl><f1todc$8s5$1@inews.gazeta.pl> <f1tss8$iq3$1@inews.gazeta.pl> <f1u2qu$1pm$1@inews.gazeta.pl> <1178922714.630317.141500@y80g2000hsf.googlegroups.com> <f22v79$3gu$1@inews.gazeta.pl> <f246sk$b8s$1@news.vectranet.pl> <f24i4s$6pe$1@inews.gazeta.pl> <f24s89$vs3$1@news.vectranet.pl> <f24u05$nnf$1@inews.gazeta.pl> <f24uor$39e$1@news.vectranet.pl> <f2586r$asf$1@inews.gazeta.pl> <f258o1$bn7$2@news.onet.pl> <f259i3$gqe$1@inews.gazeta.pl> <1179070935.984018.56140@p77g2000hsh.googlegroups.com> <f27u3n$q7k$1@inews.gazeta.pl> <f299h0$b63$4@news.vectranet.pl> <f29dle$8p7$1@inews.gazeta.pl> <f29rdr$tuk$1@news.vectranet.pl> <f2a1nl$dbi$1@inews.gazeta.pl> <f2a637$8hs$1@news.vectranet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Piotr Kobzda <pikob@gazeta.pl>
Newsgroups: pl.comp.objects
Subject: Re: Groovy
Date: Mon, 14 May 2007 21:50:58 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 97
Message-ID: <f2aej2$hk4$1@inews.gazeta.pl>
References: <f1tdl6$2s4$1@inews.gazeta.pl><f1todc$8s5$1@inews.gazeta.pl> <f1tss8$iq3$1@inews.gazeta.pl> <f1u2qu$1pm$1@inews.gazeta.pl> <1178922714.630317.141500@y80g2000hsf.googlegroups.com> <f22v79$3gu$1@inews.gazeta.pl> <f246sk$b8s$1@news.vectranet.pl> <f24i4s$6pe$1@inews.gazeta.pl> <f24s89$vs3$1@news.vectranet.pl> <f24u05$nnf$1@inews.gazeta.pl> <f24uor$39e$1@news.vectranet.pl> <f2586r$asf$1@inews.gazeta.pl> <f258o1$bn7$2@news.onet.pl> <f259i3$gqe$1@inews.gazeta.pl> <1179070935.984018.56140@p77g2000hsh.googlegroups.com> <f27u3n$q7k$1@inews.gazeta.pl> <f299h0$b63$4@news.vectranet.pl> <f29dle$8p7$1@inews.gazeta.pl> <f29rdr$tuk$1@news.vectranet.pl> <f2a1nl$dbi$1@inews.gazeta.pl> <f2a637$8hs$1@news.vectranet.pl>
NNTP-Posting-Host: xdsl-2843.zgora.dialog.net.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1179172258 18052 81.168.239.27 (14 May 2007 19:50:58 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Mon, 14 May 2007 19:50:58 +0000 (UTC)
X-User: pikob
In-Reply-To: <f2a637$8hs$1@news.vectranet.pl>
User-Agent: Thunderbird 1.5.0.10 (Windows/20070221)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit