Linux Kernel Fonksiyonlarını 'Hook'lamak

0
anonim
Linux çekirdeğindeki bir fonksiyonun işleyişini ona zarar vermeden değiştirmek istediğimizi düşünelim. Kaynak kodları değiştirir tekrar derleriz ancak bu yazıda daha farklı bir yöntem izleyecegiz ve hafızadaki kernel'a tamamen geçici bir yama yapacağız.

Bunu, 90ların başlarında MS-DOS virüslerinin çok sevdiği bir tekniği Linux'a uyarlayarak gerçekleştireceğiz.

Hooklamak istediğimiz fonksiyonun başına jmp hook instruction'ını yazdığımızı düşünelim. Gelen her çağrı bize yönlendirilecektir fakat üzerine yazdığımız bölgeyi kullanılamaz hale getirmiş oluruz. Üzerine yazdığımız bölüm kadar yeri yedekleyelebiliriz.

Linux çekirdeğinde 'kernel export'ları nasıl 'hook'lanacağı üzerine olan bu yazıyı ve ilgili kaynak kodları http://blog.int6.net/media/kit.tar.gz adresinden edinebilirsiniz.

Görüşler

0
auselen
Ben de strace'in reklamını yapayım.

Daha önce kullanmayanlar için kısa açıklama; linux'ta sistem çağrılarını gözlemlemenizi sağlayan bir program.

Örneğin komut satırında "strace ls" derseniz, ls komutun hangi sistem komutlarını çağırdığını görürsünüz.

Bundan da güzeli, sistemin bu uygulamayı çalıştırmadan önce neler yaptığını, mesela hangi sistem kitaplıklarını açtığını görürsünüz.

Sistemde çalışmayan bir uygulama olduğunda oldukça yararlı olduğunu söyleyebilirim.

http://en.wikipedia.org/wiki/Strace
http://sourceforge.net/projects/strace
0
Tarık
reklama ne hacet, tepe tepe kullanıyoruz. bende bir bağlantı atayım da tam olsun :) ayrıca aynı yerden şunu da yiyebilmekteyiz.
0
Tarık
ayrıca hdd ye indirilip yazıcı çıktısı alınası...
0
FZ
Bu tür yazıların devamını bekliyoruz ;-)
0
realist
Tüm FM yazıları böyle olsun, beni aşsın, afallatsın. Nasıl yapıldığını anlamam için cilt cilt okumam gereksin.
0
FZ
Ve sonra FM sadece tek bir konu üzerinde 100 cilt kitap okuyup 15 yıldır çalışan birkaç uzmanın uğrak noktası olsun diğer herkes seyirci kalsın ve bir süre sonra onlar da sıkılıp, pek bir şey anlamayıp gitsinler :-p
0
mos
ben de bu bakış aşısından yanayım :)
0
anonim
Ben anladım sanırsam.

önce o büyük düğmeye basıyoduk deilmi?...
Görüş belirtmek için giriş yapın...

İlgili Yazılar

CoolLinux, CD`de kurulu Linux!

sundance

Linux'a yakin olanlar bilir, Linux kurmak icin tekrar yazilabilir bir medyaya (HD,RAM) bagli degilsiniz. Bir kere yazilabilir bir medya uzerine de(ROM veya daha iyisi CD-ROM) Linux kurabilirsiniz.

CoolLinux boyle bir dagitim iste. Yaklasik 250Mb.lik ISO.gz'i acip kurunca, sadece CD ve Ram ustunden calisan bir dagitim kullanima hazir oluyor.
icinde ne var derseniz ? Ne yok ki, Opera, Mozilla, Licq, OpenOffice, Sylpheed, XMMS ve daha niceleri...

Gel vatandaş geeell... BEDAVA Linux Mainframe´e gel...

sidar

IBM, Linux'a kur yapmaya devam ediyor. Geçtiğimiz aylarda başlatılan büyük çaplı Linux destek operasyonunun bir parçası olarak herkese Linux'u tanıtmayı/sevdirmeyi misyon edinen IBM, zSerisi'den 10 işlemcili bir mainframe'i tüm kullanıcılara açacak. Kayıt olan kullanıcılar 2.1 terabyte'lık disk kümesine sahip olan bu dev Linux makinesine Telnet/SSH aracılığı ile bağlanarak web'de surf edebilecek, program geliştirip test edebilecek; kısacası istediği herşeyi yapabilecek. Kayıt olan herkese sanal sunucular verilmesi sayesinde kullanıcılar herhangi bir makineden Telnet/SSH aracılığı ile IBM'in bu dev makinesine girip top oynatılabilecek.

RAM Tabanlı Sabit Disk

malkocoglu

Bir borsa şirketinde çalışan arkadaş ile sohbetten paylaşıyorum:
Arkadaşımız, bir ABD finans şirketinde şöyle bir sistem geliştirmiş: Borsa sistemindeki yavaşlıklardan faydalanıp çabuk al/sat yaparak para kazanan otomatik bir program. Sistemin özellikleri: Veri tabanı: MySQL ; Işletim sistemi: Linux ; Disk: Rocket Disk
Sistemin mimarisinde çok ilginç bir ozellik, Linux'a bağlı kullanılan Rocket Disk markalı bir donanım birimi. Rocket Disk kendi belleği ile geliyor, ve bilgisayarın PCI girişi üzerinden işletim sistemine sabit disk gibi gözüküyor. Daha önceden solid state teknolojisi olarak duyduğum bu uygulamayı ilk kez gerçek hayatta kullanan birini görünce, tecrübelerini hemen gagaladım.
MySQL bir günlük veri için (8 GB'lik) veri tabanını tamamen rocket disk üzerine geçirmişler, ve tabii ki uygulamaları "kanatlanmış". Bir günlük al/sat işlemleri tamamen rocket disk üzerinde yapılıyor, ve saat 5'ten sonra (borsa kapanınca) rocket disk'teki veriler sabit diske geçiriliyor (zamanlı bir betik ile kolay, cron, perl, vs ile).

Eski Windowsçularda Yeni Başlayan Linux Merakı

murat09

Son bir kaç aydır sık ziyaret ettiğim bir forumdan bir copy paste yapacağım. Umarım arkadaşımızın verdiği link hala çalışıyordur:

One linux to rule them all?

conan

Birkaç zamandır yapılan spekülasyonların sonucunda 4 tane büyük linux dağıtıcısı bir çatı altında standartlaşma yönünde gideceklerini açıkladılar. UnitedLinux adı altında başlatılan bu çalışmanın başını Caldera, SuSE, TurboLinux ve Conectiva çekiyorlar.

Caldera'nın CEO'su Ransom Love'un yaptığı açıklamaya göre bu kararın altında yatan neden bir Linux dağıtımında çalışan bir programın başka birinde çalışmaması. (Nasil oluyorsa?) Ransom bahsetmese de asıl nedenin finansal olduğu söylentileri de dolaşmıyor değil.