The strings utility extracts human-readable strings from binary files.

اسٹرنگز یوٹیلیٹی بائنری فائلوں سے انسانی پڑھنے کے قابل اسٹرنگز نکالتا ہے۔


Malware authors often use obfuscation to hide strings.

مالویئر کے مصنفین اکثر اسٹرنگز کو چھپانے کے لیے ابسکیوریشن کا استعمال کرتے ہیں۔


FLOSS is a tool to automatically extract obfuscated strings from malware.

FLOSS ایک ایسا ٹول ہے جو خود بخود مالویئر سے ابسکیوریٹڈ اسٹرنگز نکالتا ہے۔


آپ FLOSS کو GitHub سے ڈاؤن لوڈ کر سکتے ہیں۔


The output shows references to an executable and a registry key.

آؤٹ پُٹ ایک قابل عمل اور ایک رجسٹری کلید کے حوالہ جات دکھاتا ہے۔


Malware authors use packers and cryptors to obfuscate files.

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


A packer uses compression to obfuscate the executable's content.

ایک پیکر قابل عمل مواد کو ابسکیور کرنے کے لیے کمپریشن کا استعمال کرتا ہے۔


A cryptor uses encryption instead of compression.

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


Extracting strings from Spybot reveals suspicious executable names.

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


UPX is a common packer used to compress executables.

UPX ایک عام پیکر ہے جو قابل عمل فائلوں کو کمپریس کرنے کے لیے استعمال ہوتا ہے۔


Exeinfo PE can detect packers on Windows.

Exeinfo PE ونڈوز پر پیکرز کا پتہ لگا سکتا ہے۔


Windows executables conform to the PE/COFF format.

ونڈوز قابل عمل فائلیں PE/COFF فارمیٹ کے مطابق ہوتی ہیں۔


The PE header describes the structure of the executable.

PE ہیڈر قابل عمل کی ساخت کو بیان کرتا ہے۔


Examining the PE header yields a wealth of information.

PE ہیڈر کا معائنہ معلومات کا ایک خزانہ فراہم کرتا ہے۔


Malware often interacts with files, registry, and the network.

مالویئر اکثر فائلوں، رجسٹری اور نیٹ ورک کے ساتھ تعامل کرتا ہے۔


Inspect the DLLs and API functions to understand malware behavior.

مالویئر کے رویے کو سمجھنے کے لیے DLLs اور API فنکشنز کا معائنہ کریں۔


Pestudio displays the DLL files an executable depends on.

Pestudio وہ DLL فائلیں دکھاتا ہے جن پر ایک قابل عمل انحصار کرتا ہے۔


Imports can help detect if a malware sample is obfuscated.

امپورٹس اس بات کا پتہ لگانے میں مدد کر سکتے ہیں کہ آیا مالویئر کا نمونہ ابسکیوریٹڈ ہے۔


The executable and DLL can export functions.

قابل عمل اور DLL فنکشنز برآمد کر سکتے ہیں۔


Examining the resource section can reveal valuable information.

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


The fuzzy hashing technique identified the similarity between the samples.

فزی ہیشنگ تکنیک نے نمونوں کے درمیان مماثلت کی نشاندہی کی۔


You might have a directory containing many malware samples.

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


In Python, the fuzzy hash can be computed using python-ssdeep.

پائیتھون میں، فزی ہیش کو python-ssdeep کا استعمال کرتے ہوئے شمار کیا جا سکتا ہے۔


Import Hashing is another technique that can be used to identify related samples.

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


Files having the same imphash does not necessarily mean they are from the same threat group.

ایک ہی امپہیش رکھنے والی فائلیں ضروری نہیں کہ ایک ہی خطرے والے گروپ سے ہوں۔


Section hashing can also help in identifying related samples.

سیکشن ہیشنگ بھی متعلقہ نمونوں کی شناخت میں مدد کر سکتی ہے۔


YARA is a powerful malware identification and classification tool.

YARA ایک طاقتور مالویئر شناخت اور درجہ بندی کا آلہ ہے۔


Malware researchers can create YARA rules based on textual or binary information.

مالویئر محققین تحریری یا بائنری معلومات کی بنیاد پر YARA قواعد بنا سکتے ہیں۔


The rule identifiers can contain any alphanumeric character and the underscore character.

قاعدہ شناخت کنندہ کوئی بھی حروف عددی حرف اور انڈرسکور حرف پر مشتمل ہو سکتا ہے۔


This section must contain a Boolean expression that specifies the condition.

اس سیکشن میں ایک بولین اظہار ہونا چاہیے جو حالت کی وضاحت کرے۔


Once you have the rule ready, the next step is to use the yara utility.

ایک بار جب آپ کا قاعدہ تیار ہو جائے تو، اگلا مرحلہ yara یوٹیلیٹی کا استعمال کرنا ہے۔


The preceding YARA rule, by default will match on ASCII strings.

پچھلا YARA قاعدہ، بطور ڈیفالٹ ASCII سٹرنگز سے مماثل ہوگا۔


If your intention is to look for strings in an executable file, you can create a rule.

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


Running the rule detected all samples with the same digital certificate.

قاعدہ چلانے سے ایک ہی ڈیجیٹل سرٹیفکیٹ والے تمام نمونے کا پتہ چلا۔


YARA rule can also be used to detect packers.

YARA قاعدہ پیکرز کا پتہ لگانے کے لیے بھی استعمال کیا جا سکتا ہے۔


Static analysis is the first step in malware analysis.

اسٹیٹک تجزیہ مالویئر تجزیہ کا پہلا مرحلہ ہے۔


Dynamic analysis involves analyzing a sample by executing it.

متحرک تجزیہ میں ایک نمونے کا تجزیہ کرنا شامل ہے اسے چلا کر۔


You will be executing the malware specimen, so you need to have a safe lab environment.

آپ مالویئر نمونے کو چلائیں گے، اس لیے آپ کو ایک محفوظ لیب ماحول کی ضرورت ہے۔


Process Hacker is an open source, multi- purpose tool.

پروسیس ہیکر ایک اوپن سورس، کثیر مقصدی ٹول ہے۔


Process Monitor is an advanced monitoring tool.

پروسیس مانیٹر ایک جدید مانیٹرنگ ٹول ہے۔


Learning Malware Analysis explores the concepts, tools, and techniques to analyze and investigate Windows malware.

مالویئر تجزیہ سیکھنا ونڈوز مالویئر کا تجزیہ اور تفتیش کرنے کے تصورات، اوزار اور تکنیکوں کو تلاش کرتا ہے۔


This book teaches the concepts, tools, and techniques to understand the behavior and characteristics of Windows malware.

یہ کتاب ونڈوز مالویئر کے رویے اور خصوصیات کو سمجھنے کے لیے تصورات، اوزار اور تکنیک سکھاتی ہے۔


Malware analysis has become a must-have skill for fighting advanced malware and targeted attacks.

مالویئر تجزیہ جدید مالویئر اور ہدف بنائے گئے حملوں سے لڑنے کے لیے ایک لازمی مہارت بن گیا ہے۔


If you're an incident responder, cybersecurity investigator, or malware analyst, this book is for you.

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


Chapter 1 introduces readers to the concept of malware analysis.

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


Chapter 2 teaches the tools and techniques to extract metadata information from the malicious binary.

باب 2 بدنیتی پر مبنی بائنری سے میٹا ڈیٹا کی معلومات نکالنے کے اوزار اور تکنیک سکھاتا ہے۔


You'll learn how to determine various aspects of the binary without executing it.

آپ سیکھیں گے کہ اسے چلائے بغیر بائنری کے مختلف پہلوؤں کا تعین کیسے کریں۔


Chapter 3 teaches the tools and techniques to determine the behavior of the malware.

باب 3 مالویئر کے رویے کا تعین کرنے کے اوزار اور تکنیک سکھاتا ہے۔


You will learn how to obtain the network and host-based indicators associated with the malware.

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


Chapter 4 gives a basic understanding of assembly language.

باب 4 اسمبلی زبان کی بنیادی سمجھ فراہم کرتا ہے۔


Chapter 5 covers the features of IDA Pro Disassembler.

باب 5 IDA Pro Disassembler کی خصوصیات کا احاطہ کرتا ہے۔


You will learn how to use IDA Pro to perform static code analysis.

آپ سیکھیں گے کہ جامد کوڈ تجزیہ کرنے کے لیے IDA Pro کا استعمال کیسے کریں۔


Chapter 6 teaches the technique of debugging a binary using x64dbg and IDA Pro debugger.

باب 6 x64dbg اور IDA Pro ڈیبگر کا استعمال کرتے ہوئے بائنری کو ڈیبگ کرنے کی تکنیک سکھاتا ہے۔


You will learn how to use a debugger to control the execution of a program.

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


Chapter 7 describes various functionalities of malware using reverse engineering.

باب 7 ریورس انجینئرنگ کا استعمال کرتے ہوئے مالویئر کی مختلف فعالیتوں کو بیان کرتا ہے۔


It also covers various persistence methods used by the malicious programs.

یہ بدنیتی پر مبنی پروگراموں کے ذریعہ استعمال کیے جانے والے مختلف استحکام کے طریقوں کا بھی احاطہ کرتا ہے۔


Chapter 8 teaches common code injection techniques.

باب 8 عام کوڈ انجیکشن تکنیک سکھاتا ہے۔


It also describes the hooking techniques used by the malware.

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


Chapter 9 covers encoding, encryption, and packing techniques.

باب 9 انکوڈنگ، انکرپشن، اور پیکنگ تکنیکوں کا احاطہ کرتا ہے۔


Chapter 10 teaches techniques to detect malicious components using memory forensics.

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


Drop are set to Bidirectional. Click on OK.

ڈراپ کو دو طرفہ پر سیٹ کریں۔ ٹھیک ہے پر کلک کریں۔


At this point, the Linux VM is configured to use Host-only mode, and INetSim is set up to simulate all the services.

اس وقت، لینکس وی ایم کو ہوسٹ اونلی موڈ استعمال کرنے کے لیے کنفیگر کیا گیا ہے، اور INetSim تمام سروسز کی نقالی کے لیے سیٹ اپ ہے۔


The last step is to take a snapshot (clean snapshot) and give it a name of your choice so that you can revert it back to the clean state when required.

آخری مرحلہ ایک سنیپ شاٹ (صاف سنیپ شاٹ) لینا ہے اور اسے اپنی پسند کا نام دینا ہے تاکہ ضرورت پڑنے پر آپ اسے صاف حالت میں واپس کر سکیں۔


To take a snapshot on VMware workstation, click on VM | Snapshot | Take Snapshot.

VMware workstation پر سنیپ شاٹ لینے کے لیے، VM | Snapshot | Take Snapshot پر کلک کریں۔


On Virtualbox, the same can be done by clicking on Machine | Take Snapshot.

ورچوئل باکس پر، یہی کام مشین | ٹیک سنیپ شاٹ پر کلک کرکے کیا جا سکتا ہے۔


Apart from the drag and drop feature, it is also possible to transfer files from the host machine to the virtual machine using shared folders.

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


Before setting up the Windows VM, you first need to install a Windows operating system (Windows 7, Window 8, and so on) of your choice in the virtualization software.

ونڈوز وی ایم سیٹ اپ کرنے سے پہلے، آپ کو پہلے ورچوئلائزیشن سافٹ ویئر میں اپنی پسند کا ونڈوز آپریٹنگ سسٹم (ونڈوز 7، ونڈو 8، وغیرہ) انسٹال کرنے کی ضرورت ہے۔


Download Python from https://www.python.org/downloads/.

https://www.python.org/downloads/ سے Python ڈاؤن لوڈ کریں۔


Be sure to download Python 2.7.x (such as 2.7.13); most of the scripts used in this book are written to run on the Python 2.7 version and may not run correctly on Python 3.

یقینی بنائیں کہ Python 2.7.x (جیسے 2.7.13) ڈاؤن لوڈ کریں۔ اس کتاب میں استعمال ہونے والے زیادہ تر اسکرپٹ Python 2.7 ورژن پر چلانے کے لیے لکھے گئے ہیں اور ہو سکتا ہے کہ Python 3 پر صحیح طریقے سے نہ چلیں۔


Make sure you check the option to install pip and Add python.exe to Path, as shown in the following screenshot.

اس بات کو یقینی بنائیں کہ آپ pip انسٹال کرنے اور Add python.exe to Path کے آپشن کو چیک کریں، جیسا کہ درج ذیل اسکرین شاٹ میں دکھایا گیا ہے۔


Configure your Windows VM to run in Host-only network configuration mode.

اپنے ونڈوز وی ایم کو ہوسٹ اونلی نیٹ ورک کنفیگریشن موڈ میں چلانے کے لیے کنفیگر کریں۔


To do that in VMware or VirtualBox, bring up the Network Settings and choose the Host-only mode; save the settings and reboot.

VMware یا VirtualBox میں ایسا کرنے کے لیے، نیٹ ورک سیٹنگز لائیں اور ہوسٹ اونلی موڈ منتخب کریں۔ سیٹنگز کو محفوظ کریں اور دوبارہ شروع کریں۔


Configure the IP address of the Windows VM to 192.168.1.x (choose any IP address except 192.168.1.100 because the Linux VM is set to use that IP) and set up your Default gateway and the DNS server to the IP address of Linux VM (that is, 192.168.1.100).

ونڈوز وی ایم کا آئی پی ایڈریس 192.168.1.x پر کنفیگر کریں (کوئی بھی آئی پی ایڈریس منتخب کریں سوائے 192.168.1.100 کے کیونکہ لینکس وی ایم اس آئی پی کو استعمال کرنے کے لیے سیٹ ہے) اور اپنا ڈیفالٹ گیٹ وے اور ڈی این ایس سرور لینکس وی ایم کے آئی پی ایڈریس (یعنی 192.168.1.100) پر سیٹ کریں۔


Power on both the Linux VM and the Window VM, and make sure they can communicate with each other.

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


Windows Defender Service needs to be disabled on your Windows VM as it may interfere when you are executing the malware sample.

ونڈوز ڈیفینڈر سروس کو آپ کے ونڈوز وی ایم پر غیر فعال کرنے کی ضرورت ہے کیونکہ یہ مداخلت کر سکتا ہے جب آپ مالویئر نمونے کو چلا رہے ہوں۔


To do that, press the Windows key + R to open the Run menu, enter gpedit.msc, and hit Enter to launch the Local Group Policy Editor.

ایسا کرنے کے لیے، رن مینو کھولنے کے لیے ونڈوز کی + R دبائیں، gpedit.msc درج کریں، اور لوکل گروپ پالیسی ایڈیٹر کو لانچ کرنے کے لیے انٹر دبائیں۔


Take a clean snapshot so that you can revert to the pristine/clean state after every analysis.

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


