2009-08-10 13 views
7

Bellekte bir parola tutan bir java programı yazıyoruz. Maalesef, kullanıcı bir yığın dökümü dosyası oluşturmak ve şifreyi bulmak için açmak için jconsol veya jmap'i kolayca kullanabilir. Jconsole yerel soketleri kullanarak jvm bağlanır düşünüyorum. Bilmek istiyorum, yerel kullanıcılar için bile jmx'i devre dışı bırakmanın bir yolu var mı? Yığın dökümlerini tamamen devre dışı bırakmanın bir yolu var mı? Kullanıcı hafıza bölümüne erişebildiğinden, yine de bu şifreye erişmek mümkündür. Bununla birlikte, eylemi mümkün olduğunca pahalı hale getirmek için standartların yollarını devre dışı bırakmak istiyorum.JVM'de Yerel JMX Bağlantılarını Devre Dışı Bırakma

cevap

5

Son olarak jconsole bağlantılarını devre dışı bırakmak için bir çözüm buldum. Ayrıca jmap'in bir döküm dosyası oluşturmasını da engeller. Çözümü here buldum. Ben de burada cevap alıntı:

Sen tarafından bağlanmasını böyle jconsole gibi araçlar ve diğerleri önleyebilir -XX ile çalışan + DisableAttachMechanism seçeneği. Bu seçeneğin belgelenmiş/desteklenmediğini, ancak ne istediğinizi yapması gerektiğini unutmayın. Yani bu, gdb veya diğer hata ayıklama/proc tabanlı programlar Ancak

bağlamak durdurmak için hiçbir şey yoktur hatta ile dedi ki hafıza segmenti lokal olarak girilebildiği açıktır. Ancak, herkes hafızaya doğrudan erişimle standart bellek dökümlerini yapmak için bir araç biliyor mu? Hala istatistikleri gerekiyorsa maksimum bağlantı sıfıra saymak Ayar

+1

Standart bellek dökümü biçimi gerekli değildir, ancak herhangi bir yerel işlemin belleğine erişmek için (örneğin, yeterli ayrıcalıklar verildi) HxD hex editörü (http://mh-nexus.de/en/hxd/) kullanabilirsiniz. . –

+0

Güzel. Benim için çalışıyor! – laher

2

JMX

-Dsun.rmi.transport.tcp.maxConnectionThreads=0 

kapanıyor, basit gelen hsperfdata_ * dosyasını

Edit okuyun: github benim hsperf munin plugin yayınladı.