The fuzzy hashing technique identified the similarity between the samples.

अस्पष्ट हॅशिंग तंत्राने नमुन्यांमधील समानता ओळखली.


You might have a directory containing many malware samples.

तुमच्याकडे अनेक मालवेअरचे नमुने असलेली निर्देशिका असू शकते.


You can also match a suspect binary with a list of file hashes.

तुम्ही संशयित बायनरीची फाइल हॅशच्या सूचीशी देखील जुळवू शकता.


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.

एकाच इम्प्हॅश असलेल्या फाईल्सचा अर्थ असा नाही की त्या एकाच धोक्याच्या गटातील आहेत.


Similar to import hashing, section hashing can also help in identifying related samples.

इम्पोर्ट हॅशिंग प्रमाणेच, विभाग हॅशिंग संबंधित नमुने ओळखण्यात देखील मदत करू शकते.


A malware sample can contain many strings or binary indicators.

मालवेअरच्या नमुन्यात अनेक स्ट्रिंग किंवा बायनरी निर्देशक असू शकतात.


YARA is a powerful malware identification and classification tool.

YARA हे एक शक्तिशाली मालवेअर ओळख आणि वर्गीकरण साधन आहे.


The YARA rule consists of the following components.

YARA नियमामध्ये खालील घटक असतात.


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

नियम तयार झाल्यावर, पुढील पायरी म्हणजे फायली स्कॅन करण्यासाठी yara युटिलिटी वापरणे.


The preceding rule matches any file containing those ASCII and Unicode strings.

वरील नियम त्या ASCII आणि युनिकोड स्ट्रिंग्ज असलेल्या कोणत्याही फाइलशी जुळतो.


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

तुमचा हेतू एक्झिक्युटेबल फाइलमधील स्ट्रिंग शोधण्याचा असेल, तर तुम्ही खाली दर्शविल्याप्रमाणे नियम तयार करू शकता.


Running the preceding yara rule detected only the sample that contained the embedded excel document.

वरील yara नियम चालवल्याने केवळ एम्बेड केलेले एक्सेल दस्तऐवज असलेल्या नमुन्याचेच शोधन झाले.


YARA rule can also be used to detect packers.

YARA नियमाचा वापर पॅकर्स शोधण्यासाठी देखील केला जाऊ शकतो.


YARA can be used to detect patterns in any file.

YARA चा वापर कोणत्याही फाइलमधील नमुने शोधण्यासाठी केला जाऊ शकतो.


Static analysis is the first step in malware analysis.

मालवेअर विश्लेषणात स्थिर विश्लेषण हे पहिले पाऊल आहे.


Dynamic analysis involves analyzing a sample by executing it in an isolated environment.

डायनॅमिक विश्लेषणात, एकाकी वातावरणात नमुना कार्यान्वित करून त्याचे विश्लेषण करणे समाविष्ट आहे.


When performing dynamic analysis, you will be executing the malware specimen.

डायनॅमिक विश्लेषण करत असताना, तुम्ही मालवेअरचा नमुना कार्यान्वित कराल.


Monitoring a malware's interaction with the system and network will help in gaining a better understanding.

मालवेअरची प्रणाली आणि नेटवर्कशी होणारी परस्पर क्रिया तपासल्याने अधिक चांगली माहिती मिळू शकेल.


The strings utility can extract both ASCII and Unicode strings from a binary file.

स्ट्रिंग युटिलिटी बायनरी फाईलमधून ASCII आणि युनिकोड स्ट्रिंग्ज काढू शकते.


Malware authors often use obfuscation techniques to hide strings.

मालवेअर लेखक अनेकदा स्ट्रिंग लपवण्यासाठी अस्पष्ट तंत्रांचा वापर करतात.


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

FLOSS हे मालवेअरमधून अस्पष्ट स्ट्रिंग्ज आपोआप काढण्यासाठी डिझाइन केलेले साधन आहे.


The output showed references to an executable, Excel file, and Run registry key.

आउटपुटमध्ये एक्झिक्युटेबल, एक्सेल फाईल आणि रन रजिस्ट्री की चा संदर्भ दर्शविला.


If you want to exclude static strings, use the --no-static-strings switch.

तुम्हाला स्थिर स्ट्रिंग्ज वगळायच्या असतील, तर --no-static-strings स्विच वापरा.


Malware authors use obfuscation to protect the inner workings of the malware.

मालवेअर लेखक मालवेअरच्या अंतर्गत कार्यांचे संरक्षण करण्यासाठी अस्पष्टता वापरतात.


Packers and cryptors are used to obfuscate files to evade detection.

शोध टाळण्यासाठी पॅकर्स आणि क्रिप्टर्सचा वापर फायली अस्पष्ट करण्यासाठी केला जातो.


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

एका पॅकरमध्ये एक्झिक्युटेबलची सामग्री अस्पष्ट करण्यासाठी कॉम्प्रेशनचा वापर केला जातो.


Upon execution, the packed program extracts the original binary in memory.

एक्झिक्यूशनवर, पॅक केलेला प्रोग्राम मेमरीमध्ये मूळ बायनरी काढतो.


The Spybot sample was run through UPX, resulting in a packed executable.

स्पायबॉट नमुना UPX द्वारे चालवला गेला, परिणामी एक पॅक केलेले एक्झिक्युटेबल तयार झाले.


Running the strings command on the packed binary shows obscured strings.

पॅक केलेल्या बायनरीवर स्ट्रिंग्ज कमांड चालवल्याने अस्पष्ट स्ट्रिंग्ज दिसतात.


Exeinfo PE is a tool to 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 हेडरची तपासणी केल्यास बरीच माहिती मिळते.


Inspect file dependencies and imports to understand malware functionality.

मालवेअरची कार्यक्षमता समजून घेण्यासाठी फाइल अवलंबित्व आणि इम्पोर्ट्सची तपासणी करा.


Malware often depends on functions exposed by the operating system.

मालवेअर अनेकदा ऑपरेटिंग सिस्टमद्वारे दर्शविलेल्या कार्यांवर अवलंबून असते.


Inspecting the DLLs and API functions can reveal malware's capabilities.

DLL आणि API फंक्शन्सची तपासणी केल्याने मालवेअरची क्षमता उघड होऊ शकते.


If a malware has very few imports, it's a strong indication of a packed binary.

जर मालवेअरमध्ये फारच कमी इम्पोर्ट्स असतील, तर ते पॅक केलेल्या बायनरीचे मजबूत लक्षण आहे.


The executable and DLL can export functions used by other programs.

एक्झिक्युटेबल आणि DLL इतर प्रोग्रामद्वारे वापरली जाणारी कार्ये निर्यात करू शकतात.


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.

या टप्प्यावर, लिनक्स व्हीएम होस्ट-ओन्ली मोड वापरण्यासाठी कॉन्फिगर केले आहे आणि आयनेटसिम सर्व्हिसेसचे अनुकरण करण्यासाठी सेट केले आहे.


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 वर्कस्टेशनवर स्नॅपशॉट घेण्यासाठी, VM | स्नॅपशॉट | टेक स्नॅपशॉट वर क्लिक करा.


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/ येथून पायथन डाउनलोड करा.


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.

पायथन 2.7.x (उदा. 2.7.13) डाउनलोड करा; या पुस्तकात वापरलेले बहुतेक स्क्रिप्ट पायथन 2.7 व्हर्जनवर चालण्यासाठी लिहिलेले आहेत आणि ते पायथन 3 वर योग्यरित्या चालणार नाहीत.


Make sure you check the option to install pip and 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 and set up your Default gateway and the DNS server to the IP address of Linux VM.

विंडोज व्हीएमचा आयपी ऍड्रेस 192.168.1.x वर कॉन्फिगर करा आणि तुमचा डीफॉल्ट गेटवे आणि डीएनएस सर्व्हर लिनक्स व्हीएमच्या आयपी ऍड्रेसवर सेट करा.


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

लिनक्स व्हीएम आणि विंडोज व्हीएम दोन्ही सुरू करा आणि ते एकमेकांशी संवाद साधू शकतात हे तपासा.


You can check for the connectivity by running the ping command.

तुम्ही पिंग कमांड चालवून कनेक्टिव्हिटी तपासू शकता.


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.

या पुस्तकात, मी विविध मालवेअर विश्लेषण साधनांचा समावेश करेन.


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 using malware analysis.

हे पुस्तक मालवेअर विश्लेषणाचा वापर करून विंडोज मालवेअरचे वर्तन आणि वैशिष्ट्ये समजून घेण्यासाठी संकल्पना, साधने आणि तंत्रे शिकवते.


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

प्रगत मालवेअर आणि लक्ष्यित हल्ल्यांविरुद्ध लढण्यासाठी मालवेअर विश्लेषण एक आवश्यक कौशल्य बनले आहे.


If you are new to the field of malware analysis, this book should help you get started.

जर तुम्ही मालवेअर विश्लेषणाच्या क्षेत्रात नवीन असाल, तर हे पुस्तक तुम्हाला सुरुवात करण्यास मदत करेल.


Whether you are learning malware analysis to perform a forensic investigation, to respond to an incident, or for fun, this book enables you to accomplish your goals.

तुम्ही फॉरेन्सिक तपासणी करण्यासाठी, घटनेला प्रतिसाद देण्यासाठी किंवा मजा करण्यासाठी मालवेअर विश्लेषण शिकत असाल, तरीही हे पुस्तक तुम्हाला तुमची ध्येये साध्य करण्यास सक्षम करते.


If you're an incident responder, cybersecurity investigator, system administrator, malware analyst, forensic practitioner, student, or a curious security professional interested in learning or enhancing your malware analysis skills, then this book is for you.

जर तुम्ही घटना प्रतिसादक, सायबर सुरक्षा तपासक, सिस्टम प्रशासक, मालवेअर विश्लेषक, फॉरेन्सिक व्यवसायी, विद्यार्थी किंवा मालवेअर विश्लेषण कौशल्ये शिकण्यात किंवा सुधारण्यात स्वारस्य असलेले उत्सुक सुरक्षा व्यावसायिक असाल, तर हे पुस्तक तुमच्यासाठी आहे.


Chapter 1, Introduction to Malware Analysis, introduces readers to the concept of malware analysis, types of malware analysis, and setting up an isolated malware analysis lab environment.

धडा 1, मालवेअर विश्लेषणाची ओळख, वाचकांना मालवेअर विश्लेषण, मालवेअर विश्लेषणाचे प्रकार आणि एक अलग मालवेअर विश्लेषण प्रयोगशाळा वातावरण स्थापित करण्याच्या संकल्पनेची ओळख करून देतो.


Chapter 2, Static Analysis, 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, Dynamic Analysis, teaches the tools and techniques to determine the behavior of the malware and its interaction with the system.

धडा 3, डायनॅमिक विश्लेषण, मालवेअरचे वर्तन आणि सिस्टमशी त्याची परस्पर क्रिया निश्चित करण्यासाठी साधने आणि तंत्रे शिकवते.


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

तुम्ही मालवेअरशी संबंधित नेटवर्क आणि होस्ट-आधारित निर्देशक कसे मिळवायचे हे शिकाल.


Chapter 4, Assembly Language and Disassembly Primer, gives a basic understanding of assembly language and teaches the necessary skills required to perform code analysis.

धडा 4, असेंब्ली भाषा आणि डिसेंब्ली प्राइम, असेंब्ली भाषेची मूलभूत माहिती देते आणि कोड विश्लेषण करण्यासाठी आवश्यक कौशल्ये शिकवते.


Chapter 5, Disassembly Using IDA, covers the features of IDA Pro Disassembler, and you will learn how to use IDA Pro to perform static code analysis (Disassembly ).

