Giriş
Eski bir DSL modemin firmware’ini çıkarıp MIPS mimarisinde ROP zincirleri kurmayı denedim. Asıl zorluk, sınırlı ROM alanında işe yarar gadget bulmaktı.
MIPS gadget avı
MIPS’in gecikmeli dal (delay slot) davranışı, gadget semantiğini x86’dan farklı kılıyor. ropper’ın MIPS desteğiyle başladım ama çoğu zinciri elle doğrulamak gerekti.
lw $ra, 0x1c($sp); jr $ra → stack pivot adayı
Stack pivot
Yığını kontrol edilen bir bölgeye taşıyıp küçük zincirlerle system() benzeri bir çağrıya ulaştım; alan kısıtı yüzünden payload’ı parçalara böldüm.
Sonuç
Cihaz desteği biten bir modeldi; üreticiye bildirim gönderildi, EOL yanıtı alındı. Test kendi cihazımda yapıldı.