At this point, your lab environment should be ready.

اس وقت، آپ کا لیب ماحول تیار ہونا چاہیے۔


Throughout this book, I will be covering various malware analysis tools; if you wish to use those tools, you can copy them to the clean snapshot on the virtual machines.

اس کتاب میں، میں مختلف مالویئر تجزیہ ٹولز کا احاطہ کروں گا؛ اگر آپ ان ٹولز کو استعمال کرنا چاہتے ہیں، تو آپ انہیں ورچوئل مشینوں پر صاف سنیپ شاٹ میں کاپی کر سکتے ہیں۔


Once you have a lab set up, you will need malware samples for performing analysis.

ایک بار جب آپ نے لیب سیٹ اپ کر لیا ہے، تو آپ کو تجزیہ کرنے کے لیے مالویئر نمونوں کی ضرورت ہوگی۔


If you have found a mistake in this book, we would be grateful if you would report this to us.

اگر آپ کو اس کتاب میں کوئی غلطی ملی ہے تو، ہم شکر گزار ہوں گے اگر آپ ہمیں اس کی اطلاع دیں۔


Please visit www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.

براہ کرم www.packtpub.com/submit-errata پر جائیں، اپنی کتاب منتخب کریں، Errata Submission Form لنک پر کلک کریں، اور تفصیلات درج کریں۔


If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name.

اگر آپ کو انٹرنیٹ پر کسی بھی شکل میں ہماری تخلیقات کی کوئی غیر قانونی کاپیاں نظر آتی ہیں، تو ہم شکر گزار ہوں گے اگر آپ ہمیں مقام کا پتہ یا ویب سائٹ کا نام فراہم کریں۔


If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.

اگر آپ مصنف بننے میں دلچسپی رکھتے ہیں: اگر کوئی ایسا موضوع ہے جس میں آپ مہارت رکھتے ہیں اور آپ کتاب لکھنے یا اس میں حصہ ڈالنے میں دلچسپی رکھتے ہیں، تو براہ کرم authors.packtpub.com پر جائیں۔


Once you have read and used this book, why not leave a review on the site that you purchased it from?

ایک بار جب آپ نے یہ کتاب پڑھ لی اور استعمال کر لی، تو کیوں نہ اس سائٹ پر ایک جائزہ چھوڑ دیں جہاں سے آپ نے اسے خریدا تھا؟


The number of cyber attacks is undoubtedly on the rise, targeting government, military, public and private sectors.

سائبر حملوں کی تعداد بلاشبہ بڑھ رہی ہے، جو حکومت، فوج، عوامی اور نجی شعبوں کو نشانہ بنا رہی ہے۔


These cyber attacks focus on targeting individuals or organizations with an effort to extract valuable information.

یہ سائبر حملے قیمتی معلومات نکالنے کی کوشش کے ساتھ افراد یا تنظیموں کو نشانہ بنانے پر مرکوز ہیں۔


Sometimes, these cyber attacks are allegedly linked to cybercrime or state-sponsored groups, but may also be carried out by individual groups to achieve their goals.

بعض اوقات، ان سائبر حملوں کا تعلق مبینہ طور پر سائبر کرائم یا ریاستی سرپرستی والے گروہوں سے ہوتا ہے، لیکن یہ انفرادی گروہوں کی طرف سے بھی اپنے مقاصد کے حصول کے لیے کیے جا سکتے ہیں۔


Most of these cyber attacks use malicious software (also called malware) to infect their targets.

ان میں سے زیادہ تر سائبر حملے اپنے اہداف کو متاثر کرنے کے لیے بدنیتی پر مبنی سافٹ ویئر (جسے مالویئر بھی کہا جاتا ہے) استعمال کرتے ہیں۔


Knowledge, skills, and tools required to analyze malicious software are essential to detect, investigate and defend against such attacks.

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


Malware is a code that performs malicious actions; it can take the form of an executable, script, code, or any other software.

مالویئر ایک ایسا کوڈ ہے جو بدنیتی پر مبنی کارروائیاں کرتا ہے۔ یہ ایک قابل عمل، اسکرپٹ، کوڈ، یا کسی دوسرے سافٹ ویئر کی شکل اختیار کر سکتا ہے۔


Attackers use malware to steal sensitive information, spy on the infected system, or take control of the system.

حملہ آور حساس معلومات چوری کرنے، متاثرہ نظام کی جاسوسی کرنے، یا نظام پر کنٹرول حاصل کرنے کے لیے مالویئر کا استعمال کرتے ہیں۔


It typically gets into your system without your consent and can be delivered via various communication channels such as email, web, or USB drives.

یہ عام طور پر آپ کی رضامندی کے بغیر آپ کے نظام میں داخل ہو جاتا ہے اور مختلف مواصلاتی چینلز جیسے ای میل، ویب، یا USB ڈرائیوز کے ذریعے پہنچایا جا سکتا ہے۔


Malware is a broad term that refers to different types of malicious programs such as trojans, viruses, worms, and rootkits.

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


While performing malware analysis, you will often come across various types of malicious programs; some of these malicious programs are categorized based on their functionality and attack vectors as mentioned here:

مالویئر کا تجزیہ کرتے وقت، آپ کو اکثر مختلف قسم کے بدنیتی پر مبنی پروگرام ملیں گے۔ ان میں سے کچھ بدنیتی پر مبنی پروگراموں کو ان کی فعالیت اور حملے کے ویکٹر کی بنیاد پر درجہ بندی کیا جاتا ہے جیسا کہ یہاں ذکر کیا گیا ہے:


Malware that is capable of copying itself and spreading to other computers.

مالویئر جو خود کو کاپی کرنے اور دوسرے کمپیوٹرز میں پھیلنے کی صلاحیت رکھتا ہے۔


A virus needs user intervention, whereas a worm can spread without user intervention.

وائرس کو صارف کی مداخلت کی ضرورت ہوتی ہے، جبکہ کیڑا صارف کی مداخلت کے بغیر پھیل سکتا ہے۔


Malware that disguises itself as a regular program to trick users to install it on their systems.

مالویئر جو صارفین کو اپنے سسٹم پر انسٹال کرنے کے لیے دھوکہ دینے کے لیے خود کو ایک باقاعدہ پروگرام کے طور پر چھپاتا ہے۔


Once installed, it can perform malicious actions such as stealing sensitive data, uploading files to the attacker's server, or monitoring webcams.

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


This is a type of Trojan that enables the attacker to gain access to and execute commands on the compromised system.

یہ ایک قسم کا ٹروجن ہے جو حملہ آور کو سمجھوتہ شدہ نظام تک رسائی حاصل کرنے اور اس پر کمانڈز کو چلانے کے قابل بناتا ہے۔


The DLL's entry point function does not implement any functionality.

ڈی ایل ایل کا داخلی نقطہ فنکشن کوئی فعالیت نافذ نہیں کرتا ہے۔


Running the sample with the DllRegisterServer function triggered an HTTPS communication.

DllRegisterServer فنکشن کے ساتھ نمونے کو چلانے سے HTTPS مواصلت شروع ہو گئی۔


You can write a script to determine all the exported functions in a DLL.

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


The DLL used in this example was delivered via powerpoint.

اس مثال میں استعمال ہونے والا ڈی ایل ایل پاورپوائنٹ کے ذریعے فراہم کیا گیا تھا۔


The test file was passed an argument to the export function.

ٹیسٹ فائل کو برآمدی فنکشن میں ایک دلیل دی گئی۔


After running the following command, the test file was deleted from the disk.

مندرجہ ذیل کمانڈ چلانے کے بعد، ٹیسٹ فائل کو ڈسک سے حذف کر دیا گیا۔


Most of the time, launching a DLL with rundll32.exe will work fine.

زیادہ تر وقت، rundll32.exe کے ساتھ ایک DLL لانچ کرنا ٹھیک کام کرے گا۔


In such cases, you will have to inject the DLL into the specific process.

ایسی صورتوں میں، آپ کو ڈی ایل ایل کو مخصوص عمل میں داخل کرنا ہوگا۔


اس ڈی ایل ایل میں کوئی برآمدات شامل نہیں ہیں۔


Running the DLL using the following command generated an error.

مندرجہ ذیل کمانڈ کا استعمال کرتے ہوئے ڈی ایل ایل چلانے سے ایک غلطی پیدا ہوئی۔


After analyzing the code, it was found that the DLL performed a check.

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


To trigger the behavior, malicious DLL had to be injected.

اس رویے کو متحرک کرنے کے لیے، نقصان دہ ڈی ایل ایل کو داخل کرنا پڑا۔


The malware created a folder and a file on the C:\ drive.

مالویئر نے C:\ ڈرائیو پر ایک فولڈر اور ایک فائل بنائی۔


The malware added the following registry entries.

مالویئر نے درج ذیل رجسٹری اندراجات شامل کیے۔


During malware investigation, you may come across DLL.

مالویئر کی تفتیش کے دوران، آپ کو ڈی ایل ایل مل سکتا ہے۔


Dynamic analysis is a great technique to understand the behavior of malware.

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


Combining static analysis and dynamic analysis helps you gain a better understanding.

جامد تجزیہ اور متحرک تجزیہ کو یکجا کرنے سے آپ کو بہتر سمجھ حاصل کرنے میں مدد ملتی ہے۔


Malware authors write their malicious code in a high-level language.

مالویئر کے مصنفین اپنا نقصان دہ کوڈ اعلیٰ سطحی زبان میں لکھتے ہیں۔


This chapter will cover the concepts and skills required to perform code analysis.

یہ باب کوڈ تجزیہ کرنے کے لیے درکار تصورات اور مہارتوں کا احاطہ کرے گا۔


A computer is a machine that processes information.

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


Let's assume that 100 was stored at the memory address starting at 0x403000.

آئیے فرض کریں کہ 100 کو میموری ایڈریس پر محفوظ کیا گیا تھا جو 0x403000 سے شروع ہوتا ہے۔


The square bracket specifies that you want the value stored at the memory location.

مربع بریکٹ بتاتا ہے کہ آپ میموری لوکیشن پر محفوظ کردہ ویلیو چاہتے ہیں۔


During reverse engineering, you will normally see instructions similar to the ones shown as below.

ریورس انجینئرنگ کے دوران، آپ عام طور پر نیچے دکھائے گئے ہدایات کی طرح ہدایات دیکھیں گے۔


The simplest thing to remember is that everything within the square brackets represents an address.

سب سے آسان بات جو یاد رکھنے کی ہے وہ یہ ہے کہ مربع بریکٹ کے اندر موجود ہر چیز ایک ایڈریس کی نمائندگی کرتی ہے۔


You can move a value from a register to memory by swapping operands.

آپ آپرینڈز کو تبدیل کرکے ایک ویلیو کو رجسٹر سے میموری میں منتقل کر سکتے ہیں۔


These instructions move constant values into a memory location.

یہ ہدایات مستقل اقدار کو میموری لوکیشن میں منتقل کرتی ہیں۔


Can you figure out what this code snippet does?

کیا آپ اندازہ لگا سکتے ہیں کہ یہ کوڈ اسنیپٹ کیا کرتا ہے؟


The program copies a value from one memory location to another.

پروگرام ایک ویلیو کو ایک میموری لوکیشن سے دوسری میں کاپی کرتا ہے۔


In a high-level language, when you assign a value to a variable, let's say val = 1, the value 1 is moved into the address represented by the val variable.

اعلیٰ سطحی زبان میں، جب آپ کسی متغیر کو ویلیو تفویض کرتے ہیں، مثال کے طور پر val = 1، تو ویلیو 1 کو اس ایڈریس میں منتقل کیا جاتا ہے جو val متغیر کے ذریعے ظاہر ہوتا ہے۔


Recall that, the registers are used by the CPU for temporary storage.

یاد رکھیں، رجسٹرز عارضی اسٹوریج کے لیے CPU کے ذریعے استعمال ہوتے ہیں۔


Let's try to determine the data types of these variables: a and b.

آئیے ان متغیرات کی ڈیٹا اقسام کا تعین کرنے کی کوشش کرتے ہیں: a اور b۔


You can perform addition, subtraction, multiplication, and division in assembly language.

آپ اسمبلی زبان میں جمع، گھٹاؤ، ضرب اور تقسیم کر سکتے ہیں۔


The add instruction adds the source and destination and stores the result in the destination.

ایڈ انسٹرکشن سورس اور ڈیسٹینیشن کو جمع کرتا ہے اور نتیجہ کو ڈیسٹینیشن میں محفوظ کرتا ہے۔


Multiplication is done using the mul instruction.

ضرب mul انسٹرکشن کا استعمال کرتے ہوئے کی جاتی ہے۔


The div instruction takes only one operand, which can be either a register or a memory reference.

div انسٹرکشن صرف ایک آپرینڈ لیتا ہے، جو یا تو ایک رجسٹر یا میموری ریفرنس ہو سکتا ہے۔


آئیے ایک اور آسان چیلنج لیتے ہیں۔


After labeling the addresses, it translates to the following:

ایڈریسز کو لیبل کرنے کے بعد، یہ مندرجہ ذیل میں ترجمہ کرتا ہے:


Now, let's translate the preceding code into a pseudocode.

اب، آئیے مندرجہ بالا کوڈ کو ایک سوڈو کوڈ میں ترجمہ کرتے ہیں۔


The bits are numbered starting from the far right.

بٹس کو دائیں طرف سے گنتی شروع کی جاتی ہے۔


The left-most bit is called the most significant bit.

بائیں طرف والے بٹ کو سب سے اہم بٹ کہا جاتا ہے۔


The code will execute after the 'else' block.

کوڈ 'else' بلاک کے بعد چلے گا۔


Assembly language is used to translate the C program.

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


The condition was reversed, as mentioned previously.

شرط کو الٹ دیا گیا تھا، جیسا کہ پہلے ذکر کیا گیا ہے۔


If x is not equal to 0, the else block is skipped.

اگر x 0 کے برابر نہیں ہے، تو else بلاک کو چھوڑ دیا جاتا ہے۔


The if-else-if-else statement is a common control structure.

if-else-if-else بیان ایک عام کنٹرول ڈھانچہ ہے۔


دو مشروط جمپ پوائنٹس ہیں۔


Unconditional jumps skip the else statement.

غیر مشروط جمپ else بیان کو چھوڑ دیتے ہیں۔


Let's translate the code to its high-level equivalent.

آئیے کوڈ کا اس کے اعلیٰ سطحی مساوی میں ترجمہ کریں۔


Assign symbolic names to the memory address.

میموری ایڈریس کو علامتی نام تفویض کریں۔


The conditional jump is taken to loc_40101C.

مشروط جمپ loc_40101C پر لیا جاتا ہے۔


This has the characteristics of an if-else statement.

