ফাইলহীন ম্যালওয়্যার একটি ব্রাউজারের ফ্ল্যাশ প্লাগইন বা কোনও নেটওয়ার্ক প্রোটোকলে যেমন দুর্বলতা কাজে লাগিয়ে লক্ষ্যকে আক্রমণ করে।
একটি লিনাক্স প্রক্রিয়া সিস্টেম কল ব্যবহার করে পরিবর্তন করা যেতে পারে ptrace()
। এই সিস্টেম কলটি সাধারণত ডিবাগাররা লক্ষ্য প্রক্রিয়াটির অভ্যন্তরীণ অবস্থা পরিদর্শন ও পরিচালনা করতে ব্যবহৃত হয় এবং এটি সফ্টওয়্যার বিকাশে কার্যকর।
উদাহরণ হিসেবে বলা যায়, এর PID, 1234. এই প্রক্রিয়া 'পুরো অ্যাড্রেস স্পেস ছদ্ম ফাইলসিস্টেম দেখতে পাওয়া যেতে পারে সঙ্গে একটি প্রক্রিয়া বিবেচনা করি /proc
অবস্থানে /proc/1234/mem
। আপনি এই সিডোফাইলটি খুলতে পারেন, তারপরে এই প্রক্রিয়াটির সাথে সংযুক্ত করুন ptrace()
; এটি করার পরে, আপনি ব্যবহার করতে পারেন pread()
এবং pwrite()
প্রক্রিয়া স্পেসে লিখতে।
char file[64];
pid = 1234;
sprintf(file, "/proc/%ld/mem", (long)pid);
int fd = open(file, O_RDWR);
ptrace(PTRACE_ATTACH, pid, 0, 0);
waitpid(pid, NULL, 0);
off_t addr = ...; // target process address
pread(fd, &value, sizeof(value), addr);
// or
pwrite(fd, &value, sizeof(value), addr);
ptrace(PTRACE_DETACH, pid, 0, 0);
close(fd);
(কোড থেকে নেওয়া এখানে একটি ptrace সম্পর্কে। আরেকটি কাগজ কাজে লাগান উপলব্ধ এখানে ।)
এই আক্রমণগুলির বিরুদ্ধে কার্নেল-ভিত্তিক প্রতিরক্ষা সম্পর্কিত, একমাত্র উপায় হ'ল কার্নেল বিক্রেতা প্যাচগুলি ইনস্টল করা এবং / অথবা নির্দিষ্ট আক্রমণকারী ভেক্টরকে অক্ষম করা। উদাহরণস্বরূপ, ptrace এর ক্ষেত্রে আপনি কার্নেলটিতে একটি ptrace- ব্লকিং মডিউল লোড করতে পারেন যা নির্দিষ্ট সিস্টেম কলটি নিষ্ক্রিয় করবে; স্পষ্টতই এটি আপনাকে ডিবাগিংয়ের জন্য ptrace ব্যবহার করতে অক্ষম করে।