(*(void(*) ()) SC) (); seklinde komut kullanımı

Başlatan alikemal0162, 16 Ekim 2015 - 22:53:05

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

alikemal0162

Arkadaşlar exploit veri tabanındaki c kodları inceliyordum.Garip bir kodla karsılastım.Nasıl bir kullanımdır bu fikir verebilecek var mıdır acaba?



int main(void)
{
    (*(void(*) ()) SC) ();
    return 0;} 

Kaynak : https://www.exploit-db.com/exploits/38194/

Sh4oTT


-DıLgEş-

İsimsiz fonksiyonları hiç kullanmadım ancak belki bir isimsiz fonksiyon çağırıyor olabilir. Eve gidince bir bakarım.
Aşkın; gözü kör, kulağı sağır, dili tutuk, aklı kıttır..! Hayır yani bu halde nasıl herkesi madara ediyor onu çözemedim..

Sh4oTT

 SC gostericisinde tutulan degerleri kullanmak icin cagrilmis bir fonksiyon olabilir.Anlamadigim niye o kadar parantezler koymus? Cok fazla parametre mi aliyor? Ayrica bu fonksiyonu neden tanimlamamis nerden cagiracak bunu? Bende ki bilgiyle bu sonuca vardim.

betseg

Üstteki büyük yorumun altında char *SC = var ve ondan sonra Assembly kodları var. 

(*(void(*) ()) SC) ();kısmı, onları void SC();olarak çalıştırıyor olabilir. 


Veya çok fena sallıyor da olabilirim :D

alikemal0162

Main fonksiyonundaki void parametresi de sıkıntı bir sey

Amenofis

Opcode ları dizi içerisine koymuş ve başlangıç adresini (SC) fonksiyon adresine dönüştürerek oraya dallanmış. Tabi bunu sadece artistlik olsun diye yapmış, normal  fonksiyon olarak ta yapabilirdi.

Reverser

Tam kodu incelemedim ama fonksiyon pointerı gibi geldi bana

XFCE ROCKS !
Powered by Thunar & XFWM4



alikemal0162

Alıntı yapılan: AmenofisOpcode ları dizi içerisine koymuş ve başlangıç adresini (SC) fonksiyon adresine dönüştürerek oraya dallanmış. Tabi bunu sadece artistlik olsun diye yapmış, normal  fonksiyon olarak ta yapabilirdi.
Aynen opco*e seklin*e bir sey varmıs bu sekile kullanılan.internette örenklerie var.asembly çalıstırıyor sanırım.