اس میں if-else بیان کی خصوصیات ہیں۔


The code from ➍ to ➌ is part of the if block.

➍ سے ➌ تک کا کوڈ if بلاک کا حصہ ہے۔


x کی قدر کا موازنہ 0 سے کیا جاتا ہے۔


The condition in the if statement was reversed.

if بیان میں شرط کو الٹ دیا گیا تھا۔


The jump will not be taken when x is equal to 0.

جمپ نہیں لیا جائے گا جب x 0 کے برابر ہو۔


Loops execute a block of code until some condition is met.

لوپس کوڈ کے ایک بلاک کو اس وقت تک چلاتے ہیں جب تک کہ کوئی شرط پوری نہ ہو جائے۔


The two most common types of loops are for and while.

لوپس کی دو سب سے عام اقسام for اور while ہیں۔


The initialization statement is executed only once.

ابتدائی بیان صرف ایک بار چلایا جاتا ہے۔


In both cases, when i becomes greater than or equal to 5, a jump will be taken.

دونوں صورتوں میں، جب i 5 سے بڑا یا اس کے برابر ہو جاتا ہے، تو ایک جمپ لیا جائے گا۔


The stack is organized in a Last-In-First-Out (LIFO) structure.

اسٹیک کو Last-In-First-Out (LIFO) ڈھانچے میں منظم کیا گیا ہے۔


When performing malware analysis, you will only be interested in the activities produced by the malware.

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


To reduce noise, you can use the filtering features which hides unwanted entries and allows you to filter on specific attributes.

شور کو کم کرنے کے لیے، آپ فلٹرنگ خصوصیات کا استعمال کر سکتے ہیں جو ناپسندیدہ اندراجات کو چھپاتی ہیں اور آپ کو مخصوص خصوصیات پر فلٹر کرنے کی اجازت دیتی ہیں۔


To access this feature, select the Filter menu and then click on Filter (or press Ctrl + L).

اس خصوصیت تک رسائی حاصل کرنے کے لیے، فلٹر مینو کو منتخب کریں اور پھر فلٹر پر کلک کریں (یا Ctrl + L دبائیں).


Even though Process Monitor is a great tool to monitor a malware's interaction with the system, it can be very noisy.

اگرچہ پروسیس مانیٹر مالویئر کے نظام کے ساتھ تعامل کی نگرانی کے لیے ایک بہترین ٹول ہے، لیکن یہ بہت شور مچا سکتا ہے۔


Noriben is a Python script that works in conjunction with Process Monitor and helps in collecting, analyzing, and reporting runtime indicators of the malware.

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


The advantage of using Noriben is that it comes with pre-defined filters that assist in reducing noise and allow you to focus on the malware-related events.

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


To use Noriben, download it to your Windows VM, extract it to a folder, and copy Process Monitor (Procmon.exe) into the same folder before running the Noriben.py Python script.

نوریبن کو استعمال کرنے کے لیے، اسے اپنے ونڈوز وی ایم میں ڈاؤن لوڈ کریں، اسے ایک فولڈر میں نکالیں، اور نوریبن ڈاٹ پی وائی پائیتھون اسکرپٹ چلانے سے پہلے پروسیس مانیٹر (Procmon.exe) کو اسی فولڈر میں کاپی کریں۔


When you run Noriben, it launches Process Monitor.

جب آپ نوریبن چلاتے ہیں، تو یہ پروسیس مانیٹر کو لانچ کرتا ہے۔


Once you are done with the monitoring, you can stop Noriben by pressing Ctrl + C, which will terminate Process Monitor.

ایک بار جب آپ مانیٹرنگ کر لیتے ہیں، تو آپ Ctrl + C دبا کر نوریبن کو روک سکتے ہیں، جو پروسیس مانیٹر کو ختم کر دے گا۔


Once terminated, Noriben stores the results in a text file (.txt) and a CSV file (.csv) in the same directory.

ختم ہونے کے بعد، نوریبن نتائج کو ایک ٹیکسٹ فائل (.txt) اور ایک CSV فائل (.csv) میں اسی ڈائرکٹری میں محفوظ کرتا ہے۔


The text file contains events segregated based on the categories (like process, file, registry, and network activity) in separate sections.

ٹیکسٹ فائل میں واقعات کو زمروں (جیسے عمل، فائل، رجسٹری، اور نیٹ ورک کی سرگرمی) کی بنیاد پر الگ الگ حصوں میں تقسیم کیا گیا ہے۔


Also, note that the number of events is much less because it applied predefined filters that reduced most of the unwanted noise.

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


The CSV file contains all the events (process, file, registry, and network activity) sorted by the timeline (the order in which the events occurred).

CSV فائل میں تمام واقعات (عمل، فائل، رجسٹری، اور نیٹ ورک کی سرگرمی) ٹائم لائن کے مطابق ترتیب دی گئی ہے (جس ترتیب میں واقعات پیش آئے).


If you are interested in the summary of events based on the category then you can look at the text file; if you are interested in the sequence of events in the order in which it occurred then you can view the CSV file.

اگر آپ زمرے کی بنیاد پر واقعات کے خلاصے میں دلچسپی رکھتے ہیں تو آپ ٹیکسٹ فائل دیکھ سکتے ہیں؛ اگر آپ ان واقعات کے سلسلے میں دلچسپی رکھتے ہیں جس ترتیب میں وہ پیش آئے تو آپ CSV فائل دیکھ سکتے ہیں۔


When the malware is executed, you will want to capture the network traffic generated as a result of running the malware.

جب مالویئر کو چلایا جاتا ہے، تو آپ مالویئر چلانے کے نتیجے میں پیدا ہونے والے نیٹ ورک ٹریفک کو کیپچر کرنا چاہیں گے۔


Wireshark is a packet sniffer that allows you to capture the network traffic.

وائرشارک ایک پیکٹ سنیفر ہے جو آپ کو نیٹ ورک ٹریفک کو کیپچر کرنے کی اجازت دیتا ہے۔


Most malware, when executed, reach out to the internet (command and control server), and it is not a good idea to allow the malware to connect to its C2 server.

زیادہ تر مالویئر، جب چلائے جاتے ہیں، تو انٹرنیٹ (کمانڈ اینڈ کنٹرول سرور) تک رسائی حاصل کرتے ہیں، اور مالویئر کو اپنے C2 سرور سے منسلک ہونے کی اجازت دینا اچھا خیال نہیں ہے۔


INetSim is a free Linux-based software suite for simulating standard internet services (such as DNS, HTTP/HTTPS, and so on).

INetSim معیاری انٹرنیٹ سروسز (جیسے DNS، HTTP/HTTPS، وغیرہ) کی نقالی کے لیے ایک مفت لینکس پر مبنی سافٹ ویئر سوٹ ہے۔


Apart from simulating services, INetSim can log communications, and it can also be configured to respond to HTTP/HTTPS requests and return any files based on the extensions.

سروسز کی نقالی کے علاوہ، INetSim مواصلات کو لاگ ان کر سکتا ہے، اور اسے HTTP/HTTPS درخواستوں کا جواب دینے اور ایکسٹینشنز کی بنیاد پر کوئی بھی فائل واپس کرنے کے لیے بھی کنفیگر کیا جا سکتا ہے۔


During dynamic analysis (behavioral analysis), you will follow a sequence of steps to determine the functionality of the malware.

متحرک تجزیہ (برتاؤ کا تجزیہ) کے دوران، آپ مالویئر کی فعالیت کا تعین کرنے کے لیے اقدامات کا ایک سلسلہ اختیار کریں گے۔


The main function called the test function and passed the parameters to the test function by pushing them onto the stack.

مرکزی فنکشن نے ٹیسٹ فنکشن کو بلایا اور پیرامیٹرز کو ٹیسٹ فنکشن کو سٹیک پر دھکیل کر پاس کیا۔


The main function is known as the caller (or the calling function) and test is the callee (or the called function).

مرکزی فنکشن کو کالر (یا کالنگ فنکشن) کے طور پر جانا جاتا ہے اور ٹیسٹ کالے (یا کالڈ فنکشن) ہے۔


The main function (caller), after the function call, cleaned up the stack using add esp,8 instruction.

مرکزی فنکشن (کالر) نے فنکشن کال کے بعد add esp,8 انسٹرکشن کا استعمال کرتے ہوئے اسٹیک کو صاف کیا۔


This instruction has the effect of removing the parameters that were pushed onto the stack and adjusts the stack pointer (esp) back to where it was before the function call.

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


Most of the compiled C programs typically follow the cdecl calling convention.

زیادہ تر مرتب شدہ سی پروگرام عام طور پر cdecl کالنگ کنونشن پر عمل کرتے ہیں۔


In the cdecl convention, the caller pushes the parameters in the right-to-left order on the stack and the caller itself cleans up the stack after the function call.

cdecl کنونشن میں، کالر پیرامیٹرز کو دائیں سے بائیں ترتیب میں اسٹیک پر دھکیلتا ہے اور کالر خود فنکشن کال کے بعد اسٹیک کو صاف کرتا ہے۔


There are other calling conventions such as stdcall and fastcall.

کالنگ کے دیگر کنونشن بھی ہیں جیسے stdcall اور fastcall۔


Microsoft Windows utilizes the stdcall convention for the functions (API) exported by the DLL files.

مائیکروسافٹ ونڈوز DLL فائلوں کے ذریعہ برآمد کردہ فنکشنز (API) کے لیے stdcall کنونشن کا استعمال کرتا ہے۔


In the fastcall calling convention, first few parameters are passed to a function by placing them in the registers.

fastcall کالنگ کنونشن میں، پہلے چند پیرامیٹرز کو رجسٹروں میں رکھ کر ایک فنکشن میں پاس کیا جاتا ہے۔


An array is a list consisting of the same data types.

ایک صف ایک فہرست ہے جس میں ایک ہی قسم کے ڈیٹا پر مشتمل ہے۔


The array elements are stored in contiguous locations in the memory, which makes it easy to access array elements.

صف کے عناصر میموری میں متواتر مقامات پر محفوظ کیے جاتے ہیں، جو صف کے عناصر تک رسائی کو آسان بناتا ہے۔


The array name nums is a pointer constant that points to the first element of the array.

صف کا نام nums ایک پوائنٹر مستقل ہے جو صف کے پہلے عنصر کی طرف اشارہ کرتا ہے۔


In a high-level language, to access the elements of the array, you use the array name along with the index.

اعلیٰ سطحی زبان میں، صف کے عناصر تک رسائی کے لیے، آپ انڈیکس کے ساتھ صف کا نام استعمال کرتے ہیں۔


For example, you can access the first element using nums[0], the second element using nums[1], and so on.

مثال کے طور پر، آپ nums[0] کا استعمال کرتے ہوئے پہلے عنصر تک، nums[1] کا استعمال کرتے ہوئے دوسرے عنصر تک رسائی حاصل کر سکتے ہیں، اور اسی طرح۔


In assembly language, the address of any element in the array is computed using three things: The base address of the array The index of the element The size of each element in the array

اسمبلی زبان میں، صف میں کسی بھی عنصر کا پتہ تین چیزوں کا استعمال کرتے ہوئے شمار کیا جاتا ہے: صف کا بنیادی پتہ عنصر کا انڈیکس صف میں ہر عنصر کا سائز


When you use nums[0] in a high-level language, it is translated to [nums+0*<size_of_each_element_in_bytes>], where 0 is the index and nums represents the base address of the array.

جب آپ اعلیٰ سطحی زبان میں nums[0] استعمال کرتے ہیں، تو اس کا ترجمہ [nums+0*<size_of_each_element_in_bytes>] میں کیا جاتا ہے، جہاں 0 انڈیکس ہے اور nums صف کے بنیادی پتے کی نمائندگی کرتا ہے۔


ایک سٹرنگ حروف کی ایک صف ہے۔


When you define a string, shown as follows, a null terminator (string terminator) is added at the end of every string.

جب آپ ایک سٹرنگ کی تعریف کرتے ہیں، جیسا کہ ذیل میں دکھایا گیا ہے، ایک نل ٹرمینیٹر (سٹرنگ ٹرمینیٹر) ہر سٹرنگ کے آخر میں شامل کیا جاتا ہے۔


The string name str is a pointer variable that points to the first character in the string.

سٹرنگ کا نام str ایک پوائنٹر متغیر ہے جو سٹرنگ میں پہلے حرف کی طرف اشارہ کرتا ہے۔


The x64 architecture was designed as an extension to x86 and has a strong resemblance with x86 instruction sets.

x64 فن تعمیر کو x86 کی توسیع کے طور پر ڈیزائن کیا گیا تھا اور اس میں x86 انسٹرکشن سیٹس سے گہرا مشابہت ہے۔


The disassembly of the C code is for a 64-bit processor.

C کوڈ کی اسمبلنگ 64 بٹ پروسیسر کے لیے ہے۔


The first instruction allocates 56 bytes of space on the stack.

پہلی ہدایت اسٹیک پر 56 بائٹس کی جگہ مختص کرتی ہے۔


The fifth and sixth parameters are stored on the stack.

پانچویں اور چھٹے پیرامیٹرز اسٹیک پر محفوظ ہیں۔


It's difficult to determine if the memory address is a local variable or a parameter.

یہ تعین کرنا مشکل ہے کہ آیا میموری کا پتہ مقامی متغیر ہے یا پیرامیٹر۔


The format string helps to determine the number of parameters passed to the printf function.

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


64-bit Windows can run a 32-bit executable.

64 بٹ ونڈوز 32 بٹ قابل عمل چلا سکتا ہے۔


WOW64 allows for the execution of 32-bit binaries on 64-bit Windows.

WOW64 64 بٹ ونڈوز پر 32 بٹ بائنریز کے عملدرآمد کی اجازت دیتا ہے۔


32-bit executables cannot load 64-bit DLLs.

32 بٹ قابل عمل 64 بٹ DLLs لوڈ نہیں کر سکتے۔


64-bit binaries are stored in the \Windows\system32 directory.

64 بٹ بائنریز \Windows\system32 ڈائرکٹری میں محفوظ ہیں۔


32-bit binaries are stored in the \Windows\Syswow64 directory.

32 بٹ بائنریز \Windows\Syswow64 ڈائرکٹری میں محفوظ ہیں۔


32-bit applications can behave differently under 64-bit Windows.

32 بٹ ایپلی کیشنز 64 بٹ ونڈوز کے تحت مختلف انداز میں برتاؤ کر سکتی ہیں۔


Malware accessing the system32 directory is really accessing the syswow64 directory.

سسٹم 32 ڈائرکٹری تک رسائی حاصل کرنے والا مالویئر دراصل syswow64 ڈائرکٹری تک رسائی حاصل کر رہا ہے۔


Access to %windir%\regedit.exe is redirected to %windir%\SysWOW64\regedit.exe.

