Photo Photo Photo Photo Photo Photo
Print
E-mail
Computer Science: WRITING A LINUX VIRUS WITH LKM

 

Writing a Linux Virus with LKM 

Nada A.Z. Abdullah

Department of Computer Science, College of Science, University of Baghdad. Baghdad – Iraq.

Abstract

Virus is a program which is able to replicate with little or no user intervention, and the replicated program(s) are able to replicate further. Writing a good virus is challenging, the best viruses are written in C language, and building as executable file from C source code to plant virus code into another executable. The result either prohibitively large, or very dependent on the completeness of the target installation. Real viruses approach the problem from the other end. They are aggressively optimized for code size and do only what's absolutely necessary. However, this has some limitations and the solution to these limitations is complicated and makes the virus more likely to fail. This paper presents a design and implementation of a virus running on Linux operating system as Loadable kernel module (LKM) to overcome the limitations of developing the virus as C program. This virus can infect Linux modules in addition to executable files. 

لينكس فايروس كنموذج نواة قابل للتحميل 

ندا عبدالزهرة عبدالله

قسم علوم الحاسبات، كلية العلوم، جامعة بغداد. بغداد – العراق. 

الخلاصة

الفايروس هو برنامج يمكن أن يصيب بقية البرامج بنقل نسخة منه الى البرنامج المصاب والبرنامج المصاب يمكن أن يصيب برامج أخرى. كتابة الفايروس هو تحدي وأفضل الفايروسات تكتب بلغة C ثم يحول الى برنامج تنفيذي له قابلية زراعة الفايروس في البرامج الأخرى . كتابة الفايروس بهذه الطريقة تصاحبه بعض المشاكل مثل كبر حجم البرنامج واعتماده على على نوع الأجهزة التي طور عليها مما حدى بالمبرمجين للفايروس لجعل البرنامج أصغر مايمكن . هناك محددات عديدة لحل هذه المشاكل تجعل عملية كتابة الفايروس صعبة نسبيا. في هذا البحث تم تطوير فايروس في نظام لينكس كنموذج نواة قابل للتحميل لتخطي هذه المشاكل. الفايروس المطور في هذا البحث يصيب البرامج التنفيذية بالاضافة الى نماذج النواة التي يتم تحميلها.




alt

 

S5 Box

Login



Register

*
*
*
*
*

Fields marked with an asterisk (*) are required.