Since walking the doubly linked list is susceptible to DKOM attacks.

چونکہ ڈبل لنکڈ لسٹ پر چلنا DKOM حملوں کا شکار ہے۔


To overcome this problem, you can use another plugin named modscan.

اس مسئلے پر قابو پانے کے لیے، آپ modscan نامی ایک اور پلگ ان استعمال کر سکتے ہیں۔


The modscan plugin relies on the pool tag scanning approach.

modscan پلگ ان پول ٹیگ اسکیننگ کے طریقہ کار پر انحصار کرتا ہے۔


The modscan plugin displays the kernel modules in the order in which they were found.

modscan پلگ ان کرنیل ماڈیولز کو اس ترتیب میں دکھاتا ہے جس میں وہ پائے گئے تھے۔


To confirm whether the driver was unloaded or hidden, you can use the unloadedmodules plugin.

اس بات کی تصدیق کرنے کے لیے کہ آیا ڈرائیور کو ان لوڈ کیا گیا تھا یا چھپایا گیا تھا، آپ ان لوڈڈ ماڈیولز پلگ ان استعمال کر سکتے ہیں۔


Another method for listing the kernel modules is to use the driverscan plugin.

کرنیل ماڈیولز کی فہرست بنانے کا ایک اور طریقہ یہ ہے کہ driverscan پلگ ان استعمال کیا جائے۔


The driverscan plugin gets the information related to kernel modules from a structure named DRIVER_OBJECT.

driverscan پلگ ان DRIVER_OBJECT نامی ایک ڈھانچے سے کرنیل ماڈیولز سے متعلق معلومات حاصل کرتا ہے۔


After you identify the malicious kernel module, you can dump it from memory to disk using the moddump plugin.

بدنیتی پر مبنی کرنیل ماڈیول کی شناخت کرنے کے بعد، آپ اسے moddump پلگ ان کا استعمال کرتے ہوئے میموری سے ڈسک پر ڈمپ کر سکتے ہیں۔


In this section, you will understand the interaction between the user-mode and kernel-mode components.

اس حصے میں، آپ صارف موڈ اور کرنیل موڈ اجزاء کے درمیان تعامل کو سمجھیں گے۔


Typically, a rootkit consists of a user-mode component (EXE or DLL) and a kernel mode component (device driver).

عام طور پر، ایک روٹ کٹ میں ایک صارف موڈ جزو (EXE یا DLL) اور ایک کرنیل موڈ جزو (ڈیوائس ڈرائیور) شامل ہوتا ہے۔


The driver updates the Major function table during initialization.

ڈرائیور ابتدائیہ کے دوران میجر فنکشن ٹیبل کو اپ ڈیٹ کرتا ہے۔


Examining the major function table gives you an idea of supported operations.

میجر فنکشن ٹیبل کا جائزہ لینے سے آپ کو معاون کارروائیوں کا اندازہ ہوتا ہے۔


An application can open a handle to a file or device object.

ایک ایپلیکیشن فائل یا ڈیوائس آبجیکٹ کے لیے ہینڈل کھول سکتی ہے۔


The I/O manager uses the IRP_MJ_CREATE major function code.

I/O مینیجر IRP_MJ_CREATE میجر فنکشن کوڈ استعمال کرتا ہے۔


The read operation uses IRP_MJ_READ as the index.

پڑھنے کی کارروائی انڈیکس کے طور پر IRP_MJ_READ استعمال کرتی ہے۔


Null.sys only supports certain operations.

Null.sys صرف مخصوص کارروائیوں کی حمایت کرتا ہے۔


Write requests are dispatched to the MajorFunction[IRP_MJ_WRITE] function.

لکھنے کی درخواستیں MajorFunction[IRP_MJ_WRITE] فنکشن کو بھیجی جاتی ہیں۔


All supported operations in null.sys are dispatched to the same address.

null.sys میں تمام معاون کارروائیاں ایک ہی پتے پر بھیجی جاتی ہیں۔


I/O مینیجر ایک IRP بناتا ہے۔


The IRP contains information describing an I/O request.

IRP میں I/O درخواست کی وضاحت کرنے والی معلومات شامل ہیں۔


The driver receives the IRP and performs a check.

ڈرائیور IRP وصول کرتا ہے اور ایک چیک کرتا ہے۔


The driver initiates the I/O operation after the check.

ڈرائیور چیک کے بعد I/O آپریشن شروع کرتا ہے۔


The driver returns the IRP to the I/O manager upon completion.

ڈرائیور تکمیل پر IRP کو I/O مینیجر کو واپس کرتا ہے۔


The I/O manager frees the IRP or passes it to the next driver.

I/O مینیجر IRP کو خالی کرتا ہے یا اسے اگلے ڈرائیور کو پاس کرتا ہے۔


The I/O manager returns the status and data to the user mode application.

I/O مینیجر صارف موڈ ایپلیکیشن کو اسٹیٹس اور ڈیٹا واپس کرتا ہے۔


User-mode code communicates with the kernel-mode driver.

صارف موڈ کوڈ کرنل موڈ ڈرائیور کے ساتھ بات چیت کرتا ہے۔