%windir%\regedit.exe تک رسائی کو %windir%\SysWOW64\regedit.exe پر بھیج دیا جاتا ہے۔


It is better to analyze a 32-bit binary in a 32-bit Windows environment.

32 بٹ بائنری کا 32 بٹ ونڈوز ماحول میں تجزیہ کرنا بہتر ہے۔


These resources help you gain a deeper understanding of assembly language.

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


You learned the concepts and techniques required to understand assembly code.

آپ نے اسمبلی کوڈ کو سمجھنے کے لیے درکار تصورات اور تکنیکیں سیکھیں۔


Code analysis is used to understand the inner workings of a malicious binary.

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


Code analysis tools offer various features to simplify code analysis.

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


A disassembler translates machine code back to assembly code.

ایک ڈس اسمبلر مشین کوڈ کو واپس اسمبلی کوڈ میں ترجمہ کرتا ہے۔


IDA Pro is a popular commercial disassembler/debugger.

IDA Pro ایک مقبول تجارتی ڈس اسمبلر/ڈیبگر ہے۔


To add a function comment, highlight the function name and press colon (:).

فنکشن پر تبصرہ شامل کرنے کے لیے، فنکشن کے نام کو نمایاں کریں اور کالن (:) دبائیں۔


The pseudocode can now remind you of the function's behavior.

اب سوڈو کوڈ آپ کو فنکشن کے رویے کی یاد دہانی کروا سکتا ہے۔


In fact, whatever manipulation was done earlier was done to the database, not to the executable.

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


When an executable is loaded into IDA, it creates a database consisting of five files.

جب ایک قابل عمل فائل IDA میں لوڈ کی جاتی ہے، تو یہ پانچ فائلوں پر مشتمل ایک ڈیٹا بیس بناتا ہے۔


Each of these files stores various information and has a base name that matches the selected executable.

ان میں سے ہر فائل مختلف معلومات کو محفوظ کرتی ہے اور اس کا بنیادی نام منتخب قابل عمل فائل سے مماثل ہوتا ہے۔


Any modifications that you make are reflected in the views and saved in the database.

آپ جو بھی تبدیلیاں کرتے ہیں وہ خیالات میں ظاہر ہوتی ہیں اور ڈیٹا بیس میں محفوظ ہوجاتی ہیں۔


You can save the database by closing IDA.

آپ IDA کو بند کرکے ڈیٹا بیس کو محفوظ کرسکتے ہیں۔


When you reopen the .idb or .i64 file, you should be able to see the renamed variables and comments.

جب آپ .idb یا .i64 فائل کو دوبارہ کھولتے ہیں، تو آپ کو دوبارہ نامزد متغیرات اور تبصرے نظر آنے چاہئیں۔


Let's look at another simple program and explore a few more features of IDA.

آئیے ایک اور سادہ پروگرام پر نظر ڈالتے ہیں اور IDA کی کچھ مزید خصوصیات کو دریافت کرتے ہیں۔


The program translates to the following disassembly listing.

پروگرام مندرجہ ذیل ڈس اسمبلی لسٹنگ میں ترجمہ کرتا ہے۔


IDA نے تین مقامی متغیرات کی نشاندہی کی۔


IDA also identified the global variables and assigned names.

IDA نے عالمی متغیرات کی بھی نشاندہی کی اور نام تفویض کیے۔


The reason for that, is when a variable is defined in the global data area, the address and size of the variables are known to the compiler at compile time.

اس کی وجہ یہ ہے کہ جب ایک متغیر کو عالمی ڈیٹا ایریا میں بیان کیا جاتا ہے، تو متغیرات کا پتہ اور سائز مرتب کرنے کے وقت مرتب کرنے والے کو معلوم ہوتا ہے۔


IDA used the offset keyword to indicate that addresses of variables are used.

IDA نے یہ ظاہر کرنے کے لیے آفسیٹ کی ورڈ کا استعمال کیا کہ متغیرات کے پتے استعمال کیے جاتے ہیں۔


At ➏, IDA assigned the dummy name aTest to the address containing the string.

➏ پر، IDA نے سٹرنگ پر مشتمل ایڈریس کو فرضی نام aTest تفویض کیا۔


IDA keeps track of your navigation history.

IDA آپ کی نیویگیشن ہسٹری کا سراغ رکھتا ہے۔


To jump to a particular address, click on Jump | Jump to Address (or press the G key).

ایک خاص ایڈریس پر جانے کے لیے، جمپ | ایڈریس پر جمپ کریں (یا G کی دبائیں) پر کلک کریں۔


Another way to navigate is by using cross-references.

نیویگیٹ کرنے کا ایک اور طریقہ کراس ریفرنس کا استعمال کرنا ہے۔


Cross-references can be either data cross-references or code cross-references.

کراس ریفرنس یا تو ڈیٹا کراس ریفرنس یا کوڈ کراس ریفرنس ہو سکتے ہیں۔


A code cross-reference indicates the control flow from one instruction to an another.

ایک کوڈ کراس ریفرنس ایک ہدایت سے دوسری ہدایت تک کنٹرول فلو کی نشاندہی کرتا ہے۔


A debugger is a program that gives you the ability to inspect malicious code at a more granular level.

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


It provides full control over the malware's runtime behavior and allows you to execute a single instruction.

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


In this chapter, you will mainly learn the debugging features offered by IDA Pro and x64dbg.

اس باب میں، آپ بنیادی طور پر IDA Pro اور x64dbg کے ذریعہ پیش کردہ ڈیبگنگ خصوصیات کے بارے میں سیکھیں گے۔


You will learn about the features offered by these debuggers, and how to use them to inspect the runtime behavior of a program.

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


When you are debugging a malware, proper care needs to be taken, as you will be running the malicious code on a system.

جب آپ میلویئر کو ڈیبگ کر رہے ہوں تو مناسب احتیاط برتنے کی ضرورت ہے، کیونکہ آپ سسٹم پر نقصان دہ کوڈ چلا رہے ہوں گے۔


It is highly recommended that you perform any malware debugging in an isolated environment.

یہ انتہائی سفارش کی جاتی ہے کہ آپ کسی بھی میلویئر کی ڈیبگنگ کو ایک الگ تھلگ ماحول میں انجام دیں۔


At the end of this chapter, you will also see how to debug a .NET application using a .NET decompiler/debugger, dnSpy.

اس باب کے آخر میں، آپ یہ بھی دیکھیں گے کہ .NET ڈیکمپائلر/ڈیبگر، dnSpy کا استعمال کرتے ہوئے .NET ایپلیکیشن کو کیسے ڈیبگ کیا جائے۔


Debugging normally begins by selecting the program to debug.

ڈیبگنگ عام طور پر ڈیبگ کرنے کے لیے پروگرام کو منتخب کرنے سے شروع ہوتی ہے۔


There are two ways to debug a program: (a) attach the debugger to a running process, and (b) launch a new process.

کسی پروگرام کو ڈیبگ کرنے کے دو طریقے ہیں: (الف) ڈیبگر کو چلتے ہوئے عمل سے منسلک کریں، اور (ب) ایک نیا عمل شروع کریں۔


When you attach the debugger to a running process, you will not be able to control or monitor the process's initial actions.

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


On the other hand, launching a new process allows you to monitor or debug every action the process takes.

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


When you start the debugger, the original binary will be executed with the privileges of the user running the debugger.

جب آپ ڈیبگر شروع کرتے ہیں، تو اصل بائنری کو ڈیبگر چلانے والے صارف کے استحقاق کے ساتھ چلایا جائے گا۔


A program's entry point is the address of the first instruction that will be executed.

ایک پروگرام کا داخلی نقطہ پہلی ہدایت کا پتہ ہے جو چلائی جائے گی۔


A debugger gives you the ability to control/modify the behavior of the process while it is executing.

ایک ڈیبگر آپ کو عمل کے رویے کو کنٹرول/تبدیل کرنے کی صلاحیت فراہم کرتا ہے جب یہ چل رہا ہوتا ہے۔


The two important capabilities offered by a debugger are: (a) the ability to control execution, and (b) the ability to interrupt execution (using breakpoints).

ایک ڈیبگر کے ذریعہ پیش کردہ دو اہم صلاحیتیں یہ ہیں: (الف) عمل کو کنٹرول کرنے کی صلاحیت، اور (ب) عمل میں خلل ڈالنے کی صلاحیت (بریک پوائنٹس کا استعمال کرتے ہوئے).


Using a debugger, you can execute one or more instructions before returning control to the debugger.

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


Continue (Run): This executes all of the instructions, until a breakpoint is reached or an exception occurs.

جاری رکھیں (چلائیں): یہ تمام ہدایات کو اس وقت تک چلاتا ہے جب تک کہ ایک بریک پوائنٹ تک نہ پہنچ جائے یا کوئی استثنیٰ نہ ہو۔


Using step into and step over, you can execute a single instruction.

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


A breakpoint is a debugger feature that allows you to interrupt program execution at a very specific location within a program.

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


Tracing is a debugging feature that allows you to record (log) specific events while the process is executing.

ٹریسننگ ایک ڈیبگنگ خصوصیت ہے جو آپ کو عمل کے چلنے کے دوران مخصوص واقعات کو ریکارڈ (لاگ) کرنے کی اجازت دیتی ہے۔


Using the cross-references to CreateFile, we can determine that the CreateFile API is referenced in two functions.

CreateFile کے کراس ریفرنسز کا استعمال کرتے ہوئے، ہم یہ معلوم کر سکتے ہیں کہ CreateFile API کا حوالہ دو فنکشنز میں دیا گیا ہے۔


IDA's capability to identify libraries and imported functions is extremely useful, because when you are analyzing malware, you really don't want to waste time reverse engineering a library or import function.

IDA کی لائبریریوں اور درآمد شدہ فنکشنز کی شناخت کرنے کی صلاحیت انتہائی مفید ہے، کیونکہ جب آپ مالویئر کا تجزیہ کر رہے ہوتے ہیں، تو آپ واقعی کسی لائبریری یا درآمد شدہ فنکشن کی ریورس انجینئرنگ میں وقت ضائع نہیں کرنا چاہتے۔


Malware authors often use symbolic constants, such as GENERIC_WRITE, in their source code.

مالویئر کے مصنفین اکثر اپنے سورس کوڈ میں علامتی مستقل، جیسے GENERIC_WRITE استعمال کرتے ہیں۔


In this case, from the Windows API documentation, we know that the value 40000000h at ➌ is a symbolic constant that represents GENERIC_WRITE.

اس صورت میں، ونڈوز API دستاویزات سے، ہم جانتے ہیں کہ ➌ پر موجود قدر 40000000h ایک علامتی مستقل ہے جو GENERIC_WRITE کی نمائندگی کرتا ہے۔


Similarly, the value 2, passed as the fifth argument (➍), represents the symbolic name CREATE_ALWAYS; this tells you that malware creates the file.

اسی طرح، قدر 2، جو پانچویں دلیل (➍) کے طور پر دی گئی ہے، علامتی نام CREATE_ALWAYS کی نمائندگی کرتی ہے؛ یہ آپ کو بتاتا ہے کہ مالویئر فائل بناتا ہے۔


You will also see malware using APIs such as CreateFileW; the W at the end specifies that the function takes a Unicode string as input.

آپ مالویئر کو APIs جیسے CreateFileW کا استعمال کرتے ہوئے بھی دیکھیں گے؛ آخر میں موجود W اس بات کی نشاندہی کرتا ہے کہ فنکشن ان پٹ کے طور پر ایک یونیکوڈ سٹرنگ لیتا ہے۔


Let's look at an example of a 32-bit malware to understand how malware uses multiple API functions to interact with the operating system.

آئیے 32 بٹ مالویئر کی ایک مثال پر نظر ڈالتے ہیں تاکہ یہ سمجھ سکیں کہ مالویئر آپریٹنگ سسٹم کے ساتھ تعامل کرنے کے لیے متعدد API فنکشنز کا استعمال کیسے کرتا ہے۔


Since we are dealing with 32-bit malware, all the parameters to the RegOpenKeyEx API are pushed onto the stack.

چونکہ ہم 32 بٹ مالویئر سے نمٹ رہے ہیں، اس لیے RegOpenKeyEx API کے تمام پیرامیٹرز کو اسٹیک پر دھکیل دیا جاتا ہے۔


After the malware opens the handle to the Run registry key by calling RegOpenKeyEx, the returned handle (stored in the phkResult variable ➌) is moved into the ecx register and then passed as the first parameter ➍ to RegSetValueExW.

RegOpenKeyEx کو کال کرکے رن رجسٹری کی کو ہینڈل کھولنے کے بعد، واپس کیا گیا ہینڈل (phkResult متغیر ➌ میں محفوظ) ecx رجسٹر میں منتقل ہو جاتا ہے اور پھر RegSetValueExW کو پہلے پیرامیٹر ➍ کے طور پر پاس کیا جاتا ہے۔


From the MSDN documentation for this API, you can tell that the malware uses the RegSetValueEx API to set a value in the Run registry key (for persistence).

اس API کے لیے MSDN دستاویزات سے، آپ بتا سکتے ہیں کہ مالویئر رن رجسٹری کی میں ایک ویلیو سیٹ کرنے کے لیے RegSetValueEx API کا استعمال کرتا ہے (تسلسل کے لیے).


The value that it sets is passed as the second parameter ➎, which is the string System.

یہ جو ویلیو سیٹ کرتا ہے وہ دوسرے پیرامیٹر ➎ کے طور پر پاس کی جاتی ہے، جو کہ سٹرنگ System ہے۔


After adding the entry to the registry key, the malware closes the handle to the registry key by passing the handle it acquired previously (which was stored in the phkResult variable) to the RegCloseKey API function.

رجسٹری کی میں اندراج شامل کرنے کے بعد، مالویئر رجسٹری کی کا ہینڈل بند کر دیتا ہے جو اس نے پہلے حاصل کیا تھا (جو phkResult متغیر میں محفوظ تھا) RegCloseKey API فنکشن کو پاس کرکے۔


You also saw how malware acquires a handle to an object (such as the registry key) and then shares that handle with other API functions to perform subsequent operations.

آپ نے یہ بھی دیکھا کہ مالویئر کسی آبجیکٹ (جیسے رجسٹری کی) کا ہینڈل کیسے حاصل کرتا ہے اور پھر اس ہینڈل کو بعد کی کارروائیاں کرنے کے لیے دوسرے API فنکشنز کے ساتھ شیئر کرتا ہے۔


In the following disassembly, notice how the first parameter (lpfilename) is passed in the rcx register at ➊, the second parameter in the edx register at ➋, the third parameter in the r8 register at ➌, and the fourth parameter in the r9 register at ➍.