धडा 5, आयडीए वापरून डिसेंब्ली, आयडीए प्रो डिसेंबलरची वैशिष्ट्ये समाविष्ट करते आणि तुम्ही स्थिर कोड विश्लेषण (डिसेंब्ली) करण्यासाठी आयडीए प्रो कसे वापरावे हे शिकाल.


Chapter 6, Debugging Malicious Binaries, 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 and to manipulate a program's behavior.

तुम्ही प्रोग्रामची अंमलबजावणी नियंत्रित करण्यासाठी आणि प्रोग्रामच्या वर्तनामध्ये फेरफार करण्यासाठी डीबगरचा वापर कसा करायचा हे शिकाल.


Chapter 7, Malware Functionalities and Persistence, describes various functionalities of malware using reverse engineering.

धडा 7, मालवेअर कार्यक्षमता आणि सातत्य, रिव्हर्स अभियांत्रिकीचा वापर करून मालवेअरच्या विविध कार्यांचे वर्णन करते.


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

हे दुर्भावनापूर्ण प्रोग्रामद्वारे वापरल्या जाणाऱ्या विविध सातत्य पद्धतींचा देखील समावेश करते.


Chapter 8, Code Injection and Hooking, teaches common code injection techniques used by the malicious programs to execute malicious code within the context of a legitimate process.

धडा 8, कोड इंजेक्शन आणि हुकिंग, सामान्य कोड इंजेक्शन तंत्र शिकवते जे दुर्भावनापूर्ण प्रोग्रामद्वारे कायदेशीर प्रक्रियेच्या संदर्भात दुर्भावनापूर्ण कोड कार्यान्वित करण्यासाठी वापरले जातात.


It also describes the hooking techniques used by the malware to redirect control to the malicious code to monitor, block, or filter an API's output.

हे मालवेअरद्वारे वापरल्या जाणाऱ्या हुकिंग तंत्रांचे देखील वर्णन करते जे एपीआयचे आउटपुट मॉनिटर, ब्लॉक किंवा फिल्टर करण्यासाठी दुर्भावनापूर्ण कोडकडे नियंत्रण पुनर्निर्देशित करते.


You will learn how to analyze malicious programs that use code injection and hooking techniques.

तुम्ही कोड इंजेक्शन आणि हुकिंग तंत्रज्ञान वापरणारे दुर्भावनापूर्ण प्रोग्राम कसे तपासायचे हे शिकाल.


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.

जर तुम्हाला इंटरनेटवर आमच्या कामाच्या कोणत्याही स्वरूपातील बेकायदेशीर प्रती आढळल्यास, तुम्ही आम्हाला स्थान पत्ता किंवा वेबसाइटचे नाव दिल्यास आम्ही आभारी राहू.


Please contact us at copyright@packtpub.com with a link to the material.

सामग्रीची लिंक देऊन कृपया copyright@packtpub.com वर संपर्क साधा.


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?

हे पुस्तक वाचून वापरल्यानंतर, तुम्ही ते ज्या साइटवरून विकत घेतले, तिथे रिव्ह्यू का देत नाही?


Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book.

संभाव्य वाचक तुमचं निःपक्षपाती मत पाहून खरेदीचा निर्णय घेऊ शकतात, पॅक्टमध्ये आम्ही तुमच्या उत्पादनांबद्दलचे विचार समजू शकतो, आणि आमचे लेखक तुमच्या पुस्तकावरील प्रतिक्रिया पाहू शकतात.


Thank you! For more information about Packt, please visit packtpub.com.

धन्यवाद! पॅक्टबद्दल अधिक माहितीसाठी, कृपया packtpub.com ला भेट द्या.


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.

दुर्भावनापूर्ण सॉफ्टवेअरचे विश्लेषण करण्यासाठी आवश्यक असलेले ज्ञान, कौशल्ये आणि साधने अशा हल्ल्यांचा शोध घेणे, तपास करणे आणि त्यापासून बचाव करणे आवश्यक आहे.


In this chapter, you will learn the following topics: What malware means and its role in the cyber-attacks Malware analysis and its significance in digital forensics Different types of malware analysis Setting up the lab environment Various sources to obtain malware samples.

या अध्यायात, तुम्ही खालील विषय शिकाल: मालवेअरचा अर्थ आणि सायबर हल्ल्यांमधील त्याची भूमिका मालवेअर विश्लेषण आणि डिजिटल फॉरेन्सिकमधील त्याचे महत्त्व विविध प्रकारचे मालवेअर विश्लेषण प्रयोगशाळेचे वातावरण सेट करणे मालवेअर नमुने मिळवण्याचे विविध स्रोत.


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 ड्राइव्हसारख्या विविध संप्रेषण चॅनेलद्वारे वितरित केले जाऊ शकते.


Disrupting computer operations Stealing sensitive information, including personal, business, and financial data Unauthorized access to the victim's system Spying on the victims Sending spam emails Engaging in distributed-denial-of-service attacks (DDOS) Locking up the files on the computer and holding them for ransom

संगणक कार्यप्रणालीमध्ये व्यत्यय आणणे, वैयक्तिक, व्यवसाय आणि आर्थिक डेटासह संवेदनशील माहिती चोरणे, पीडितांच्या सिस्टममध्ये अनधिकृत प्रवेश करणे, पीडितांवर पाळत ठेवणे, स्पॅम ईमेल पाठवणे, वितरित-नकार-सेवा हल्ल्यांमध्ये (DDOS) सहभागी होणे, संगणकावरील फायली लॉक करणे आणि खंडणीसाठी त्या ठेवणे.


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:

मालवेअरचे विश्लेषण करत असताना, तुम्हाला अनेक प्रकारच्या दुर्भावनापूर्ण प्रोग्राम्सचा सामना करावा लागतो; यापैकी काही दुर्भावनापूर्ण प्रोग्राम्स त्यांच्या कार्यक्षमतेवर आणि हल्ल्याच्या पद्धतीवर आधारित येथे वर्गीकृत केले आहेत:


The code will execute after the 'else' block.

'एल्स' ब्लॉकनंतर कोड कार्यान्वित होईल.


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 च्या बरोबर नसेल, तर 'एल्स' ब्लॉक वगळला जाईल.


The code inside the 'if' block is executed.

'इफ' ब्लॉकमधील कोड कार्यान्वित केला जातो.


The 'if-else-if-else' statement is used in the C code.

सी कोडमध्ये 'इफ-एल्स-इफ-एल्स' विधान वापरले जाते.


येथे दोन सशर्त जंप पॉइंट्स आहेत.


Unconditional jumps skip the 'else' statement.

अशर्त जंप 'एल्स' विधान वगळतात.


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

चला, कोडचे त्याच्या उच्च-स्तरीय समतुल्य भाषेत भाषांतर करूया.


Assign symbolic names to the memory address.

मेमरी पत्त्यांना प्रतीकात्मक नावे द्या.


The 'cmp' and 'jnz' instructions form a conditional statement.

'cmp' आणि 'jnz' सूचना सशर्त विधान तयार करतात.


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

जेव्हा x 0 च्या बरोबर असेल, तेव्हा जंप घेतला जाणार नाही.


The condition in the 'if' statement was reversed.

'इफ' विधानामधील अट उलटली होती.


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

एक अट पूर्ण होईपर्यंत लूप कोडचा एक ब्लॉक कार्यान्वित करतात.


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

सर्वात सामान्य दोन प्रकारचे लूप म्हणजे 'फॉर' आणि 'व्हाईल'.


The initialization statement is executed only once.

इनिशियलायझेशन स्टेटमेंट फक्त एकदाच कार्यान्वित केले जाते.


दोन्ही प्रकरणांमध्ये, जंप घेतला जाईल.


The code is checking if i is greater than or equal to 5.

कोड तपासत आहे की i 5 पेक्षा मोठे किंवा समान आहे का.


x ची किंमत 1 ने वाढवली जाते.


A function is a block of code that performs specific tasks.

एक फंक्शन म्हणजे कोडचा एक ब्लॉक आहे जो विशिष्ट कार्ये करतो.


The DLL sample was run with the following command.

डीएलएल नमुना खालील कमांड वापरून चालवला गेला.


Even though obe.dll was loaded into the memory of rundll32.exe, it did not trigger any behavior.

जरी obe.dll rundll32.exe च्या मेमरीमध्ये लोड झाला, तरीही त्याने कोणतेही वर्तन सुरू केले नाही.


This is because DLL's entry point function does not implement any functionality.

याचे कारण असे आहे की DLL चे एंट्री पॉइंट फंक्शन कोणतीही कार्यक्षमता लागू करत नाही.


On the other hand, running the sample with the DllRegisterServer function as shown below, triggered an HTTPS communication to the C2 server.

दुसरीकडे, खाली दर्शविल्याप्रमाणे DllRegisterServer फंक्शनसह नमुना चालवल्यास C2 सर्व्हरला HTTPS संवाद सुरू झाला.


You can write a script to determine all the exported functions in a DLL and call them in sequence while running the monitoring tools.

तुम्ही DLL मधील सर्व निर्यात केलेले कार्य निर्धारित करण्यासाठी एक स्क्रिप्ट लिहू शकता आणि मॉनिटरिंग टूल्स चालवताना त्यांना क्रमाने कॉल करू शकता.


This technique can help in understanding the functionality of each exported function.

ही पद्धत प्रत्येक निर्यात केलेल्या कार्याची कार्यक्षमता समजून घेण्यास मदत करू शकते.


The DLL used in this example was delivered via powerpoint.

या उदाहरणात वापरलेले DLL पॉवरपॉइंटद्वारे वितरित केले गेले.


The DLL (SearchCache.dll) consists of an export function, _flushfile@16, whose functionality is to delete a file.

DLL (SearchCache.dll) मध्ये _flushfile@16 नावाचे निर्यात कार्य आहे, ज्याचे कार्य फाइल डिलीट करणे आहे.


To demonstrate the delete functionality, a test file (file_to_delete.txt) was created, and the monitoring tools were launched.

डिलीट कार्यक्षमता दर्शविण्यासाठी, एक टेस्ट फाइल (file_to_delete.txt) तयार केली गेली आणि मॉनिटरिंग टूल्स सुरू केली गेली.


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

खालील कमांड चालवल्यानंतर, टेस्ट फाइल डिस्कवरून डिलीट केली गेली:


To determine the parameters and the type of parameters accepted by an export function, you will need to perform code analysis.

एक्स्पोर्ट फंक्शनद्वारे स्वीकारलेले पॅरामीटर्स आणि पॅरामीटर्सचा प्रकार निश्चित करण्यासाठी, तुम्हाला कोड विश्लेषण करणे आवश्यक आहे.


Most of the time, launching a DLL with rundll32.exe will work fine, but some DLLs check if they are running under a particular process.

बहुतेक वेळा, rundll32.exe सह DLL सुरू करणे चांगले काम करेल, परंतु काही DLL तपासतात की ते विशिष्ट प्रक्रियेअंतर्गत चालत आहेत की नाही.


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

अशा परिस्थितीत, तुम्हाला वर्तन सुरू करण्यासाठी DLL विशिष्ट प्रक्रियेत इंजेक्ट करावे लागेल.


The DLL (tdl.dll) used in the following example, is a component of TDSS Rootkit.

पुढील उदाहरणात वापरलेले DLL (tdl.dll), TDSS रूटकिटचा एक घटक आहे.


Running the DLL using the following command generated an error stating that the DLL initialization routine failed.

