
Tavşan Deliği Ne Kadar Derin? Ne bilmediğimizi biliyor muyuz?
Pandemi başladığından beri, her gün biraz zaman ayırarak makine öğreniminden daha geniş bir konuya odaklanmaya çalışıyorum. Makine öğrenimi son derece değerli olsa da üzerinde her gün çalışmak bana yeni disiplinleri ve becerileri araştırma imkanı kazandırdı. Teknoloji dünyasında daha fazlası olduğunu kendime hatırlatmanın her zaman önemli olduğunu düşünmüşümdür.
Bu yazı istek uyandıran bir yazı olacak. Hakkında hiçbir şey bilmediğim bir sürü şeyi listeleyerek başladım. Sonra, kendini geliştirme ruhuyla, her konu için bir proje fikirleri listesi oluşturdum. Yaparak en iyi şekilde öğrendiğimi görüyorum, bu yüzden bu projelerin daha önce çok az deneyimim olan veya hiç deneyimim olmayan alanlarda uzmanlaşmama yardımcı olacağını umuyorum. Ve kim bilir, belki başkaları da bu listeden faydalanır!

Network oluşturma
Network kurma bilgim ciddi şekilde eksik. Her şeyden önce, işletim sistemi ağ yığınının Linux veya macOS üzerinde nasıl çalıştığı hakkında hiçbir fikrim yok. Ayrıca, hiçbir zaman karmaşık bir ağ (örneğin bir veri merkezi için) yapılandırmadım, bu nedenle sistemin nasıl çalıştığı konusunda sınırlı bir bilgiye sahibim.
Network kurmak söz konusu olduğunda o kadar cahilim ki, sık sık bununla ilgili soruları formüle etmekte zorlanıyorum. Umarım sorularım ve proje fikirlerim mantıklıdır ve uygulanabilir hale gelir.
Sorular:
İşletim sisteminiz ağ trafiğini engellemek veya manipüle etmek için hangi API’leri sağlıyor?
Bir WiFi ağına bağlandığınızda aslında ne olur?
Ağ arayüzü nedir? Trafik, ağ arayüzleri üzerinden nasıl yönlendirilir?
VPN’ler dahili olarak nasıl çalışır (hem sunucuda hem de istemcide)?
Linux ağ ilkelleri ne kadar esnektir?
iptables Linux’ta nasıl çalışır? Aslında ne işe yarar? MacOS’ta bunun bir karşılığı var mıdır?
NAT’ler farklı trafik türleriyle (örn. ICMP) nasıl başa çıkar?
DNS nasıl çalışır? DNS kayıtları nasıl yayılır? Özel ad sunucuları (örneğin NS kayıtlarıyla) nasıl çalışır?
Projeler:
Little Snitch gibi bir şeyi yeniden uygulayın.
Canlı bir bant genişliği monitörü yapmak için Berkeley Paket Filtresini (veya başka bir API) kullanmayı deneyin .
DNS sorguları yapabilmek için sonuna kadar ulaşan paket düzeyinde bir WiFi istemcisi uygulayın. Buna gofi ve wifistack ile başladım ama bitirmedim.
Sahte bir IP adresinde sahte bir web sunucusuyla sahte bir LAN ortaya çıkaran bir program uygulayın. Bu, kendi ağ yığınınızı yazmayı içerecektir.
Bir tünel arabirimi aracılığıyla sahte bir “ağ geçidi” ortaya çıkaran bir kullanıcı alanı NAT uygulayın.
İyotu , paket iletimini uydu internet bağlantılarında (uçakta olduğu gibi) daha hızlı olacak şekilde paralel hale getirecek şekilde yeniden uygulayın .
ifconfig Sistem çağrılarını kullanmak gibi bir şeyi yeniden uygulayın .
Bilgisayarınızı hem Ethernet’e hem de WiFi’ye bağlayın ve aynı anda her iki arayüz üzerinden bir HTTP indirmesini paralelleştiren bir program yazmaya çalışın.
Bir ton IP adresi atayarak DOS’a bir VPN sunucusuna bir komut dosyası yazın.
Basit bir VPN benzeri protokol yazın ve bunun için bir sunucu / istemci oluşturun.
Yeni bir Docker oluşturabileceğiniz ve ona bir VPN’den kendi IP adresini atayabileceğiniz bir sistem kurmaya çalışın.
Sahte bir DNS sunucusu uygulayın ve yönlendiricinizi onu kullanacak şekilde ayarlayın. DNS sunucusu, çoğu isteği gerçek bir DNS sunucusuna iletebilir, ancak seçtiğiniz belirli etki alanları için sahte adresler sağlayabilir. Bu, aptalca şakalar için veya insanların ziyaret ettiği alan adlarını kaydetmek için eğlenceli olurdu.
Otellerde, havaalanlarında vb. WiFi ödeme duvarlarını atlamayı deneyin.
Kripto para
Kripto para birimleri şu anda oldukça popüler. Bu yüzden, bir teknoloji meraklısı olarak, onlar hakkında hiçbir şey bilmediğim için kendimi kötü hissediyorum. Belki bunu düzeltmeliyim!
Sorular:
Kripto para birimleri gerçekte nasıl çalışır?
Kripto para birimleri ne tür ağ protokolleri kullanır?
Ethereum’un dağıtılmış bir sanal makine olduğu ne anlama geliyor?
Madencilik kripto para birimlerinde gerçekte hangi hesaplamalar yer alıyor?
Projeler:
Basit kripto para birimi uygulamaya çalışın.
Üst düzey API’ler kullanmadan bir cüzdandan diğerine bir miktar kripto para birimi (örneğin Bitcoin) aktaran bir komut dosyası yazın.
Ethereum VM’de çalışan küçük bir program (örn. “Merhaba Dünya”) yazın. Dürüst olmak gerekirse bunun mümkün olup olmadığını bile bilmiyorum.
Sıfırdan bir Bitcoin madenciliği programı yazmayı deneyin.
Makine öğrenimi
Makine öğreniminde çalışmama rağmen, bazen sahayı bir bütün olarak takip etmeyi unutuyorum. İşte tazelemem gerektiğini düşündüğüm bazı şeyler:
Sorular:
SOTA nesne algılama sistemleri nasıl çalışır?
OCR sistemleri, görüntülerdeki değişkenlikleri nasıl algılar? Ne tür matematiksel işlemler yapar?
CycleGAN gerçekte nasıl çalışır?
Projeler:
Filmlerde insanların burunlarına kutular koyan bir program yapın.
Bir captcha yapın.
Ekran görüntüsünden metne dönüştürme sistemi oluşturun (eğitim verilerini oluşturmak kolay).
MNIST basamaklarını alan ve bunların SVHN basamakları gibi görünmesini sağlayan bir şey yapmaya çalışın.
Telefonlar
Telefonlar benim için hala bir gizem. Bir kullanıcı dairesini hacklerken telefonları öğrenmenin ne kadar kolay olduğundan emin değilim, ama her zaman deneyebilirim!
Sorular:
SMS protokolü gerçekte neye benziyor? Veriler nasıl iletilir? Neden farklı taşıyıcıların farklı karakter sınırları var gibi görünüyor?
Modern telefon nasıl çalışır? Çağrılar nasıl yönlendirilir?
Bir telefon numarasını taklit etmek neden bu kadar kolay ve nasıl yapılır?
Android ve IOS uygulamaları nasıl paketlenir ve bunlara tersine mühendislik uygulamak mümkün müdür?
Projeler:
Telefonunuzda tersine mühendislik SMS uygulamalarını deneyin. API’lerin SMS mesajlarıyla ne ilgilendiğini ve mesajların kullanıcı arayüzünden hücresel antene nasıl ulaştığını öğrenin. Bir SMS mesajını mümkün olduğunca düşük bir seviyeden kodlamaya ve göndermeye çalışın.
Verizon / AT & T / Sprint / T-Mobile gibi şirketlerin altyapısını ve mühendislik ağını inceleyin. Temel yeterliliklerin neler olduğunu öğrenip yol haritası çıkarabilirsiniz.
Mevcut bazı açık kaynak projeleri için blog sayfaları yazın. Eminim herkes size teşekkür edecektir.