مندرجہ ذیل ڈس اسمبلی میں، نوٹ کریں کہ پہلا پیرامیٹر (lpfilename) rcx رجسٹر میں ➊ پر، دوسرا پیرامیٹر edx رجسٹر میں ➋ پر، تیسرا پیرامیٹر r8 رجسٹر میں ➌ پر، اور چوتھا پیرامیٹر r9 رجسٹر میں ➍ پر کیسے پاس کیا جاتا ہے۔


From the preceding example, you can see that the malware creates a file and writes some content into the file, but when you are looking at the code statically, it is not clear what file the malware creates or what content it writes to the file.

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


You can change the hardcoded string from spoolsv.exe to notepad.exe.

آپ ہارڈ کوڈڈ سٹرنگ کو spoolsv.exe سے notepad.exe میں تبدیل کر سکتے ہیں۔


To do that, navigate to the hardcoded address by clicking on aSpoolsv_exe, which will land you in the region shown here:

ایسا کرنے کے لیے، aSpoolsv_exe پر کلک کرکے ہارڈ کوڈڈ ایڈریس پر جائیں، جو آپ کو یہاں دکھائے گئے علاقے میں لے جائے گا:


The modification that you make is applied to the IDA database; to apply the changes to the original executable file, you can select Edit | Patch program | Apply patches to the input file.

آپ جو ترمیم کرتے ہیں وہ IDA ڈیٹا بیس پر لاگو ہوتی ہے؛ اصل قابل عمل فائل میں تبدیلیاں لاگو کرنے کے لیے، آپ Edit | Patch program | Apply patches to the input file کو منتخب کر سکتے ہیں۔


What if you wanted to reverse the logic so that DLL can run under any process (other than spoolsv.exe)?

کیا ہوگا اگر آپ منطق کو الٹنا چاہتے ہیں تاکہ DLL کسی بھی عمل (spoolsv.exe کے علاوہ) کے تحت چل سکے؟


IDA offers scripting capabilities that give you access to the contents of an IDA database.

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


In a 64-bit function, the stack space is allocated at the beginning of the function.

64 بٹ فنکشن میں، اسٹیک کی جگہ فنکشن کے شروع میں مختص کی جاتی ہے۔


The allocated stack space is used to store the local variables and the function parameters.

مختص کردہ اسٹیک کی جگہ مقامی متغیرات اور فنکشن پیرامیٹرز کو ذخیرہ کرنے کے لیے استعمال ہوتی ہے۔


The lack of push and pop instructions makes it difficult to determine the number of parameters accepted by the function.

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


Debugging Malicious BinariesChapter 6 [ 209 ]

خراب بائنریز کا ڈیبگنگ باب 6 [ 209 ]


Once you have an idea of where to find the function parameters and the return values, you can set a breakpoint at the API call.

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


Let's look at an example of a 64-bit malware sample that calls RegSetValueEx to set some value in the registry.

آئیے ایک 64 بٹ مالویئر نمونے کی مثال پر نظر ڈالتے ہیں جو رجسٹری میں کچھ قدر سیٹ کرنے کے لیے RegSetValueEx کو کال کرتا ہے۔


You will need to look at the values in the registers and the stack window to examine the parameters passed to the function.

آپ کو فنکشن کو پاس کیے گئے پیرامیٹرز کا جائزہ لینے کے لیے رجسٹرز اور اسٹیک ونڈو میں موجود قدروں کو دیکھنا ہوگا۔


In x64dbg, the easiest way to get a quick summary of function parameters is to look at the Default Window.

x64dbg میں، فنکشن پیرامیٹرز کا فوری خلاصہ حاصل کرنے کا سب سے آسان طریقہ ڈیفالٹ ونڈو کو دیکھنا ہے۔


Malware can open a handle to the registry key by calling either the RegCreateKey or RegOpenKey API.

مالویئر RegCreateKey یا RegOpenKey API کو کال کرکے رجسٹری کلید کا ہینڈل کھول سکتا ہے۔


From the handles window, you can tell that the handle value 0x2c is associated with the registry key.

ہینڈلز ونڈو سے، آپ بتا سکتے ہیں کہ ہینڈل ویلیو 0x2c رجسٹری کلید سے منسلک ہے۔


By adding logoninit.exe, along with explorer.exe, the malware makes sure that logoninit.exe is also launched by Userinit.exe.

logoninit.exe کو explorer.exe کے ساتھ شامل کرکے، مالویئر اس بات کو یقینی بناتا ہے کہ logoninit.exe کو Userinit.exe کے ذریعے بھی لانچ کیا جائے۔


In the next section, you will learn how to debug a malicious DLL to determine its behavior.

اگلے حصے میں، آپ سیکھیں گے کہ کسی خراب DLL کو ڈیبگ کرکے اس کے رویے کا تعین کیسے کریں۔


To debug a DLL, launch x64dbg (preferably with administrator privileges) and load the DLL.

DLL کو ڈیبگ کرنے کے لیے، x64dbg لانچ کریں (ترجیحی طور پر منتظم کے استحقاق کے ساتھ) اور DLL لوڈ کریں۔


After you load the DLL, the debugger may pause at the System Breakpoint, TLS callback, or DLL entry point function.

DLL لوڈ کرنے کے بعد، ڈیبگر سسٹم بریک پوائنٹ، TLS کال بیک، یا DLL انٹری پوائنٹ فنکشن پر رک سکتا ہے۔


Another effective method is to use rundll32.exe to debug the DLL.

ایک اور مؤثر طریقہ یہ ہے کہ DLL کو ڈیبگ کرنے کے لیے rundll32.exe استعمال کیا جائے۔


Then, select Debug | Change Command Line and specify the command-line arguments to rundll32.exe.

پھر، ڈیبگ | کمانڈ لائن تبدیل کریں کو منتخب کریں اور rundll32.exe کے لیے کمانڈ لائن دلائل کی وضاحت کریں۔


This will tell the debugger to break when the DLL (rasaut.dll) is loaded.

یہ ڈیبگر کو بتائے گا کہ جب DLL (rasaut.dll) لوڈ ہو تو بریک کریں۔


You can keep track of where the execution has paused every time you run (F9), by looking at the comment next to the breakpoint address.

آپ اس بات کا سراغ لگا سکتے ہیں کہ ہر بار جب آپ رن (F9) کرتے ہیں تو عملدرآمد کہاں رک گیا ہے، بریک پوائنٹ ایڈریس کے ساتھ موجود تبصرے کو دیکھ کر۔


Sometimes, you may want to debug a DLL that only runs in a specific process (such as explorer.exe).

کبھی کبھی، آپ کسی ایسے DLL کو ڈیبگ کرنا چاہ سکتے ہیں جو صرف ایک مخصوص عمل میں چلتا ہے (جیسے explorer.exe).


Tracing allows you to log events while the process is executing.

ٹریسن آپ کو عمل کے دوران ہونے والے واقعات کو لاگ کرنے کی اجازت دیتا ہے۔


The malware downloads a component and executes it.

میلویئر ایک جزو ڈاؤن لوڈ کرتا ہے اور اسے چلاتا ہے۔


Downloaders are often part of exploit shellcode.

ڈاؤن لوڈرز اکثر استحصال شیل کوڈ کا حصہ ہوتے ہیں۔


The URL for the malware binary is determined by a breakpoint.

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


The downloaded executable is saved in the %TEMP% directory.

ڈاؤن لوڈ کی گئی ایکزیکیٹیبل فائل %TEMP% ڈائریکٹری میں محفوظ کی جاتی ہے۔


The downloader uses ShellExecuteA() to run the file.

ڈاؤن لوڈر فائل چلانے کے لیے ShellExecuteA() کا استعمال کرتا ہے۔


Alternatively, WinExec() or CreateProcess() can be used.

متبادل طور پر، WinExec() یا CreateProcess() استعمال کیے جا سکتے ہیں۔


Monitoring tools like Wireshark are helpful during debugging.

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


A dropper embeds a malware component within itself.

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


The dropper extracts the component and drops it to disk.

ڈراپر جزو کو نکالتا ہے اور اسے ڈسک پر گراتا ہے۔


Droppers often use the resource section to store the binary.

ڈراپر اکثر بائنری کو ذخیرہ کرنے کے لیے ریسورس سیکشن کا استعمال کرتے ہیں۔


FindResource(), LoadResource(), and LockResource() are used.

FindResource(), LoadResource()، اور LockResource() استعمال کیے جاتے ہیں۔


The Resource Hacker tool can show the PE file in resources.

ریسورس ہیکر ٹول وسائل میں پی ای فائل دکھا سکتا ہے۔


Setting breakpoints on API calls helps in analysis.

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


A 64-bit dropper uses similar API functions.

ایک 64 بٹ ڈراپر اسی طرح کے API فنکشن استعمال کرتا ہے۔


Keyloggers intercept and log keystrokes.

کی لاگر کی اسٹروکس کو روکتے اور لاگ ان کرتے ہیں۔


Attackers steal information like passwords with keyloggers.

حملہ آور کی لاگرز کے ذریعے پاس ورڈز جیسی معلومات چراتے ہیں۔


GetAsyncKeyState() and SetWindowsHookEx() are common methods.

GetAsyncKeyState() اور SetWindowsHookEx() عام طریقے ہیں۔


GetAsyncKeyState() checks the state of each key.

GetAsyncKeyState() ہر کلید کی حالت کو چیک کرتا ہے۔


Keyloggers often use loops to poll GetAsyncKeyState().

کی لاگر اکثر GetAsyncKeyState() کو پول کرنے کے لیے لوپس کا استعمال کرتے ہیں۔


SetWindowsHookEx() installs a hook procedure.

SetWindowsHookEx() ایک ہک طریقہ کار انسٹال کرتا ہے۔


You can set hardware and conditional breakpoints by editing the breakpoint that is already set.

آپ پہلے سے سیٹ کردہ بریک پوائنٹ میں ترمیم کرکے ہارڈ ویئر اور مشروط بریک پوائنٹس سیٹ کر سکتے ہیں۔


To set a hardware breakpoint, right-click on an existing breakpoint and select Edit breakpoint.

ہارڈ ویئر بریک پوائنٹ سیٹ کرنے کے لیے، موجودہ بریک پوائنٹ پر دائیں کلک کریں اور 'بریک پوائنٹ میں ترمیم کریں' کو منتخب کریں۔


IDA allows you to set more than four hardware breakpoints, but only four of them will work.

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


You can use hardware breakpoints to specify whether to break on execute (default), break on write, or break on read/write.

آپ ہارڈ ویئر بریک پوائنٹس کو یہ بتانے کے لیے استعمال کر سکتے ہیں کہ آیا عملدرآمد پر بریک کرنا ہے (ڈیفالٹ)، لکھنا پر بریک کرنا ہے، یا پڑھنا/لکھنا پر بریک کرنا ہے۔


The break on write and break on read/write options allow you to create memory breakpoints when the specified memory location is accessed.

لکھنے پر بریک اور پڑھنے/لکھنے پر بریک کے اختیارات آپ کو میموری بریک پوائنٹس بنانے کی اجازت دیتے ہیں جب مخصوص میموری لوکیشن تک رسائی حاصل کی جاتی ہے۔


This breakpoint is useful if you want to know when your program accesses a piece of data from a memory location.

یہ بریک پوائنٹ اس وقت کارآمد ہے جب آپ یہ جاننا چاہتے ہیں کہ آپ کا پروگرام میموری لوکیشن سے ڈیٹا کے ایک ٹکڑے تک کب رسائی حاصل کرتا ہے۔


The break on execute option allows you to set a breakpoint when the specified memory location is executed.

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


In addition to specifying a mode, you must also specify a size.

ایک موڈ کی وضاحت کرنے کے علاوہ، آپ کو ایک سائز کی بھی وضاحت کرنی ہوگی۔


A hardware breakpoint's size is combined with its address to form a range of bytes for which the breakpoint may be triggered.

ہارڈ ویئر بریک پوائنٹ کا سائز اس کے ایڈریس کے ساتھ مل کر بائٹس کی ایک رینج بناتا ہے جس کے لیے بریک پوائنٹ کو متحرک کیا جا سکتا ہے۔


You can set a conditional breakpoint by specifying the condition in the condition field.

آپ کنڈیشن فیلڈ میں شرط کی وضاحت کرکے مشروط بریک پوائنٹ سیٹ کر سکتے ہیں۔


The condition can be an actual condition, or IDC or IDAPython expressions.

شرط ایک حقیقی حالت، یا IDC یا IDAPython اظہار ہو سکتا ہے۔


You can click on the ... button next to the condition field, which will open up the editor.

آپ کنڈیشن فیلڈ کے آگے ... بٹن پر کلک کر سکتے ہیں، جو ایڈیٹر کو کھول دے گا۔


You can use IDC or IDAPython scripting language to evaluate the condition.

آپ شرط کا اندازہ لگانے کے لیے IDC یا IDAPython اسکرپٹنگ زبان استعمال کر سکتے ہیں۔


You can view all of the active breakpoints by navigating to Debugger | Breakpoints | Breakpoint List.

آپ ڈیبگر | بریک پوائنٹس | بریک پوائنٹ لسٹ پر نیویگیٹ کرکے تمام فعال بریک پوائنٹس دیکھ سکتے ہیں۔


You can right-click on the breakpoint entry and disable or delete the breakpoint.

آپ بریک پوائنٹ انٹری پر دائیں کلک کر سکتے ہیں اور بریک پوائنٹ کو غیر فعال یا حذف کر سکتے ہیں۔


In this section, we will look at how to use IDA to debug a malware binary.

اس سیکشن میں، ہم دیکھیں گے کہ مالویئر بائنری کو ڈیبگ کرنے کے لیے IDA کا استعمال کیسے کریں۔


Consider the disassembly listing from a 32-bit malware sample.

32 بٹ مالویئر نمونے سے ڈس اسمبلی لسٹنگ پر غور کریں۔


The malware calls the CreateFileW API to create a file, but it is not clear what file the malware creates.

مالویئر ایک فائل بنانے کے لیے CreateFileW API کو کال کرتا ہے، لیکن یہ واضح نہیں ہے کہ مالویئر کون سی فائل بناتا ہے۔


To determine the name of the file, we can set a breakpoint at the address where the call to the CreateFileW is made.

فائل کا نام معلوم کرنے کے لیے، ہم اس ایڈریس پر بریک پوائنٹ سیٹ کر سکتے ہیں جہاں CreateFileW کو کال کیا جاتا ہے۔


When it reaches the breakpoint, all of the parameters to the function will be pushed onto the stack.

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


The malware performs actions based on commands from the C2 server.

مالویئر C2 سرور سے موصول ہونے والے احکامات کی بنیاد پر کارروائیاں کرتا ہے۔


To understand the malware's functions, see the author's presentation.