खालील कमांड वापरून DLL चालवल्याने एक त्रुटी निर्माण झाली, ज्यामध्ये म्हटले आहे की DLL इनिशियलायझेशन प्रक्रिया अयशस्वी झाली.


To understand the condition that triggered the error, static code analysis (reverse engineering) was carried out.

त्रुटी कशाने सुरू झाली हे समजून घेण्यासाठी, स्थिर कोड विश्लेषण (रिव्हर्स इंजिनिअरिंग) केले गेले.


The malware created a folder (resycled) and a file autorun.inf on the C:\ drive.

मालवेअरने C:\ ड्राइव्हवर एक फोल्डर (resycled) आणि एक फाइल autorun.inf तयार केली.


The malware added the following registry entries; from the added entries you can tell that the malware is storing some encrypted or configuration data in the registry:

मालवेअरने खालील रजिस्ट्री नोंदी जोडल्या; जोडलेल्या नोंदीवरून, आपण हे सांगू शकता की मालवेअर रजिस्ट्रीमध्ये काही एन्क्रिप्टेड किंवा कॉन्फिगरेशन डेटा संग्रहित करत आहे:


During malware investigation, you may come across DLL, that will run only when it is loaded as a service.

मालवेअरच्या तपासादरम्यान, तुम्हाला असे DLL मिळू शकते, जे केवळ सर्व्हिस म्हणून लोड झाल्यावरच चालते.


Dynamic analysis is a great technique to understand the behavior of malware and to determine its network and host-based indicators.

मालवेअरचे वर्तन समजून घेण्यासाठी आणि त्याचे नेटवर्क आणि होस्ट-आधारित निर्देशक निश्चित करण्यासाठी डायनॅमिक विश्लेषण एक उत्तम तंत्र आहे.


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.

नोरीबेन वापरण्यासाठी, ते तुमच्या विंडोज VM मध्ये डाउनलोड करा, ते एका फोल्डरमध्ये एक्स्ट्रॅक्ट करा आणि Noriben.py पायथन स्क्रिप्ट चालवण्यापूर्वी प्रक्रिया मॉनिटर (Procmon.exe) त्याच फोल्डरमध्ये कॉपी करा.


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.

मालवेअर कार्यान्वित झाल्यावर, तुम्हाला मालवेअर चालवण्याचा परिणाम म्हणून तयार होणारा नेटवर्क डेटा ट्रॅफिक कॅप्चर करायचा असेल.


This will help you understand the communication channel used by the malware and will also help in determining network-based indicators.

यामुळे तुम्हाला मालवेअरद्वारे वापरले जाणारे संवाद चॅनेल समजून घेण्यास मदत होईल आणि नेटवर्क-आधारित निर्देशक निश्चित करण्यात देखील मदत होईल.


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 सर्व्हरशी कनेक्ट करण्याची परवानगी देणे चांगली कल्पना नाही.


During malware analysis, you need to determine the behavior of the malware without allowing it to contact the actual command and control (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, इत्यादी)模拟 करण्यासाठी एक विनामूल्य Linux-आधारित सॉफ्टवेअर संच आहे.


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 विनंत्यांना प्रतिसाद देण्यासाठी आणि एक्स्टेंशनवर आधारित कोणत्याही फायली परत करण्यासाठी देखील कॉन्फिगर केले जाऊ शकते.


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

असे समजू या की 100 0x403000 पासून सुरू होणाऱ्या मेमरी पत्त्यावर संग्रहित केले गेले.


To move a value from the memory into a register in assembly language, you must use the address of the value.

असेम्ब्ली भाषेत मेमरीमधून रजिस्टरमध्ये व्हॅल्यू हलवण्यासाठी, तुम्हाला व्हॅल्यूचा पत्ता वापरावा लागेल.


The square bracket specifies that you want the value stored at the memory location, rather than the address itself.

चौरस कंस निर्दिष्ट करतो की तुम्हाला पत्त्याऐवजी मेमरी स्थानावर संग्रहित व्हॅल्यू हवी आहे.


mov eax,[0x403000] ; eax will now contain 00 00 00 64 (i.e 100)

mov eax,[0x403000] ; eax आता 00 00 00 64 (म्हणजे 100) दर्शवेल.


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

रिव्हर्स इंजिनिअरिंग दरम्यान, तुम्हाला खाली दर्शविल्याप्रमाणे सूचना दिसतील.


The square brackets may contain a register, a constant added to a register, or a register added to a register.

चौरस कंसात एक रजिस्टर, रजिस्टरमध्ये जोडलेला स्थिर किंवा रजिस्टरमध्ये जोडलेले रजिस्टर असू शकते.


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

लक्षात ठेवण्यासारखी सर्वात सोपी गोष्ट म्हणजे चौरस कंसातील प्रत्येक गोष्ट पत्ता दर्शवते.


lea ebx,[0x403000] ; loads the address 0x403000 into ebx

lea ebx,[0x403000] ; 0x403000 पत्ता ebx मध्ये लोड करते.


You can move a value from a register to memory by swapping operands so that the memory address is on the left-hand side (destination) and the register is on the right-hand side (source).

ऑपरेंडची अदलाबदल करून तुम्ही रजिस्टरमधून मेमरीमध्ये व्हॅल्यू हलवू शकता, जेणेकरून मेमरी पत्ता डाव्या बाजूला (destination) आणि रजिस्टर उजव्या बाजूला (source) असेल.


mov [0x403000],eax ; moves 4 byte value in eax to memory location starting at 0x403000

mov [0x403000],eax ; eax मधील 4-byte व्हॅल्यू 0x403000 पासून सुरू होणाऱ्या मेमरी स्थानावर हलवते.


mov dword ptr [402000],13498h ; moves dword value 0x13496 into the address 0x402000

mov dword ptr [402000],13498h ; dword व्हॅल्यू 0x13496 पत्ता 0x402000 मध्ये हलवते.


Let's take a look at a simple challenge.

चला, एक सोपा आव्हान पाहूया.


Can you figure out what this code snippet does, and can you translate it back to a pseudocode (high-level language equivalent)?

तुम्ही या कोड स्निपेटचे कार्य शोधू शकता का, आणि तुम्ही त्याचे स्यूडोकोडमध्ये (उच्च-स्तरीय भाषेतील समतुल्य) भाषांतर करू शकता?


The preceding 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 द्वारे तात्पुरत्या स्टोरेजसाठी केला जातो.


In high-level languages, variables have data types.

उच्च-स्तरीय भाषांमध्ये, व्हेरिएबल्सचे डेटा प्रकार असतात.


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

तुम्ही असेंब्ली भाषेत बेरीज, वजाबाकी, गुणाकार आणि भागाकार करू शकता.


The mul instruction takes only one operand; that operand is multiplied by the content of either the al, ax, or eax register.

mul सूचना फक्त एक ऑपरेंड घेते; ते ऑपरेंड al, ax, किंवा eax रजिस्टरच्या सामग्रीने गुणले जाते.


चला, आणखी एक सोपा आव्हान स्वीकारूया.


At this point, all of the values on the stack are logically removed, even though they are physically present.

या क्षणी, स्टॅकवरील सर्व मूल्ये तार्किकदृष्ट्या काढली जातात, जरी ती शारीरिकरित्या उपस्थित असली तरी.


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

मुख्य कार्याने टेस्ट फंक्शनला कॉल केले आणि पॅरामीटर्स स्टॅकवर ढकलून टेस्ट फंक्शनला पास केले.


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.

Microsoft Windows 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

असेंब्ली भाषेत, अॅरेमधील कोणत्याही घटकाचा पत्ता तीन गोष्टी वापरून मोजला जातो: अॅरेचा बेस ऍड्रेस, घटकाचा निर्देशांक, अॅरेमधील प्रत्येक घटकाचा आकार.


The backward jump at ➊, to loc_401022, indicates the loop, and the code between ➊ and ➋ is the part of the loop.

➊ येथील loc_401022 कडे असलेले बॅकवर्ड जंप लूप दर्शवते आणि ➊ आणि ➋ मधील कोड लूपचा भाग आहे.


स्ट्रिंग अक्षरांचा एक अॅरे आहे.


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 x86 family of processors provides string instructions, which operate on strings.

प्रोसेसरचे x86 कुटुंब स्ट्रिंग सूचना प्रदान करते, जे स्ट्रिंगवर कार्य करतात.


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 बंद करून डेटाबेस सेव्ह करू शकता.


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

चला, आणखी एक सोपा प्रोग्राम पाहूया आणि IDA ची आणखी काही वैशिष्ट्ये तपासूया.


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 ने व्हेरिएबल्सचे पत्ते वापरले जातात हे दर्शविण्यासाठी ऑफसेट कीवर्ड वापरले.


IDA gives you the ability to reformat constant values as a decimal, octal, or binary values.

IDA तुम्हाला स्थिर मूल्यांना दशांश, अष्टक किंवा बायनरी मूल्यांमध्ये पुन्हा फॉरमॅट करण्याची क्षमता देते.


Another great feature of IDA is that it makes navigating to anywhere within a program much easier.

IDA चे आणखी एक उत्तम वैशिष्ट्य म्हणजे ते प्रोग्राममधील कोणत्याही ठिकाणी नेव्हिगेट करणे खूप सोपे करते.


When a program is disassembled, IDA labels every location in the program.

जेव्हा एखादा प्रोग्राम डिसअसेम्बल केला जातो, तेव्हा IDA प्रोग्राममधील प्रत्येक स्थानाला लेबल करते.


IDA keeps track of your navigation history.

IDA तुमच्या नेव्हिगेशन इतिहासाचा मागोवा ठेवते.


Another way to navigate is by using cross-references.

नेव्हिगेट करण्याचा आणखी एक मार्ग म्हणजे क्रॉस-रेफरन्स वापरणे.


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

क्रॉस-रेफरन्स डेटा क्रॉस-रेफरन्स किंवा कोड क्रॉस-रेफरन्स असू शकतात.


A data cross-reference specifies how the data is accessed within a binary.

डेटा क्रॉस-रेफरन्स बायनरीमध्ये डेटा कसा ऍक्सेस केला जातो हे निर्दिष्ट करते.


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

कोड क्रॉस-रेफरन्स एका सूचनातून दुसऱ्या सूचनाकडे नियंत्रण प्रवाह दर्शवते.


The 64-bit Windows operating system can run a 32-bit executable.

६४-बिट विंडोज ऑपरेटिंग सिस्टम ३२-बिट एक्झिक्युटेबल चालवू शकते.


When you are analyzing a 32-bit malware on 64-bit Windows, if you find malware accessing the system32 directory, it is really accessing the syswow64 directory.

जेव्हा तुम्ही ६४-बिट विंडोजवर ३२-बिट मालवेअरचे विश्लेषण करत असाल, आणि मालवेअर सिस्टिम32 निर्देशिकेत प्रवेश करत असेल, तेव्हा तो प्रत्यक्षात syswow64 निर्देशिकेत प्रवेश करत असतो.


The disassembly and decompiling skills that you learned in this chapter will help you to gain a deeper understanding of how malicious code works, at a low level.

या अध्यायात तुम्ही शिकलेल्या डिसेंबली आणि डीकम्पाइलिंग कौशल्यामुळे तुम्हाला दुर्भावनापूर्ण कोड (malicious code) कसा काम करतो, हे कमी पातळीवर अधिक चांगल्या प्रकारे समजून घेण्यास मदत होईल.


A debugger is a program which also disassembles the code; apart from that, it allows you to execute the compiled binary in a controlled manner.

डीबगर हे एक असे प्रोग्राम आहे जे कोडचे विघटन (disassemble) देखील करते; याव्यतिरिक्त, ते तुम्हाला संकलित बायनरी नियंत्रित पद्धतीने कार्यान्वित (execute) करण्यास अनुमती देते.


