Ana Sayfa

Knuckledragger ile RISC-V Assembly Kodlarının Doğrulanması

1 dk okuma

İkili (binary) doğrulama, düşük seviyeli kodların performans, özel operasyonlara erişim veya sıkı zamanlama/bellek kontrolü gibi nedenlerle assembly dilinde yazılması gerektiği durumlarda büyük önem taşır. Ayrıca, derleyici (compiler) hatalarını yakalamak ve günümüzün gelişen yapay zeka çağında, büyük dil modelleri (LLM) tarafından doğrudan üretilen assembly/ikili kodların doğrulanması için de kritik bir yöntemdir. Assembly programlama, hataya açık yapısı, uzun ve karmaşık kodları ile hata yakalamayı zorlaştırır ve sınırlı araç ekosistemiyle geliştiriciler için ciddi zorluklar sunar.

Philip Zucker, bu zorluklara çözüm olarak pypcode Ghidra semantiğine dayalı, Python tabanlı bir ikili doğrulama aracı olan Knuckledragger üzerinde çalışmaktadır. Önceki iterasyonlarda sembolik yürütücünün (symbolic executor) çıktısının çok karmaşık olması nedeniyle karşılaşılan hata ayıklama ve manipülasyon sorunlarını aşmak için yeni bir yaklaşım geliştirildi. Bu yeni sistem, düşük seviyeli pcode yürütme modelini, kullanıcının seçtiği daha yüksek seviyeli bir modele çeviren bir fonksiyon tanımlama özelliği sunuyor.

Bu yüksek seviyeli model, derleyici ara dil (IR) seviyesindeki duruma daha yakın bir adım fonksiyonuna sahiptir. Bu sayede, programın yüksek seviyeli bir versiyonunu doğrudan iddialar (assertions) içinde tanımlamak mümkün hale gelmiş, bu da doğrulama sürecini daha anlaşılır ve ölçeklenebilir kılmıştır. Knuckledragger, assembly kodlarının güvenilirliğini artırarak hem insan yazılımcıların hem de gelecekte yapay zeka tarafından üretilen kodların doğrulanmasında önemli bir araç olmayı hedeflemektedir.

İçgörü

Assembly kodlarının doğrulanması için geliştirilen Knuckledragger aracı, düşük seviyeli programlamadaki hata riskini azaltarak yazılım güvenilirliğini ve verimliliğini artırıyor.

Kaynak