مالویئر کے افعال کو سمجھنے کے لیے، مصنف کی پیشکش دیکھیں۔


PowerShell is often used by malware authors to hide malicious activities.

مالویئر کے مصنفین اکثر نقصان دہ سرگرمیوں کو چھپانے کے لیے PowerShell کا استعمال کرتے ہیں۔


PowerShell allows access to major operating system functions.

PowerShell بڑے آپریٹنگ سسٹم کے افعال تک رسائی کی اجازت دیتا ہے۔


Attackers use PowerShell to download additional components.

حملہ آور اضافی اجزاء ڈاؤن لوڈ کرنے کے لیے PowerShell کا استعمال کرتے ہیں۔


Malicious code often comes in email attachments.

نقصان دہ کوڈ اکثر ای میل منسلکات میں آتا ہے۔


PowerShell can execute code directly from memory.

PowerShell میموری سے براہ راست کوڈ چلا سکتا ہے۔


Attackers use obfuscation to make detection difficult.

حملہ آوروں نے پتہ لگانے کو مشکل بنانے کے لیے ابہام کا استعمال کیا۔


You can execute PowerShell commands in the interactive console.

آپ انٹرایکٹو کنسول میں PowerShell کمانڈز چلا سکتے ہیں۔


ایک cmdlet .NET میں مرتب کردہ کمانڈ ہے۔


Cmdlets follow a Verb-Noun naming convention.

Cmdlets ایک Verb-Noun نام دینے کے کنونشن کی پیروی کرتے ہیں۔


Variables can store values in PowerShell.

متغیر PowerShell میں اقدار کو محفوظ کر سکتے ہیں۔


PowerShell scripts have a .ps1 extension.

PowerShell اسکرپٹس میں .ps1 ایکسٹینشن ہوتی ہے۔


The default execution policy prevents script execution.

ڈیفالٹ ایگزیکیوشن پالیسی اسکرپٹ کے عمل کو روکتی ہے۔


Change the execution policy to run malicious scripts.

نقصان دہ اسکرپٹس چلانے کے لیے ایگزیکیوشن پالیسی تبدیل کریں۔


Analyze PowerShell commands in an isolated environment.

ایک الگ تھلگ ماحول میں PowerShell کمانڈز کا تجزیہ کریں۔


Attackers often use email attachments to deliver malicious code.

حملہ آور اکثر نقصان دہ کوڈ پہنچانے کے لیے ای میل منسلکات کا استعمال کرتے ہیں۔


Attackers use various methods to bypass execution policy.

حملہ آور ایگزیکیوشن پالیسی کو نظرانداز کرنے کے لیے مختلف طریقے استعمال کرتے ہیں۔


Common PowerShell arguments are used to evade detection.

عام PowerShell دلائل کا استعمال پتہ لگانے سے بچنے کے لیے کیا جاتا ہے۔


Malware uses persistence methods to survive reboots.

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


The malware loads a malicious DLL into the process's address space.

میلویئر ایک نقصان دہ DLL کو عمل کے ایڈریس کی جگہ میں لوڈ کرتا ہے۔


To detect this technique, look for suspicious entries in the registry.

اس تکنیک کا پتہ لگانے کے لیے، رجسٹری میں مشکوک اندراجات تلاش کریں۔


Adversaries can exploit DLL search order to gain privileges.

دشمن استحقاق حاصل کرنے کے لیے DLL سرچ آرڈر کا استحصال کر سکتے ہیں۔


The operating system searches for DLLs in a specific order.

آپریٹنگ سسٹم ایک مخصوص ترتیب میں DLLs تلاش کرتا ہے۔


Malware can drop a malicious DLL in the Windows directory.

میلویئر ونڈوز ڈائرکٹری میں ایک نقصان دہ DLL گرا سکتا ہے۔


COM hijacking allows attackers to execute malicious code.

COM ہائی جیکنگ حملہ آوروں کو نقصان دہ کوڈ چلانے کی اجازت دیتا ہے۔


The attacker modifies the registry entry of a legitimate COM object.

حملہ آور ایک جائز COM آبجیکٹ کی رجسٹری اندراج میں ترمیم کرتا ہے۔


A service runs in the background without a user interface.

ایک سروس بغیر کسی صارف انٹرفیس کے پس منظر میں چلتی ہے۔


An adversary can modify an existing service to persist.

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


Malware can create services using the sc utility.

میلویئر sc یوٹیلیٹی کا استعمال کرتے ہوئے خدمات بنا سکتا ہے۔


The virtual address space is an illusion created by the OS.

ورچوئل ایڈریس کی جگہ ایک فریب ہے جو OS کے ذریعے بنایا گیا ہے۔


Each process has its own private memory address space.

ہر عمل کی اپنی نجی میموری ایڈریس کی جگہ ہوتی ہے۔


The kernel memory is shared by all processes.

تمام عملوں کے ذریعہ کرنل میموری کا اشتراک کیا جاتا ہے۔


Process memory consists of several components.

عمل کی میموری کئی اجزاء پر مشتمل ہے۔


The process executable is loaded into process memory.

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


DLLs are loaded into process memory when a process is created.

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


The PEB contains information about the executable.

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


Malware injects code into another process.

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


Code injection is a technique to execute malicious code.

کوڈ انجیکشن نقصان دہ کوڈ کو چلانے کی ایک تکنیک ہے۔


Attackers often target legitimate processes.

حملہ آور اکثر جائز عملوں کو نشانہ بناتے ہیں۔


شیم کوڈ اے پی آئی کالوں کو ری ڈائریکٹ کرتا ہے۔


Applications use the IAT to call Windows APIs.

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


شیم اے پی آئی پیرامیٹرز میں ترمیم کر سکتا ہے۔


ایک شیم اے پی آئی کال کو ری ڈائریکٹ کر سکتا ہے۔


Shims can modify the response from the OS.

شیم آپریٹنگ سسٹم سے آنے والے جواب میں ترمیم کر سکتے ہیں۔


آئیے ایک شیم کی مثال دیکھتے ہیں۔


An application checked the OS version using GetVersion().

ایک ایپلیکیشن نے GetVersion() کا استعمال کرتے ہوئے OS ورژن چیک کیا۔


The application worked only on Windows XP.

ایپلیکیشن صرف ونڈوز ایکس پی پر کام کرتی تھی۔


Running the app on Windows 7 caused issues.

ایپ کو ونڈوز 7 پر چلانے سے مسائل پیدا ہوئے۔


The WinXPVersionLie shim can be applied.

WinXPVersionLie شیم کو لاگو کیا جا سکتا ہے۔


The shim intercepts the GetVersion() call.

شیم GetVersion() کال کو روکتا ہے۔


The shim returns a different OS version.

شیم ایک مختلف OS ورژن لوٹاتا ہے۔


شیم آئی اے ٹی میں ترمیم کرتا ہے۔


The shim redirects the GetVersion() call.

شیم GetVersion() کال کو ری ڈائریکٹ کرتا ہے۔


Attackers abuse shims for malicious purposes.

حملہ آور بدنیتی پر مبنی مقاصد کے لیے شیم کا غلط استعمال کرتے ہیں۔


Attackers use shims for persistence and code injection.

حملہ آور استحکام اور کوڈ انجیکشن کے لیے شیم کا استعمال کرتے ہیں۔


ایک شیم بنانے میں کئی مراحل شامل ہیں۔


You need administrator rights to create and install a shim.

شیم بنانے اور انسٹال کرنے کے لیے آپ کو منتظم کے حقوق کی ضرورت ہے۔


The Compatibility Administrator Tool is used.

مطابقت ایڈمنسٹریٹر ٹول استعمال کیا جاتا ہے۔


The InjectDll shim is used to load a DLL.

InjectDll شیم ایک DLL لوڈ کرنے کے لیے استعمال ہوتا ہے۔


HAL isolates the operating system from the hardware.

HAL آپریٹنگ سسٹم کو ہارڈ ویئر سے الگ کرتا ہے۔


It implements functions to support different hardware platforms.

یہ مختلف ہارڈ ویئر پلیٹ فارمز کو سپورٹ کرنے کے لیے فنکشن نافذ کرتا ہے۔


The kernel mode device drivers invoke functions exposed by hal.dll.

کرنل موڈ ڈیوائس ڈرائیورز hal.dll کے ذریعے ظاہر کردہ فنکشنز کو طلب کرتے ہیں۔


The user-space contains code that runs with restricted access.

یوزر-اسپیس میں وہ کوڈ ہوتا ہے جو محدود رسائی کے ساتھ چلتا ہے۔


The kernel space contains the kernel itself and the device drivers.

کرنل اسپیس میں خود کرنل اور ڈیوائس ڈرائیورز شامل ہیں۔


By providing the kernel with a high privilege level, the operating system ensures that a user-mode application cannot cause system instability.

کرنل کو اعلیٰ مراعات کی سطح فراہم کرکے، آپریٹنگ سسٹم اس بات کو یقینی بناتا ہے کہ یوزر موڈ ایپلی کیشن سسٹم میں عدم استحکام کا سبب نہیں بن سکتی۔


Third-party drivers can get their code to run in kernel mode by implementing and installing signed drivers.

تیسری پارٹی کے ڈرائیورز دستخط شدہ ڈرائیورز کو نافذ اور انسٹال کرکے اپنے کوڈ کو کرنل موڈ میں چلا سکتے ہیں۔


If the user-mode applications cannot directly interact with the hardware, then the question is, how can a malware binary running in user-mode write content to a file on the disk?

اگر یوزر موڈ ایپلی کیشنز براہ راست ہارڈ ویئر کے ساتھ تعامل نہیں کر سکتیں، تو سوال یہ ہے کہ یوزر موڈ میں چلنے والا میلویئر بائنری ڈسک پر موجود فائل میں مواد کیسے لکھ سکتا ہے؟


In fact, most of the APIs called by user-mode applications, end up calling the system service routines implemented in the kernel executive.

درحقیقت، یوزر موڈ ایپلی کیشنز کے ذریعے کال کیے جانے والے زیادہ تر APIs، آخر کار کرنل ایگزیکٹو میں نافذ کردہ سسٹم سروس روٹینز کو کال کرتے ہیں۔


The ntdll.dll acts as the gateway between the user-space and the kernel space.

ntdll.dll یوزر-اسپیس اور کرنل اسپیس کے درمیان گیٹ وے کا کام کرتا ہے۔


The Windows operating system provides services by exposing APIs implemented in DLLs.

ونڈوز آپریٹنگ سسٹم DLLs میں نافذ کردہ APIs کو ظاہر کرکے خدمات فراہم کرتا ہے۔


An application uses the service by calling the API implemented in the DLL.

ایک ایپلی کیشن DLL میں نافذ کردہ API کو کال کرکے سروس کا استعمال کرتی ہے۔


Most API functions end up calling the system service routine in the ntoskrnl.exe.

زیادہ تر API فنکشنز آخر کار ntoskrnl.exe میں سسٹم سروس روٹین کو کال کرتے ہیں۔


When a process is invoked by double-clicking a program, the process executable image and all its associated DLLs are loaded into the process memory.

جب کسی پروگرام پر ڈبل کلک کرکے عمل درآمد کیا جاتا ہے، تو عمل درآمد کی جانے والی تصویر اور اس سے منسلک تمام DLLs کو عمل درآمد کی میموری میں لوڈ کیا جاتا ہے۔


An application can also load a DLL during runtime by calling the LoadLibrary() API.

ایک ایپلی کیشن رن ٹائم کے دوران LoadLibrary() API کو کال کرکے بھی DLL لوڈ کر سکتی ہے۔


The code in the WriteFile() function ends up calling a function, NtWriteFile(), exported by the gateway DLL, ntdll.dll.

WriteFile() فنکشن میں موجود کوڈ آخر کار ایک فنکشن، NtWriteFile() کو کال کرتا ہے، جو گیٹ وے DLL، ntdll.dll کے ذریعے ایکسپورٹ کیا جاتا ہے۔


These instructions transition the code to the kernel mode.

یہ ہدایات کوڈ کو کرنل موڈ میں منتقل کرتی ہیں۔


The objective of a code injection technique is to inject code into the remote process memory and execute the injected code within the context of a remote process.

کوڈ انجیکشن تکنیک کا مقصد ریموٹ پروسیس میموری میں کوڈ داخل کرنا اور داخل کردہ کوڈ کو ریموٹ پروسیس کے تناظر میں چلانا ہے۔


Injecting code into trusted processes allows an attacker to bypass security products.

قابل اعتماد عمل میں کوڈ داخل کرنے سے حملہ آور سیکیورٹی مصنوعات کو نظرانداز کر سکتا ہے۔


In this technique, the target (remote) process is forced to load a malicious DLL into its process memory space via the LoadLibrary() API.

اس تکنیک میں، ہدف (ریموٹ) عمل کو LoadLibrary() API کے ذریعے ایک نقصان دہ DLL کو اس کی عمل درآمد کی میموری میں لوڈ کرنے پر مجبور کیا جاتا ہے۔


The malware can extract credentials from the POST payload.

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


Before hooking, the malicious executable is injected into the address space of Internet Explorer.

ہک کرنے سے پہلے، نقصان دہ عمل درآمد کو انٹرنیٹ ایکسپلورر کی ایڈریس اسپیس میں داخل کیا جاتا ہے۔


The first three instructions are replaced with the jmp instruction.

پہلی تین ہدایات کو جمپ ہدایات سے بدل دیا جاتا ہے۔


Malware authors have used in-memory patching to inject code and hook the API functions.

میلویئر کے مصنفین نے کوڈ داخل کرنے اور API فنکشنز کو ہک کرنے کے لیے میموری میں پیچنگ کا استعمال کیا ہے۔


You can examine the .sdb file using the sdb_dump_database.py script.

آپ sdb_dump_database.py اسکرپٹ کا استعمال کرتے ہوئے .sdb فائل کی جانچ کر سکتے ہیں۔


The output of the preceding command shows the malware targeting explorer.exe.

مندرجہ بالا کمانڈ کا آؤٹ پٹ میلویئر کو explorer.exe کو نشانہ بناتے ہوئے دکھاتا ہے۔


In other words, it redirects control to the RVA 0x0004f0ed.

دوسرے لفظوں میں، یہ کنٹرول کو RVA 0x0004f0ed پر ری ڈائریکٹ کرتا ہے۔


This technique is interesting, because in this case, the malware does not allocate memory or inject code directly.

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


In this chapter, we looked at the different code injection techniques.

اس باب میں، ہم نے مختلف کوڈ انجیکشن تکنیکوں پر نظر ڈالی۔


Malware authors often use various obfuscation techniques to hide the information.

میلویئر کے مصنفین اکثر معلومات کو چھپانے کے لیے مختلف مبہم تکنیکوں کا استعمال کرتے ہیں۔


