Rehber UPX Manuel Unpacking - Packer Nedir, Nasıl Çalışır?

Önemli olan bir konuyu herkese anlaşılan bir biçimde anlatabilmektir. Bu konuda örneği olsun
Çok güzel olmuş klavyenize sağlık diyelim
Her yazılım bunun ile açılır mı?
Açılır mı derken anlayamadım. Debugger ile diyorsan her şeyi açabilirsin ama bazı programların anti debug ve anti-vm teknikleri kullandığını unutmamak gerekiyor. Bu tarz durumlarda API müdahalesi için özel rootkitler veya hide debuggerlar kullanmak gerekebiliyor.

Bu yazımda UPX'i manuel unpack etmeyi anlattım. Farklı packerlarda unpack süreci farklı işleyebilir ama genel mantık bu şekildedir. İleride daha farklı packerlar ile packlenmiş programları unpack etmeyi de anlatmaya çalışacağım nasip olursa, öyle bir niyetim var.

Bu işler zevkli işler ama Assembly veya hiç yoktan low level dil bilgisi gerektiriyor. O yüzden pek ilgi görmüyor ülkemizde. Belki de crackme'ler de çözeriz inşallah bu kategoride.
 

Benim yazılımda olan hedefim bazı dilden biraz bilmek. Yani amacım böyle. Üstüne gideyim de derin bilgilere gireyim yok.
Sadece merakımı gidermek istiyorum.
Mesela Arduino merak saldım. Tek başıma belirli projeler üretmek idi amacım ulaştım ve bıraktım. Birkaç dil için de bu böyle.

Yani çok anladığım söylenmez. Hatta hiç. Yaz tatilinde Assembly az çok mantığını kavramak mümkün müdür?
Ayrıca;
İngilizce çok sorun olmaz ama matematik derken? Yani matematik bilgisi ne derece lazım?
 
Assembly için konuşacağım. Aslında olayın hepsi düşüncede bitiyor. Sen bir işi nasıl yapıyorsan ve biri sorduğunda bunu en anlaşılır haliyle anlatmaya çalışıyorsan, Assembly için de bu böyle. X86, ARM vesaire hepsinde durum aynı.

Ben x86 ile başladım. Üstelik çok uzak değil, geçen senelerde Art of Assembly okumaya niyetlendim, biraz baktım fakat bıraktım. Sonra da debugger'da zaman geçire geçire kendiliğinden anlamaya başladım. Her şey başlamak ile oluyor inan. İlk başlarda hiçbir halt anlamazsın. Boş boş bakarak öğreniyorsun. İlgilendiğim alan malware analizi, mutlaka öğrenmem gerektiğini düşünüyordum hep. Biraz da bu motivasyon oldu.

Matematiğe gelince, bazen gerekebiliyor. Lise seviyesi bilmek lazım diye düşünüyorum. Mesela en basitinden geçenlerde bir crackme çözüyordum, key için minimum 17 karakter sınırı koyulmuş. Bu 17 karakter sınırlamasını kaldırman ve kontrolleri bypass etmen lazım mesela. Bunu nasıl kaldırıyorsun, ilgili kodda 17'yi ifade eden ve kontrolü sağlayan kod bloğu ile oynayarak.

Bazen de doğrulamayı sağlayan o ufak kısmı değiştirerek. Byte byte cracking anlayacağın.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…