The DeviceIoControl API is used for direct communication.

براہ راست مواصلات کے لیے DeviceIoControl API استعمال کیا جاتا ہے۔


IOCTL codes identify specific operations.

IOCTL کوڈ مخصوص کارروائیوں کی نشاندہی کرتے ہیں۔


I/O requests can go through multiple layers of drivers.

I/O درخواستیں ڈرائیورز کی متعدد تہوں سے گزر سکتی ہیں۔


A rootkit driver can insert itself in the driver stack.

ایک روٹ کٹ ڈرائیور خود کو ڈرائیور اسٹیک میں داخل کر سکتا ہے۔


The following output displays the hooked entry.

مندرجہ ذیل آؤٹ پُٹ ہک شدہ اندراج کو ظاہر کرتا ہے۔


You can see that the 0xC3 entry in the IDT is pointing to an address in the UNKNOWN module.

آپ دیکھ سکتے ہیں کہ IDT میں 0xC3 اندراج UNKNOWN ماڈیول میں ایک پتے کی طرف اشارہ کر رہا ہے۔


In other words, the hooked entry resides outside the range of the ntoskrnl.exe module.

دوسرے لفظوں میں، ہک شدہ اندراج ntoskrnl.exe ماڈیول کی حد سے باہر ہے۔


Detecting Advanced Malware Using Memory Forensics

میموری فرانزک کا استعمال کرتے ہوئے جدید مالویئر کا پتہ لگانا


Instead of replacing the pointers in the SSDT, which makes it easy to recognize, an attacker can modify the kernel function.

SSDT میں پوائنٹرز کو تبدیل کرنے کے بجائے، جو اسے پہچاننا آسان بناتا ہے، ایک حملہ آور کرنل فنکشن میں ترمیم کر سکتا ہے۔


As mentioned earlier in this chapter, you can use the apihooks plugin to detect inline hooking in the kernel space.

جیسا کہ اس باب میں پہلے ذکر کیا گیا ہے، آپ کرنل اسپیس میں ان لائن ہکنگ کا پتہ لگانے کے لیے apihooks پلگ ان کا استعمال کر سکتے ہیں۔


By specifying the -P argument, you can tell the apihooks plugin to only scan for the hooks in the kernel space.

-P دلیل کی وضاحت کرکے، آپ apihooks پلگ ان کو صرف کرنل اسپیس میں ہکس کو اسکین کرنے کے لیے کہہ سکتے ہیں۔


The hooked API functions are redirected to the 0xb878dfb2 and 0xb878e6bb addresses within a malicious module whose name is unknown.

ہک شدہ API فنکشنز کو ایک بدنیتی پر مبنی ماڈیول کے اندر 0xb878dfb2 اور 0xb878e6bb پتوں پر ری ڈائریکٹ کیا جاتا ہے جس کا نام نامعلوم ہے۔


Even though the name of the hooking module is unknown, it is still possible to detect the malicious kernel module.

اگرچہ ہکنگ ماڈیول کا نام نامعلوم ہے، لیکن بدنیتی پر مبنی کرنل ماڈیول کا پتہ لگانا اب بھی ممکن ہے۔


In this case, we know the API functions are redirected to addresses starting with 0xb87 within the malicious module.

اس صورت میں، ہم جانتے ہیں کہ API فنکشنز کو بدنیتی پر مبنی ماڈیول کے اندر 0xb87 سے شروع ہونے والے پتوں پر ری ڈائریکٹ کیا جاتا ہے۔


Running the modules plugin does not detect any module at that address range (because it is hidden).

ماڈیولز پلگ ان چلانے سے اس ایڈریس رینج پر کوئی ماڈیول نہیں ملتا (کیونکہ یہ پوشیدہ ہے۔)


Instead of hooking the kernel API functions, a rootkit can modify the entries in the major function table.

کرنل API فنکشنز کو ہک کرنے کے بجائے، ایک روٹ کٹ میجر فنکشن ٹیبل میں اندراجات میں ترمیم کر سکتا ہے۔


For example, a rootkit can inspect the data buffer that is written to a disk or network by overwriting the address corresponding to IRP_MJ_WRITE.

مثال کے طور پر، ایک روٹ کٹ ڈیٹا بفر کا معائنہ کر سکتا ہے جو ڈسک یا نیٹ ورک پر IRP_MJ_WRITE سے مطابقت رکھنے والے ایڈریس کو اوور رائٹ کرکے لکھا جاتا ہے۔


Normally, the IRP handler functions of a driver point within their own module.

عام طور پر، ایک ڈرائیور کے IRP ہینڈلر فنکشن اپنے ماڈیول کے اندر اشارہ کرتے ہیں۔


To detect IRP hooks, you can focus on IRP handler functions that point to another driver.

IRP ہکس کا پتہ لگانے کے لیے، آپ IRP ہینڈلر فنکشنز پر توجہ مرکوز کر سکتے ہیں جو دوسرے ڈرائیور کی طرف اشارہ کرتے ہیں۔


If you are analyzing the rootkit in a lab setup, then you can list the IRP functions of all the drivers from a clean memory image.

