Mesaj İşleme Kodu – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları
Mesaj İşleme Kodunda Gezinme
Artık Chat uygulamasının mesaj işleme kodunu kırmaya hazırız. Öncelikle, dinamik olarak yüklenen sınıflar hakkında bilgi toplamasını engelleyen ODB’deki bir hatayı çözmeliyiz. Kaydı Durdur düğmesi ve kayıt seçeneklerini belirten birkaç onay kutusu bulunan Hata Ayıklama Denetleyicisi penceresine gitmek için Alt+Tab tuşlarına basın.
Kaydı Durdur düğmesine tıklayın; etiketi Kaydı Başlat olarak değiştiğinde, tekrar tıklayın. Ardından açmak için Alt+Tab tuşlarına basın
Sohbet uygulama penceresi. Ana Bilgisayar Adı açılan kutusuna localhost yazın ve mesaj metni alanına Merhaba yazın. Mesajı göndermek ve Sohbet konuşması alanında göründüğünden emin olmak için Enter tuşuna basın.
Chat’i hata ayıklayıcıdan çalıştırdığımız için girdimiz ve uygulamanın buna verdiği yanıt kaydedildi ve artık izleri incelemek için hata ayıklayıcı penceresine geri dönebiliriz.
Görüntüyü kaydedilen sıranın sonuna hızlı bir şekilde ileri sarmak için Damga araç çubuğundaki Son Zaman Damgası Kaydedildi (Herhangi Bir Dizi) düğmesine tıklayın. TTY Çıktı paneli artık daha fazla satır göstermelidir. Ana bilgisayardan mesaj alındı yazan satırı tıklayın. Hata ayıklayıcı penceresi benzer görünmelidir.
Hata ayıklayıcı panellerinde görüntülenen bilgilerden, mesajın bir RMI TCP Bağlantı iş parçacığı üzerinde çalışan ChatServer.receiveMessage yöntemi tarafından yazdırıldığını anlayabiliriz. Bu mantıklı çünkü bildiğimiz gibi Chat, mesajları iletmek için RMI’ya güveniyor.
Yöntem İzleri panelinde gezinerek, System.out.println çağrısından önce ve sonra tam olarak ne yapıldığını görebiliriz. Mesaj metninin, MessageInfo sınıfından alındığını ve MainFrame içerisinde JEditorPane’e eklendiğini görebiliriz. Kaynak kodu olmasa bile Chat mesaj işleme mantığını oldukça iyi anlıyoruz.
Bizi doğrudan mesaj işlemeden sorumlu yönteme yönlendiren bir izleme mesajı, Ana bilgisayardan alınan mesaj gördüğümüz için görevimiz kolaylaştı. Ya bu ipucu mevcut değilse? Birkaç yaklaşım bizi aynı sonuçlara götürebilir.
Eylemleri kaydettikten sonra, önce Konular paneline bakabiliriz. Java mimarisini bilmek, hangi konulara bakacağımıza karar vermemize yardımcı olacaktır. Örneğin, Java uygulamaları arasındaki uzaktan iletişimin muhtemelen RMI kullandığını ve RMI’nin gelen aramaları kendi iş parçacığında işlediğini bilerek, bu tür iş parçacıklarını arayabiliriz.
Şaşırtıcı olmayan bir şekilde, hata ayıklayıcıyı mesaj göndermenin sonuna hızlı bir şekilde ilettikten sonra, yeni bir iş parçacığı RMI TCP Bağlantısı görebiliriz. Konular panelinde iş parçacığına tıklandığında, üzerinde yürütülen yöntemler görüntülenir ve işte izlemenin en üstünde yine ChatServer.receiveMessage görüyoruz.
Mesaj işleme mantığını bulmanın bir başka iyi yolu da ODB’nin Arama özelliğini kullanmaktır. Çok karmaşık olmasa da, bir izleme panelinde bir test dizisinin aranmasına izin verir. Bizim durumumuzda, mesaj metninin Merhaba olduğunu biliyoruz.
Mesaj işleme mantığını çalıştırmak için hangi iş parçacığının kullanıldığından emin değilsek, hata ayıklayıcının Kod menüsündeki Herhangi Bir İş Parçacığı Tamam seçeneğini etkinleştirebiliriz. Ardından Trace menüsünden Search’ü seçip Hello yazabiliriz. Enter’a basmak, hata ayıklayıcıya, bizim durumumuzda tahmin ettiğiniz ChatServer.receiveMessage arama dizesini içeren izi bulmasını ve seçmesini söyleyecektir.
Sınıf ve yöntem yerleştirildikten sonra, uygulama mantığını incelemek için kaynak kodu veya derlenmiş kodu kullanabiliriz. Kesme noktalarını nereye yerleştireceğimizi bildiğimiz için uygulamayı hata ayıklama modunda çalıştırmak ve “canlı” verileri görmek için artık geleneksel bir hata ayıklayıcı kullanılabilir.
HTTP durum Kodları
Http durum kodları Nedir
Hata kodları
Durum kodu ne demek SGK
Durum kodu ş MR
Tıpta durum kodu ş Nedir
sunucu tarafına gönderilmek istenen veriler aşağıdaki etiketlerden hangisinde saklanır?
Hazır form Kodları
Sohbetin Gizlenmiş Sürümünü Kırmak için ODB’yi Kullanma
Gizleme Sınıfları ve “Bir Sınıfın Kamuya Açık Olmayan Yöntemlerini ve Değişkenlerini Hackleme”, gizlemeyi ve agresif bir şekilde gizlenen uygulamaları kırmanın zorluklarını tartıştı. Gizlenmiş kodun derlenmesi sıkıcı olabilir ve büyük bir uygulamanın iç işleyişini anlamak imkansız olabilir.
ODB gibi bir hata ayıklayıcı kullanmak, bu tür uygulamalarla çalışmanın en iyi yoludur çünkü yöntem çağrılarının sırasını hayal etmeye çalışmak yerine, kayıtlı sürümünü inceleyebilirsiniz. Normal sınıflar için başlangıç noktasını bulmak için kullanılan aynı yaklaşımlar, gizlenmiş kod için kullanılabilir. Bu noktayı açıklamak için, aynı alıştırmayı Chat’in mesaj işlemesini anlamak için yapalım, ancak bu sefer karartılmış sürümde.
debugChat.bat içindeki CLASSPATH’i lib\chat.jar yerine lib\obfuscated\chat.jar kullanacak şekilde değiştiriyoruz. Daha sonra hata ayıklayıcıyı çalıştırıyoruz ve önceki bölümlerde açıklanan aynı kayıt adımlarını izliyoruz. Mesaj gönderildikten sonra, Damga araç çubuğunu kullanarak hata ayıklayıcıyı kaydın sonuna hızlı bir şekilde iletiriz.
Hata ayıklayıcı panellerinde görüntülenen bilgileri, gizlenmemiş Sohbet için görüntülenen bilgilerle karşılaştırdığımızda, temelde aynı olduğunu görebiliriz.
Chat sınıflarının ve yöntemlerinin adları değişse de çağrı yığınları ve parametre değerleri değişmedi. Java çekirdek sınıfları ve iş parçacığı adları gibi sistem bilgileri de yoktur. Listeleme, gizlenmiş Sohbet için Yöntem İzleri panelinin içeriğini gösterir.
Hangi yöntemin Ana bilgisayardan Alınan iletiyi yazdırdığını veya hangi yöntem izleme satırının Hello dizesini içerdiğini bulmak için yine de hata ayıklayıcıyı kullanabiliriz. Bu, uygulamayı incelemek için başlangıç noktasını bulmada bize büyük bir avantaj sağlar.
Şu soruları cevaplamak son derece önemlidir:
1. Bilgisayar korsanlığında hata ayıklayıcı kullanmanın nedenleri nelerdir?
2. Geleneksel hata ayıklayıcıların sınırlamaları nelerdir?
3. ODB’nin uygulanmasının ardındaki ilke nedir?
4. Uygulama mantığını ODB’ye yerleştirmek için hangi yaklaşımlar kullanılabilir?
Kısacası;
- Bir hata ayıklayıcı, uygulama mantığını büyük bir uygulamada veya gizlenmiş kodda bulmak için bir kısayol sağlayabilir.
- Geleneksel hata ayıklayıcıların ana sınırlamaları, kilit konumlarda kesme noktaları belirleme gerekliliği ve durum değişiklikleri ve yöntem çağrıları geçmişinin olmamasıdır.
- ODB, yürütülen uygulamanın zaman damgalarını kaydeder ve dahili mantığı anlamanız için uygulamada gezinmenizi sağlar.
- ODB, karmaşık uygulamaları kırmaya yönelik en iyi yaklaşımdır.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)