Adversaries typically use encoding/encryption techniques to conceal the information.

دشمن عام طور پر معلومات کو چھپانے کے لیے انکوڈنگ/انکرپشن تکنیکوں کا استعمال کرتے ہیں۔


A plaintext refers to an unencrypted message.

سادہ متن سے مراد ایک غیر منقطع پیغام ہے۔


Malware encrypts the plaintext, by passing it as input along with the key.

میلویئر سادہ متن کو انکرپٹ کرتا ہے، اسے کلید کے ساتھ ان پٹ کے طور پر پاس کرکے۔


Once the encryption/decryption function is identified, examining these functions will give you an idea.

ایک بار جب انکرپشن/ڈی کرپشن فنکشن کی شناخت ہو جاتی ہے، تو ان فنکشنز کا جائزہ لینے سے آپ کو ایک خیال آئے گا۔


Attackers use very simple encoding algorithms such as Base64 encoding or xor encryption.

حملہ آور بہت سادہ انکوڈنگ الگورتھم استعمال کرتے ہیں جیسے کہ Base64 انکوڈنگ یا xor انکرپشن۔


Caesar cipher, also known as shift cipher, is a traditional cipher.

سیزر سائفر، جسے شفٹ سائفر بھی کہا جاتا ہے، ایک روایتی سائفر ہے۔


It encodes the message by shifting each letter in the plaintext.

یہ سادہ متن میں ہر حرف کو شفٹ کرکے پیغام کو انکوڈ کرتا ہے۔


The modulus operation allows you to cycle back around to the beginning.

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


Base64 encoding allows an attacker to encode binary data to an ASCII string format.

Base64 انکوڈنگ ایک حملہ آور کو بائنری ڈیٹا کو ASCII سٹرنگ فارمیٹ میں انکوڈ کرنے کی اجازت دیتا ہے۔


To decode base64 data in python, use the following code:

پائتھون میں base64 ڈیٹا کو ڈی کوڈ کرنے کے لیے، درج ذیل کوڈ استعمال کریں:


Malware authors often use simple encoding techniques, because it is just enough to obscure the data.

میلویئر کے مصنفین اکثر سادہ انکوڈنگ تکنیکوں کا استعمال کرتے ہیں، کیونکہ یہ ڈیٹا کو مبہم کرنے کے لیے کافی ہے۔


To identify XOR encoding, load the binary in IDA and search for the XOR instruction.

XOR انکوڈنگ کی شناخت کے لیے، بائنری کو IDA میں لوڈ کریں اور XOR ہدایات تلاش کریں۔


In the XOR operation, when both the bits are the same, the result is 0; otherwise, the result is 1.

XOR آپریشن میں، جب دونوں بٹس ایک جیسے ہوتے ہیں، تو نتیجہ 0 ہوتا ہے؛ بصورت دیگر، نتیجہ 1 ہوتا ہے۔


Attackers commonly use multi-byte XOR because it provides better defense against the brute-force technique.

حملہ آور عام طور پر ملٹی بائٹ XOR استعمال کرتے ہیں کیونکہ یہ بروٹ فورس تکنیک کے خلاف بہتر دفاع فراہم کرتا ہے۔


The brute-force technique is useful in determining the XOR key used to encrypt a PE file.

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


This means that if you know the key, then the same function can be used to both encrypt and decrypt the data.

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


For example, when you XOR 2 and 4, that is, 2 ^ 4, the result is 6.

مثال کے طور پر، جب آپ 2 اور 4 کو XOR کرتے ہیں، یعنی 2 ^ 4، تو نتیجہ 6 ہوتا ہے۔


In a single byte XOR, each byte from the plaintext is XORed with the encryption key.

سنگل بائٹ XOR میں، سادہ متن کا ہر بائٹ انکرپشن کلید کے ساتھ XOR کیا جاتا ہے۔


The following is a simple python script to perform XOR decryption.

مندرجہ ذیل XOR ڈکرپشن انجام دینے کے لیے ایک سادہ پائتھون اسکرپٹ ہے۔


With an understanding of the XOR encoding algorithm, let's look at an example of a keylogger.

XOR انکوڈنگ الگورتھم کی سمجھ کے ساتھ، آئیے ایک کی لاگر کی مثال پر نظر ڈالتے ہیں۔


The enc_function takes two arguments; the 1st argument is the buffer containing the data to encrypt.

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


Examining the enc_function shows that the malware uses single byte XOR.

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


In a single byte XOR, the length of the key is one byte, so there can be only 255 possible keys.

سنگل بائٹ XOR میں، کلید کی لمبائی ایک بائٹ ہے، اس لیے صرف 255 ممکنہ کلیدیں ہو سکتی ہیں۔


You can also use a tool such as ConverterNET to brute-force and determine the key.

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


In XOR encoding, when a null byte (0x00) is XORed with a key, you get back the key.

XOR انکوڈنگ میں، جب ایک نل بائٹ (0x00) کو کلید کے ساتھ XOR کیا جاتا ہے، تو آپ کو کلید واپس مل جاتی ہے۔


To avoid the null byte problem, malware authors ignore the null byte and the encryption key during encryption.

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


Sometimes, attackers also use encryption.

کبھی کبھی، حملہ آور انکرپشن بھی استعمال کرتے ہیں۔


A useful tool to search for the cryptographic signatures in a file or process is Signsrch.

فائل یا عمل میں کرپٹوگرافک دستخطوں کو تلاش کرنے کے لیے ایک مفید ٹول Signsrch ہے۔


Another way to identify the use of cryptography in a binary is by scanning the binary with YARA rules.

بائنری میں کرپٹوگرافی کے استعمال کی شناخت کرنے کا ایک اور طریقہ YARA قواعد کے ساتھ بائنری کو اسکین کرنا ہے۔


Encryption algorithms such as RC4 do not use Cryptographic constants because of which it is not easy to detect it using Crypto signatures.

RC4 جیسے انکرپشن الگورتھم کرپٹوگرافک مستقل استعمال نہیں کرتے ہیں، جس کی وجہ سے کرپٹو دستخطوں کا استعمال کرتے ہوئے اس کا پتہ لگانا آسان نہیں ہے۔


The previous script iterates through the names window to identify the dec_function.

پچھلا اسکرپٹ ناموں کی ونڈو کے ذریعے دہراتا ہے تاکہ dec_function کی شناخت کی جا سکے۔


It uses the address of dec_function to determine the cross-references (Xrefs) to dec_function.

یہ dec_function کے کراس ریفرنسز (Xrefs) کا تعین کرنے کے لیے dec_function کے پتے کا استعمال کرتا ہے۔


It sets the breakpoint on all the addresses where dec_function is called.

یہ ان تمام پتوں پر بریک پوائنٹ سیٹ کرتا ہے جہاں dec_function کو کال کیا جاتا ہے۔


یہ خود بخود ڈیبگر شروع کرتا ہے۔


It reads the encrypted string from the address pointed to by the rcx register.

یہ rcx رجسٹر کے ذریعے اشارہ کردہ پتے سے خفیہ کردہ سٹرنگ کو پڑھتا ہے۔


It then steps over the function to execute the decryption function (dec_function).

پھر یہ ڈکرپشن فنکشن (dec_function) کو چلانے کے لیے فنکشن پر قدم رکھتا ہے۔


It repeats the previous steps, to decrypt each string passed to dec_function.

یہ پچھلے مراحل کو دہراتا ہے، dec_function کو پاس کی گئی ہر سٹرنگ کو ڈکرپٹ کرنے کے لیے۔


From the output, you can see that the malware decrypts the file names.

آؤٹ پُٹ سے، آپ دیکھ سکتے ہیں کہ مالویئر فائل کے ناموں کو ڈکرپٹ کرتا ہے۔


Malware authors often use packers and cryptors to obfuscate the executable content.

مالویئر کے مصنف اکثر قابل عمل مواد کو مبہم کرنے کے لیے پیکرز اور کرپٹرز کا استعمال کرتے ہیں۔


A packer is a program that takes a normal executable, compresses its contents, and generates a new obfuscated executable.

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


When a binary is packed, it reveals very less information.

جب ایک بائنری پیک کی جاتی ہے، تو یہ بہت کم معلومات ظاہر کرتی ہے۔


To unpack a packed binary, you can either use automated tools or do it manually.

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


پہلا مرحلہ OEP کی شناخت کرنا ہے۔


The original entry point (OEP) is the address of the malware's first instruction.

اصل انٹری پوائنٹ (OEP) مالویئر کی پہلی ہدایت کا پتہ ہے۔


The next step involves executing the program until the OEP is reached.

اگلے مرحلے میں پروگرام کو اس وقت تک چلانا شامل ہے جب تک کہ OEP تک نہ پہنچ جائے۔


The third step involves dumping the unpacked process from the memory to disk.

تیسرے مرحلے میں میموری سے ڈسک پر ان پیک شدہ عمل کو ڈمپ کرنا شامل ہے۔


The final step involves fixing the Import Address Table (IAT) of the dumped file.

آخری مرحلے میں ڈمپ شدہ فائل کی امپورٹ ایڈریس ٹیبل (IAT) کو ٹھیک کرنا شامل ہے۔


In this section, you will understand the techniques to identify the OEP in the packed binary.

اس حصے میں، آپ پیک شدہ بائنری میں OEP کی شناخت کرنے کی تکنیکوں کو سمجھیں گے۔


Examining the packed binary in pestudio shows many indicators that suggest the file is packed.

pestudio میں پیک شدہ بائنری کا جائزہ لینے سے بہت سے اشارے ظاہر ہوتے ہیں جو بتاتے ہیں کہ فائل پیک کی گئی ہے۔


To find the OEP, you will need to locate the instruction in the packed program that transfers control to the OEP.

OEP تلاش کرنے کے لیے، آپ کو پیک شدہ پروگرام میں اس ہدایت کا پتہ لگانے کی ضرورت ہوگی جو کنٹرول کو OEP میں منتقل کرتی ہے۔


To hide a process, an attacker modifies the ActiveProcessLinks field.

ایک عمل کو چھپانے کے لیے، حملہ آور ActiveProcessLinks فیلڈ میں ترمیم کرتا ہے۔


The attacker finds the _EPROCESS structure of the malicious process.

حملہ آور بدنیتی پر مبنی عمل کی _EPROCESS ساخت تلاش کرتا ہے۔


The Flink of the previous _EPROCESS block is made to point to the Flink of the following _EPROCESS block.

پچھلے _EPROCESS بلاک کا Flink اگلے _EPROCESS بلاک کے Flink کی طرف اشارہ کرنے کے لیے بنایا گیا ہے۔


This technique hides the malicious process from live forensic tools.

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


The pslist plugin also relies on walking the doubly linked list.

pslist پلگ ان بھی ڈبل لنکڈ لسٹ پر چلنے پر انحصار کرتا ہے۔


The psscan output shows an additional process called nvid.exe.

psscan آؤٹ پٹ ایک اضافی عمل دکھاتا ہے جسے nvid.exe کہا جاتا ہے۔


The reason psscan detects the hidden process is pool tag scanning.

psscan کے پوشیدہ عمل کا پتہ لگانے کی وجہ پول ٹیگ اسکیننگ ہے۔


Executive objects are managed by the object manager.

ایگزیکٹو اشیاء کا انتظام آبجیکٹ مینیجر کے ذریعے کیا جاتا ہے۔


Every executive object has a structure associated with it.

ہر ایگزیکٹو آبجیکٹ کی اس سے وابستہ ایک ساخت ہوتی ہے۔


Memory is allocated by the Windows memory manager from kernel pools.

میموری ونڈوز میموری مینیجر کے ذریعے کرنل پولز سے مختص کی جاتی ہے۔


Objects are kept in a non-paged pool in the kernel.

اشیاء کو کرنل میں غیر صفحہ شدہ پول میں رکھا جاتا ہے۔


This allocation is tagged by prepending a _POOL_HEADER structure.

یہ تخصیص _POOL_HEADER ڈھانچہ کو پہلے سے جوڑ کر ٹیگ کی جاتی ہے۔


The pool tag can be used to identify an object.

پول ٹیگ کا استعمال کسی شے کی شناخت کے لیے کیا جا سکتا ہے۔


The psscan plugin uses the Proc tag to identify the process object.

psscan پلگ ان عمل کی شے کی شناخت کے لیے Proc ٹیگ کا استعمال کرتا ہے۔


The psscan plugin can also detect terminated processes.

psscan پلگ ان ختم شدہ عمل کا بھی پتہ لگا سکتا ہے۔


The pstree plugin displays parent/child process relationships.

pstree پلگ ان والدین/چائلڈ عمل کے تعلقات کو ظاہر کرتا ہے۔


The pstree plugin relies on the pslist plugin.

pstree پلگ ان pslist پلگ ان پر انحصار کرتا ہے۔


The psxview plugin relies on extracting process information from different sources.

psxview پلگ ان مختلف ذرائع سے عمل کی معلومات نکالنے پر انحصار کرتا ہے۔


The psxview plugin enumerates the process in seven different ways.

psxview پلگ ان سات مختلف طریقوں سے عمل کو شمار کرتا ہے۔


A handle is an indirect reference to an object.

ایک ہینڈل کسی شے کا بالواسطہ حوالہ ہے۔


The standalone executable is the fastest way to get started with Volatility.

Volatility کے ساتھ شروع کرنے کا سب سے تیز طریقہ اسٹینڈ الون ایگزیکیوٹیبل ہے۔


You can use the /R or /COMPRESS option in DumpIt, which creates a .zdmp file.

آپ DumpIt میں /R یا /COMPRESS آپشن استعمال کر سکتے ہیں، جو .zdmp فائل بناتا ہے۔


Volatility is an open source advanced memory forensics framework written in Python.

Volatility ایک اوپن سورس جدید میموری فرانزک فریم ورک ہے جو Python میں لکھا گیا ہے۔


Once you acquire the memory of an infected system, the next step is to analyze the acquired memory image.

ایک بار جب آپ متاثرہ نظام کی میموری حاصل کر لیتے ہیں، تو اگلا مرحلہ حاصل کردہ میموری امیج کو تجزیہ کرنا ہے۔


The help option displays various options and plugins that are available in Volatility.

مدد کا اختیار مختلف اختیارات اور پلگ ان دکھاتا ہے جو Volatility میں دستیاب ہیں۔


Volatility can run on various platforms, including Windows, macOS, and Linux.

Volatility مختلف پلیٹ فارمز پر چل سکتا ہے، بشمول Windows، macOS، اور Linux۔


For instance, after executing the malware sample, you can suspend the VM.

مثال کے طور پر، مالویئر نمونے کو چلانے کے بعد، آپ VM کو معطل کر سکتے ہیں۔


The dump file (.zdmp) can then be analyzed with the Comae Stardust enterprise platform.