IDA can run on various platforms (Windows, Linux, and macOS) and supports analysis of various file formats, including the PE/ELF/Macho-O formats.

आयडीए विविध प्लॅटफॉर्मवर (Windows, Linux, आणि macOS) चालते आणि PE/ELF/Macho-O फॉरमॅटसह विविध फाईल फॉरमॅटच्या विश्लेषणास समर्थन देते.


You can download the freeware version of IDA for non- commercial use.

तुम्ही IDA चे फ्रीवेअर व्हर्जन (freeware version) गैर-व्यावसायिक वापरासाठी डाउनलोड करू शकता.


The commercial version of IDA does not lack any functionality and comes with full-year free email support and upgrades.

आयडीएच्या व्यावसायिक आवृत्तीत (commercial version) कोणतीही कार्यक्षमता कमी नाही आणि ती संपूर्ण वर्षासाठी विनामूल्य ईमेल समर्थन आणि अपग्रेडसह येते.


To get a better understanding of IDA, just load a binary and explore various features of IDA.

आयडीए अधिक चांगल्या प्रकारे समजून घेण्यासाठी, फक्त एक बायनरी लोड करा आणि आयडीएची विविध वैशिष्ट्ये शोधा.


When you launch IDA, it will briefly display a screen showing your license information.

जेव्हा तुम्ही आयडीए सुरू करता, तेव्हा ती तुमच्या परवान्याची (license) माहिती दर्शवणारा एक पडदा (screen) थोडक्यात दाखवेल.


To load a file, you can either drag and drop or click on File | Open and select the file.

फाईल लोड करण्यासाठी, तुम्ही ड्रॅग आणि ड्रॉप करू शकता किंवा फाईल | ओपन (File | Open) वर क्लिक करून फाईल निवडू शकता.


After the disassembly, IDA performs an initial analysis to identify the compiler, function arguments, local variables, library functions, and their parameters.

डिसेंबलीनंतर, आयडीए कंपाइलर, फंक्शनचे युक्तिवाद (arguments), स्थानिक व्हेरिएबल्स, लायब्ररी फंक्शन्स आणि त्यांचे पॅरामीटर्स ओळखण्यासाठी सुरुवातीचे विश्लेषण करते.


The IDA desktop integrates the features of many common static analysis tools into a single interface.

आयडीए डेस्कटॉप अनेक सामान्य स्थिर विश्लेषण साधनांची वैशिष्ट्ये एकाच इंटरफेसमध्ये एकत्रित करते.


This is the primary window, and it displays the disassembled code.

हे मुख्य विंडो आहे आणि ते डिसेंबल केलेला कोड दर्शवते.


In the graph view mode, IDA displays only one function at a time, in a flowchart-style graph.

ग्राफ व्ह्यू मोडमध्ये, आयडीए एका वेळी फक्त एक फंक्शन, फ्लोचार्ट-शैलीतील ग्राफमध्ये दर्शवते.


The conditional jumps use green and red arrows; the green arrow indicates that the jump will be taken if the condition is true.

कंडिशनल जंप हिरवे आणि लाल बाण वापरतात; हिरवा बाण दर्शवतो की अट सत्य असल्यास जंप घेतला जाईल.


In the text view mode, the entire disassembly is presented in a linear fashion.

टेक्स्ट व्ह्यू मोडमध्ये, संपूर्ण डिसेंबली एका रेषीय पद्धतीने सादर केली जाते.


The functions window displays all the functions recognized by IDA.

फंक्शन विंडो आयडीएने ओळखलेली सर्व फंक्शन्स दर्शवते.


Library functions are compiler-generated and are not written by a malware author.

लायब्ररी फंक्शन्स कंपाइलरद्वारे तयार केली जातात आणि मालवेअर लेखकाने लिहिलेली नस्तात.


You should change the variable/function names to more meaningful names when analyzing malware.

मालवेअरचे विश्लेषण करत असताना, तुम्ही व्हेरिएबल/फंक्शनची नावे अधिक अर्थपूर्ण नावांमध्ये बदलली पाहिजेत.


Comments are useful to remind you of something important in the program.

प्रोग्राममधील काहीतरी महत्त्वाचे लक्षात ठेवण्यासाठी टिप्पण्या (comments) उपयुक्त आहेत.


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

CreateFile ला क्रॉस-रेफरन्स वापरून, आपण हे निश्चित करू शकतो की CreateFile API चा संदर्भ दोन कार्यांमध्ये आहे.


IDA employs a technology called Fast Library Identification and Recognition Technology (FLIRT).

आयडीए फास्ट लायब्ररी आयडेंटिफिकेशन अँड रेकग्निशन टेक्नॉलॉजी (FLIRT) नावाचे तंत्रज्ञान वापरते.


In this case, IDA was able to recognize the disassembled function at ➊ as an imported function, and named it CreateFileA.

या स्थितीत, IDA ➊ वर असेंब्ल्ड फंक्शनला आयात केलेले फंक्शन म्हणून ओळखू शकले आणि त्याचे नाव CreateFileA असे ठेवले.


IDA's capability to identify libraries and imported functions is extremely useful.

लायब्ररी आणि आयात केलेली कार्ये ओळखण्याची IDA ची क्षमता अत्यंत उपयुक्त आहे.


IDA also added names of parameters as comments to indicate which parameter was being pushed.

आयडीएने हे दर्शविण्यासाठी टिप्पण्या म्हणून पॅरामीटर्सची नावे देखील जोडली, की कोणता पॅरामीटर पुश केला जात आहे.


From the preceding disassembly listing, you can tell that malware either creates or opens a file (psto.exe).

मागील डिसेंबली सूचीवरून, आपण हे सांगू शकता की मालवेअर एकतर psto.exe नावाची फाईल तयार करते किंवा उघडते.


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

मालवेअर लेखक त्यांच्या सोर्स कोडमध्ये GENERIC_WRITE सारखे प्रतीकात्मक स्थिरांक वापरतात.


Similarly, the value 2, passed as the fifth argument (➍), represents the symbolic name CREATE_ALWAYS.

त्याचप्रमाणे, पाचवा युक्तिवाद (➍) म्हणून दिलेले मूल्य 2, प्रतीकात्मक नाव CREATE_ALWAYS दर्शवते.


Another feature of IDA is that it maintains a list of standard symbolic constants for the Windows API.

आयडीएचे आणखी एक वैशिष्ट्य म्हणजे ते विंडोज एपीआयसाठी मानक प्रतीकात्मक स्थिरांकांची सूची राखते.


After replacing the constants with symbolic names, the disassembly listing is translated.

स्थिरांकांना प्रतीकात्मक नावांनी बदलल्यानंतर, डिसेंबली सूचीचे भाषांतर केले जाते.


The code is now more readable, and from the code, you can tell that malware creates the file psto.exe.

आता कोड अधिक वाचनीय आहे, आणि कोडवरून, आपण हे सांगू शकता की मालवेअर psto.exe फाईल तयार करते.


Windows supports two parallel sets of APIs: one for ANSI strings, and the other for Unicode strings.

विंडोज दोन समांतर एपीआय संचनास समर्थन देते: एक ANSI स्ट्रिंगसाठी आणि दुसरे युनिकोड स्ट्रिंगसाठी.


You will often encounter function names with an Ex suffix in their names, such as RegCreateKeyEx.

तुम्हाला अनेकदा RegCreateKeyEx सारखी, त्यांच्या नावांमध्ये Ex प्रत्यय असलेली कार्ये दिसतील.


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

मालवेअर एकाधिक API कार्ये कशी वापरते हे समजून घेण्यासाठी 32-बिट मालवेअरचे उदाहरण पाहूया.


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 is moved into the ecx register.

RegOpenKeyEx ला कॉल करून मालवेअरने रन रजिस्ट्री कीचे हँडल उघडल्यानंतर, परत केलेले हँडल ecx रजिस्टरमध्ये हलवले जाते.


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.

या API साठी MSDN डॉक्युमेंटेशनवरून, आपण हे सांगू शकता की मालवेअर रन रजिस्ट्री कीमध्ये मूल्य सेट करण्यासाठी RegSetValueEx API वापरते.


After adding the entry to the registry key, the malware closes the handle to the registry key by passing the handle it acquired previously.

रजिस्ट्री कीमध्ये एंट्री जोडल्यानंतर, मालवेअर पूर्वी मिळवलेले हँडल पास करून रजिस्ट्री कीचे हँडल बंद करते.


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.

तुम्ही हे देखील पाहिले की मालवेअर ऑब्जेक्टचे (जसे की रजिस्ट्री की) हँडल कसे मिळवते आणि नंतर ते हँडल इतर API कार्यांसह कसे शेअर करते.


Debugging is a technique in which malicious code is executed.

डीबगिंग ही एक अशी तंत्र आहे ज्यामध्ये दुर्भावनापूर्ण कोड कार्यान्वित केला जातो.


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.

जेव्हा तुम्ही मालवेअरचे डीबगिंग करत असाल, तेव्हा योग्य काळजी घेणे आवश्यक आहे.


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.

प्रोग्राम डीबग करण्याचे दोन मार्ग आहेत: (a) डीबगरला चालू प्रक्रियेस जोडा आणि (b) नवीन प्रक्रिया सुरू करा.


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 the process is launched under a debugger, the execution will pause at the program's entry point.

जेव्हा प्रक्रिया डीबगर अंतर्गत सुरू केली जाते, तेव्हा अंमलबजावणी प्रोग्रामच्या एंट्री पॉइंटवर थांबेल.


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

प्रोग्रामचा एंट्री पॉइंट म्हणजे कार्यान्वित होणाऱ्या पहिल्या सूचनेचा पत्ता.


The 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).

डीबगरद्वारे ऑफर केलेल्या दोन महत्त्वाच्या क्षमता आहेत: (a) अंमलबजावणी नियंत्रित करण्याची क्षमता आणि (b) अंमलबजावणीमध्ये व्यत्यय आणण्याची क्षमता (ब्रेकपॉइंट्स वापरून).


Using a debugger, you can execute one or more instructions (or select functions) 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.

ब्रेकपॉइंट हे एक डीबगर वैशिष्ट्य आहे जे आपल्याला प्रोग्राममधील अतिविशिष्ट ठिकाणी प्रोग्राम अंमलबजावणीमध्ये व्यत्यय आणण्याची परवानगी देते.


You can set multiple breakpoints all over a program, and execution will be interrupted upon reaching any of the breakpoints.

तुम्ही प्रोग्राममध्ये सर्वत्र एकाधिक ब्रेकपॉइंट सेट करू शकता आणि कोणतेही ब्रेकपॉइंट गाठल्यावर अंमलबजावणीमध्ये व्यत्यय येईल.


In a 64-bit function, the stack space is allocated at the beginning of the function, and does not change until the end of the function.

६४-बिट फंक्शनमध्ये, स्टॅक स्पेस फंक्शनच्या सुरुवातीला वाटप केले जाते आणि फंक्शन संपेपर्यंत बदलत नाही.


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

वाटप केलेले स्टॅक स्पेस स्थानिक व्हेरिएबल्स आणि फंक्शन पॅरामीटर्स संग्रहित करण्यासाठी वापरले जाते.


In the preceding screenshot, note how the first instruction, sub rsp,48, allocates 0x48 (72) bytes of space on the stack.

मागील स्क्रीनशॉटमध्ये, पहिली सूचना, सब आरएसपी,४८, स्टॅकवर ०x४८ (७२) बाइट्सची जागा कशी वाटप करते, यावर लक्ष द्या.


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

