Intel PIN: Dynamic Binary Analiz aracı

Herkese selamlar,

Malware analizleri gerçekleştirirken pek çok araçtan yararlanıyorum. Bunlardan biri de Intel tarafından geliştirilen PIN adlı aracı belirtmek istiyorum. Açıkcası daha yeni keşfettiğim ve bundan sonra da analizlerimde kullanacağım bir araç olacak. Bu yüzden yeni keşfetmişken bir yazı ile paylaşmak istedim.

Kısaca belirtmek gerekirse PIN, x86/64 ve MIC komut seti mimarileri için geliştirilmiş bir dynamic binary analiz aracıdır. Bana bakan tarafıyla ilgili olarakta zararlı yazılımları izlemek ve deobfuscating için kullanmaya başladım.

Açıkcası internetten araştırdığım kadarıyla en azından Windows tarafıyla ilgili olarak çok fazla bilgi ve dökümana rastlamak pek mümkün olmadı diyebilirim. Linux tarafından ayrı olarak Windows platformuna PIN aracını indirdikten sonra, gerekli araçları kullanabilmek için Visual Studio ile entegre edip, projeleri derlemek gerekiyor. Tabi derleme işlemlerini yaptığımız zaman pek çok hata ile karşılaşabileceğinizi -benim gibi- belirtmek istiyorum.

Gerekli Araçlar

  • PIN Tool 3.10 (Link)

Ortam Gereksinimleri

  • Microsoft Visual Studio (VS 2017 Community Edition kullanıyorum)
  • MS Windows x86/64 (Windows 7 x86’da gerçekleştirdim)

İlk olarak PIN aracına ait tüm gerekli dökümanları indiriyoruz. ZIP dosyasından dosyaları çıkardıktan sonra C:\pin-3.10 olarak konumlandırdım.

PIN ile kullanabileceğimiz pek çok araç bulunuyor. Kullandığım araç ise TinyTracer oldu. Polonyalı siber güvenlik araştırmacısı tarafından API çağrılarını izlemek için yazılmış olup, malware analizleri gerçekleştirirken kullanıyorum.

https://github.com/hasherezade/tiny_tracer

Açıkcası uzun uzun açıklama yapmak isterdim fakat tool’un geliştiricisi bununla ilgili olarak güzel ve açıklayıcı bir video yayınlamıştı.

Output

Herhangi bir hata ile karşılaşmayacağınızı varsayarsak, build edildikten sonra yukarıdaki çıktıyı almanız gerekiyor.

Daha sonra ise tek bir tıklama ile ilgili aracı kullanabiliyorsunuz. Tabi ki gerekli ayrıntılar geliştiricinin videosunda yer alıyor.

Tiny tracer output

Yukarıdaki resimde ise output’un nasıl gözüktüğü yer alıyor. Açıkcası bu PIN ile birlikte kullandığım ilk tool oldu. Sizlerde ihtiyacınıza uygun araçları PIN API’ler vasıtasıyla yazabilirsiniz.

Genel itibariyle Windows üzerinde kullanmak istediğiniz araçları ilk önce derleyip, daha sonra kullanabiliyorsunuz. Tabi ki derleme yaparken pek çok hata ile karşılaşmanız içten bile değil. İlerleyen zamanlarda işime yarayan farklı araçlar keşfettiğim takdirde, paylaşmaya özen göstereceğim.

Referanslar

1- Application Instrumentation : Application Analysis with Pin – https://msdn.microsoft.com/en-us/magazine/dn818497.aspx

2- How to compile a PIN tool using Visual Studio 2017 – https://hshrzd.wordpress.com/2018/07/16/how-to-compile-a-pin-tool-using-visual-studio-2017/

3- Pin – A Dynamic Binary Instrumentation Tool – https://software.intel.com/en-us/articles/pin-a-dynamic-binary-instrumentation-tool