Ortak CPU mimarilerine dair iyi bir anlayış (örneğin: x86) varsayarsak, tersine mühendislik alanında potansiyel bir yolu (kariyer, eğlence ve kâr vb.) Nasıl keşfedebiliriz? Orada çok az eğitim kılavuzu var, bu yüzden bugünün hangi potansiyel kullanımları olduğunu anlamak zordur (örneğin: hala yaygın taşkınlık istismarlarını araştırıyor mu, yoksa yığın izleme programları bu işe yarıyor mu?). Herhangi bir adım adım program aramıyorum, sadece bir programın belirli bir alanını nasıl verimli bir şekilde bulacağına dair ipuçları gibi bazı ilgili bilgiler. Ticarette temel şeyler. Bugün için şu anda kullanıldığı gibi.
Yani tekrar etmek için, şu anki kullanımları tersine mühendislik verimi veriyor mu? Ve ticaretin nasıl öğrenileceği hakkında bazı temel bilgileri nasıl bulabiliriz (yine bir adım-adım olmak zorunda değil, sadece bir ipucu aracılığıyla yapılabilecek her şey yardımcı olabilir).
Daha önce de belirttiğim gibi, bildiğim ana yazılım, kötü amaçlı yazılımlarla ilgilidir. Tarayıcı şirketleri için çalışan araştırmacıların öncelikli görevlerinden biri, bir örnek almak ve bir laboratuvar veya sanal ortamda hata ayıklamaktır.
Aynı hatlar boyunca, tersine mühendislik / sökme işlemi kullanan çok sayıda güvenlikle ilgili alan vardır. Bilgisayar adli tıpı incelemek isteyebileceğiniz bir alandır. El konulan bir bilgisayar, çeşitli etkinlikler için (komut ve kontrol botnet, DoS saldırı programları, vb.) Komut ve kontrol programları içerebilir (ancak kaynak içermez). Korunan veri şemasını, şifre veya anahtarı bulmaktan ziyade koruyan programı tersine mühendislik yaparak atlatmak genellikle çok daha kolaydır.
Hem donanım hem de yazılımda DRM / güvenlik koruması büyük bir ters mühendislik alanıdır. Bu sorunun ya "tarafında" (ve yasada) olabilir. DVD kopyalama programları, koruma kaldırma, diğer cihazlarda iTunes müzik çalma yeteneği, Wii üzerinde homebrew programları çalıştırmak için yeteneği, bir PS3 ızgara paralel hale getirme, bir iPhone, vb kilidini, vb. Düşünün. Açıkçası pek çok yasal olmayan sadece seçenekleri vardır (ters) Bir slot makinesi zamanlayıcısı, ATM makine doğrulama, vb.
Eski program dönüşümü, başta hükümet, finans, imalat vb. Olmak üzere pek çok alanda büyük bir fırsattır. Eski bir ana bilgisayarda veya hiç kimsenin kaynak kodunun bulunmadığı 30 yıl boyunca çalıştırılan kritik görevler vardır. Ekipler, programı daha yeni bir şeye dönüştürmek için tersine çevirmelidir.
Win32 öğreticiler öğrenme hakkında diğer öneriler çok uygundur. Ayrıca, ne yazık ki, yayınlanan en iyi çalışmalardan bazıları çatlama (oyunlar) üzerinde olacak. Bunu ara ve temelleri gösteren birkaç öğretici var. Peter Szor'un "Bilgisayar Virüs Araştırmaları ve Savunması Sanatı" adlı kitabını kullandığı bir sınıf ama kötü amaçlı yazılım fikirleri üzerinde tam olarak sökme kısmı değil, daha ağırdı.
Hangi rotayı aldığınıza bağlı olarak başka şeylerde de bir arka plana ihtiyacınız olacaktır, ancak montajı bilmek en kritik yeteneğiniz olacaktır. Sadece “bu kodun çoğunlukla ne yaptığını anlıyorum” bakış açısından değil, sıfırdan bir şeyler yazabilmelisiniz ve belirli bir kod parçasının tam olarak ne anlama geldiğini ve aynı kodun yazılabileceği diğer yolları anlayabilmelisiniz. Montaj (kodlama) bir soruna bir çözüm bulmak ve kodlamaktan ibarettir. Sökme işlemi, sorunu çözmek için başlangıçta birçok farklı çözümden hangisinin kullanıldığını belirlemeyi içerir - MUCH sert;)
Güvenlik alanında, kötü amaçlı yazılım ve truva atlarının (virüsler hakkında çok fazla emin olmamak) dahili çalışmayı anlamak için tersine mühendislik kullanıldığını okudum. Güvenlik alanında kullanılan ters mühendislik makaleleri için www.openrce.org.
Ayrıca tersine mühendislik her zaman sökmeyi içermez. Java veya C # gibi dillerde yazılmış uygulamalar için, dekompiller genellikle kod hakkında disassemblers'den daha fazla bilgi verir.
Kişisel ilgim, Win32 tersine mühendislikte olduğu için, yalnızca bu belirli işletim sistemi hakkındaki görüşlerimi açıklayabilirim. Linux tersine mühendislik size yardımcı olamaz o zaman :(
Ücretsiz sürümünü buluyorum IDA Pro 4.9 Mükemmel bir disassembler. Sistem kitaplıklarını algılar, böylece yanlış yerlerin etrafında zaman harcayamazsınız :) Gibi bir hata ayıklayıcı ile birleştiğinde OllyDbgWin32 için herhangi bir geri dönüş projesinin üstesinden gelmeye hazırsınız.
Eğer Win32 rotasından aşağı giderseniz, muhtemelen PE yapısını anlamanız, belki de paketlemeyi açmanız ve bir şeyler yapmanız gerekir, ancak şimdi anahtar olan şey x86 montajını anlamaktır. Win32 uygulamaları için sökülmüş kod, C gibi dillerde Win32 API kodlaması yaptıysanız anlaşılması nispeten kolaydır.
32 bit montajı daha iyi anlamak için, kendi uygulamalarınızı parçalarına ayırın ve kaynak kodunuzun sökme çıktısına nasıl karşılık geldiğini görün veya Win32 API uygulamalarının derleme dili ile nasıl kodlanacağını öğrenin. Iczelion's Win32 Assembly öğreticiler.
FFMpeg'in mevcut koruyucusu, videolarını Linux üzerinde çalışabilmesi için tersine mühendislik video kodeklerini başlattı. onun Blog oldukça ilginç ve o bir son Gönderi başladığı zaman istediği bir kitaptan bahsediyor.
Gördüğüm en büyük potansiyel kullanımlardan biri samba gibi bir proje.http://www.samba.org/)
Her zaman bunlar gibi özel sistemler kapalı olacak ve bunları tersine çevirmek için mühendislere ihtiyaç duyarız, böylece başkaları da kullanabilir.
Reversing adlı kitap var: Eldad Eilam tarafından yazılmış Tersine Mühendislik Sırları, Elliot Chikofsky
mybe dört size yardımcı
Uygulama savunmasızlığının büyük organizasyonlarda BT yönetiminin önemli bir endişesi olduğunu gösteren yeni bir ankete rastladım. Bu yüzden yazılımın nasıl çatladığını bilmek uygulama mimarisini değerlendirmede ve güvenlik açığı değerlendirmesi için kodlamada çok yararlı olabilir.