पुश आणि पॉप सूचनांचा अभाव, फंक्शनद्वारे स्वीकारल्या जाणार्‍या पॅरामीटर्सची संख्या निश्चित करणे कठीण करते.


Another challenge is, if the values are moved into the registers rcx and rdx before the function call, it's hard to say whether they are parameters passed to the function.

आणखी एक आव्हान म्हणजे, जर फंक्शन कॉलपूर्वी व्हॅल्यूज रजिस्टर rcx आणि rdx मध्ये हलवल्या गेल्या, तर ते फंक्शनला पास केलेले पॅरामीटर्स आहेत की नाही हे सांगणे कठीण आहे.


दुर्भावनापूर्ण बायनरींचे डीबगिंग


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 and inspect its parameters to understand the malware functionality.

फंक्शन पॅरामीटर्स आणि रिटर्न व्हॅल्यूज कोठे शोधायचे याची कल्पना आल्यावर, तुम्ही एपीआय कॉलवर ब्रेकपॉइंट सेट करू शकता आणि मालवेअर कार्यक्षमते समजून घेण्यासाठी त्याचे पॅरामीटर्स तपासू शकता.


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

चला, ६४-बिट मालवेअरचे उदाहरण पाहूया जे रजिस्ट्रीमध्ये काही व्हॅल्यू सेट करण्यासाठी RegSetValueEx कॉल करते.


In the following screenshot, the breakpoint is triggered before the call to the RegSetValueEx.

पुढील स्क्रीनशॉटमध्ये, RegSetValueEx ला कॉल करण्यापूर्वी ब्रेकपॉइंट ट्रिगर केला जातो.


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

तुम्हाला फंक्शनला पास केलेले पॅरामीटर्स तपासण्यासाठी रजिस्टर्समधील व्हॅल्यूज आणि स्टॅक विंडो पहावी लागेल.


This will help you determine what registry value is set by the malware.

यामुळे मालवेअरद्वारे कोणती रजिस्ट्री व्हॅल्यू सेट केली जाते हे निर्धारित करण्यात मदत होईल.


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

x64dbg मध्ये, फंक्शन पॅरामीटर्सचा त्वरित सारांश मिळवण्याचा सर्वात सोपा मार्ग म्हणजे डीफॉल्ट विंडो पाहणे.


You can set a value in the Default window to display the number of parameters.

पॅरामीटर्सची संख्या प्रदर्शित करण्यासाठी तुम्ही डीफॉल्ट विंडोमध्ये व्हॅल्यू सेट करू शकता.


From the API documentation, you can tell that the RegSetValueEx API takes 6 parameters.

एपीआय डॉक्युमेंटेशनवरून, तुम्ही सांगू शकता की RegSetValueEx API 6 पॅरामीटर्स घेते.


The first parameter value, 0x2c, is the handle to the open registry key.

पहिला पॅरामीटर व्हॅल्यू, 0x2c, ओपन रजिस्ट्री कीचे हँडल आहे.


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 द्वारे लॉन्च केले जाईल.


At this point, you should have an understanding of how to debug a malicious executable to understand its functionality.

या टप्प्यावर, तुम्हाला मालवेअर एक्झिक्युटेबलचे डीबगिंग कसे करायचे आणि त्याची कार्यक्षमता समजून घेणे आवश्यक आहे.


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

पुढील विभागात, तुम्ही मालवेअर DLL चे डीबगिंग कसे करायचे आणि त्याचे वर्तन कसे निश्चित करायचे हे शिकाल.


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.

डीबगिंग दरम्यान Wireshark सारखी निरीक्षण साधने उपयुक्त आहेत.


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 the resource section.

रिसोर्स हॅकर टूल रिसोर्स विभागात PE फाइल दर्शवू शकते.


References to API calls indicate content extraction.

एपीआय कॉलचा संदर्भ सामग्री काढण्याचे सूचित करतो.


A breakpoint can be set on FindResourceA() API call.

FindResourceA() API कॉलवर ब्रेकपॉइंट सेट केला जाऊ शकतो.


The return value of FindResourceA() is a handle.

FindResourceA() चे रिटर्न व्हॅल्यू एक हँडल आहे.


LoadResource() retrieves the handle to the data.

LoadResource() डेटाचे हँडल पुनर्प्राप्त करते.


LockResource() obtains the pointer to the resource.

LockResource() रिसोर्सचा पॉइंटर मिळवतो.


The malware determines the size of the resource.

मालवेअर रिसोर्सचा आकार निश्चित करते.


The malware drops a DLL on the disk using CreateFileA.

मालवेअर CreateFileA वापरून डिस्कवर एक DLL टाकते.


The extracted PE content is written to the DLL using WriteFile().

WriteFile() वापरून काढलेली PE सामग्री DLL मध्ये लिहिली जाते.


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.

आयडीए तुम्हाला चारपेक्षा जास्त हार्डवेअर ब्रेकपॉइंट सेट करण्याची परवानगी देते, परंतु त्यापैकी फक्त चारच काम करतील.


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

तुम्ही हार्डवेअर ब्रेकपॉइंट्सचा वापर एक्झिक्यूट (डीफॉल्ट), राइटवर ब्रेक किंवा रीड/राइटवर ब्रेक घेण्यासाठी करू शकता.


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

मेमरी लोकेशनमधून तुमचा प्रोग्राम डेटाच्या तुकड्यावर (रीड/राइट) कधी ऍक्सेस करतो हे जाणून घेण्यासाठी हे ब्रेकपॉइंट उपयुक्त आहे.


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.

अट एक वास्तविक अट असू शकते, किंवा आयडीसी किंवा आयडीए पायथन अभिव्यक्ती असू शकते.


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.

तुम्ही ब्रेकपॉइंट एंट्रीवर राइट-क्लिक करू शकता आणि ब्रेकपॉइंट अक्षम किंवा हटवू शकता.


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

32-बिट मालवेअर नमुन्यातून डिसेंबली लिस्टिंगचा विचार करा.


The malware calls the CreateFileW API to create a file, but, just by looking at the disassembly listing, 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, and then run the program.

फाईलचे नाव निश्चित करण्यासाठी, आम्ही ज्या पत्त्यावर CreateFileW ला कॉल केला आहे, तिथे ब्रेकपॉइंट सेट करू शकतो आणि नंतर प्रोग्राम चालवू शकतो.


After the call to CreateFileW, the handle to the file will be returned in the eax register, which is copied into the esi register.

CreateFileW ला कॉल केल्यानंतर, फाईलचे हँडल eax रजिस्टरमध्ये परत केले जाईल, जे esi रजिस्टरमध्ये कॉपी केले जाते.


In this case, the malware is creating a file, SHAMple.dat, in the C:\Users\test\AppData\Local\Temp directory.

या प्रकरणात, मालवेअर C:\Users\test\AppData\Local\Temp डिरेक्टरीमध्ये SHAMple.dat नावाची फाईल तयार करत आहे.


The malware, after creating the file, passes the file handle as the first argument to the WriteFile function.

फाईल तयार केल्यानंतर, मालवेअर फाईल हँडल WriteFile फंक्शनच्या पहिल्या आर्गुमेंट म्हणून पास करते.


In this case, it is writing the string FunFunFun to the file.

या प्रकरणात, ते फाईलमध्ये FunFunFun स्ट्रिंग लिहित आहे.


In this section, you will use some of the concepts that you learned in Chapter 3, Dynamic Analysis, to debug a DLL using IDA.

या विभागात, तुम्ही IDA वापरून DLL डीबग करण्यासाठी, धडा 3, डायनॅमिक विश्लेषण, मध्ये शिकलेल्या काही संकल्पनांचा वापर कराल.


To debug a DLL using the IDA debugger, you first need to designate the executable (such as rundll32.exe) that will be used to load the DLL.

IDA डीबगर वापरून DLL डीबग करण्यासाठी, तुम्हाला प्रथम एक्झिक्युटेबल (rundll32.exe सारखे) निर्दिष्ट करणे आवश्यक आहे जे DLL लोड करण्यासाठी वापरले जाईल.


Set a breakpoint (F2) at the first instruction in the DLLMain function.

DLLMain फंक्शनमधील पहिल्या सूचनावर ब्रेकपॉइंट (F2) सेट करा.


You can also set breakpoints on any function exported by the DLL by navigating to it from IDA's Exports window.

तुम्ही IDA च्या निर्यात विंडोमधून नेव्हिगेट करून DLL द्वारे निर्यात केलेल्या कोणत्याही फंक्शनवर ब्रेकपॉइंट सेट करू शकता.


In the Application field, enter the full path to the executable that is used to load the DLL (rundll32.exe).

ॲप्लिकेशन फील्डमध्ये, DLL लोड करण्यासाठी वापरल्या जाणार्‍या एक्झिक्युटेबलचा संपूर्ण मार्ग प्रविष्ट करा (rundll32.exe).


The malware loads a malicious DLL into the address space of any new process that loads User32.dll.

T9000 नावाचे मालवेअर कोणत्याही नवीन प्रक्रियेच्या ऍड्रेस स्पेसमध्ये एक दुर्भावनापूर्ण DLL लोड करते जे User32.dll लोड करते.


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

ही पद्धत शोधण्यासाठी, AppInit_DLLs रजिस्ट्री मूल्यामध्ये संशयास्पद नोंदी शोधा.


Adversaries can exploit DLL search order to escalate privileges and achieve persistence.

शत्रू विशेषाधिकार वाढवण्यासाठी आणि सातत्य साधण्यासाठी DLL शोध क्रमाचा फायदा घेऊ शकतात.


The operating system searches for the DLL in a specific order in predefined locations.

ऑपरेटिंग सिस्टम पूर्वनिर्धारित स्थानांवर एका विशिष्ट क्रमाने DLL शोधते.


Malware can drop a malicious DLL in the Windows directory.

मालवेअर विंडोज निर्देशिकेत एक दुर्भावनापूर्ण DLL टाकू शकते.


The malicious DLL is loaded by explorer.exe from the Windows directory.

दुर्भावनापूर्ण DLL विंडोज निर्देशिकेतून explorer.exe द्वारे लोड केली जाते.


COM hijacking allows attackers to persist on the system and execute malicious code.

COM हायजैकिंगमुळे हल्लेखोरांना सिस्टमवर टिकून राहता येते आणि दुर्भावनापूर्ण कोड कार्यान्वित करता येतो.


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

एक हल्लेखोर कायदेशीर COM ऑब्जेक्टची रजिस्ट्री एंट्रीमध्ये बदल करतो.


The malware sets a registry value in HKCU\Software\Classes\CLSID.

मालवेअर HKCU\Software\Classes\CLSID मध्ये एक रजिस्ट्री मूल्य सेट करते.


Services run in the background without a user interface.

सेवा वापरकर्ता इंटरफेसशिवाय पार्श्वभूमीत चालतात.


An adversary can modify an existing service to persist on the system.

एक शत्रू सिस्टमवर टिकून राहण्यासाठी विद्यमान सेवेमध्ये बदल करू शकतो.


Malware can install a malicious program as a service.

मालवेअर एक दुर्भावनापूर्ण प्रोग्राम सेवा म्हणून स्थापित करू शकते.


The advantage of using a service is that it can start automatically.

सेवा वापरण्याचा फायदा असा आहे की ती आपोआप सुरू होऊ शकते.


Windows stores service configurations in the registry.

विंडोज रजिस्ट्रीमध्ये सेवा कॉन्फिगरेशन संग्रहित करते.


Malware can use the sc utility to create and start a service.

मालवेअर सेवा तयार करण्यासाठी आणि सुरू करण्यासाठी sc युटिलिटी वापरू शकते.