اگر آپ لیب سیٹ اپ میں روٹ کٹ کا تجزیہ کر رہے ہیں، تو آپ صاف میموری امیج سے تمام ڈرائیوروں کے IRP فنکشنز کی فہرست بنا سکتے ہیں۔


In the following example, the ZeroAccess rootkit hooks the IRP functions of the disk driver and redirects them to the functions within a malicious module.

مندرجہ ذیل مثال میں، ZeroAccess روٹ کٹ ڈسک ڈرائیور کے IRP فنکشنز کو ہک کرتا ہے اور انہیں ایک بدنیتی پر مبنی ماڈیول کے اندر موجود فنکشنز پر ری ڈائریکٹ کرتا ہے۔


Like callbacks, further analysis may be required to identify the malicious module.

کال بیکس کی طرح، بدنیتی پر مبنی ماڈیول کی شناخت کے لیے مزید تجزیہ کی ضرورت ہو سکتی ہے۔


Since most rootkits try to hide their driver, as a result, obvious artifacts are created that can help you quickly identify the malicious module.

چونکہ زیادہ تر روٹ کٹس اپنے ڈرائیور کو چھپانے کی کوشش کرتے ہیں، اس کے نتیجے میں، واضح آثار بنائے جاتے ہیں جو آپ کو بدنیتی پر مبنی ماڈیول کی تیزی سے شناخت کرنے میں مدد کر سکتے ہیں۔


The results from AV vendors confirm it to be the ZeroAccess Rootkit (also known as Sirefef).

AV وینڈرز کے نتائج اس بات کی تصدیق کرتے ہیں کہ یہ ZeroAccess Rootkit ہے (جسے Sirefef بھی کہا جاتا ہے۔)


The program's execution flow can be interrupted with breakpoints.

بریک پوائنٹس کے ذریعے پروگرام کے عمل کو روکا جا سکتا ہے۔


Disassembly is a crucial step in understanding the program's inner workings.

پروگرام کے اندرونی کاموں کو سمجھنے کے لیے ڈس اسمبلی ایک اہم قدم ہے۔


Conditional jumps alter the program's control flow based on certain conditions.

مشروط جمپس مخصوص حالات کی بنیاد پر پروگرام کے کنٹرول فلو کو تبدیل کرتے ہیں۔


Breakpoints can be set in debuggers like IDA and x64dbg.

بریک پوائنٹس کو ڈیبگرز جیسے IDA اور x64dbg میں سیٹ کیا جا سکتا ہے۔


Malware often employs techniques to inject code into running processes.

مالویئر اکثر چلتے ہوئے عمل میں کوڈ داخل کرنے کی تکنیکوں کا استعمال کرتا ہے۔


Dynamic analysis involves observing a program's behavior during execution.

متحرک تجزیہ عمل کے دوران پروگرام کے رویے کا مشاہدہ کرنے پر مشتمل ہے۔


The CPU registers hold important data and control information.

سی پی یو رجسٹرز اہم ڈیٹا اور کنٹرول معلومات رکھتے ہیں۔


File type determination is a basic step in malware analysis.

فائل کی قسم کا تعین مالویئر تجزیہ کا ایک بنیادی قدم ہے۔


Custom encoding and encryption are used to hide malicious code.

مضر کوڈ کو چھپانے کے لیے حسب ضرورت انکوڈنگ اور انکرپشن کا استعمال کیا جاتا ہے۔


The use of packers complicates malware analysis.

پیکرز کا استعمال مالویئر تجزیہ کو پیچیدہ بناتا ہے۔


IDA Pro is a powerful tool for static code analysis.

IDA Pro جامد کوڈ تجزیہ کے لیے ایک طاقتور ٹول ہے۔


Understanding function calls is essential for reverse engineering.

فنکشن کالز کو سمجھنا ریورس انجینئرنگ کے لیے ضروری ہے۔


Breakpoints are used to pause program execution at specific points.

بریک پوائنٹس پروگرام کے عمل کو مخصوص مقامات پر روکنے کے لیے استعمال ہوتے ہیں۔


Malware often uses techniques to persist on a system.

مالویئر اکثر کسی نظام پر قائم رہنے کی تکنیکوں کا استعمال کرتا ہے۔


The stack is a crucial data structure in program execution.

اسٹیک پروگرام کے عمل میں ایک اہم ڈیٹا ڈھانچہ ہے۔


Analyzing DLLs is a common task in malware analysis.

DLLs کا تجزیہ مالویئر تجزیہ میں ایک عام کام ہے۔


XOR encoding is a simple but effective obfuscation technique.

XOR انکوڈنگ ایک سادہ لیکن مؤثر مبہم کرنے کی تکنیک ہے۔


The PE header contains important information about the executable.

PE ہیڈر میں قابل عمل کے بارے میں اہم معلومات شامل ہیں۔


Memory analysis is essential for understanding malware behavior.

مالویئر کے رویے کو سمجھنے کے لیے میموری کا تجزیہ ضروری ہے۔


The use of debuggers is crucial for reverse engineering.

ریورس انجینئرنگ کے لیے ڈیبگرز کا استعمال بہت ضروری ہے۔