ڈمپ فائل (.zdmp) کا پھر Comae Stardust انٹرپرائز پلیٹ فارم کے ساتھ تجزیہ کیا جا سکتا ہے۔


In most cases, you can acquire the memory of a Virtual Machine (VM) by suspending the VM.

زیادہ تر معاملات میں، آپ VM کو معطل کرکے ورچوئل مشین (VM) کی میموری حاصل کر سکتے ہیں۔


Volatility is also distributed as a source package; you can run it on Windows, macOS, or Linux operating systems.

Volatility ایک سورس پیکج کے طور پر بھی تقسیم کیا جاتا ہے؛ آپ اسے Windows، macOS، یا Linux آپریٹنگ سسٹمز پر چلا سکتے ہیں۔


The web page contains a list of the third-party Python packages that are required by some of the Volatility plugins.

ویب پیج میں تھرڈ پارٹی Python پیکجز کی ایک فہرست ہے جو Volatility پلگ ان میں سے کچھ کے لیے درکار ہیں۔


You are free to choose a standalone executable, but just remember to replace python vol.py with the standalone executable name.

آپ اسٹینڈ الون ایگزیکیوٹیبل کا انتخاب کرنے کے لیے آزاد ہیں، لیکن صرف python vol.py کو اسٹینڈ الون ایگزیکیوٹیبل نام سے بدلنا یاد رکھیں۔


Volatility consists of various plugins that can extract different information from the memory image.

Volatility میں مختلف پلگ ان شامل ہیں جو میموری امیج سے مختلف معلومات نکال سکتے ہیں۔


For instance, if you wish to list the running processes from the memory image, you can use a plugin such a pslist.

مثال کے طور پر، اگر آپ میموری امیج سے چلنے والے عملوں کی فہرست بنانا چاہتے ہیں، تو آپ pslist جیسا پلگ ان استعمال کر سکتے ہیں۔


Using -f, you specify the path to the memory image file, and --profile tells Volatility which system and architecture the memory image was acquired from.

-f کا استعمال کرتے ہوئے، آپ میموری امیج فائل کا راستہ بتاتے ہیں، اور --profile Volatility کو بتاتا ہے کہ میموری امیج کس نظام اور فن تعمیر سے حاصل کیا گیا تھا۔


Sometimes, you might not know what profile to supply to Volatility.

کبھی کبھی، آپ کو یہ معلوم نہیں ہو سکتا کہ Volatility کو کون سا پروفائل فراہم کرنا ہے۔


The pslist plugin lists the processes from the memory image, similar to how task manager lists the process on a live system.

pslist پلگ ان میموری امیج سے عملوں کی فہرست بناتا ہے، اسی طرح جیسے ٹاسک مینیجر لائیو سسٹم پر عمل کی فہرست بناتا ہے۔


The reason why these two processes are suspicious is that the names of these processes have an additional dot character before the .exe extension.

ان دو عملوں کے مشکوک ہونے کی وجہ یہ ہے کہ ان عملوں کے ناموں میں .exe ایکسٹینشن سے پہلے ایک اضافی ڈاٹ کریکٹر ہے۔


An object refers to a system resource such as a process, file, device, directory, mutant, and so on, and they are managed by a component of a kernel called object manager.

ایک شے سے مراد ایک نظام وسیلہ ہے جیسے کہ ایک عمل، فائل، آلہ، ڈائرکٹری، میوٹینٹ، وغیرہ، اور ان کا انتظام ایک کرنل کے ایک جزو کے ذریعے کیا جاتا ہے جسے آبجیکٹ مینیجر کہا جاتا ہے۔


The _EPROCESS structure resides in the kernel memory, and the Windows kernel uses the EPROCESS structure to represent a process internally.

_EPROCESS ڈھانچہ کرنل میموری میں موجود ہے، اور ونڈوز کرنل اندرونی طور پر ایک عمل کی نمائندگی کے لیے EPROCESS ڈھانچے کا استعمال کرتا ہے۔


To overcome this problem, we can use another plugin named ldrmodules.

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


The ldrmodules plugin compares module information from the three PEB lists with the information from a data structure residing in the kernel memory known as VADs.

ldrmodules پلگ ان تین PEB فہرستوں سے ماڈیول کی معلومات کا موازنہ ایک ڈیٹا ڈھانچے سے کرتا ہے جو کرنل میموری میں موجود ہے جسے VADs کہا جاتا ہے۔


If the process memory region contains a memory-mapped file (such as an executable, DLL), then the VAD node stores information about its base address, file path, and memory protection.

اگر عمل میموری کے علاقے میں میموری سے منسلک فائل (جیسے کہ ایک قابل عمل، DLL) شامل ہے، تو VAD نوڈ اس کے بیس ایڈریس، فائل کے راستے، اور میموری تحفظ کے بارے میں معلومات محفوظ کرتا ہے۔


Similarly, other VAD nodes will describe process memory ranges, including the ones that contain mapped executable images such as DLLs.

اسی طرح، دوسرے VAD نوڈ عمل میموری کی حدود کو بیان کریں گے، بشمول وہ جو میپ شدہ قابل عمل تصاویر پر مشتمل ہیں جیسے DLLs۔


To get the module's information, the ldrmodules plugin enumerates all the VAD nodes that contain mapped executable images and compares the results with the three PEB lists to identify any discrepancies.

ماڈیول کی معلومات حاصل کرنے کے لیے، ldrmodules پلگ ان ان تمام VAD نوڈس کو شمار کرتا ہے جن میں میپ شدہ قابل عمل تصاویر شامل ہیں اور نتائج کا موازنہ تین PEB فہرستوں سے کرتا ہے تاکہ کسی بھی تضاد کی نشاندہی کی جا سکے۔


You can see that the ldrmodules plugin was able to identify a malicious DLL called TDSSoiqh.dll, which hides from all the three PEB lists.

آپ دیکھ سکتے ہیں کہ ldrmodules پلگ ان ایک بدنیتی پر مبنی DLL کی شناخت کرنے میں کامیاب رہا جسے TDSSoiqh.dll کہا جاتا ہے، جو تینوں PEB فہرستوں سے چھپا ہوا ہے۔


After you have identified the malicious process or DLL, you may want to dump it for further investigation.

بدنیتی پر مبنی عمل یا DLL کی شناخت کرنے کے بعد، آپ مزید تفتیش کے لیے اسے ڈمپ کرنا چاہیں گے۔


To dump a process executable from memory to disk, you can use the procdump plugin.

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


To dump the process executable, you need to know either its process ID or its physical offset.

عمل کرنے کے قابل عمل کو ڈمپ کرنے کے لیے، آپ کو یا تو اس کے عمل کی ID یا اس کے جسمانی آفسیٹ کو جاننے کی ضرورت ہے۔


Similarly, to the process executable, you can dump a malicious DLL to disk using the dlldump plugin.

اسی طرح، عمل کرنے کے قابل عمل کے لیے، آپ dlldump پلگ ان کا استعمال کرتے ہوئے ایک بدنیتی پر مبنی DLL کو ڈسک پر ڈمپ کر سکتے ہیں۔


Most malicious programs perform some network activity.

زیادہ تر بدنیتی پر مبنی پروگرام کچھ نیٹ ورک سرگرمیاں انجام دیتے ہیں۔


Inspecting the networking activity will help you determine the network operations of the malware on the infected system.

نیٹ ورکنگ کی سرگرمی کا معائنہ کرنے سے آپ کو متاثرہ نظام پر مالویئر کے نیٹ ورک آپریشنز کا تعین کرنے میں مدد ملے گی۔


To determine the active network connections on pre-vista systems, you can use the connections plugin.

پہلے سے موجود نظاموں پر فعال نیٹ ورک کنکشن کا تعین کرنے کے لیے، آپ کنکشن پلگ ان استعمال کر سکتے ہیں۔


Another plugin that you can use to list the network connections on pre-vista systems is connscan.

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


Sometimes, you may want to get the information about the open sockets and their associated processes.

کبھی کبھی، آپ کھلے ساکٹ اور ان سے وابستہ عمل کے بارے میں معلومات حاصل کرنا چاہیں گے۔


On Vista and later systems, you can use the netscan plugin to display both the network connections and the sockets.

Vista اور بعد کے نظاموں پر، آپ نیٹ ورک کنکشن اور ساکٹ دونوں کو ڈسپلے کرنے کے لیے netscan پلگ ان استعمال کر سکتے ہیں۔


From a forensics perspective, the registry can provide valuable information about the context of the malware.

فارنزک کے نقطہ نظر سے، رجسٹری مالویئر کے سیاق و سباق کے بارے میں قیمتی معلومات فراہم کر سکتی ہے۔


To print the registry key, subkeys, and its values, you can use the printkey plugin.

رجسٹری کی، سب کیز، اور اس کی قدروں کو پرنٹ کرنے کے لیے، آپ printkey پلگ ان استعمال کر سکتے ہیں۔


The Userassist registry key contains a list of programs that have been executed by the user on the system and the time when the program was run.

Userassist رجسٹری کی میں ان پروگراموں کی ایک فہرست شامل ہے جو صارف نے سسٹم پر چلائے ہیں اور وہ وقت جب پروگرام چلایا گیا تھا۔


In this section, we will focus on how to investigate services from the memory image.

اس حصے میں، ہم اس بات پر توجہ مرکوز کریں گے کہ میموری امیج سے خدمات کی تفتیش کیسے کی جائے۔


The explorer.exe process path is displayed on the disk.

ایکسپلورر ڈاٹ ای ایکس ای عمل کا راستہ ڈسک پر ظاہر ہوتا ہے۔


The memory range 0x004b0000-0x004effff does not contain any memory mapped file.

میموری کی حد 0x004b0000-0x004effff میں کوئی میموری میپ شدہ فائل نہیں ہے۔


The third node displays information about the process memory range of ntdll.dll.

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


Use the command '.process' followed by the address of the _EPROCESS structure.

کمانڈ '.process' استعمال کریں، اس کے بعد _EPROCESS ڈھانچے کا پتہ دیں۔


An application is generally not allowed to allocate memory with PAGE_EXECUTE_WRITECOPY protection.

عام طور پر کسی ایپلیکیشن کو پیج_ایگزیکیوٹ_رائٹ کاپی تحفظ کے ساتھ میموری مختص کرنے کی اجازت نہیں ہے۔


If an attacker wants to inject a PE file, a memory with PAGE_EXECUTE_READWRITE protection needs to be allocated.

اگر کوئی حملہ آور پی ای فائل داخل کرنا چاہتا ہے، تو پیج_ایگزیکیوٹ_ریڈ رائٹ تحفظ کے ساتھ میموری مختص کرنے کی ضرورت ہے۔


We can look for memory ranges containing a memory protection of PAGE_EXECUTE_READWRITE.

ہم پیج_ایگزیکیوٹ_ریڈ رائٹ کے میموری تحفظ پر مشتمل میموری رینجز تلاش کر سکتے ہیں۔


This malware injects code into a legitimate explorer.exe process.

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


The vadinfo plugin shows two memory ranges in the explorer.exe process.

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


It is hard to conclude if the preceding memory regions contain any malicious code.

یہ نتیجہ اخذ کرنا مشکل ہے کہ آیا پچھلی میموری خطوں میں کوئی نقصان دہ کوڈ موجود ہے۔


To determine if there is any malicious code, we can dump the contents of these memory regions.

یہ معلوم کرنے کے لیے کہ آیا کوئی نقصان دہ کوڈ موجود ہے، ہم ان میموری خطوں کے مواد کو ڈمپ کر سکتے ہیں۔


The db command dumps the content of the given memory address.

ڈی بی کمانڈ دیئے گئے میموری ایڈریس کا مواد ڈمپ کرتا ہے۔


The memory protection of PAGE_EXECUTE_READWRITE and the presence of the PE file is a clear indication.

پیج_ایگزیکیوٹ_ریڈ رائٹ کا میموری تحفظ اور پی ای فائل کی موجودگی ایک واضح اشارہ ہے۔


Sometimes, displaying the contents of a memory region may not be enough to identify malicious code.

بعض اوقات، میموری کے علاقے کے مواد کو ظاہر کرنا نقصان دہ کوڈ کی شناخت کے لیے کافی نہیں ہو سکتا۔


If you suspect that the memory region contains a shellcode, you can use dis command.

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


From the disassembly output, you can tell that a shellcode has been injected.

ڈس اسمبلی آؤٹ پٹ سے، آپ بتا سکتے ہیں کہ ایک شیل کوڈ داخل کیا گیا ہے۔


To dump a region of memory described by the VAD node, you can use the vaddump plugin.

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


Some malware programs use stealth techniques to bypass detection.

کچھ میلویئر پروگرام پتہ لگانے سے بچنے کے لیے خفیہ تکنیک استعمال کرتے ہیں۔


The malfind plugin automates the process of identifying suspicious memory regions.

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


Attackers use different variations of hollow process injection to bypass forensic analysis.

حملہ آور فرانزک تجزیہ کو نظرانداز کرنے کے لیے کھوکھلے عمل کے انجیکشن کی مختلف حالتیں استعمال کرتے ہیں۔


To identify API hooks in both process and kernel memory, you can use the apihooks Volatility plugin.

عمل اور کرنیل میموری دونوں میں API ہکس کی شناخت کے لیے، آپ apihooks Volatility پلگ ان استعمال کر سکتے ہیں۔


In the following example of Zeus bot, an executable is injected into the explorer.exe process's memory.

زیس بوٹ کی مندرجہ ذیل مثال میں، ایک قابل عمل فائل explorer.exe عمل کی میموری میں داخل کی جاتی ہے۔


The hooked API is then redirected to address 0x2c7ec48 (hook address).

اس کے بعد ہک شدہ API کو ایڈریس 0x2c7ec48 (ہک ایڈریس) پر ری ڈائریکٹ کیا جاتا ہے۔


A malicious program such as rootkit can load a kernel driver to run the code in kernel mode.

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


Windows has implemented various security mechanisms that are designed to prevent the execution of unauthorized code.

ونڈوز نے مختلف حفاظتی طریقہ کار نافذ کیے ہیں جو غیر مجاز کوڈ کے نفاذ کو روکنے کے لیے بنائے گئے ہیں۔


ایک طریقہ بوٹ کٹ انسٹال کرنا ہے۔


A Bootkit infects the early stages of the system startup process.

ایک بوٹ کٹ سسٹم اسٹارٹ اپ کے عمل کے ابتدائی مراحل کو متاثر کرتا ہے۔


We will start by listing the kernel modules.

ہم کرنیل ماڈیولز کی فہرست بنا کر شروع کریں گے۔


Listing kernel modules may not always help you identify the malicious kernel driver.

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


The modules plugin lists the kernel modules in the order in which they were loaded.

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