1 puan yazan GN⁺ 2025-02-19 | 1 yorum | WhatsApp'ta paylaş

Hata ayıklanamaz bir uygulamayı hata ayıklamak

  • Kısa süre önce hata ayıklanması mümkün olmayan bir uygulamayla karşılaştım. Bu uygulama debugger bağlantısını engelliyor, kod enjeksiyonu sırasında erken sonlanıyor ve jailbreak yapılmış bir cihazda çalıştırıldığında tüm telefonu çökertiyordu.
  • iOS uygulamaları sık sık jailbreak tespiti veya kod karmaşıklaştırma gibi ek korumalar içerir. Bu uygulama ise özellikle çok sayıda korumayı bir arada kullanıyor.

Video sürümü

  • Bu yazının bir video sürümü de var ve süreci daha ayrıntılı gösteriyor.

İçindekiler

  • PT_DENY_ATTACH
  • PT_DENY_ATTACH aşma (kolay mod)
  • PT_DENY_ATTACH aşma (zor mod)
  • Telefon çökmesi
  • Kod enjeksiyonu
  • Kapanış

PT_DENY_ATTACH

  • İlk adım debugger bağlamaktır. Jailbreak yapılmış telefonlarda debugger bağlamak genellikle kolaydır.
  • ptrace adlı fonksiyon debugger bağlantısını engeller. Bu fonksiyon PT_DENY_ATTACH isteği aracılığıyla debugger'ın gelecekteki bağlantılarını engeller.

PT_DENY_ATTACH aşma (kolay mod)

  • PT_DENY_ATTACH, yalnızca çağrıldıktan sonra debugger'ı engeller. Çağrıdan önce breakpoint ayarlanırsa debugger normal şekilde bağlanır.
  • Çağrıyı aşmak için doğrudan ptrace fonksiyonunun kendisine breakpoint koyulabilir.

PT_DENY_ATTACH aşma (zor mod)

  • Bazı geliştiriciler debugger engellemesini ptrace yerine doğrudan sistem çağrıları kullanarak uygular.
  • Bu durumda, ilgili sistem çağrısını binary içinde bulup aşmak gerekir.

Telefon çökmesi

  • Uygulama belirli koşullarda telefonu soft reboot'a zorluyor. Bu, bellek yoğun bir metodu sonsuz döngü içinde çağırarak gerçekleşiyor.
  • lldb kullanılarak bu metod aşılabilir.

Kod enjeksiyonu

  • Kod enjeksiyonu sırasında uygulama çöküyor. Bunun, uygulama grubu tanımlayıcısının yanlış olmasından kaynaklanan bir sorun olması muhtemel.
  • Jailbreak yapılmış telefonlarda uygulamayı yeniden imzalamadan da kod enjeksiyonu yapılabilir. Aksi halde, problemi çözmek için metod swizzling uygulanabilir.

1 yorum

 
GN⁺ 2025-02-19
Hacker News görüşleri
  • Bryce Bostwick, hata ayıklama ve tersine mühendislik uygulamaları konusunda çok havalı ve ilham verici işler yapıyor

    • YouTube videolarında TikTok'u yalnızca kedi videoları gösterecek şekilde nasıl değiştirdiğini görünce ilham alıp Instagram'ı sadece mesajlaşma özelliği kalacak, geri kalan her şey kaldırılacak şekilde değiştirmiş
    • Windows'u Windhawk tarzında değiştirmekle ilgileniyor
    • Bryce, iOS üzerinde bu tür çalışmaları gerçek zamanlı adım adım videolarla tanıtıyor
  • DOS/Windows'ta anti-debugging hileleri çok uzun zamandır yaygındı

    • Kullanıcı denetiminin kolaylığı, platformun kullanıcıya ne kadar düşmanca olduğuyla ters orantılı
    • PT_DENY_ATTACH bunun ikincisi için bir özellik gibi görünüyor
    • Windows'ta uygulamanın kendi kendisine attach olmasını sağlayan bir hile var
  • Apple'ın App Store incelemesinin doğrudan sistem çağrısı yapan uygulamaları reddetmemesi şaşırtıcı

    • Apple platformlarında sistem çağrıları kararlı bir ABI değildir, bu yüzden libSystem üzerinden gidilmesi gerekir
    • Doğrudan sistem çağrısı yapan uygulama, yapmaması gereken bir şey yapıyordur
  • Yazarın neden mov w16, #26 yerine svc 0x80 aradığını merak ediyorum

  • Yazar, soruları yanıtlamaya hazır

  • Yukarıdaki video gerçekten harika bir programlama videosu

    • Hızlı temposu, doğru düzeyde bilgi varsayımı ve akışı bozmayan mükemmel demoları var
  • Bu uygulamanın meşru bir uygulama mı olduğu, yoksa kötü amaçlı yazılımdan şüphelenildiği için mi hata ayıklandığı merak ediliyor

    • Aksi halde çok fazla emek harcanmış olmalı
  • PT_DENY_ATTACH atlatma (Zor Mod)

    • macOS'ta çekirdeği patch'leyerek PT_DENY_ATTACH'ın hiçbir şey yapmaması sağlanabilir
    • macOS'ta patch'lenmiş bir çekirdeği çalıştırmak kolay
    • iOS'ta daha fazla sorun olacaktır (KTRR vb.)
    • XNU teknik olarak açık kaynak, ancak yeniden derlemektense hex editor ile patch'lemek daha kolaydı
  • "com.apple.tw.twrr" bildirimi merak uyandırıyor

    • Neden com.apple ile başlıyor?
    • İlgili uygulama bir Apple uygulaması değil
  • Web sitesinin JavaScript kodunu tersine mühendislik eden insanlar hakkında bilgisi olan var mı diye merak ediliyor

  • Jailbreak yapılmış bir iPhone'da özel kexts çalıştırmanın mümkün olup olmadığı merak ediliyor

    • Çekirdeğin kendisini değiştirmek daha havalı bir yöntem olurdu