A service can be created using PowerShell or WMI.

पॉवरशेल किंवा WMI वापरून सेवा तयार केली जाऊ शकते.


An adversary can hijack an existing service.

एक शत्रू विद्यमान सेवेचे अपहरण करू शकतो.


Monitor changes to service registry entries.

सेवा रजिस्ट्री नोंदींमधील बदलांचे निरीक्षण करा.


Malware uses API calls to interact with the system.

मालवेअर सिस्टमशी संवाद साधण्यासाठी API कॉल वापरते.


In this chapter, you will learn about code injection techniques.

या अध्यायात, आपण कोड इंजेक्शन तंत्रांबद्दल शिकाल.


The command received from the C2, appropriate actions are performed by the malware.

C2 कडून मिळालेल्या आदेशानुसार, मालवेअरद्वारे योग्य कृती केल्या जातात.


To understand all the functionalities of this malware and how it processes the received data, refer to the author's presentation and the video demo.

या मालवेअरची सर्व कार्यक्षमता आणि ते प्राप्त डेटावर प्रक्रिया कशी करते हे समजून घेण्यासाठी, लेखकाचे सादरीकरण आणि व्हिडिओ डेमो पहा.


PowerShell is a management engine based on the .NET framework.

पॉवरशेल हे .NET फ्रेमवर्कवर आधारित व्यवस्थापन इंजिन आहे.


This engine exposes a series of commands called cmdlets.

हे इंजिन cmdlets नावाचे अनेक आदेश (कमांड) दर्शवते.


PowerShell is not a programming language, but it allows you to create useful scripts containing multiple commands.

पॉवरशेल ही प्रोग्रामिंग भाषा नाही, परंतु ती तुम्हाला अनेक आज्ञा असलेली उपयुक्त स्क्रिप्ट तयार करण्यास अनुमती देते.


Attackers use PowerShell to dynamically load and execute code directly from memory without accessing the file system.

आक्रमक (अटॅकर्स) फाईल सिस्टीममध्ये प्रवेश न करता मेमरीमधून थेट कोड लोड आणि कार्यान्वित (एक्झिक्युट) करण्यासाठी पॉवरशेलचा वापर करतात.


You can execute a PowerShell command using the interactive PowerShell console.

तुम्ही इंटरएक्टिव्ह पॉवरशेल कन्सोल वापरून पॉवरशेल कमांड कार्यान्वित करू शकता.


A cmdlet (such as Write-Host) is a compiled command written in a .NET Framework language which is meant to be small and serves a single purpose.

एक cmdlet (उदाहरणार्थ, Write-Host) ही .NET फ्रेमवर्क भाषेत लिहिलेली संकलित कमांड आहे, जी लहान असण्यासाठी आणि एकाच उद्देशासाठी कार्य करते.


एक cmdlet पॅरामीटर्स स्वीकारू शकते.


In PowerShell, variables can be used to store values.

पॉवरशेलमध्ये, व्हेरिएबल्सचा वापर मूल्ये (व्हॅल्यू) संग्रहित करण्यासाठी केला जाऊ शकतो.


The PowerShell script has an extension of .ps1.

पॉवरशेल स्क्रिप्टमध्ये .ps1 हे एक्स्टेंशन असते.


By default, you will not be allowed to execute a PowerShell script.

डीफॉल्टनुसार, तुम्हाला पॉवरशेल स्क्रिप्ट कार्यान्वित (एक्झिक्युट) करण्याची परवानगी दिली जाणार नाही.


The execution policy determines the conditions under which PowerShell scripts are executed.

एक्झिक्युशन पॉलिसी ( अंमलबजावणी धोरण) हे निर्धारित करते की कोणत्या परिस्थितीत पॉवरशेल स्क्रिप्ट कार्यान्वित केल्या जातात.


You can change the execution policy setting using the Set-ExecutionPolicy command.

तुम्ही Set-ExecutionPolicy कमांड वापरून अंमलबजावणी धोरण सेटिंग बदलू शकता.


Remember to execute malicious script in an isolated environment.

घातक स्क्रिप्ट (malicious script) एका वेगळ्या वातावरणात (isolated environment) कार्यान्वित (एक्झिक्युट) करायला विसरू नका.


If you wish to have control over the execution, then you can debug the PowerShell script using PowerShell ISE.

जर तुम्हाला अंमलबजावणीवर नियंत्रण ठेवायचे असेल, तर तुम्ही पॉवरशेल ISE वापरून पॉवरशेल स्क्रिप्ट डीबग करू शकता.


The attacker must first trick the user into executing the malicious code.

आक्रमक (अटॅकर)ने प्रथम वापरकर्त्याला दुर्भावनापूर्ण कोड कार्यान्वित (एक्झिक्युट) करण्यासाठी फसवले पाहिजे.


In the same manner, attackers use various PowerShell command-line arguments to bypass the execution policy.

त्याचप्रमाणे, आक्रमक (अटॅकर्स) अंमलबजावणी धोरण (एक्झिक्युशन पॉलिसी) बायपास करण्यासाठी विविध पॉवरशेल कमांड-लाइन युक्तिवाद वापरतात.


Apart from using PowerShell command-line arguments, attackers also make use of cmdlets or .NET APIs in the PowerShell scripts.

पॉवरशेल कमांड-लाइन युक्तिवादांचा वापर करण्याव्यतिरिक्त, आक्रमक (अटॅकर्स) पॉवरशेल स्क्रिप्टमध्ये cmdlets किंवा .NET API चा देखील वापर करतात.


Adversaries make use of various obfuscation techniques to make analysis harder.

आक्रमक (अटॅकर्स) विश्लेषण (analysis) अधिक कठीण करण्यासाठी विविध अस्पष्ट तंत्रांचा (obfuscation techniques) वापर करतात.


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 द्वारे दर्शविलेली कार्ये बोलावतात.


This binary is the core component of the Windows operating system.

हा बायनरी विंडोज ऑपरेटिंग सिस्टमचा मुख्य घटक आहे.


The executive implements functions called system service routines.

कार्यकारी प्रणाली सेवा दिनचर्या नावाचे कार्य अंमलात आणते.


The kernel implements low-level operating system services.

कर्नल लो-लेव्हल ऑपरेटिंग सिस्टम सेवा लागू करते.


Win32K.sys implements UI and graphics device interface (GDI) services.

Win32K.sys UI आणि ग्राफिक्स डिव्हाइस इंटरफेस (GDI) सेवा लागू करते.


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

युजर-स्पेसमध्ये असा कोड असतो जो प्रतिबंधित प्रवेशासह चालतो.


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

कर्नल स्पेसमध्ये स्वतः कर्नल आणि डिव्हाइस ड्राइव्हर्स असतात.


Code running in the kernel space executes with a high privilege.

कर्नल स्पेसमध्ये चालणारा कोड उच्च विशेषाधिकारासह कार्यान्वित होतो.


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.

तृतीय-पक्षीय ड्राइव्हर्स त्यांचा कोड कर्नल मोडमध्ये चालवू शकतात.


Space specifies the location where the contents are stored.

स्पेस हे निर्दिष्ट करते की सामग्री कोठे संग्रहित केली जाते.


मोड म्हणजे अंमलबजावणीची पद्धत.


How can a malware binary write content to a file?

मालवेअर बायनरी फाईलमध्ये सामग्री कशी लिहितो?


Most APIs end up calling the system service routines.

बहुतेक API शेवटी सिस्टम सेवा दिनचर्यांना कॉल करतात.


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

ntdll.dll युजर-स्पेस आणि कर्नल स्पेसमध्ये प्रवेशद्वार म्हणून कार्य करते.


An application uses the service by calling the API.

ॲप्लिकेशन API ला कॉल करून सेवेचा वापर करते.


When a process starts, the main thread gets created.

जेव्हा प्रक्रिया सुरू होते, तेव्हा मुख्य थ्रेड तयार होतो.


The thread that is created starts executing in the user-mode.

तयार केलेला थ्रेड युजर-मोडमध्ये कार्यान्वित होण्यास सुरुवात करतो.


शिम कोड API कॉल्स पुनर्निर्देशित करतो.


Applications use the IAT to call Windows APIs.

ॲप्लिकेशन्स विंडोज API ला कॉल करण्यासाठी IAT चा वापर करतात.


शिम API पॅरामीटर्समध्ये बदल करू शकते.


शिम API कॉल्सचे पुनर्निर्देशन करू शकते.


शिम API प्रतिसाद बदलू शकते.


Let's look at an example to understand shims.

शिम समजून घेण्यासाठी, चला एक उदाहरण पाहूया.


An application checked the OS version before Windows 7.

विंडोज 7 पूर्वी, ॲप्लिकेशन OS व्हर्जन तपासत होते.


ॲप्लिकेशनने GetVersion() API वापरले.


The application worked only on Windows XP.

ॲप्लिकेशन फक्त विंडोज XP वर काम करत होते.


The application would not work on Windows 7.

ॲप्लिकेशन विंडोज 7 वर काम करणार नाही.


You can apply a shim called WinXPVersionLie.

तुम्ही WinXPVersionLie नावाचे शिम वापरू शकता.


The shim engine intercepts the GetVersion() API call.

शिम इंजिन GetVersion() API कॉलमध्ये हस्तक्षेप करते.


The shim returns a different version of Windows.

शिम विंडोजचे वेगळे व्हर्जन परत करते.


शिम IAT मध्ये बदल करते.


The WinXPVersionLie shim tricks the application.

WinXPVersionLie शिम ॲप्लिकेशनला फसवते.


Microsoft अनेक शिम पुरवते.


Attackers abuse shims for malicious purposes.

आक्रमक (Attackers) द्वेषपूर्ण कारणांसाठी शिमचा गैरवापर करतात.


We will create a shim for injecting a DLL.

आम्ही DLL इंजेक्ट करण्यासाठी एक शिम तयार करू.


शिम तयार करण्यासाठी अनेक पायऱ्या लागतात.


You need administrator rights to install a shim.

शिम स्थापित करण्यासाठी तुम्हाला प्रशासक अधिकार (administrator rights) आवश्यक आहेत.


To help you understand, let's suppose that an attacker wants to hook the DeleteFileA() function call made by a legitimate application.

तुम्हाला समजून घेण्यासाठी, असे समजू या की एक हल्लेखोर कायदेशीर ॲप्लिकेशनद्वारे DeleteFileA() फंक्शन कॉलला जोडणी (हुक) करू इच्छितो.


Normally, when the legitimate application's thread encounters the call to DeleteFileA(), the thread starts executing from the start of the DeleteFileA() function.

सर्वसाधारणपणे, जेव्हा कायदेशीर ॲप्लिकेशनचा थ्रेड DeleteFileA() ला कॉल करतो, तेव्हा थ्रेड DeleteFileA() फंक्शनच्या सुरुवातीपासून अंमलबजावणी सुरू करतो.


The jmp instruction requires at least 5 bytes, so the malware needs to choose instructions that occupy 5 bytes or more.

jmp (जंप) निर्देशात कमीतकमी 5 बाइट्स लागतात, त्यामुळे मालवेअरला असे निर्देश निवडावे लागतील जे 5 किंवा अधिक बाइट्स घेतील.


The three instructions to be replaced in DeleteFileA() are copied, and then replaced with a jump statement of some sort, which transfers control to the malicious function.

DeleteFileA() मध्ये बदलण्यासाठीचे तीन निर्देश कॉपी केले जातात आणि नंतर काही प्रकारच्या जंप स्टेटमेंटने बदलले जातात, जे नियंत्रण दुर्भावनापूर्ण कार्याकडे हस्तांतरित करते.


The replaced instructions, along with the jump statement that returns to the target function, are known as the trampoline.

लक्ष्य कार्यावर परत येणाऱ्या जंप स्टेटमेंटसह बदललेले निर्देश ट्रॅम्पोलिन म्हणून ओळखले जातात.


This technique can be detected by looking for unexpected jump instructions at the start of the API function.

API फंक्शनच्या सुरुवातीला अनपेक्षित जंप निर्देश शोधून ही पद्धत शोधली जाऊ शकते.


Instead of using a jmp instruction, malware may use a call instruction, or a combination of push and ret instructions, to redirect control.

jmp (जंप) निर्देशाऐवजी, मालवेअर नियंत्रण पुनर्निर्देशित करण्यासाठी कॉल सूचना किंवा पुश आणि रिट (ret) सूचनांचे संयोजन वापरू शकते.


By hooking this function, the malware can extract credentials from the POST payload.

या फंक्शनला जोडून, मालवेअर POST पेलोडमधून क्रेडेन्शियल्स (credentials) काढू शकते.


Before hooking, the malicious executable (containing various functions) is injected into the address space of Internet Explorer.

जोडणी करण्यापूर्वी, दुर्भावनापूर्ण एक्झिक्युटेबल (विविध कार्ये असलेले) इंटरनेट एक्सप्लोररच्या ॲड्रेस स्पेसमध्ये इंजेक्ट केले जाते.


After injecting the executable, HttpSendRequestA() is hooked to redirect the program control to one of the malicious functions within the injected executable.

एक्झिक्युटेबल इंजेक्ट केल्यानंतर, प्रोग्रामचे नियंत्रण इंजेक्ट केलेल्या एक्झिक्युटेबलमधील दुर्भावनापूर्ण कार्यांपैकी एकाकडे पुनर्निर्देशित करण्यासाठी HttpSendRequestA() ला जोडले जाते.


In inline hooking, we saw how the series of bytes in a function are patched to redirect control to malicious code.

इनलाइन हुकिंगमध्ये, आपण पाहिले की फंक्शनमधील बाइट्सची मालिका दुर्भावनापूर्ण कोडकडे नियंत्रण पुनर्निर्देशित करण्यासाठी कशी पॅच केली जाते.


Microsoft uses the feature of in-memory patching to apply patches to fix vulnerabilities in their products.

Microsoft त्यांच्या उत्पादनांमधील असुरक्षितता (vulnerabilities) दूर करण्यासाठी पॅच लागू करण्यासाठी इन-मेमरी पॅचिंगचा वापर करते.


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

मालवेअर लेखकांनी कोड इंजेक्ट करण्यासाठी आणि API फंक्शन्सना जोडण्यासाठी इन-मेमरी पॅचिंगचा वापर केला आहे.


The installed .sdb files contain the shellcode that will be patched directly into the memory of the target process.

स्थापित .sdb फाईल्समध्ये शेलकोड (shellcode) आहे, जे लक्ष्य प्रक्रियेच्या मेमरीमध्ये थेट पॅच केले जाईल.


To know what the shellcode is doing, we need to be able to parse PATCH_BITS, which is an undocumented structure.

शेलकोड काय करत आहे हे जाणून घेण्यासाठी, आपल्याला PATCH_BITS पार्स (parse) करण्यास सक्षम असणे आवश्यक आहे, जे एक असंलेखित (undocumented) स्ट्रक्चर आहे.


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.

ही पद्धत मनोरंजक आहे, कारण या प्रकरणात, मालवेअर मेमरी (memory) आवंटित करत नाही किंवा थेट कोड इंजेक्ट करत नाही.


In this chapter, we focused mainly on code injection techniques in the user space.

या अध्यायात, आम्ही प्रामुख्याने यूजर स्पेसमध्ये कोड इंजेक्शन तंत्रांवर लक्ष केंद्रित केले.


Malware authors often use various obfuscation techniques to hide the information and to modify the malicious content to make detection and analysis difficult.

मालवेअर लेखक माहिती लपवण्यासाठी आणि दुर्भावनापूर्ण सामग्रीमध्ये बदल करण्यासाठी अनेकदा विविध अस्पष्ट तंत्रांचा वापर करतात, ज्यामुळे शोध आणि विश्लेषण करणे कठीण होते.


Adversaries typically use encoding and encryption for the following reasons:

प्रतिकूल लोक खालील कारणांसाठी एन्कोडिंग (encoding) आणि एन्क्रिप्शनचा (encryption) वापर करतात:


We have renamed the decryption function to dec_function.

आम्ही डिक्रिप्शन फंक्शनचे नाव बदलून dec_function असे ठेवले आहे.


It is accessible from the names window in IDA.

हे IDA मधील नावांच्या विंडोमधून ऍक्सेस करता येते.


The previous script iterates through the names window.

मागील स्क्रिप्ट नावांच्या विंडोमधून पुनरावृत्ती करते.


If the dec_function is present, it determines the address of dec_function.

जर dec_function उपस्थित असेल, तर ते dec_function चा पत्ता निश्चित करते.


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

ते क्रॉस-रेफरन्स निश्चित करण्यासाठी dec_function चा पत्ता वापरते.


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

ते dec_function जेथे कॉल केले जाते, त्या सर्व पत्त्यांवर ब्रेकपॉइंट सेट करते.


ते आपोआप डीबगर सुरू करते.


When the breakpoint is hit at dec_function, it reads the encrypted string.

जेव्हा dec_function वर ब्रेकपॉइंट लागतो, तेव्हा ते एन्क्रिप्टेड स्ट्रिंग वाचते.


It then steps over the function to execute the decryption function.

त्यानंतर, ते डिक्रिप्शन फंक्शन कार्यान्वित करण्यासाठी फंक्शनवर जाते.


It repeats the previous steps, to decrypt each string.

प्रत्येक स्ट्रिंग डिक्रिप्ट करण्यासाठी, ते मागील चरण पुन्हा करते.


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

आउटपुटमधून, आपण पाहू शकता की मालवेअर फाईलची नावे डिक्रिप्ट करते.


Malware authors often use packers and cryptors.

मालवेअर लेखक अनेकदा पॅकर आणि क्रिप्टर वापरतात.


A packer is a program that takes a normal executable and compresses its contents.

पॅकर हे एक असे प्रोग्राम आहे जे सामान्य एक्झिक्युटेबल घेते आणि त्याची सामग्री कॉम्प्रेस करते.


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) हे मालवेअरच्या पहिल्या सूचनांचे address आहे.


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.

तिसऱ्या टप्प्यात मेमरीमधून डिस्कवर अनपॅक केलेली प्रक्रिया डंप करणे समाविष्ट आहे.


To demonstrate the previous concepts, we will use a malware packed with the UPX packer.

वरील संकल्पना स्पष्ट करण्यासाठी, आम्ही UPX पॅकरसह पॅक केलेले मालवेअर वापरू.


Another method to detect the presence of the Base64 character set in the binary is using a YARA rule.

बायनरीमध्ये बेस64 वर्ण संचाची उपस्थिती शोधण्याचा आणखी एक मार्ग म्हणजे YARA नियम वापरणे.


XOR is a bitwise operation, and it is performed on the corresponding bits of the operands.

XOR एक बिटवाईज ऑपरेशन आहे, आणि ते ऑपरेंड्सच्या संबंधित बिट्सवर केले जाते.


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

XOR ऑपरेशनमध्ये, जेव्हा दोन्ही बिट समान असतात, तेव्हा निकाल 0 असतो; अन्यथा, निकाल 1 असतो.


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 मध्ये, प्लेनटेक्स्टमधील प्रत्येक बाइट एन्क्रिप्शन की (encryption key) सोबत XOR केला जातो.


Another interesting property of XOR is that when you XOR the ciphertext with the same key used to encrypt, you get back the plain text.

XOR चा आणखी एक मनोरंजक गुणधर्म म्हणजे जेव्हा तुम्ही एन्क्रिप्ट करण्यासाठी वापरलेल्या त्याच की (key) सह सायफरटेक्स्ट XOR करता, तेव्हा तुम्हाला प्लेन टेक्स्ट परत मिळतो.


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

याचा अर्थ असा आहे की जर तुम्हाला की (key) माहित असेल, तर डेटा एन्क्रिप्ट (encrypt) आणि डिक्रिप्ट (decrypt) करण्यासाठी समान फंक्शन वापरले जाऊ शकते.


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

XOR एन्कोडिंग अल्गोरिदम समजून घेतल्यानंतर, कीलॉगरचे उदाहरण पाहूया.


Note how the malware calls a function (renamed as enc_function) after the call to CreateFileA() and before the call to WriteFile().

लक्षात घ्या की मालवेअर (malware) CreateFileA() ला कॉल केल्यानंतर आणि WriteFile() ला कॉल करण्यापूर्वी 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 मध्ये, की (key) ची लांबी एक बाइट असते, त्यामुळे फक्त 255 संभाव्य की (keys) असू शकतात.


For example, upon executing a malware sample, let's say the malware gets the computer hostname mymachine.

उदाहरणार्थ, मालवेअरचे उदाहरण कार्यान्वित (execute) केल्यावर, समजा मालवेअरला 'mymachine' हे संगणकाचे होस्टनेम (hostname) मिळते.


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

तुम्ही की (key) शोधण्यासाठी आणि निर्धारित करण्यासाठी ConverterNET सारखे साधन देखील वापरू शकता.


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

XOR एन्कोडिंगमध्ये, जेव्हा शून्य बाइट (0x00) की (key) सोबत XOR केला जातो, तेव्हा तुम्हाला की (key) परत मिळतो.


What this means is that whenever a buffer containing a large number of null bytes is encoded, the single byte xor key becomes clearly visible.

याचा अर्थ असा आहे की जेव्हा शून बाइट्सची (null bytes) मोठी संख्या असलेला बफर एन्कोड केला जातो, तेव्हा सिंगल बाइट XOR की (key) स्पष्टपणे दृश्यमान होते.


To avoid the null byte problem, malware authors ignore the null byte (0x00) and the encryption key during encryption.

शून्य बाइटची समस्या टाळण्यासाठी, मालवेअर लेखक एन्क्रिप्शन दरम्यान शून्य बाइट (0x00) आणि एन्क्रिप्शन की (encryption key) दुर्लक्षित करतात.


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

आक्रमक सामान्यतः मल्टी-बाइट XOR वापरतात कारण ते ब्रूट-फोर्स तंत्राच्या (brute-force technique) विरोधात चांगले संरक्षण प्रदान करते.


The decrypted content is a PE (executable file) as shown here.

डिक्रिप्ट केलेला (decrypted) आशय येथे दर्शविल्याप्रमाणे PE (एक्झिक्युटेबल फाइल) आहे.


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

XOR एन्कोडिंग ओळखण्यासाठी, IDA मध्ये बायनरी लोड करा आणि XOR सूचना शोधा.


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

मालवेअर लेखक अनेकदा साध्या एन्कोडिंग तंत्रांचा वापर करतात, कारण डेटा अस्पष्ट करण्यासाठी ते पुरेसे आहे.


The standalone executable is the fastest way to get started with Volatility.

व्होलॅटिलिटी सुरू करण्याचा सर्वात जलद मार्ग म्हणजे स्टँडअलोन एक्झिक्युटेबल वापरणे.


You don't need to install the Python interpreter or Volatility dependencies.

तुम्हाला पायथन इंटरप्रिटर किंवा व्होलॅटिलिटी अवलंबित्व स्थापित करण्याची आवश्यकता नाही.


The help option displays various options and plugins that are available in Volatility.

मदत पर्याय व्होलॅटिलिटीमध्ये उपलब्ध विविध पर्याय आणि प्लगइन्स दर्शवितो.


Volatility is also distributed as a source package.

व्होलॅटिलिटी स्त्रोत पॅकेज म्हणून देखील वितरित केले जाते.


You can install these dependencies by reading the documentation.

तुम्ही हे अवलंबित्व दस्तऐवज वाचून स्थापित करू शकता.


Volatility consists of various plugins that can extract different information from the memory image.

व्होलॅटिलिटीमध्ये विविध प्लगइन्स आहेत जे मेमरी प्रतिमेतून भिन्न माहिती काढू शकतात.


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 व्होलॅटिलिटीला सांगते की मेमरी इमेज कोणत्या सिस्टम आणि आर्किटेक्चरमधून मिळवली गेली.


The following command uses the pslist plugin to list the running processes from the memory image acquired from Windows 7 (32-bit) running Service Pack 1:

खालील कमांड विंडोज 7 (32-बिट) मधून मिळवलेल्या मेमरी इमेजमधून चालू असलेल्या प्रक्रियांची यादी करण्यासाठी pslist प्लगइन वापरते, जे सर्विस पॅक 1 चालवत आहे:


Sometimes, you might not know what profile to supply to Volatility.

कधीकधी, तुम्हाला व्होलॅटिलिटीला कोणते प्रोफाइल द्यायचे आहे हे माहित नसेल.


In that case, you can use the imageinfo plugin, which will determine the correct profile.

अशा परिस्थितीत, तुम्ही imageinfo प्लगइन वापरू शकता, जे योग्य प्रोफाइल निश्चित करेल.


Most of the Volatility plugins, such as pslist, rely on extracting the information from the Windows operating system structures.

pslist सारखे व्होलॅटिलिटीचे बहुतेक प्लगइन्स विंडोज ऑपरेटिंग सिस्टम स्ट्रक्चर्समधून माहिती काढण्यावर अवलंबून असतात.


The help option, -h (--help), which you saw previously, displays help that applies to all of the Volatility plugins.

मदत पर्याय, -h (--help), जे तुम्ही पूर्वी पाहिले होते, ते सर्व व्होलॅटिलिटी प्लगइन्सना लागू होणारी मदत दर्शवते.


You can use the same -h (--help) option to determine various options and arguments supported by a plugin.

तुम्ही प्लगइनद्वारे समर्थित विविध पर्याय आणि वितर्क निर्धारित करण्यासाठी समान -h (--help) पर्याय वापरू शकता.


When you are investigating a memory image, you will mainly focus on identifying any suspicious process running on the system.

जेव्हा तुम्ही मेमरी प्रतिमेची तपासणी करत असाल, तेव्हा तुम्ही प्रामुख्याने सिस्टमवर चालणाऱ्या कोणत्याही संशयास्पद प्रक्रियेची ओळख पटवण्यावर लक्ष केंद्रित कराल.


There are various plugins in Volatility that allow you to enumerate processes.

व्होलॅटिलिटीमध्ये विविध प्लगइन्स आहेत जे तुम्हाला प्रक्रिया मोजण्याची परवानगी देतात.


Volatility's 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 (which is abnormal).

या दोन प्रक्रिया संशयास्पद असण्याचे कारण म्हणजे या प्रक्रियांच्या नावांमध्ये .exe एक्स्टेंशनच्या आधी एक अतिरिक्त डॉट वर्ण आहे (जे असामान्य आहे).


On a clean system, you will find multiple instances of svchost.exe processes running.

एका स्वच्छ सिस्टमवर, तुम्हाला svchost.exe प्रक्रियांची अनेक उदाहरणे चालताना दिसतील.


By creating a process such as svchost..exe and suchost..exe, the attacker is trying to blend in by making these processes look similar to the legitimate svchost.exe process.

svchost..exe आणि suchost..exe सारखी प्रक्रिया तयार करून, हल्लेखोर या प्रक्रिया अधिकृत svchost.exe प्रक्रियेसारख्या बनवून मिसळण्याचा प्रयत्न करत आहे.


Using DKOM, it is possible to hide a process or a driver.

DKOM वापरून, प्रक्रिया किंवा ड्रायव्हर लपवणे शक्य आहे.


To hide a process, an attacker finds the _EPROCESS structure of the malicious process he/she wants to hide and modifies the ActiveProcessLinks field.

प्रक्रिया लपवण्यासाठी, एक हल्लेखोर दुर्भावनापूर्ण प्रक्रियेची _EPROCESS रचना शोधतो जी त्याला लपवायची आहे आणि ActiveProcessLinks फील्डमध्ये बदल करतो.


In particular, the Flink of the previous _EPROCESS block is made to point to the Flink of the following _EPROCESS block, and the Blink of the following _EPROCESS block is set to point to the previous _EPROCESS block's Flink.

विशेषतः, मागील _EPROCESS ब्लॉकचा Flink पुढील _EPROCESS ब्लॉकच्या Flink कडे निर्देशित केला जातो, आणि पुढील _EPROCESS ब्लॉकचा Blink मागील _EPROCESS ब्लॉकच्या Flink कडे निर्देशित करण्यासाठी सेट केला जातो.


As a result of this, the _EPROCESS block associated with the malware process is unlinked from the doubly linked list.

परिणामी, मालवेअर प्रक्रियेशी संबंधित _EPROCESS ब्लॉक दुहेरी लिंक्ड लिस्टमधून डिस्कनेक्ट केला जातो.


By unlinking a process, an attacker can hide the malicious process from the live forensic tools that rely on walking the doubly linked list to enumerate the active processes.

प्रक्रियेला डिस्कनेक्ट करून, एक हल्लेखोर सक्रिय प्रक्रिया मोजण्यासाठी दुहेरी लिंक्ड लिस्ट वापरणाऱ्या लाइव्ह फॉरेन्सिक साधनांपासून दुर्भावनापूर्ण प्रक्रिया लपवू शकतो.


As you might have guessed, this technique also hides the malicious process from the pslist plugin.

तुम्ही अंदाज केला असेल की, ही युक्ती pslist प्लगइनमधूनही दुर्भावनापूर्ण प्रक्रिया लपवते.


The following is the pslist and psscan output from a system infected with the prolaco rootkit, which performs DKOM to hide a process.

खालील prolaco रूटकिट (rootkit) ने संक्रमित केलेल्या सिस्टममधील pslist आणि psscan आउटपुट आहे, जे प्रक्रिया लपवण्यासाठी DKOM वापरते.


For the sake of brevity, some of the entries are truncated from the following output.

संक्षिप्ततेसाठी, काही नोंदी खालील आउटपुटमधून कमी केल्या आहेत.


When you compare the output from pslist and psscan, you will notice an additional process called nvid.exe (pid 1700) in the psscan output that's not present in the pslist.

जेव्हा तुम्ही pslist आणि psscan मधील आउटपुटची तुलना करता, तेव्हा तुम्हाला psscan आउटपुटमध्ये nvid.exe (pid 1700) नावाची एक अतिरिक्त प्रक्रिया दिसेल, जी pslist मध्ये दिसत नाही.


The reason psscan detects the hidden process is that it uses a different technique to list the processes, called pool tag scanning.

psscan लपवलेल्या प्रक्रियेचा शोध घेते कारण ते प्रक्रियांची यादी बनवण्यासाठी एक वेगळी पद्धत वापरते, ज्याला पूल टॅग स्कॅनिंग म्हणतात.


Every executive object has a structure associated with it (such as _EPROCESS for process object).

प्रत्येक कार्यकारी ऑब्जेक्टची स्वतःची रचना असते (उदाहरणार्थ, प्रक्रिया ऑब्जेक्टसाठी _EPROCESS).


The executive object structure is preceded by a _OBJECT_HEADER structure, which contains information about an object's type and some reference counters.

कार्यकारी ऑब्जेक्टच्या संरचनेच्या आधी _OBJECT_HEADER रचना असते, ज्यामध्ये ऑब्जेक्टचा प्रकार आणि काही संदर्भ काउंटरची माहिती असते.


To store an object, memory is needed, and this memory is allocated by the Windows memory manager from kernel pools.

ऑब्जेक्ट संचयित करण्यासाठी, मेमरीची आवश्यकता असते आणि ही मेमरी विंडोज मेमरी व्यवस्थापकाद्वारे कर्नल पूल मधून वाटप केली जाते.


The pool is divided into a paged pool (whose content may be swapped to disk) and a non-paged pool (whose content permanently resides in memory).

पूलला एक पृष्ठांकित पूल (ज्याची सामग्री डिस्कवर स्वॅप केली जाऊ शकते) आणि एक नॉन-पृष्ठांकित पूल (ज्याची सामग्री कायमस्वरूपी मेमरीमध्ये असते) मध्ये विभागले जाते.


The objects (such as process and threads) are kept in a non-paged pool in the kernel, which means they will always reside in the physical memory.

ऑब्जेक्ट (जसे की प्रक्रिया आणि थ्रेड) कर्नलमध्ये नॉन-पृष्ठांकित पूलमध्ये ठेवले जातात, याचा अर्थ ते नेहमी भौतिक मेमरीमध्ये राहतील.


When the Windows kernel receives the request to create an object (possibly due to API calls made by processes such as CreateProcess or CreateFile), memory is allocated for the object either from the paged pool or non-paged pool (depending on the object type).

जेव्हा विंडोज कर्नल ऑब्जेक्ट तयार करण्याची विनंती प्राप्त करते (प्रक्रिया जसे की CreateProcess किंवा CreateFile द्वारे केलेल्या API कॉलमुळे), तेव्हा ऑब्जेक्टसाठी मेमरी पृष्ठांकित पूल किंवा नॉन-पृष्ठांकित पूल मधून वाटप केली जाते (ऑब्जेक्ट प्रकारावर अवलंबून).


This allocation is tagged by prepending a _POOL_HEADER structure to the object, so that in memory, each object will have a predictable structure.

हे वाटप ऑब्जेक्टमध्ये _POOL_HEADER रचना जोडून टॅग केले जाते, जेणेकरून मेमरीमध्ये, प्रत्येक ऑब्जेक्टची अंदाजित रचना असेल.


The _POOL_HEADER structure includes a field named PoolTag that contains a four-byte tag (referred to as a pool tag).

_POOL_HEADER संरचनेत PoolTag नावाचे एक क्षेत्र समाविष्ट आहे ज्यामध्ये चार-बाइट टॅग (पूल टॅग म्हणून संदर्भित) आहे.


For the process object, the tag is Proc and for the File object, the tag is File, and so on.

प्रक्रिया ऑब्जेक्टसाठी, टॅग Proc आहे आणि फाइल ऑब्जेक्टसाठी, टॅग File आहे, आणि याच प्रकारे.


The psscan plugin not only detects the hidden process, because of the approach it uses, but it can also detect terminated processes.

psscan प्लगइन केवळ लपवलेल्या प्रक्रियेचा शोध घेत नाही, कारण ते ज्या दृष्टीकोनाचा वापर करते, परंतु ते समाप्त झालेल्या प्रक्रिया देखील शोधू शकते.


The explorer.exe process path is displayed along with other details.

explorer.exe प्रक्रियेचा मार्ग इतर माहितीसोबत दर्शविला जातो.


Memory ranges are described by nodes in the VAD tree.

मेमरी रेंज VAD ट्रीमधील नोड्सद्वारे वर्णन केल्या जातात.


The ntdll.dll file's memory protection is examined.

ntdll.dll फाईलचे मेमरी संरक्षण तपासले जाते.