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 ਇੱਕ ਅਜਿਹਾ ਟੂਲ ਹੈ ਜੋ ਮਾਲਵੇਅਰ ਤੋਂ ਆਪਣੇ ਆਪ ਓਬਫਸਕੇਟਿਡ ਸਟ੍ਰਿੰਗਾਂ ਨੂੰ ਕੱਢਣ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ।


You can download FLOSS for Windows or Linux.

ਤੁਸੀਂ ਵਿੰਡੋਜ਼ ਜਾਂ ਲੀਨਕਸ ਲਈ FLOSS ਡਾਊਨਲੋਡ ਕਰ ਸਕਦੇ ਹੋ।


Running FLOSS on a malware sample can decode obfuscated strings.

ਮਾਲਵੇਅਰ ਨਮੂਨੇ 'ਤੇ FLOSS ਚਲਾਉਣ ਨਾਲ ਓਬਫਸਕੇਟਿਡ ਸਟ੍ਰਿੰਗਾਂ ਨੂੰ ਡੀਕੋਡ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।


Packers and cryptors are used to obfuscate files.

ਪੈਕਰਾਂ ਅਤੇ ਕ੍ਰਿਪਟਰਾਂ ਦੀ ਵਰਤੋਂ ਫਾਈਲਾਂ ਨੂੰ ਓਬਫਸਕੇਟ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


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

ਇੱਕ ਪੈਕਰ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਦੀ ਸਮੱਗਰੀ ਨੂੰ ਓਬਫਸਕੇਟ ਕਰਨ ਲਈ ਕੰਪਰੈਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।


A cryptor uses encryption to obfuscate the executable's content.

ਇੱਕ ਕ੍ਰਿਪਟਰ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਦੀ ਸਮੱਗਰੀ ਨੂੰ ਓਬਫਸਕੇਟ ਕਰਨ ਲਈ ਏਨਕ੍ਰਿਪਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।


Extracting strings from a packed binary reveals fewer strings.

ਇੱਕ ਪੈਕਡ ਬਾਈਨਰੀ ਤੋਂ ਸਟ੍ਰਿੰਗਾਂ ਨੂੰ ਕੱਢਣ ਨਾਲ ਘੱਟ ਸਟ੍ਰਿੰਗਾਂ ਦਾ ਪਤਾ ਲੱਗਦਾ ਹੈ।


UPX is a common packer used to compress executables.

UPX ਇੱਕ ਆਮ ਪੈਕਰ ਹੈ ਜੋ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਨੂੰ ਕੰਪ੍ਰੈਸ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।


Exeinfo PE can detect packers on Windows.

Exeinfo PE ਵਿੰਡੋਜ਼ 'ਤੇ ਪੈਕਰਾਂ ਦਾ ਪਤਾ ਲਗਾ ਸਕਦਾ ਹੈ।


Windows executables conform to the PE/COFF format.

ਵਿੰਡੋਜ਼ ਐਗਜ਼ੀਕਿਊਟੇਬਲ PE/COFF ਫਾਰਮੈਟ ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹਨ।


The PE header describes the structure of an executable.

PE ਹੈਡਰ ਇੱਕ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਦੀ ਬਣਤਰ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ।


Examining the PE header yields information about the binary.

PE ਹੈਡਰ ਦੀ ਜਾਂਚ ਕਰਨ ਨਾਲ ਬਾਈਨਰੀ ਬਾਰੇ ਜਾਣਕਾਰੀ ਮਿਲਦੀ ਹੈ।


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

ਮਾਲਵੇਅਰ ਅਕਸਰ ਫਾਈਲਾਂ, ਰਜਿਸਟਰੀ ਅਤੇ ਨੈੱਟਵਰਕ ਨਾਲ ਇੰਟਰੈਕਟ ਕਰਦਾ ਹੈ।


Inspect the DLLs and API functions to understand malware functionality.

ਮਾਲਵੇਅਰ ਕਾਰਜਸ਼ੀਲਤਾ ਨੂੰ ਸਮਝਣ ਲਈ DLLs ਅਤੇ API ਫੰਕਸ਼ਨਾਂ ਦੀ ਜਾਂਚ ਕਰੋ।


Imports can help detect whether a malware sample is obfuscated.

ਇੰਪੋਰਟ ਇਹ ਪਤਾ ਲਗਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦੇ ਹਨ ਕਿ ਕੀ ਇੱਕ ਮਾਲਵੇਅਰ ਨਮੂਨਾ ਓਬਫਸਕੇਟਿਡ ਹੈ।


Exports are functions that can be used by other programs.

ਐਕਸਪੋਰਟ ਉਹ ਫੰਕਸ਼ਨ ਹਨ ਜੋ ਦੂਜੇ ਪ੍ਰੋਗਰਾਮਾਂ ਦੁਆਰਾ ਵਰਤੇ ਜਾ ਸਕਦੇ ਹਨ।


The resource section contains resources like icons and strings.

ਸੰਸਾਧਨ ਭਾਗ ਵਿੱਚ ਆਈਕਾਨ ਅਤੇ ਸਟ੍ਰਿੰਗਾਂ ਵਰਗੇ ਸਰੋਤ ਹੁੰਦੇ ਹਨ।


Fuzzy hashing is a method to compare files for similarity.

ਫਜ਼ੀ ਹੈਸ਼ਿੰਗ ਫਾਈਲਾਂ ਦੀ ਸਮਾਨਤਾ ਦੀ ਤੁਲਨਾ ਕਰਨ ਦਾ ਇੱਕ ਤਰੀਕਾ ਹੈ।


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.

ਇਹ ਕਿਤਾਬ ਮਾਲਵੇਅਰ ਵਿਸ਼ਲੇਸ਼ਣ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵਿੰਡੋਜ਼ ਮਾਲਵੇਅਰ ਦੇ ਵਿਵਹਾਰ ਅਤੇ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸਮਝਣ ਲਈ ਸੰਕਲਪਾਂ, ਸਾਧਨਾਂ ਅਤੇ ਤਕਨੀਕਾਂ ਨੂੰ ਸਿਖਾਉਂਦੀ ਹੈ।


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

ਜੇਕਰ ਤੁਸੀਂ ਮਾਲਵੇਅਰ ਵਿਸ਼ਲੇਸ਼ਣ ਦੇ ਖੇਤਰ ਵਿੱਚ ਨਵੇਂ ਹੋ, ਤਾਂ ਇਹ ਕਿਤਾਬ ਤੁਹਾਨੂੰ ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰੇਗੀ।


Malware analysis requires a well-balanced knowledge of many different skills and subjects.

ਮਾਲਵੇਅਰ ਵਿਸ਼ਲੇਸ਼ਣ ਲਈ ਬਹੁਤ ਸਾਰੇ ਵੱਖ-ਵੱਖ ਹੁਨਰਾਂ ਅਤੇ ਵਿਸ਼ਿਆਂ ਦਾ ਚੰਗੀ ਤਰ੍ਹਾਂ ਸੰਤੁਲਿਤ ਗਿਆਨ ਚਾਹੀਦਾ ਹੈ।


The growing threat of cyberattacks on critical infrastructure poses a unique challenge.

ਨਾਜ਼ੁਕ ਬੁਨਿਆਦੀ ਢਾਂਚੇ 'ਤੇ ਸਾਈਬਰ ਹਮਲਿਆਂ ਦਾ ਵਧਦਾ ਖ਼ਤਰਾ ਇੱਕ ਵਿਲੱਖਣ ਚੁਣੌਤੀ ਪੇਸ਼ ਕਰਦਾ ਹੈ।


These cyberattacks make use of malicious software for financial theft and espionage.

ਇਹ ਸਾਈਬਰ ਹਮਲੇ ਵਿੱਤੀ ਚੋਰੀ ਅਤੇ ਜਾਸੂਸੀ ਲਈ ਖਤਰਨਾਕ ਸਾਫਟਵੇਅਰ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।


With adversaries becoming sophisticated, detecting intrusions is critical.

ਵਿਰੋਧੀਆਂ ਦੇ ਵਧੇਰੇ ਗੁੰਝਲਦਾਰ ਹੋਣ ਦੇ ਨਾਲ, ਘੁਸਪੈਠ ਦਾ ਪਤਾ ਲਗਾਉਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।


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

ਮਾਲਵੇਅਰ ਵਿਸ਼ਲੇਸ਼ਣ ਉੱਨਤ ਮਾਲਵੇਅਰ ਨਾਲ ਲੜਨ ਲਈ ਇੱਕ ਲਾਜ਼ਮੀ ਹੁਨਰ ਬਣ ਗਿਆ ਹੈ।


This book starts by introducing you to basic concepts of malware analysis.

ਇਹ ਕਿਤਾਬ ਤੁਹਾਨੂੰ ਮਾਲਵੇਅਰ ਵਿਸ਼ਲੇਸ਼ਣ ਦੇ ਬੁਨਿਆਦੀ ਸੰਕਲਪਾਂ ਨਾਲ ਜਾਣੂ ਕਰਵਾ ਕੇ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ।


It then gradually progresses deep into more advanced concepts of code analysis and memory forensics.

ਫਿਰ ਇਹ ਹੌਲੀ-ਹੌਲੀ ਕੋਡ ਵਿਸ਼ਲੇਸ਼ਣ ਅਤੇ ਮੈਮੋਰੀ ਫੋਰੈਂਸਿਕਸ ਦੇ ਵਧੇਰੇ ਉੱਨਤ ਸੰਕਲਪਾਂ ਵਿੱਚ ਡੂੰਘਾਈ ਨਾਲ ਅੱਗੇ ਵਧਦਾ ਹੈ।


To help you understand the concepts better, various real-world malware samples are used.

ਸੰਕਲਪਾਂ ਨੂੰ ਬਿਹਤਰ ਤਰੀਕੇ ਨਾਲ ਸਮਝਣ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰਨ ਲਈ, ਵੱਖ-ਵੱਖ ਅਸਲ-ਸੰਸਾਰ ਮਾਲਵੇਅਰ ਨਮੂਨਿਆਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


If you are experienced in this field, this book will help enhance your knowledge further.

ਜੇਕਰ ਤੁਸੀਂ ਇਸ ਖੇਤਰ ਵਿੱਚ ਤਜਰਬੇਕਾਰ ਹੋ, ਤਾਂ ਇਹ ਕਿਤਾਬ ਤੁਹਾਡੇ ਗਿਆਨ ਨੂੰ ਹੋਰ ਵਧਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰੇਗੀ।


Whether you are learning malware analysis for fun, this book enables you to accomplish your goals.

ਭਾਵੇਂ ਤੁਸੀਂ ਮਜ਼ੇ ਲਈ ਮਾਲਵੇਅਰ ਵਿਸ਼ਲੇਸ਼ਣ ਸਿੱਖ ਰਹੇ ਹੋ, ਇਹ ਕਿਤਾਬ ਤੁਹਾਨੂੰ ਆਪਣੇ ਟੀਚਿਆਂ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦੀ ਹੈ।


If you're an incident responder, this book is for you.

ਜੇਕਰ ਤੁਸੀਂ ਇੱਕ ਘਟਨਾ ਜਵਾਬ ਦੇਣ ਵਾਲੇ ਹੋ, ਤਾਂ ਇਹ ਕਿਤਾਬ ਤੁਹਾਡੇ ਲਈ ਹੈ।


Chapter 1 introduces readers to the concept of malware analysis.

ਅਧਿਆਇ 1 ਪਾਠਕਾਂ ਨੂੰ ਮਾਲਵੇਅਰ ਵਿਸ਼ਲੇਸ਼ਣ ਦੀ ਧਾਰਨਾ ਨਾਲ ਜਾਣੂ ਕਰਵਾਉਂਦਾ ਹੈ।


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

ਅਧਿਆਇ 2 ਮੈਟਾਡੇਟਾ ਜਾਣਕਾਰੀ ਨੂੰ ਕੱਢਣ ਲਈ ਸਾਧਨਾਂ ਅਤੇ ਤਕਨੀਕਾਂ ਨੂੰ ਸਿਖਾਉਂਦਾ ਹੈ।


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

ਤੁਸੀਂ ਸਿੱਖੋਗੇ ਕਿ ਇਸਨੂੰ ਚਲਾਏ ਬਿਨਾਂ ਬਾਈਨਰੀ ਦੇ ਵੱਖ-ਵੱਖ ਪਹਿਲੂਆਂ ਨੂੰ ਕਿਵੇਂ ਨਿਰਧਾਰਤ ਕਰਨਾ ਹੈ।


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

ਅਧਿਆਇ 3 ਮਾਲਵੇਅਰ ਦੇ ਵਿਵਹਾਰ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਸਾਧਨਾਂ ਅਤੇ ਤਕਨੀਕਾਂ ਨੂੰ ਸਿਖਾਉਂਦਾ ਹੈ।


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

ਇਹ ਖਤਰਨਾਕ ਪ੍ਰੋਗਰਾਮਾਂ ਦੁਆਰਾ ਵਰਤੇ ਜਾਂਦੇ ਵੱਖ-ਵੱਖ ਸਥਿਰਤਾ ਤਰੀਕਿਆਂ ਨੂੰ ਵੀ ਕਵਰ ਕਰਦਾ ਹੈ।


Chapter 8 teaches common code injection techniques used by malicious programs.

ਅਧਿਆਇ 8 ਖਤਰਨਾਕ ਪ੍ਰੋਗਰਾਮਾਂ ਦੁਆਰਾ ਵਰਤੀਆਂ ਜਾਂਦੀਆਂ ਆਮ ਕੋਡ ਇੰਜੈਕਸ਼ਨ ਤਕਨੀਕਾਂ ਨੂੰ ਸਿਖਾਉਂਦਾ ਹੈ।


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.

ਇੰਪੋਰਟ ਹੈਸ਼ਿੰਗ ਇੱਕ ਹੋਰ ਤਕਨੀਕ ਹੈ ਜਿਸਦੀ ਵਰਤੋਂ ਸੰਬੰਧਿਤ ਨਮੂਨਿਆਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।


If the files were compiled from the same source and in the same manner, those files would tend to have the same imphash value.

ਜੇਕਰ ਫਾਈਲਾਂ ਨੂੰ ਇੱਕੋ ਸਰੋਤ ਤੋਂ ਅਤੇ ਉਸੇ ਤਰੀਕੇ ਨਾਲ ਕੰਪਾਇਲ ਕੀਤਾ ਗਿਆ ਸੀ, ਤਾਂ ਉਹਨਾਂ ਫਾਈਲਾਂ ਵਿੱਚ ਇੱਕੋ ਜਿਹਾ ਇਮਪਹੈਸ਼ ਮੁੱਲ ਹੋਣ ਦੀ ਸੰਭਾਵਨਾ ਹੁੰਦੀ ਹੈ।


During your malware investigation, if you come across samples that have the same imphash values, it means that they have the same import address table and are probably related.

ਤੁਹਾਡੀ ਮਾਲਵੇਅਰ ਜਾਂਚ ਦੌਰਾਨ, ਜੇਕਰ ਤੁਹਾਨੂੰ ਅਜਿਹੇ ਨਮੂਨੇ ਮਿਲਦੇ ਹਨ ਜਿਨ੍ਹਾਂ ਦੇ ਇਮਪਹੈਸ਼ ਮੁੱਲ ਇੱਕੋ ਜਿਹੇ ਹਨ, ਤਾਂ ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਉਹਨਾਂ ਕੋਲ ਇੱਕੋ ਜਿਹੀ ਇੰਪੋਰਟ ਐਡਰੈੱਸ ਟੇਬਲ ਹੈ ਅਤੇ ਉਹ ਸੰਭਾਵਤ ਤੌਰ 'ਤੇ ਸੰਬੰਧਿਤ ਹਨ।


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.

ਇੰਪੋਰਟ ਹੈਸ਼ਿੰਗ ਦੇ ਸਮਾਨ, ਸੈਕਸ਼ਨ ਹੈਸ਼ਿੰਗ ਵੀ ਸੰਬੰਧਿਤ ਨਮੂਨਿਆਂ ਦੀ ਪਛਾਣ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦੀ ਹੈ।


When you are analyzing a malware sample, you should consider generating the fuzzy hash, imphash, and section hashes.

ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਮਾਲਵੇਅਰ ਨਮੂਨੇ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਫਜ਼ੀ ਹੈਸ਼, ਇਮਪਹੈਸ਼, ਅਤੇ ਸੈਕਸ਼ਨ ਹੈਸ਼ ਤਿਆਰ ਕਰਨ 'ਤੇ ਵਿਚਾਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।


A malware sample can contain many strings or binary indicators.

ਇੱਕ ਮਾਲਵੇਅਰ ਨਮੂਨੇ ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ ਸਤਰ ਜਾਂ ਬਾਈਨਰੀ ਸੂਚਕ ਹੋ ਸਕਦੇ ਹਨ।


YARA is a powerful malware identification and classification tool.

YARA ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਮਾਲਵੇਅਰ ਪਛਾਣ ਅਤੇ ਵਰਗੀਕਰਨ ਸੰਦ ਹੈ।


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

ਮਾਲਵੇਅਰ ਖੋਜਕਰਤਾ ਟੈਕਸਟ ਜਾਂ ਬਾਈਨਰੀ ਜਾਣਕਾਰੀ ਦੇ ਅਧਾਰ 'ਤੇ YARA ਨਿਯਮ ਬਣਾ ਸਕਦੇ ਹਨ।


The YARA rule consists of the following components: Rule identifier, String Definition, Condition Section.

YARA ਨਿਯਮ ਹੇਠ ਲਿਖੇ ਭਾਗਾਂ ਦਾ ਬਣਿਆ ਹੁੰਦਾ ਹੈ: ਨਿਯਮ ਪਛਾਣਕਰਤਾ, ਸਤਰ ਪਰਿਭਾਸ਼ਾ, ਸ਼ਰਤ ਭਾਗ।


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

ਇੱਕ ਵਾਰ ਜਦੋਂ ਤੁਹਾਡਾ ਨਿਯਮ ਤਿਆਰ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਅਗਲਾ ਕਦਮ YARA ਨਿਯਮਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਫਾਈਲਾਂ ਨੂੰ ਸਕੈਨ ਕਰਨ ਲਈ yara ਉਪਯੋਗਤਾ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਹੈ।


If you want the rule to detect both ASCII and Unicode (wide character) strings, then you specify the ascii and wide modifier next to string.

ਜੇਕਰ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਨਿਯਮ ASCII ਅਤੇ ਯੂਨੀਕੋਡ (ਵਾਈਡ ਅੱਖਰ) ਸਤਰਾਂ ਦਾ ਪਤਾ ਲਗਾਵੇ, ਤਾਂ ਤੁਸੀਂ ਸਤਰ ਦੇ ਅੱਗੇ ascii ਅਤੇ wide ਸੋਧਕ ਨਿਰਧਾਰਤ ਕਰਦੇ ਹੋ।


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

ਜੇਕਰ ਤੁਹਾਡਾ ਇਰਾਦਾ ਇੱਕ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਫਾਈਲ ਵਿੱਚ ਸਤਰਾਂ ਦੀ ਭਾਲ ਕਰਨਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਹੇਠਾਂ ਦਿਖਾਏ ਅਨੁਸਾਰ ਇੱਕ ਨਿਯਮ ਬਣਾ ਸਕਦੇ ਹੋ।


YARA rule can also be used to detect packers.

YARA ਨਿਯਮ ਦੀ ਵਰਤੋਂ ਪੈਕਰਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ ਵੀ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।


Static analysis is the first step in malware analysis.

ਸਟੈਟਿਕ ਵਿਸ਼ਲੇਸ਼ਣ ਮਾਲਵੇਅਰ ਵਿਸ਼ਲੇਸ਼ਣ ਵਿੱਚ ਪਹਿਲਾ ਕਦਮ ਹੈ।


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

ਡਾਇਨਾਮਿਕ ਵਿਸ਼ਲੇਸ਼ਣ (ਵਿਹਾਰਕ ਵਿਸ਼ਲੇਸ਼ਣ) ਵਿੱਚ ਇੱਕ ਨਮੂਨੇ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨਾ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ, ਇਸਨੂੰ ਇੱਕ ਅਲੱਗ ਥਲੱਗ ਵਾਤਾਵਰਣ ਵਿੱਚ ਚਲਾ ਕੇ।


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

ਜੇਕਰ ਤੁਹਾਨੂੰ ਇਸ ਕਿਤਾਬ ਵਿੱਚ ਕੋਈ ਗਲਤੀ ਮਿਲੀ ਹੈ, ਤਾਂ ਅਸੀਂ ਤੁਹਾਡੇ ਧੰਨਵਾਦੀ ਹੋਵਾਂਗੇ ਜੇਕਰ ਤੁਸੀਂ ਸਾਨੂੰ ਇਸ ਬਾਰੇ ਦੱਸੋਗੇ।


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

ਕਿਰਪਾ ਕਰਕੇ www.packtpub.com/submit-errata 'ਤੇ ਜਾਓ, ਆਪਣੀ ਕਿਤਾਬ ਚੁਣੋ, Errata Submission Form ਲਿੰਕ 'ਤੇ ਕਲਿੱਕ ਕਰੋ, ਅਤੇ ਵੇਰਵੇ ਦਰਜ ਕਰੋ।


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

ਜੇਕਰ ਤੁਹਾਨੂੰ ਇੰਟਰਨੈੱਟ 'ਤੇ ਸਾਡੇ ਕੰਮਾਂ ਦੀਆਂ ਕਿਸੇ ਵੀ ਰੂਪ ਵਿੱਚ ਗੈਰ-ਕਾਨੂੰਨੀ ਕਾਪੀਆਂ ਮਿਲਦੀਆਂ ਹਨ, ਤਾਂ ਅਸੀਂ ਤੁਹਾਡੇ ਧੰਨਵਾਦੀ ਹੋਵਾਂਗੇ ਜੇਕਰ ਤੁਸੀਂ ਸਾਨੂੰ ਟਿਕਾਣੇ ਦਾ ਪਤਾ ਜਾਂ ਵੈੱਬਸਾਈਟ ਦਾ ਨਾਮ ਪ੍ਰਦਾਨ ਕਰੋਗੇ।


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

ਜੇਕਰ ਤੁਸੀਂ ਲੇਖਕ ਬਣਨ ਵਿੱਚ ਦਿਲਚਸਪੀ ਰੱਖਦੇ ਹੋ: ਜੇਕਰ ਕੋਈ ਅਜਿਹਾ ਵਿਸ਼ਾ ਹੈ ਜਿਸ ਵਿੱਚ ਤੁਹਾਡੀ ਮੁਹਾਰਤ ਹੈ ਅਤੇ ਤੁਸੀਂ ਲਿਖਣ ਜਾਂ ਕਿਤਾਬ ਵਿੱਚ ਯੋਗਦਾਨ ਪਾਉਣ ਵਿੱਚ ਦਿਲਚਸਪੀ ਰੱਖਦੇ ਹੋ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ authors.packtpub.com 'ਤੇ ਜਾਓ।


ਸਮੀਖਿਆਵਾਂ ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਸਮੀਖਿਆ ਛੱਡੋ।


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

ਇਸ ਕਿਤਾਬ ਨੂੰ ਪੜ੍ਹਨ ਅਤੇ ਵਰਤਣ ਤੋਂ ਬਾਅਦ, ਉਸ ਸਾਈਟ 'ਤੇ ਸਮੀਖਿਆ ਕਿਉਂ ਨਾ ਛੱਡੋ ਜਿੱਥੋਂ ਤੁਸੀਂ ਇਸਨੂੰ ਖਰੀਦਿਆ ਹੈ?


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.

ਸੰਭਾਵੀ ਪਾਠਕ ਫਿਰ ਤੁਹਾਡੀ ਨਿਰਪੱਖ ਰਾਏ ਨੂੰ ਦੇਖ ਅਤੇ ਵਰਤ ਸਕਦੇ ਹਨ, ਖਰੀਦ ਫੈਸਲੇ ਲੈਣ ਲਈ, ਅਸੀਂ Packt ਵਿਖੇ ਸਮਝ ਸਕਦੇ ਹਾਂ ਕਿ ਤੁਸੀਂ ਸਾਡੇ ਉਤਪਾਦਾਂ ਬਾਰੇ ਕੀ ਸੋਚਦੇ ਹੋ, ਅਤੇ ਸਾਡੇ ਲੇਖਕ ਤੁਹਾਡੀ ਫੀਡਬੈਕ ਨੂੰ ਉਹਨਾਂ ਦੀ ਕਿਤਾਬ 'ਤੇ ਦੇਖ ਸਕਦੇ ਹਨ।


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

ਧੰਨਵਾਦ! Packt ਬਾਰੇ ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਕਿਰਪਾ ਕਰਕੇ 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.

ਖਤਰਨਾਕ ਸਾਫਟਵੇਅਰ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਲਈ ਲੋੜੀਂਦੇ ਗਿਆਨ, ਹੁਨਰ ਅਤੇ ਸਾਧਨ ਅਜਿਹੇ ਹਮਲਿਆਂ ਦਾ ਪਤਾ ਲਗਾਉਣ, ਜਾਂਚ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਤੋਂ ਬਚਾਅ ਲਈ ਜ਼ਰੂਰੀ ਹਨ।


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 ਡਰਾਈਵਾਂ ਰਾਹੀਂ ਪ੍ਰਦਾਨ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।


ਕੰਪਿਊਟਰ ਓਪਰੇਸ਼ਨਾਂ ਵਿੱਚ ਵਿਘਨ ਪਾਉਣਾ


Stealing sensitive information, including personal, business, and financial data

ਸੰਵੇਦਨਸ਼ੀਲ ਜਾਣਕਾਰੀ ਚੋਰੀ ਕਰਨਾ, ਜਿਸ ਵਿੱਚ ਨਿੱਜੀ, ਵਪਾਰਕ ਅਤੇ ਵਿੱਤੀ ਡੇਟਾ ਸ਼ਾਮਲ ਹੈ


Unauthorized access to the victim's system

ਪੀੜਤ ਦੇ ਸਿਸਟਮ ਤੱਕ ਅਣਅਧਿਕਾਰਤ ਪਹੁੰਚ


ਪੀੜਤਾਂ 'ਤੇ ਜਾਸੂਸੀ ਕਰਨਾ


Drop are set to Bidirectional. Click on OK.

ਡ੍ਰੌਪ ਨੂੰ ਦੋ-ਦਿਸ਼ਾਵੀ 'ਤੇ ਸੈੱਟ ਕਰੋ। ਠੀਕ ਹੈ 'ਤੇ ਕਲਿੱਕ ਕਰੋ।


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.

ਵਿੰਡੋਜ਼ VM ਸੈਟ ਅਪ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਵਰਚੁਅਲਾਈਜ਼ੇਸ਼ਨ ਸੌਫਟਵੇਅਰ ਵਿੱਚ ਆਪਣੀ ਪਸੰਦ ਦਾ ਇੱਕ ਵਿੰਡੋਜ਼ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ (ਵਿੰਡੋਜ਼ 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.

ਆਪਣੇ ਵਿੰਡੋਜ਼ VM ਨੂੰ ਹੋਸਟ-ਸਿਰਫ ਨੈੱਟਵਰਕ ਕੌਂਫਿਗਰੇਸ਼ਨ ਮੋਡ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕੌਂਫਿਗਰ ਕਰੋ।


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

VMware ਜਾਂ VirtualBox ਵਿੱਚ ਅਜਿਹਾ ਕਰਨ ਲਈ, ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਲਿਆਓ ਅਤੇ ਹੋਸਟ-ਸਿਰਫ ਮੋਡ ਚੁਣੋ; ਸੈਟਿੰਗਾਂ ਨੂੰ ਸੇਵ ਕਰੋ ਅਤੇ ਮੁੜ ਚਾਲੂ ਕਰੋ।


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

ਵਿੰਡੋਜ਼ VM ਦਾ IP ਐਡਰੈੱਸ 192.168.1.x (ਕੋਈ ਵੀ IP ਐਡਰੈੱਸ ਚੁਣੋ ਸਿਵਾਏ 192.168.1.100 ਦੇ ਕਿਉਂਕਿ ਲੀਨਕਸ VM ਉਸ IP ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਸੈੱਟ ਹੈ) 'ਤੇ ਕੌਂਫਿਗਰ ਕਰੋ ਅਤੇ ਆਪਣੇ ਡਿਫਾਲਟ ਗੇਟਵੇ ਅਤੇ DNS ਸਰਵਰ ਨੂੰ ਲੀਨਕਸ VM ਦੇ IP ਐਡਰੈੱਸ (ਭਾਵ, 192.168.1.100) 'ਤੇ ਸੈੱਟ ਕਰੋ।


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

ਲੀਨਕਸ VM ਅਤੇ ਵਿੰਡੋ VM ਦੋਵਾਂ ਨੂੰ ਚਾਲੂ ਕਰੋ, ਅਤੇ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਉਹ ਇੱਕ ਦੂਜੇ ਨਾਲ ਸੰਚਾਰ ਕਰ ਸਕਦੇ ਹਨ।


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.

ਤੁਹਾਡੇ ਵਿੰਡੋਜ਼ VM 'ਤੇ ਵਿੰਡੋਜ਼ ਡਿਫੈਂਡਰ ਸਰਵਿਸ ਨੂੰ ਅਯੋਗ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਕਿਉਂਕਿ ਇਹ ਦਖਲ ਦੇ ਸਕਦੀ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਮਾਲਵੇਅਰ ਨਮੂਨੇ ਨੂੰ ਚਲਾ ਰਹੇ ਹੋ।


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.

ਇਸ ਕਿਤਾਬ ਵਿੱਚ, ਮੈਂ ਵੱਖ-ਵੱਖ ਮਾਲਵੇਅਰ ਵਿਸ਼ਲੇਸ਼ਣ ਟੂਲਸ ਨੂੰ ਕਵਰ ਕਰਾਂਗਾ।


Setting up an isolated lab environment is crucial before analyzing malicious programs.

ਖਤਰਨਾਕ ਪ੍ਰੋਗਰਾਮਾਂ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਅਲੱਗ ਲੈਬ ਵਾਤਾਵਰਣ ਸਥਾਪਤ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।


To reduce noise, you can use the filtering features.

ਸ਼ੋਰ ਘਟਾਉਣ ਲਈ, ਤੁਸੀਂ ਫਿਲਟਰਿੰਗ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।


To access this feature, select the Filter menu and then click on Filter.

ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ, ਫਿਲਟਰ ਮੀਨੂ ਚੁਣੋ ਅਤੇ ਫਿਰ ਫਿਲਟਰ 'ਤੇ ਕਲਿੱਕ ਕਰੋ।


Noriben is a Python script that works in conjunction with Process Monitor.

ਨੋਰੀਬੇਨ ਇੱਕ ਪਾਈਥਨ ਸਕ੍ਰਿਪਟ ਹੈ ਜੋ ਪ੍ਰੋਸੈਸ ਮਾਨੀਟਰ ਦੇ ਨਾਲ ਮਿਲ ਕੇ ਕੰਮ ਕਰਦੀ ਹੈ।


The text file contains events segregated based on the categories.

ਟੈਕਸਟ ਫਾਈਲ ਵਿੱਚ ਸ਼੍ਰੇਣੀਆਂ ਦੇ ਅਧਾਰ 'ਤੇ ਵੱਖ ਕੀਤੇ ਗਏ ਇਵੈਂਟ ਸ਼ਾਮਲ ਹਨ।


The CSV file contains all the events sorted by the timeline.

CSV ਫਾਈਲ ਵਿੱਚ ਸਾਰੇ ਇਵੈਂਟ ਟਾਈਮਲਾਈਨ ਦੁਆਰਾ ਕ੍ਰਮਬੱਧ ਕੀਤੇ ਗਏ ਹਨ।


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

ਵਾਈਰਸ਼ਾਰਕ ਇੱਕ ਪੈਕੇਟ ਸਨਿਫਰ ਹੈ ਜੋ ਤੁਹਾਨੂੰ ਨੈੱਟਵਰਕ ਟ੍ਰੈਫਿਕ ਨੂੰ ਕੈਪਚਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।


Most malware, when executed, reach out to the internet.

ਜ਼ਿਆਦਾਤਰ ਮਾਲਵੇਅਰ, ਜਦੋਂ ਚਲਾਏ ਜਾਂਦੇ ਹਨ, ਤਾਂ ਇੰਟਰਨੈਟ ਤੱਕ ਪਹੁੰਚ ਕਰਦੇ ਹਨ।


INetSim is a free Linux-based software suite for simulating standard internet services.

INetSim ਸਟੈਂਡਰਡ ਇੰਟਰਨੈਟ ਸੇਵਾਵਾਂ ਦੀ ਨਕਲ ਕਰਨ ਲਈ ਇੱਕ ਮੁਫਤ ਲੀਨਕਸ-ਅਧਾਰਤ ਸਾਫਟਵੇਅਰ ਸੂਟ ਹੈ।


If malware requests an executable (.exe) file from the C2 server, INetSim can return a dummy executable file.

ਜੇਕਰ ਮਾਲਵੇਅਰ C2 ਸਰਵਰ ਤੋਂ ਇੱਕ ਐਗਜ਼ੀਕਿਊਟੇਬਲ (.exe) ਫਾਈਲ ਦੀ ਬੇਨਤੀ ਕਰਦਾ ਹੈ, ਤਾਂ INetSim ਇੱਕ ਡਮੀ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਫਾਈਲ ਵਾਪਸ ਕਰ ਸਕਦਾ ਹੈ।


During dynamic analysis, you will follow a sequence of steps.

ਡਾਇਨਾਮਿਕ ਵਿਸ਼ਲੇਸ਼ਣ ਦੌਰਾਨ, ਤੁਸੀਂ ਕਦਮਾਂ ਦੀ ਇੱਕ ਲੜੀ ਦੀ ਪਾਲਣਾ ਕਰੋਗੇ।


Reverting to the clean snapshot is an important step.

ਸਾਫ਼ ਸਨੈਪਸ਼ਾਟ 'ਤੇ ਵਾਪਸ ਜਾਣਾ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਕਦਮ ਹੈ।


In this step, you will run the monitoring tools before executing the malware specimen.

ਇਸ ਪੜਾਅ ਵਿੱਚ, ਤੁਸੀਂ ਮਾਲਵੇਅਰ ਨਮੂਨੇ ਨੂੰ ਚਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਨਿਗਰਾਨੀ ਟੂਲ ਚਲਾਓਗੇ।


Once you have an understanding of the dynamic analysis tools, these tools can be used together.

ਇੱਕ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਡਾਇਨਾਮਿਕ ਵਿਸ਼ਲੇਸ਼ਣ ਟੂਲਸ ਨੂੰ ਸਮਝ ਲੈਂਦੇ ਹੋ, ਤਾਂ ਇਹਨਾਂ ਟੂਲਸ ਨੂੰ ਇਕੱਠੇ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ।


We will start by determining the file type and the cryptographic hash.

ਅਸੀਂ ਫਾਈਲ ਦੀ ਕਿਸਮ ਅਤੇ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਹੈਸ਼ ਦਾ ਪਤਾ ਲਗਾ ਕੇ ਸ਼ੁਰੂਆਤ ਕਰਾਂਗੇ।


The strings also show a reference to a batch file (_melt.bat).

ਸਤਰਾਂ ਇੱਕ ਬੈਚ ਫਾਈਲ (_melt.bat) ਦਾ ਹਵਾਲਾ ਵੀ ਦਿਖਾਉਂਦੀਆਂ ਹਨ।


Examining the imports shows references to file system-and registry-related API calls.

ਇੰਪੋਰਟ ਦੀ ਜਾਂਚ ਕਰਨ ਨਾਲ ਫਾਈਲ ਸਿਸਟਮ ਅਤੇ ਰਜਿਸਟਰੀ ਨਾਲ ਸਬੰਧਤ API ਕਾਲਾਂ ਦਾ ਹਵਾਲਾ ਮਿਲਦਾ ਹੈ।


The malware then drops another file called MDMF5A5.tmp_melt.bat.

ਮਾਲਵੇਅਰ ਫਿਰ MDMF5A5.tmp_melt.bat ਨਾਮ ਦੀ ਇੱਕ ਹੋਰ ਫਾਈਲ ਸੁੱਟਦਾ ਹੈ।


It then executes the dropped batch (.bat) script by invoking cmd.exe.

ਫਿਰ ਇਹ cmd.exe ਨੂੰ ਬੁਲਾ ਕੇ ਸੁੱਟੇ ਗਏ ਬੈਚ (.bat) ਸਕ੍ਰਿਪਟ ਨੂੰ ਚਲਾਉਂਦਾ ਹੈ।


A Dynamic-Link Library (DLL) is a module that contains functions.

ਇੱਕ ਡਾਇਨਾਮਿਕ-ਲਿੰਕ ਲਾਇਬ੍ਰੇਰੀ (DLL) ਇੱਕ ਮੋਡੀਊਲ ਹੈ ਜਿਸ ਵਿੱਚ ਫੰਕਸ਼ਨ ਹੁੰਦੇ ਹਨ।


You will often see malware authors distributing their malicious code as DLL instead of executable files.

ਤੁਸੀਂ ਅਕਸਰ ਮਾਲਵੇਅਰ ਲੇਖਕਾਂ ਨੂੰ ਆਪਣੇ ਖਤਰਨਾਕ ਕੋਡ ਨੂੰ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਫਾਈਲਾਂ ਦੀ ਬਜਾਏ DLL ਦੇ ਤੌਰ 'ਤੇ ਵੰਡਦੇ ਦੇਖੋਗੇ।


The memory address 0x403000 is where the value 100 is stored.

ਯਾਦਦਾਸ਼ਤ ਦਾ ਪਤਾ 0x403000 ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਮੁੱਲ 100 ਸਟੋਰ ਕੀਤਾ ਗਿਆ ਹੈ।


Assembly language uses addresses to access memory locations.

ਅਸੈਂਬਲੀ ਭਾਸ਼ਾ ਮੈਮੋਰੀ ਟਿਕਾਣਿਆਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਪਤਿਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


The instruction 'mov eax, [0x403000]' moves data from memory to the eax register.

'mov eax, [0x403000]' ਹਦਾਇਤ ਮੈਮੋਰੀ ਤੋਂ ਡਾਟਾ eax ਰਜਿਸਟਰ ਵਿੱਚ ਭੇਜਦੀ ਹੈ।


Square brackets in assembly indicate a memory location.

ਅਸੈਂਬਲੀ ਵਿੱਚ ਵਰਗ ਬਰੈਕਟ ਇੱਕ ਮੈਮੋਰੀ ਟਿਕਾਣੇ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ।


The 'lea' instruction loads the effective address.

'lea' ਹਦਾਇਤ ਪ੍ਰਭਾਵੀ ਪਤਾ ਲੋਡ ਕਰਦੀ ਹੈ।


Values can be moved from registers to memory.

ਮੁੱਲਾਂ ਨੂੰ ਰਜਿਸਟਰਾਂ ਤੋਂ ਮੈਮੋਰੀ ਵਿੱਚ ਭੇਜਿਆ ਜਾ ਸਕਦਾ ਹੈ।


The instruction 'mov [0x403000], eax' moves the value in eax to memory.

'mov [0x403000], eax' ਹਦਾਇਤ eax ਵਿੱਚ ਮੌਜੂਦ ਮੁੱਲ ਨੂੰ ਮੈਮੋਰੀ ਵਿੱਚ ਭੇਜਦੀ ਹੈ।


Disassembly helps understand what a program does.

ਡਿਸਅਸੈਂਬਲੀ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਦੇ ਕੰਮ ਨੂੰ ਸਮਝਣ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ।


A simple C code snippet can be translated to assembly.

ਇੱਕ ਸਧਾਰਨ C ਕੋਡ ਟੁਕੜੇ ਨੂੰ ਅਸੈਂਬਲੀ ਵਿੱਚ ਅਨੁਵਾਦ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।


Variables in C correspond to memory addresses in assembly.

C ਵਿੱਚ ਵੇਰੀਏਬਲ ਅਸੈਂਬਲੀ ਵਿੱਚ ਮੈਮੋਰੀ ਪਤਿਆਂ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਹਨ।


The CPU uses registers for temporary storage.

CPU ਅਸਥਾਈ ਸਟੋਰੇਜ ਲਈ ਰਜਿਸਟਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।


Arithmetic operations are fundamental in assembly language.

ਅੰਕਗਣਿਤ ਓਪਰੇਸ਼ਨ ਅਸੈਂਬਲੀ ਭਾਸ਼ਾ ਵਿੱਚ ਬੁਨਿਆਦੀ ਹਨ।


Addition is performed using the 'add' instruction.

ਜੋੜ 'add' ਹਦਾਇਤ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


The 'sub' instruction performs subtraction.

'sub' ਹਦਾਇਤ ਘਟਾਓ ਕਰਦੀ ਹੈ।


Multiplication is done with the 'mul' instruction.

ਗੁਣਾ 'mul' ਹਦਾਇਤ ਨਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


Division is performed using the 'div' instruction.

ਭਾਗ 'div' ਹਦਾਇਤ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


Bitwise operations manipulate individual bits.

ਬਿਟਵਾਈਜ਼ ਓਪਰੇਸ਼ਨ ਵਿਅਕਤੀਗਤ ਬਿੱਟਾਂ ਨੂੰ ਹੇਰਾਫੇਰੀ ਕਰਦੇ ਹਨ।


'not' ਹਦਾਇਤ ਸਾਰੇ ਬਿੱਟਾਂ ਨੂੰ ਉਲਟਾ ਦਿੰਦੀ ਹੈ।


Conditional jumps are used for decision-making.

ਸ਼ਰਤੀਆ ਜੰਪ ਫੈਸਲੇ ਲੈਣ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਹਨ।


The 'if' statement is implemented using conditional jumps.

'if' ਸਟੇਟਮੈਂਟ ਨੂੰ ਸ਼ਰਤੀਆ ਜੰਪ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਲਾਗੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


The malware establishes an HTTP connection with the C2 domain.

ਮਾਲਵੇਅਰ C2 ਡੋਮੇਨ ਨਾਲ ਇੱਕ HTTP ਕਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰਦਾ ਹੈ।


The DLL sample was run with the following command.

DLL ਨਮੂਨੇ ਨੂੰ ਹੇਠ ਦਿੱਤੀ ਕਮਾਂਡ ਨਾਲ ਚਲਾਇਆ ਗਿਆ ਸੀ।


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

ਇਸ ਦਾ ਕਾਰਨ ਇਹ ਹੈ ਕਿ DLL ਦਾ ਐਂਟਰੀ ਪੁਆਇੰਟ ਫੰਕਸ਼ਨ ਕੋਈ ਵੀ ਕਾਰਜਸ਼ੀਲਤਾ ਲਾਗੂ ਨਹੀਂ ਕਰਦਾ।


From this, it can be deduced that DLLRegisterServer implements the network functionality.

ਇਸ ਤੋਂ, ਇਹ ਅੰਦਾਜ਼ਾ ਲਗਾਇਆ ਜਾ ਸਕਦਾ ਹੈ ਕਿ DLLRegisterServer ਨੈੱਟਵਰਕ ਕਾਰਜਸ਼ੀਲਤਾ ਨੂੰ ਲਾਗੂ ਕਰਦਾ ਹੈ।


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

ਤੁਸੀਂ ਇੱਕ ਸਕ੍ਰਿਪਟ ਲਿਖ ਸਕਦੇ ਹੋ ਇੱਕ 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.

ਮਿਟਾਉਣ ਦੀ ਕਾਰਜਸ਼ੀਲਤਾ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ, ਇੱਕ ਟੈਸਟ ਫਾਈਲ (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.

ਜ਼ਿਆਦਾਤਰ ਸਮਾਂ, rundll32.exe ਨਾਲ ਇੱਕ DLL ਲਾਂਚ ਕਰਨਾ ਠੀਕ ਕੰਮ ਕਰੇਗਾ।


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

ਅਜਿਹੇ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਤੁਹਾਨੂੰ ਵਿਵਹਾਰ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ DLL ਨੂੰ ਖਾਸ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਇੰਜੈਕਟ ਕਰਨਾ ਪਏਗਾ।


Running the DLL using the following command generated an error.

ਹੇਠ ਦਿੱਤੀ ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ DLL ਚਲਾਉਣ ਨਾਲ ਇੱਕ ਗਲਤੀ ਪੈਦਾ ਹੋਈ।


After analyzing the code, it was found that the DLL, in its entry point function, performed a check.

ਕੋਡ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਇਹ ਪਾਇਆ ਗਿਆ ਕਿ DLL, ਆਪਣੇ ਐਂਟਰੀ ਪੁਆਇੰਟ ਫੰਕਸ਼ਨ ਵਿੱਚ, ਇੱਕ ਜਾਂਚ ਕਰਦਾ ਹੈ।


To trigger the behavior, malicious DLL had to be injected into the spoolsv.exe process.

ਵਿਵਹਾਰ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ, ਖਤਰਨਾਕ DLL ਨੂੰ spoolsv.exe ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਇੰਜੈਕਟ ਕਰਨਾ ਪਿਆ।


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.

ਮਾਲਵੇਅਰ ਨੇ ਹੇਠ ਲਿਖੀਆਂ ਰਜਿਸਟਰੀ ਐਂਟਰੀਆਂ ਸ਼ਾਮਲ ਕੀਤੀਆਂ।


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

ਡਾਇਨਾਮਿਕ ਵਿਸ਼ਲੇਸ਼ਣ ਮਾਲਵੇਅਰ ਦੇ ਵਿਵਹਾਰ ਨੂੰ ਸਮਝਣ ਲਈ ਇੱਕ ਵਧੀਆ ਤਕਨੀਕ ਹੈ।


Combining static analysis and dynamic analysis helps you gain a better understanding of the malware binary.

ਸਟੈਟਿਕ ਵਿਸ਼ਲੇਸ਼ਣ ਅਤੇ ਡਾਇਨਾਮਿਕ ਵਿਸ਼ਲੇਸ਼ਣ ਨੂੰ ਜੋੜਨਾ ਤੁਹਾਨੂੰ ਮਾਲਵੇਅਰ ਬਾਈਨਰੀ ਦੀ ਬਿਹਤਰ ਸਮਝ ਪ੍ਰਾਪਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।


The code will execute after the 'else' block.

'else' ਬਲਾਕ ਤੋਂ ਬਾਅਦ ਕੋਡ ਚੱਲੇਗਾ।


Assembly language is used to translate C programs.

ਅਸੈਂਬਲੀ ਭਾਸ਼ਾ ਦੀ ਵਰਤੋਂ ਸੀ ਪ੍ਰੋਗਰਾਮਾਂ ਦਾ ਅਨੁਵਾਦ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


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

ਜੇਕਰ x 0 ਦੇ ਬਰਾਬਰ ਨਹੀਂ ਹੈ, ਤਾਂ ਸ਼ਰਤੀਆ ਜੰਪ ਲਿਆ ਜਾਵੇਗਾ।


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

ਜੇਕਰ x 0 ਦੇ ਬਰਾਬਰ ਹੈ, ਤਾਂ else ਬਲਾਕ ਨੂੰ ਛੱਡ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।


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

ਇਫ-ਐਲਸ-ਇਫ-ਐਲਸ ਸਟੇਟਮੈਂਟ ਇੱਕ ਆਮ ਕੰਟਰੋਲ ਢਾਂਚਾ ਹੈ।


Unconditional jumps skip the else statement.

ਬਿਨਾਂ ਸ਼ਰਤ ਜੰਪ ਐਲਸ ਸਟੇਟਮੈਂਟ ਨੂੰ ਛੱਡ ਦਿੰਦੇ ਹਨ।


Let's determine when jumps will be taken.

ਆਓ ਪਤਾ ਕਰੀਏ ਕਿ ਜੰਪ ਕਦੋਂ ਲਏ ਜਾਣਗੇ।


The disassembled output of a program is analyzed.

ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਦੇ ਡਿਸਅਸੈਂਬਲ ਕੀਤੇ ਆਉਟਪੁੱਟ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


We will translate the code to its high-level equivalent.

ਅਸੀਂ ਕੋਡ ਦਾ ਇਸਦੇ ਉੱਚ-ਪੱਧਰੀ ਬਰਾਬਰ ਵਿੱਚ ਅਨੁਵਾਦ ਕਰਾਂਗੇ।


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 ਦੇ ਬਰਾਬਰ ਹੁੰਦਾ ਹੈ ਤਾਂ ਜੰਪ ਨਹੀਂ ਲਿਆ ਜਾਵੇਗਾ।


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

ਲੂਪ ਇੱਕ ਕੋਡ ਬਲਾਕ ਨੂੰ ਉਦੋਂ ਤੱਕ ਚਲਾਉਂਦੇ ਹਨ ਜਦੋਂ ਤੱਕ ਇੱਕ ਸ਼ਰਤ ਪੂਰੀ ਨਹੀਂ ਹੋ ਜਾਂਦੀ।


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

ਲੂਪ ਦੀਆਂ ਦੋ ਸਭ ਤੋਂ ਆਮ ਕਿਸਮਾਂ ਹਨ for ਅਤੇ while।


The initialization statement is executed only once.

ਇਨੀਸ਼ੀਅਲਾਈਜ਼ੇਸ਼ਨ ਸਟੇਟਮੈਂਟ ਸਿਰਫ਼ ਇੱਕ ਵਾਰ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ।


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

ਦੋਵਾਂ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਜਦੋਂ i 5 ਤੋਂ ਵੱਡਾ ਜਾਂ ਬਰਾਬਰ ਹੋ ਜਾਂਦਾ ਹੈ ਤਾਂ ਇੱਕ ਜੰਪ ਲਿਆ ਜਾਵੇਗਾ।


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

ਕੋਡ ਜਾਂਚ ਕਰ ਰਿਹਾ ਹੈ ਕਿ ਕੀ i 5 ਤੋਂ ਵੱਡਾ ਜਾਂ ਬਰਾਬਰ ਹੈ।


The function can take data as input via parameters.

ਫੰਕਸ਼ਨ ਪੈਰਾਮੀਟਰਾਂ ਰਾਹੀਂ ਇਨਪੁਟ ਦੇ ਤੌਰ 'ਤੇ ਡਾਟਾ ਲੈ ਸਕਦਾ ਹੈ।


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

ਸਟੈਕ ਨੂੰ ਲਾਸਟ-ਇਨ-ਫਸਟ-ਆਊਟ (LIFO) ਢਾਂਚੇ ਵਿੱਚ ਸੰਗਠਿਤ ਕੀਤਾ ਗਿਆ ਹੈ।


The push instruction pushes a 4-byte value onto the stack.

ਪੁਸ਼ ਹਦਾਇਤ ਸਟੈਕ 'ਤੇ 4-ਬਾਈਟ ਮੁੱਲ ਨੂੰ ਧੱਕਦੀ ਹੈ।


The parameters are pushed onto the stack before the function call.

ਫੰਕਸ਼ਨ ਕਾਲ ਤੋਂ ਪਹਿਲਾਂ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਸਟੈਕ 'ਤੇ ਧੱਕਿਆ ਜਾਂਦਾ ਹੈ।


The main function is known as the caller, and test is the callee.

ਮੁੱਖ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲਰ ਵਜੋਂ ਜਾਣਿਆ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਟੈਸਟ ਕਾਲੀ ਹੈ।


The main function cleaned up the stack using add esp,8 instruction.

ਮੁੱਖ ਫੰਕਸ਼ਨ ਨੇ add esp,8 ਹਦਾਇਤ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਟੈਕ ਨੂੰ ਸਾਫ਼ ਕੀਤਾ।


The calling convention dictates how the parameters should be passed.

ਕਾਲਿੰਗ ਕਨਵੈਨਸ਼ਨ ਦੱਸਦੀ ਹੈ ਕਿ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਕਿਵੇਂ ਪਾਸ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ।


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.

cdecl ਕਨਵੈਨਸ਼ਨ ਵਿੱਚ, ਕਾਲਰ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਸੱਜੇ ਤੋਂ ਖੱਬੇ ਕ੍ਰਮ ਵਿੱਚ ਧੱਕਦਾ ਹੈ।


There are other calling conventions such as stdcall and fastcall.

ਇੱਥੇ ਹੋਰ ਕਾਲਿੰਗ ਕਨਵੈਨਸ਼ਨ ਹਨ ਜਿਵੇਂ ਕਿ stdcall ਅਤੇ fastcall।


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

ਮਾਈਕਰੋਸਾਫਟ ਵਿੰਡੋਜ਼ DLL ਫਾਈਲਾਂ ਦੁਆਰਾ ਨਿਰਯਾਤ ਕੀਤੇ ਗਏ ਫੰਕਸ਼ਨਾਂ ਲਈ 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.

ਐਰੇ ਤੱਤ ਮੈਮੋਰੀ ਵਿੱਚ ਲਗਾਤਾਰ ਸਥਾਨਾਂ ਵਿੱਚ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ।


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, and the size of each element in the array.

ਐਰੇ ਦਾ ਬੇਸ ਐਡਰੈੱਸ, ਤੱਤ ਦਾ ਇੰਡੈਕਸ, ਅਤੇ ਐਰੇ ਵਿੱਚ ਹਰੇਕ ਤੱਤ ਦਾ ਆਕਾਰ।


When you use nums[0] in a high-level language, it is translated to [nums+0*<size_of_each_element_in_bytes>].

ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਉੱਚ-ਪੱਧਰੀ ਭਾਸ਼ਾ ਵਿੱਚ nums[0] ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਇਸਦਾ ਅਨੁਵਾਦ [nums+0*<size_of_each_element_in_bytes>] ਵਿੱਚ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


ਇੱਕ ਸਤਰ ਅੱਖਰਾਂ ਦੀ ਇੱਕ ਐਰੇ ਹੈ।


When you define a string, a null terminator is added at the end of every string.

ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਸਤਰ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦੇ ਹੋ, ਤਾਂ ਹਰ ਸਤਰ ਦੇ ਅੰਤ ਵਿੱਚ ਇੱਕ ਨਲ ਟਰਮੀਨੇਟਰ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ।


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

ਸਤਰ ਦਾ ਨਾਮ str ਇੱਕ ਪੁਆਇੰਟਰ ਵੇਰੀਏਬਲ ਹੈ ਜੋ ਸਤਰ ਵਿੱਚ ਪਹਿਲੇ ਅੱਖਰ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦਾ ਹੈ।


The x64 architecture was designed as an extension to x86.

x64 ਆਰਕੀਟੈਕਚਰ ਨੂੰ x86 ਦੇ ਵਿਸਤਾਰ ਵਜੋਂ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਸੀ।


The disassembler translates machine code into assembly code.

ਡਿਸਅਸੈਂਬਲਰ ਮਸ਼ੀਨ ਕੋਡ ਨੂੰ ਅਸੈਂਬਲੀ ਕੋਡ ਵਿੱਚ ਅਨੁਵਾਦ ਕਰਦਾ ਹੈ।


Static code analysis helps understand a program's behavior without running it.

ਸਟੈਟਿਕ ਕੋਡ ਵਿਸ਼ਲੇਸ਼ਣ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਚਲਾਏ ਬਿਨਾਂ ਇਸਦੇ ਵਿਵਹਾਰ ਨੂੰ ਸਮਝਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।


A debugger allows you to execute code in a controlled manner.

ਇੱਕ ਡੀਬੱਗਰ ਤੁਹਾਨੂੰ ਇੱਕ ਨਿਯੰਤਰਿਤ ਤਰੀਕੇ ਨਾਲ ਕੋਡ ਚਲਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।


Decompilers translate machine code into high-level language code.

ਡੀਕੰਪਾਈਲਰ ਮਸ਼ੀਨ ਕੋਡ ਨੂੰ ਉੱਚ-ਪੱਧਰੀ ਭਾਸ਼ਾ ਕੋਡ ਵਿੱਚ ਅਨੁਵਾਦ ਕਰਦੇ ਹਨ।


IDA Pro is a popular disassembler and debugger used by reverse engineers.

IDA Pro ਇੱਕ ਪ੍ਰਸਿੱਧ ਡਿਸਅਸੈਂਬਲਰ ਅਤੇ ਡੀਬੱਗਰ ਹੈ ਜੋ ਰਿਵਰਸ ਇੰਜੀਨੀਅਰਾਂ ਦੁਆਰਾ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।


The freeware version of IDA has limitations compared to the commercial version.

IDA ਦੇ ਫ੍ਰੀਵੇਅਰ ਸੰਸਕਰਣ ਵਿੱਚ ਵਪਾਰਕ ਸੰਸਕਰਣ ਦੇ ਮੁਕਾਬਲੇ ਸੀਮਾਵਾਂ ਹਨ।


When analyzing malware, it's crucial to understand how it interacts with the system.

ਮਾਲਵੇਅਰ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦੇ ਸਮੇਂ, ਇਹ ਸਮਝਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ ਇਹ ਸਿਸਟਮ ਨਾਲ ਕਿਵੇਂ ਗੱਲਬਾਤ ਕਰਦਾ ਹੈ।


The WOW64 subsystem allows 32-bit executables to run on 64-bit Windows.

WOW64 ਸਬਸਿਸਟਮ 32-ਬਿੱਟ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਨੂੰ 64-ਬਿੱਟ ਵਿੰਡੋਜ਼ 'ਤੇ ਚਲਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।


Malware often tries to access system32, which is redirected to Syswow64.

ਮਾਲਵੇਅਰ ਅਕਸਰ system32 ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ, ਜਿਸਨੂੰ Syswow64 'ਤੇ ਰੀਡਾਇਰੈਕਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


Understanding the differences between x86 and x64 architectures is essential.

x86 ਅਤੇ x64 ਆਰਕੀਟੈਕਚਰਾਂ ਵਿੱਚ ਅੰਤਰ ਨੂੰ ਸਮਝਣਾ ਜ਼ਰੂਰੀ ਹੈ।


IDA Pro's features simplify code analysis.

IDA Pro ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਕੋਡ ਵਿਸ਼ਲੇਸ਼ਣ ਨੂੰ ਸਰਲ ਬਣਾਉਂਦੀਆਂ ਹਨ।


Renaming variables in IDA improves readability.

IDA ਵਿੱਚ ਵੇਰੀਏਬਲਾਂ ਦਾ ਨਾਮ ਬਦਲਣਾ ਪੜ੍ਹਨਯੋਗਤਾ ਵਿੱਚ ਸੁਧਾਰ ਕਰਦਾ ਹੈ।


Comments in IDA help explain the code's functionality.

IDA ਵਿੱਚ ਟਿੱਪਣੀਆਂ ਕੋਡ ਦੀ ਕਾਰਜਕੁਸ਼ਲਤਾ ਨੂੰ ਸਮਝਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦੀਆਂ ਹਨ।


The main function is the entry point of a C program.

ਮੁੱਖ ਫੰਕਸ਼ਨ ਇੱਕ C ਪ੍ਰੋਗਰਾਮ ਦਾ ਐਂਟਰੀ ਪੁਆਇੰਟ ਹੈ।


IDA can identify function arguments and their data types.

IDA ਫੰਕਸ਼ਨ ਆਰਗੂਮੈਂਟਸ ਅਤੇ ਉਹਨਾਂ ਦੀਆਂ ਡਾਟਾ ਕਿਸਮਾਂ ਦੀ ਪਛਾਣ ਕਰ ਸਕਦਾ ਹੈ।


The stack frame layout is determined during disassembly.

ਸਟੈਕ ਫਰੇਮ ਲੇਆਉਟ ਡਿਸਅਸੈਂਬਲੀ ਦੌਰਾਨ ਨਿਰਧਾਰਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


Use IDA to explore the program's control flow.

ਪ੍ਰੋਗਰਾਮ ਦੇ ਕੰਟਰੋਲ ਫਲੋ ਦੀ ਪੜਚੋਲ ਕਰਨ ਲਈ IDA ਦੀ ਵਰਤੋਂ ਕਰੋ।


The hex view shows the raw bytes of the code.

ਹੈਕਸ ਵਿਊ ਕੋਡ ਦੇ ਕੱਚੇ ਬਾਈਟਸ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।


IDA's graph view visualizes the program's logic.

IDA ਦਾ ਗ੍ਰਾਫ ਵਿਊ ਪ੍ਰੋਗਰਾਮ ਦੇ ਤਰਕ ਨੂੰ ਦ੍ਰਿਸ਼ਟੀਮਾਨ ਕਰਦਾ ਹੈ।


Analyzing assembly code requires patience and practice.

ਅਸੈਂਬਲੀ ਕੋਡ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਲਈ ਸਬਰ ਅਤੇ ਅਭਿਆਸ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।


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; when you close IDA, you will be presented with a Save database dialog.

ਤੁਸੀਂ IDA ਨੂੰ ਬੰਦ ਕਰਕੇ ਡੇਟਾਬੇਸ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰ ਸਕਦੇ ਹੋ; ਜਦੋਂ ਤੁਸੀਂ IDA ਨੂੰ ਬੰਦ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਇੱਕ ਸੇਵ ਡੇਟਾਬੇਸ ਡਾਇਲਾਗ ਪੇਸ਼ ਕੀਤਾ ਜਾਵੇਗਾ।


The Pack database option archives all of the files into a single IDB (.idb) or i64 (.i64) file.

ਪੈਕ ਡੇਟਾਬੇਸ ਵਿਕਲਪ ਸਾਰੀਆਂ ਫਾਈਲਾਂ ਨੂੰ ਇੱਕ ਸਿੰਗਲ IDB (.idb) ਜਾਂ i64 (.i64) ਫਾਈਲ ਵਿੱਚ ਆਰਕਾਈਵ ਕਰਦਾ ਹੈ।


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

ਜਦੋਂ ਤੁਸੀਂ .idb ਜਾਂ .i64 ਫਾਈਲ ਨੂੰ ਦੁਬਾਰਾ ਖੋਲ੍ਹਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਮੁੜ-ਨਾਮਿਤ ਵੇਰੀਏਬਲ ਅਤੇ ਟਿੱਪਣੀਆਂ ਦਿਖਾਈ ਦੇਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ।


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

ਆਓ ਇੱਕ ਹੋਰ ਸਧਾਰਨ ਪ੍ਰੋਗਰਾਮ 'ਤੇ ਇੱਕ ਨਜ਼ਰ ਮਾਰੀਏ ਅਤੇ IDA ਦੀਆਂ ਕੁਝ ਹੋਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਪੜਚੋਲ ਕਰੀਏ।


IDA identified three local variables and propagated this information in the program.

IDA ਨੇ ਤਿੰਨ ਸਥਾਨਕ ਵੇਰੀਏਬਲ ਦੀ ਪਛਾਣ ਕੀਤੀ ਅਤੇ ਇਸ ਜਾਣਕਾਰੀ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਪ੍ਰਸਾਰਿਤ ਕੀਤਾ।


IDA also identified the global variables and assigned names such as dword_403374 and byte_403370.

IDA ਨੇ ਗਲੋਬਲ ਵੇਰੀਏਬਲ ਦੀ ਵੀ ਪਛਾਣ ਕੀਤੀ ਅਤੇ dword_403374 ਅਤੇ byte_403370 ਵਰਗੇ ਨਾਮ ਨਿਰਧਾਰਤ ਕੀਤੇ।


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

ਇਸਦਾ ਕਾਰਨ ਇਹ ਹੈ ਕਿ, ਜਦੋਂ ਇੱਕ ਵੇਰੀਏਬਲ ਨੂੰ ਗਲੋਬਲ ਡਾਟਾ ਖੇਤਰ ਵਿੱਚ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਵੇਰੀਏਬਲ ਦਾ ਪਤਾ ਅਤੇ ਆਕਾਰ ਕੰਪਾਈਲ ਟਾਈਮ ਤੇ ਕੰਪਾਈਲਰ ਨੂੰ ਪਤਾ ਹੁੰਦਾ ਹੈ।


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

IDA ਨੇ ਇਹ ਦਰਸਾਉਣ ਲਈ ਆਫਸੈੱਟ ਕੀਵਰਡ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਕਿ ਵੇਰੀਏਬਲ ਦੇ ਪਤੇ ਵਰਤੇ ਜਾਂਦੇ ਹਨ।


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

➏ 'ਤੇ, IDA ਨੇ ਸਤਰ (ਸਤਰ ਵੇਰੀਏਬਲ) ਵਾਲੇ ਪਤੇ ਨੂੰ ਡਮੀ ਨਾਮ aTest ਨਿਰਧਾਰਤ ਕੀਤਾ।


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

IDA ਤੁਹਾਨੂੰ ਸਥਿਰ ਮੁੱਲਾਂ ਨੂੰ ਦਸ਼ਮਲਵ, ਅਸ਼ਟਕ ਜਾਂ ਬਾਈਨਰੀ ਮੁੱਲਾਂ ਦੇ ਰੂਪ ਵਿੱਚ ਦੁਬਾਰਾ ਫਾਰਮੈਟ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।


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

ਜਦੋਂ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਡਿਸਅਸੈਂਬਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ IDA ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਹਰ ਸਥਾਨ ਨੂੰ ਲੇਬਲ ਕਰਦਾ ਹੈ।


Another way to navigate is by using cross-references (also referred to as Xrefs).

ਨੈਵੀਗੇਟ ਕਰਨ ਦਾ ਇੱਕ ਹੋਰ ਤਰੀਕਾ ਹੈ ਕਰਾਸ-ਰੈਫਰੈਂਸ (ਜਿਸਨੂੰ Xrefs ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ) ਦੀ ਵਰਤੋਂ ਕਰਨਾ।


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 (such as jump or function call).

ਇੱਕ ਕੋਡ ਕਰਾਸ-ਰੈਫਰੈਂਸ ਇੱਕ ਹਦਾਇਤ ਤੋਂ ਦੂਜੀ ਤੱਕ ਕੰਟਰੋਲ ਪ੍ਰਵਾਹ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ (ਜਿਵੇਂ ਕਿ ਜੰਪ ਜਾਂ ਫੰਕਸ਼ਨ ਕਾਲ)।


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

IDA ਇੱਕ ਤਕਨਾਲੋਜੀ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਜਿਸਨੂੰ ਫਾਸਟ ਲਾਇਬ੍ਰੇਰੀ ਆਈਡੈਂਟੀਫਿਕੇਸ਼ਨ ਐਂਡ ਰਿਕੋਗਨੀਸ਼ਨ ਟੈਕਨੋਲੋਜੀ (FLIRT) ਕਿਹਾ ਜਾਂਦਾ ਹੈ।


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.

IDA ਨੇ ਇਹ ਦਰਸਾਉਣ ਲਈ ਟਿੱਪਣੀਆਂ ਦੇ ਤੌਰ 'ਤੇ ਪੈਰਾਮੀਟਰਾਂ ਦੇ ਨਾਮ ਵੀ ਸ਼ਾਮਲ ਕੀਤੇ ਹਨ ਕਿ ਕਿਹੜਾ ਪੈਰਾਮੀਟਰ ਧੱਕਿਆ ਜਾ ਰਿਹਾ ਸੀ।


Malware either creates or opens a file (psto.exe) that is passed as the first argument.

ਮਾਲਵੇਅਰ ਜਾਂ ਤਾਂ ਇੱਕ ਫਾਈਲ (psto.exe) ਬਣਾਉਂਦਾ ਹੈ ਜਾਂ ਖੋਲ੍ਹਦਾ ਹੈ ਜੋ ਪਹਿਲੇ ਆਰਗੂਮੈਂਟ ਵਜੋਂ ਪਾਸ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


The second argument specifies the requested access (such as read or write).

ਦੂਜਾ ਆਰਗੂਮੈਂਟ ਬੇਨਤੀ ਕੀਤੀ ਪਹੁੰਚ (ਜਿਵੇਂ ਕਿ ਪੜ੍ਹੋ ਜਾਂ ਲਿਖੋ) ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ।


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

ਮਾਲਵੇਅਰ ਲੇਖਕ ਅਕਸਰ ਆਪਣੇ ਸਰੋਤ ਕੋਡ ਵਿੱਚ ਪ੍ਰਤੀਕ ਨਿਰੰਤਰਤਾਵਾਂ, ਜਿਵੇਂ ਕਿ GENERIC_WRITE, ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।


IDA also maintains a list of standard symbolic constants for the Windows API.

IDA ਵਿੰਡੋਜ਼ API ਲਈ ਸਟੈਂਡਰਡ ਪ੍ਰਤੀਕ ਨਿਰੰਤਰਤਾਵਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਵੀ ਬਣਾਈ ਰੱਖਦਾ ਹੈ।


You can replace the constant value such as 40000000h with the symbolic constant.

ਤੁਸੀਂ ਸਥਿਰ ਮੁੱਲ ਜਿਵੇਂ ਕਿ 40000000h ਨੂੰ ਪ੍ਰਤੀਕ ਸਥਿਰ ਨਾਲ ਬਦਲ ਸਕਦੇ ਹੋ।


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.

ਵਿੰਡੋਜ਼ ਦੋ ਸਮਾਨਾਂਤਰ API ਸੈੱਟਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ: ਇੱਕ ANSI ਸਤਰਾਂ ਲਈ, ਅਤੇ ਦੂਜਾ ਯੂਨੀਕੋਡ ਸਤਰਾਂ ਲਈ।


You will also see malware using APIs such as CreateFileW.

ਤੁਸੀਂ ਮਾਲਵੇਅਰ ਨੂੰ CreateFileW ਵਰਗੇ API ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਵੀ ਦੇਖੋਗੇ।


During malware analysis, when you come across a function such as CreateFileA or CreateFileW, just remove the trailing A and W characters.

ਮਾਲਵੇਅਰ ਵਿਸ਼ਲੇਸ਼ਣ ਦੌਰਾਨ, ਜਦੋਂ ਤੁਸੀਂ CreateFileA ਜਾਂ CreateFileW ਵਰਗੇ ਫੰਕਸ਼ਨ ਦਾ ਸਾਹਮਣਾ ਕਰਦੇ ਹੋ, ਤਾਂ ਸਿਰਫ਼ ਪਿਛਲੇ A ਅਤੇ W ਅੱਖਰਾਂ ਨੂੰ ਹਟਾਓ।


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

ਆਓ ਇਹ ਸਮਝਣ ਲਈ 32-ਬਿੱਟ ਮਾਲਵੇਅਰ ਦੀ ਇੱਕ ਉਦਾਹਰਣ 'ਤੇ ਇੱਕ ਨਜ਼ਰ ਮਾਰੀਏ ਕਿ ਮਾਲਵੇਅਰ ਕਈ API ਫੰਕਸ਼ਨਾਂ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਦਾ ਹੈ।


The malware calls the RegOpenKeyEx API to open a handle to the Run registry key.

ਮਾਲਵੇਅਰ ਰਨ ਰਜਿਸਟਰੀ ਕੁੰਜੀ ਲਈ ਇੱਕ ਹੈਂਡਲ ਖੋਲ੍ਹਣ ਲਈ 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 ਰਜਿਸਟਰ ਵਿੱਚ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ।


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

ਇਹ ਜੋ ਮੁੱਲ ਸੈੱਟ ਕਰਦਾ ਹੈ ਉਹ ਦੂਜੇ ਪੈਰਾਮੀਟਰ ਵਜੋਂ ਪਾਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜੋ ਕਿ ਸਤਰ ਸਿਸਟਮ ਹੈ।


After adding the entry to the registry key, the malware closes the handle to the registry key.

ਰਜਿਸਟਰੀ ਕੁੰਜੀ ਵਿੱਚ ਐਂਟਰੀ ਜੋੜਨ ਤੋਂ ਬਾਅਦ, ਮਾਲਵੇਅਰ ਰਜਿਸਟਰੀ ਕੁੰਜੀ ਲਈ ਹੈਂਡਲ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ।


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 ਫੰਕਸ਼ਨਾਂ ਨਾਲ ਸਾਂਝਾ ਕਰਦਾ ਹੈ।


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.

ਇਹ ਮਾਲਵੇਅਰ ਦੇ ਰਨਟਾਈਮ ਵਿਵਹਾਰ 'ਤੇ ਪੂਰਾ ਕੰਟਰੋਲ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।


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

ਤੁਸੀਂ ਇਹਨਾਂ ਡੀਬੱਗਰਾਂ ਦੁਆਰਾ ਪੇਸ਼ ਕੀਤੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਬਾਰੇ ਸਿੱਖੋਗੇ, ਅਤੇ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਦੇ ਰਨਟਾਈਮ ਵਿਵਹਾਰ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰਨੀ ਹੈ।


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

ਜਦੋਂ ਤੁਸੀਂ ਮਾਲਵੇਅਰ ਨੂੰ ਡੀਬੱਗ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ ਸਹੀ ਦੇਖਭਾਲ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਕਿਉਂਕਿ ਤੁਸੀਂ ਸਿਸਟਮ 'ਤੇ ਮਲਟੀਸ਼ੀਅਸ ਕੋਡ ਚਲਾ ਰਹੇ ਹੋਵੋਗੇ।


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

ਇਹ ਬਹੁਤ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਕਿ ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਮਾਲਵੇਅਰ ਡੀਬੱਗਿੰਗ ਨੂੰ ਇੱਕ ਅਲੱਗ ਥਲੱਗ ਵਾਤਾਵਰਣ ਵਿੱਚ ਕਰੋ।


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 you start the debugger, the original binary will be executed with the privileges of the user running the debugger.

ਜਦੋਂ ਤੁਸੀਂ ਡੀਬੱਗਰ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋ, ਤਾਂ ਅਸਲ ਬਾਈਨਰੀ ਨੂੰ ਡੀਬੱਗਰ ਚਲਾਉਣ ਵਾਲੇ ਉਪਭੋਗਤਾ ਦੇ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰਾਂ ਨਾਲ ਚਲਾਇਆ ਜਾਵੇਗਾ।


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

ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਦਾ ਐਂਟਰੀ ਪੁਆਇੰਟ ਪਹਿਲੇ ਨਿਰਦੇਸ਼ ਦਾ ਪਤਾ ਹੈ ਜੋ ਚਲਾਇਆ ਜਾਵੇਗਾ।


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

ਇੱਕ ਡੀਬੱਗਰ ਤੁਹਾਨੂੰ ਪ੍ਰਕਿਰਿਆ ਦੇ ਵਿਵਹਾਰ ਨੂੰ ਕੰਟਰੋਲ/ਸੋਧਣ ਦੀ ਸਮਰੱਥਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜਦੋਂ ਇਹ ਚੱਲ ਰਿਹਾ ਹੁੰਦਾ ਹੈ।


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

ਇੱਕ ਡੀਬੱਗਰ ਦੁਆਰਾ ਪੇਸ਼ ਕੀਤੀਆਂ ਗਈਆਂ ਦੋ ਮਹੱਤਵਪੂਰਨ ਸਮਰੱਥਾਵਾਂ ਹਨ: (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.

ਅੰਦਰ ਕਦਮ ਅਤੇ ਉੱਤੇ ਕਦਮ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਤੁਸੀਂ ਇੱਕ ਸਿੰਗਲ ਨਿਰਦੇਸ਼ ਚਲਾ ਸਕਦੇ ਹੋ।


The difference between step into and step over occurs when you are executing an instruction that calls a function.

ਅੰਦਰ ਕਦਮ ਅਤੇ ਉੱਤੇ ਕਦਮ ਦੇ ਵਿਚਕਾਰ ਦਾ ਅੰਤਰ ਉਦੋਂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਅਜਿਹਾ ਨਿਰਦੇਸ਼ ਚਲਾ ਰਹੇ ਹੁੰਦੇ ਹੋ ਜੋ ਇੱਕ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ।


This option allows you to execute all of the instructions in the current function, until it returns.

ਇਹ ਵਿਕਲਪ ਤੁਹਾਨੂੰ ਮੌਜੂਦਾ ਫੰਕਸ਼ਨ ਵਿੱਚ ਸਾਰੇ ਨਿਰਦੇਸ਼ਾਂ ਨੂੰ ਚਲਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜਦੋਂ ਤੱਕ ਇਹ ਵਾਪਸ ਨਹੀਂ ਆਉਂਦਾ।


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.

64-bit ਫੰਕਸ਼ਨ ਵਿੱਚ, ਸਟੈਕ ਸਪੇਸ ਫੰਕਸ਼ਨ ਦੀ ਸ਼ੁਰੂਆਤ ਵਿੱਚ ਅਲਾਟ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


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

ਅਲਾਟ ਕੀਤੀ ਸਟੈਕ ਸਪੇਸ ਦੀ ਵਰਤੋਂ ਲੋਕਲ ਵੇਰੀਏਬਲ ਅਤੇ ਫੰਕਸ਼ਨ ਪੈਰਾਮੀਟਰਾਂ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


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

ਪੁਸ਼ ਅਤੇ ਪੌਪ ਹਦਾਇਤਾਂ ਦੀ ਘਾਟ ਫੰਕਸ਼ਨ ਦੁਆਰਾ ਸਵੀਕਾਰ ਕੀਤੇ ਗਏ ਪੈਰਾਮੀਟਰਾਂ ਦੀ ਗਿਣਤੀ ਨਿਰਧਾਰਤ ਕਰਨਾ ਮੁਸ਼ਕਲ ਬਣਾਉਂਦੀ ਹੈ।


ਖਤਰਨਾਕ ਬਾਈਨਰੀਆਂ ਨੂੰ ਡੀਬੱਗ ਕਰਨਾ


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

ਇੱਕ ਵਾਰ ਜਦੋਂ ਤੁਹਾਨੂੰ ਪਤਾ ਲੱਗ ਜਾਂਦਾ ਹੈ ਕਿ ਫੰਕਸ਼ਨ ਪੈਰਾਮੀਟਰਾਂ ਅਤੇ ਵਾਪਸੀ ਮੁੱਲਾਂ ਨੂੰ ਕਿੱਥੇ ਲੱਭਣਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ API ਕਾਲ 'ਤੇ ਇੱਕ ਬ੍ਰੇਕਪੁਆਇੰਟ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ।


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

ਆਓ ਇੱਕ 64-bit ਮਾਲਵੇਅਰ ਨਮੂਨੇ ਦੀ ਇੱਕ ਉਦਾਹਰਣ ਵੇਖੀਏ ਜੋ ਰਜਿਸਟਰੀ ਵਿੱਚ ਕੁਝ ਮੁੱਲ ਸੈੱਟ ਕਰਨ ਲਈ RegSetValueEx ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ।


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

ਤੁਹਾਨੂੰ ਫੰਕਸ਼ਨ ਨੂੰ ਪਾਸ ਕੀਤੇ ਗਏ ਪੈਰਾਮੀਟਰਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਰਜਿਸਟਰਾਂ ਅਤੇ ਸਟੈਕ ਵਿੰਡੋ ਵਿੱਚ ਮੁੱਲਾਂ ਨੂੰ ਵੇਖਣ ਦੀ ਜ਼ਰੂਰਤ ਹੋਏਗੀ।


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

x64dbg ਵਿੱਚ, ਫੰਕਸ਼ਨ ਪੈਰਾਮੀਟਰਾਂ ਦਾ ਤੁਰੰਤ ਸੰਖੇਪ ਪ੍ਰਾਪਤ ਕਰਨ ਦਾ ਸਭ ਤੋਂ ਆਸਾਨ ਤਰੀਕਾ ਹੈ ਡਿਫਾਲਟ ਵਿੰਡੋ ਨੂੰ ਵੇਖਣਾ।


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

ਮਾਲਵੇਅਰ ਰਜਿਸਟਰੀ ਕੁੰਜੀ ਲਈ ਇੱਕ ਹੈਂਡਲ ਖੋਲ੍ਹ ਸਕਦਾ ਹੈ ਜਾਂ ਤਾਂ RegCreateKey ਜਾਂ RegOpenKey API ਨੂੰ ਕਾਲ ਕਰਕੇ।


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

logoninit.exe ਨੂੰ explorer.exe ਦੇ ਨਾਲ ਜੋੜ ਕੇ, ਮਾਲਵੇਅਰ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ logoninit.exe ਨੂੰ ਵੀ Userinit.exe ਦੁਆਰਾ ਲਾਂਚ ਕੀਤਾ ਗਿਆ ਹੈ।


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

ਅਗਲੇ ਭਾਗ ਵਿੱਚ, ਤੁਸੀਂ ਸਿੱਖੋਗੇ ਕਿ ਕਿਸੇ ਖਤਰਨਾਕ DLL ਨੂੰ ਡੀਬੱਗ ਕਰਕੇ ਇਸਦੇ ਵਿਵਹਾਰ ਨੂੰ ਕਿਵੇਂ ਨਿਰਧਾਰਤ ਕਰਨਾ ਹੈ।


To debug a DLL, launch x64dbg and load the DLL.

DLL ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਲਈ, x64dbg ਲਾਂਚ ਕਰੋ ਅਤੇ DLL ਲੋਡ ਕਰੋ।


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

DLL ਲੋਡ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਡੀਬੱਗਰ ਸਿਸਟਮ ਬ੍ਰੇਕਪੁਆਇੰਟ, TLS ਕਾਲਬੈਕ, ਜਾਂ DLL ਐਂਟਰੀ ਪੁਆਇੰਟ ਫੰਕਸ਼ਨ 'ਤੇ ਰੁਕ ਸਕਦਾ ਹੈ।


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

ਇੱਕ ਹੋਰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕਾ ਹੈ DLL ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਲਈ rundll32.exe ਦੀ ਵਰਤੋਂ ਕਰਨਾ।


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

ਫਿਰ, ਡੀਬੱਗ | ਕਮਾਂਡ ਲਾਈਨ ਬਦਲੋ ਚੁਣੋ ਅਤੇ rundll32.exe ਲਈ ਕਮਾਂਡ-ਲਾਈਨ ਆਰਗੂਮੈਂਟਸ ਨਿਰਧਾਰਤ ਕਰੋ।


This will tell the debugger to break when the DLL is loaded.

ਇਹ ਡੀਬੱਗਰ ਨੂੰ ਦੱਸੇਗਾ ਕਿ ਜਦੋਂ DLL ਲੋਡ ਹੁੰਦਾ ਹੈ ਤਾਂ ਬ੍ਰੇਕ ਕਰਨਾ ਹੈ।


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

ਤੁਸੀਂ ਹਰ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਚਲਾਉਂਦੇ ਹੋ (F9), ਬ੍ਰੇਕਪੁਆਇੰਟ ਐਡਰੈੱਸ ਦੇ ਅੱਗੇ ਟਿੱਪਣੀ ਨੂੰ ਵੇਖ ਕੇ, ਇਸ ਗੱਲ ਦਾ ਧਿਆਨ ਰੱਖ ਸਕਦੇ ਹੋ ਕਿ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਕਿੱਥੇ ਰੁਕਿਆ ਹੈ।


Sometimes, you may want to debug a DLL that only runs in a specific process.

ਕਈ ਵਾਰ, ਤੁਸੀਂ ਇੱਕ DLL ਨੂੰ ਡੀਬੱਗ ਕਰਨਾ ਚਾਹ ਸਕਦੇ ਹੋ ਜੋ ਸਿਰਫ਼ ਇੱਕ ਖਾਸ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਚੱਲਦਾ ਹੈ।


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

ਟਰੇਸਿੰਗ ਤੁਹਾਨੂੰ ਪ੍ਰਕਿਰਿਆ ਦੇ ਚੱਲਣ ਦੌਰਾਨ ਇਵੈਂਟਾਂ ਨੂੰ ਲੌਗ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।


You can control the tracing by adding breakpoints.

ਤੁਸੀਂ ਬ੍ਰੇਕਪੁਆਇੰਟ ਜੋੜ ਕੇ ਟਰੇਸਿੰਗ ਨੂੰ ਕੰਟਰੋਲ ਕਰ ਸਕਦੇ ਹੋ।


The malware downloads a component and executes it.

ਮਾਲਵੇਅਰ ਇੱਕ ਭਾਗ ਡਾਊਨਲੋਡ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਚਲਾਉਂਦਾ ਹੈ।


Downloaders are often part of exploit shellcode.

ਡਾਊਨਲੋਡਰ ਅਕਸਰ ਐਕਸਪਲੋਇਟ ਸ਼ੈਲਕੋਡ ਦਾ ਹਿੱਸਾ ਹੁੰਦੇ ਹਨ।


The program uses API calls like ShellExecute.

ਪ੍ਰੋਗਰਾਮ ਸ਼ੈਲਐਗਜ਼ੀਕਿਊਟ ਵਰਗੀਆਂ API ਕਾਲਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।


A 32-bit malware downloader was observed.

ਇੱਕ 32-ਬਿੱਟ ਮਾਲਵੇਅਰ ਡਾਊਨਲੋਡਰ ਦੇਖਿਆ ਗਿਆ ਸੀ।


The URL for the malware binary is determined.

ਮਾਲਵੇਅਰ ਬਾਈਨਰੀ ਦਾ URL ਨਿਰਧਾਰਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


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

ਡਾਊਨਲੋਡ ਕੀਤੀ ਗਈ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਫਾਈਲ %TEMP% ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


ਫਿਰ ਡਾਊਨਲੋਡਰ ਫਾਈਲ ਨੂੰ ਚਲਾਉਂਦਾ ਹੈ।


Malware may also use WinExec or CreateProcess.

ਮਾਲਵੇਅਰ WinExec ਜਾਂ CreateProcess ਦੀ ਵਰਤੋਂ ਵੀ ਕਰ ਸਕਦਾ ਹੈ।


Monitoring tools help observe malware actions.

ਨਿਗਰਾਨੀ ਸੰਦ ਮਾਲਵੇਅਰ ਦੀਆਂ ਕਾਰਵਾਈਆਂ ਨੂੰ ਦੇਖਣ ਵਿੱਚ ਮਦਦ ਕਰਦੇ ਹਨ।


A dropper embeds a malware component within itself.

ਇੱਕ ਡ੍ਰੌਪਰ ਆਪਣੇ ਅੰਦਰ ਇੱਕ ਮਾਲਵੇਅਰ ਭਾਗ ਨੂੰ ਏਮਬੈਡ ਕਰਦਾ ਹੈ।


The dropper extracts the component and drops it to disk.

ਡ੍ਰੌਪਰ ਭਾਗ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਡਿਸਕ ਤੇ ਸੁੱਟਦਾ ਹੈ।


Droppers often use the resource section.

ਡ੍ਰੌਪਰ ਅਕਸਰ ਰਿਸੋਰਸ ਸੈਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।


The Resource Hacker tool can show the PE file.

ਰਿਸੋਰਸ ਹੈਕਰ ਟੂਲ PE ਫਾਈਲ ਦਿਖਾ ਸਕਦਾ ਹੈ।


References to API calls indicate content extraction.

API ਕਾਲਾਂ ਦੇ ਹਵਾਲੇ ਸਮੱਗਰੀ ਐਕਸਟਰੈਕਸ਼ਨ ਦਾ ਸੰਕੇਤ ਦਿੰਦੇ ਹਨ।


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

FindResourceA() API 'ਤੇ ਇੱਕ ਬ੍ਰੇਕਪੁਆਇੰਟ ਸੈੱਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।


The malware determines the size of the resource.

ਮਾਲਵੇਅਰ ਸਰੋਤ ਦਾ ਆਕਾਰ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ।


The extracted PE content is written to a DLL.

ਐਕਸਟਰੈਕਟ ਕੀਤੀ ਗਈ PE ਸਮੱਗਰੀ ਇੱਕ DLL ਵਿੱਚ ਲਿਖੀ ਜਾਂਦੀ ਹੈ।


ਇੱਕ 64-ਬਿੱਟ ਡ੍ਰੌਪਰ ਦੀ ਉਦਾਹਰਣ ਦਿੱਤੀ ਗਈ ਹੈ।


Keyloggers intercept and log keystrokes.

ਕੀਲੌਗਰ ਕੀਸਟ੍ਰੋਕ ਨੂੰ ਰੋਕਦੇ ਅਤੇ ਲੌਗ ਕਰਦੇ ਹਨ।


Attackers steal information with keylogging.

ਹਮਲਾਵਰ ਕੀਲੌਗਿੰਗ ਨਾਲ ਜਾਣਕਾਰੀ ਚੋਰੀ ਕਰਦੇ ਹਨ।


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

ਤੁਸੀਂ ਪਹਿਲਾਂ ਤੋਂ ਸੈੱਟ ਕੀਤੇ ਬ੍ਰੇਕਪੁਆਇੰਟ ਨੂੰ ਸੰਪਾਦਿਤ ਕਰਕੇ ਹਾਰਡਵੇਅਰ ਅਤੇ ਸ਼ਰਤੀਆ ਬ੍ਰੇਕਪੁਆਇੰਟ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ।


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

ਇੱਕ ਹਾਰਡਵੇਅਰ ਬ੍ਰੇਕਪੁਆਇੰਟ ਸੈੱਟ ਕਰਨ ਲਈ, ਮੌਜੂਦਾ ਬ੍ਰੇਕਪੁਆਇੰਟ 'ਤੇ ਸੱਜਾ-ਕਲਿੱਕ ਕਰੋ ਅਤੇ 'ਸੰਪਾਦਨ ਬ੍ਰੇਕਪੁਆਇੰਟ' ਚੁਣੋ।


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

ਆਈਡੀਏ ਤੁਹਾਨੂੰ ਚਾਰ ਤੋਂ ਵੱਧ ਹਾਰਡਵੇਅਰ ਬ੍ਰੇਕਪੁਆਇੰਟ ਸੈੱਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਪਰ ਉਹਨਾਂ ਵਿੱਚੋਂ ਸਿਰਫ਼ ਚਾਰ ਹੀ ਕੰਮ ਕਰਨਗੇ।


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

ਤੁਸੀਂ ਇਹ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਹਾਰਡਵੇਅਰ ਬ੍ਰੇਕਪੁਆਇੰਟ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ ਕਿ ਕੀ ਐਗਜ਼ੀਕਿਊਟ (ਮੂਲ ਰੂਪ ਵਿੱਚ), ਲਿਖਣ 'ਤੇ ਬ੍ਰੇਕ ਕਰਨਾ ਹੈ, ਜਾਂ ਪੜ੍ਹਨ/ਲਿਖਣ 'ਤੇ ਬ੍ਰੇਕ ਕਰਨਾ ਹੈ।


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

ਲਿਖਣ 'ਤੇ ਬ੍ਰੇਕ ਅਤੇ ਪੜ੍ਹਨ/ਲਿਖਣ 'ਤੇ ਬ੍ਰੇਕ ਵਿਕਲਪ ਤੁਹਾਨੂੰ ਮੈਮੋਰੀ ਬ੍ਰੇਕਪੁਆਇੰਟ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦੇ ਹਨ ਜਦੋਂ ਨਿਰਧਾਰਤ ਮੈਮੋਰੀ ਸਥਾਨ ਨੂੰ ਕਿਸੇ ਵੀ ਹਦਾਇਤ ਦੁਆਰਾ ਐਕਸੈਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


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

ਇਹ ਬ੍ਰੇਕਪੁਆਇੰਟ ਉਪਯੋਗੀ ਹੈ ਜੇਕਰ ਤੁਸੀਂ ਇਹ ਜਾਣਨਾ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਤੁਹਾਡਾ ਪ੍ਰੋਗਰਾਮ ਕਿਸੇ ਮੈਮੋਰੀ ਸਥਾਨ ਤੋਂ ਡੇਟਾ ਦੇ ਇੱਕ ਟੁਕੜੇ (ਪੜ੍ਹਨ/ਲਿਖਣ) ਨੂੰ ਕਦੋਂ ਐਕਸੈਸ ਕਰਦਾ ਹੈ।


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

ਐਗਜ਼ੀਕਿਊਟ ਵਿਕਲਪ 'ਤੇ ਬ੍ਰੇਕ ਤੁਹਾਨੂੰ ਇੱਕ ਬ੍ਰੇਕਪੁਆਇੰਟ ਸੈੱਟ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜਦੋਂ ਨਿਰਧਾਰਤ ਮੈਮੋਰੀ ਸਥਾਨ ਨੂੰ ਐਗਜ਼ੀਕਿਊਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


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

ਇੱਕ ਮੋਡ ਨਿਰਧਾਰਤ ਕਰਨ ਤੋਂ ਇਲਾਵਾ, ਤੁਹਾਨੂੰ ਇੱਕ ਆਕਾਰ ਵੀ ਨਿਰਧਾਰਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।


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.

ਤੁਸੀਂ ਬ੍ਰੇਕਪੁਆਇੰਟ ਐਂਟਰੀ 'ਤੇ ਸੱਜਾ-ਕਲਿੱਕ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਬ੍ਰੇਕਪੁਆਇੰਟ ਨੂੰ ਅਯੋਗ ਜਾਂ ਮਿਟਾ ਸਕਦੇ ਹੋ।


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

ਇਸ ਭਾਗ ਵਿੱਚ, ਅਸੀਂ ਦੇਖਾਂਗੇ ਕਿ ਮਾਲਵੇਅਰ ਬਾਈਨਰੀ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਲਈ ਆਈਡੀਏ ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰੀਏ।


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 till it reaches the breakpoint.

ਫਾਈਲ ਦਾ ਨਾਮ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ, ਅਸੀਂ ਉਸ ਪਤੇ 'ਤੇ ਇੱਕ ਬ੍ਰੇਕਪੁਆਇੰਟ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹਾਂ ਜਿੱਥੇ 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 the following screenshot, the execution is paused at the call to the CreateFileW.

ਹੇਠਾਂ ਦਿੱਤੇ ਸਕ੍ਰੀਨਸ਼ੌਟ ਵਿੱਚ, ਐਗਜ਼ੀਕਿਊਸ਼ਨ CreateFileW ਨੂੰ ਕਾਲ 'ਤੇ ਰੋਕ ਦਿੱਤਾ ਗਿਆ ਹੈ।


You can use the Hex-View window in IDA to inspect the contents of any valid memory location.

ਤੁਸੀਂ ਕਿਸੇ ਵੀ ਵੈਧ ਮੈਮੋਰੀ ਸਥਾਨ ਦੀ ਸਮੱਗਰੀ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਆਈਡੀਏ ਵਿੱਚ ਹੈਕਸ-ਵਿਊ ਵਿੰਡੋ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।


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 loads a malicious DLL into the process's address space.

ਮਾਲਵੇਅਰ ਇੱਕ ਖਤਰਨਾਕ DLL ਨੂੰ ਪ੍ਰਕਿਰਿਆ ਦੇ ਐਡਰੈੱਸ ਸਪੇਸ ਵਿੱਚ ਲੋਡ ਕਰਦਾ ਹੈ।


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

ਇਸ ਤਕਨੀਕ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ, AppInit_DLLs ਰਜਿਸਟਰੀ ਮੁੱਲ ਵਿੱਚ ਸ਼ੱਕੀ ਐਂਟਰੀਆਂ ਦੀ ਭਾਲ ਕਰੋ।


Adversaries can take advantage of how the operating system searches for the DLL.

ਦੁਸ਼ਮਣ ਇਸ ਗੱਲ ਦਾ ਫਾਇਦਾ ਉਠਾ ਸਕਦੇ ਹਨ ਕਿ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ DLL ਦੀ ਭਾਲ ਕਿਵੇਂ ਕਰਦਾ ਹੈ।


The malicious DLL is dropped in the same directory as explorer.exe.

ਖਤਰਨਾਕ DLL ਨੂੰ ਉਸੇ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸੁੱਟਿਆ ਜਾਂਦਾ ਹੈ ਜਿੱਥੇ explorer.exe ਹੈ।


The DLL search order hijack technique makes forensic analysis much harder.

DLL ਖੋਜ ਆਰਡਰ ਹਾਈਜੈਕ ਤਕਨੀਕ ਫੋਰੈਂਸਿਕ ਵਿਸ਼ਲੇਸ਼ਣ ਨੂੰ ਬਹੁਤ ਮੁਸ਼ਕਲ ਬਣਾਉਂਦੀ ਹੈ।


COM hijacking allows an adversary to persist on the system.

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 ਵਿੱਚ ਇੱਕ ਰਜਿਸਟਰੀ ਮੁੱਲ ਸੈੱਟ ਕਰਦਾ ਹੈ।


A service is a program that runs in the background.

ਇੱਕ ਸੇਵਾ ਇੱਕ ਪ੍ਰੋਗਰਾਮ ਹੈ ਜੋ ਬੈਕਗ੍ਰਾਉਂਡ ਵਿੱਚ ਚੱਲਦਾ ਹੈ।


An adversary can persist on the system by installing a malicious program as a service.

ਇੱਕ ਦੁਸ਼ਮਣ ਇੱਕ ਖਤਰਨਾਕ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਇੱਕ ਸੇਵਾ ਦੇ ਤੌਰ 'ਤੇ ਸਥਾਪਿਤ ਕਰਕੇ ਸਿਸਟਮ 'ਤੇ ਬਣਿਆ ਰਹਿ ਸਕਦਾ ਹੈ।


Windows stores the list of installed services in the registry.

ਵਿੰਡੋਜ਼ ਰਜਿਸਟਰੀ ਵਿੱਚ ਸਥਾਪਿਤ ਸੇਵਾਵਾਂ ਦੀ ਸੂਚੀ ਸਟੋਰ ਕਰਦਾ ਹੈ।


An attacker can create services in many ways.

ਇੱਕ ਹਮਲਾਵਰ ਕਈ ਤਰੀਕਿਆਂ ਨਾਲ ਸੇਵਾਵਾਂ ਬਣਾ ਸਕਦਾ ਹੈ।


Malware can invoke cmd.exe and run sc commands.

ਮਾਲਵੇਅਰ cmd.exe ਨੂੰ ਬੁਲਾ ਸਕਦਾ ਹੈ ਅਤੇ sc ਕਮਾਂਡਾਂ ਚਲਾ ਸਕਦਾ ਹੈ।


A service can also be created using PowerShell.

ਪਾਵਰਸ਼ੈੱਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵੀ ਇੱਕ ਸੇਵਾ ਬਣਾਈ ਜਾ ਸਕਦੀ ਹੈ।


An adversary can modify an existing service.

ਇੱਕ ਦੁਸ਼ਮਣ ਮੌਜੂਦਾ ਸੇਵਾ ਨੂੰ ਸੋਧ ਸਕਦਾ ਹੈ।


The virtual memory is an illusion created by the operating system.

ਵਰਚੁਅਲ ਮੈਮੋਰੀ ਇੱਕ ਭੁਲੇਖਾ ਹੈ ਜੋ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦੁਆਰਾ ਬਣਾਇਆ ਗਿਆ ਹੈ।


Virtual memory is segregated into process memory and kernel memory.

ਵਰਚੁਅਲ ਮੈਮੋਰੀ ਨੂੰ ਪ੍ਰਕਿਰਿਆ ਮੈਮੋਰੀ ਅਤੇ ਕਰਨਲ ਮੈਮੋਰੀ ਵਿੱਚ ਵੰਡਿਆ ਗਿਆ ਹੈ।


Process memory consists of the process executable and DLLs.

ਪ੍ਰਕਿਰਿਆ ਮੈਮੋਰੀ ਵਿੱਚ ਪ੍ਰਕਿਰਿਆ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਅਤੇ DLL ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ।


The kernel memory contains the operating system and device drivers.

ਕਰਨਲ ਮੈਮੋਰੀ ਵਿੱਚ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਅਤੇ ਡਿਵਾਈਸ ਡਰਾਈਵਰ ਹੁੰਦੇ ਹਨ।


You can examine the contents of a process memory using Process Hacker.

ਤੁਸੀਂ ਪ੍ਰੋਸੈਸ ਹੈਕਰ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਪ੍ਰਕਿਰਿਆ ਮੈਮੋਰੀ ਦੀ ਸਮੱਗਰੀ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦੇ ਹੋ।


The HAL isolates the operating system from the hardware.

HAL ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਨੂੰ ਹਾਰਡਵੇਅਰ ਤੋਂ ਵੱਖ ਕਰਦਾ ਹੈ।


It primarily provides services to the Windows executive, kernel, and kernel mode device drivers.

ਇਹ ਮੁੱਖ ਤੌਰ 'ਤੇ ਵਿੰਡੋਜ਼ ਕਾਰਜਕਾਰੀ, ਕਰਨਲ, ਅਤੇ ਕਰਨਲ ਮੋਡ ਡਿਵਾਈਸ ਡਰਾਈਵਰਾਂ ਨੂੰ ਸੇਵਾਵਾਂ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।


The kernel mode device drivers invoke functions exposed by hal.dll to interact with the hardware.

ਕਰਨਲ ਮੋਡ ਡਿਵਾਈਸ ਡਰਾਈਵਰ ਹਾਰਡਵੇਅਰ ਨਾਲ ਗੱਲਬਾਤ ਕਰਨ ਲਈ hal.dll ਦੁਆਰਾ ਪ੍ਰਗਟ ਕੀਤੇ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਬੁਲਾਉਂਦੇ ਹਨ।


This binary is the core component of the Windows operating system known as kernel image.

ਇਹ ਬਾਈਨਰੀ ਵਿੰਡੋਜ਼ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦਾ ਮੁੱਖ ਹਿੱਸਾ ਹੈ ਜਿਸਨੂੰ ਕਰਨਲ ਚਿੱਤਰ ਵਜੋਂ ਜਾਣਿਆ ਜਾਂਦਾ ਹੈ।


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.

ਕਰਨਲ ਸਪੇਸ ਵਿੱਚ ਚੱਲਣ ਵਾਲਾ ਕੋਡ ਉੱਚ ਵਿਸ਼ੇਸ਼ ਅਧਿਕਾਰਾਂ ਨਾਲ ਚੱਲਦਾ ਹੈ।


How can a malware binary write content to a file?

ਇੱਕ ਮਾਲਵੇਅਰ ਬਾਈਨਰੀ ਇੱਕ ਫਾਈਲ ਵਿੱਚ ਸਮੱਗਰੀ ਕਿਵੇਂ ਲਿਖ ਸਕਦਾ ਹੈ?


Most APIs called by user-mode applications, 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 ਯੂਜ਼ਰ-ਸਪੇਸ ਅਤੇ ਕਰਨਲ ਸਪੇਸ ਦੇ ਵਿਚਕਾਰ ਗੇਟਵੇ ਵਜੋਂ ਕੰਮ ਕਰਦਾ ਹੈ।


The Windows operating system provides services by exposing APIs.

ਵਿੰਡੋਜ਼ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ API ਨੂੰ ਪ੍ਰਗਟ ਕਰਕੇ ਸੇਵਾਵਾਂ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।


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

ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ DLL ਵਿੱਚ ਲਾਗੂ API ਨੂੰ ਕਾਲ ਕਰਕੇ ਸੇਵਾ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


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

ਜ਼ਿਆਦਾਤਰ API ਫੰਕਸ਼ਨ ntoskrnl.exe ਵਿੱਚ ਸਿਸਟਮ ਸਰਵਿਸ ਰੁਟੀਨ ਨੂੰ ਕਾਲ ਕਰਦੇ ਹਨ।


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

ਜਦੋਂ ਇੱਕ ਪ੍ਰੋਗਰਾਮ 'ਤੇ ਡਬਲ-ਕਲਿੱਕ ਕਰਕੇ ਇੱਕ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਬੁਲਾਇਆ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਪ੍ਰਕਿਰਿਆ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਚਿੱਤਰ ਅਤੇ ਇਸਦੇ ਸਾਰੇ ਸੰਬੰਧਿਤ DLL ਲੋਡ ਹੋ ਜਾਂਦੇ ਹਨ।


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

ਬਣਾਈ ਗਈ ਥ੍ਰੈਡ ਯੂਜ਼ਰ-ਮੋਡ ਵਿੱਚ ਚਲਾਉਣਾ ਸ਼ੁਰੂ ਕਰਦੀ ਹੈ।


Let's suppose that an application needs to call the WriteFile() API.

ਆਓ ਮੰਨ ਲਓ ਕਿ ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ WriteFile() API ਨੂੰ ਕਾਲ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।


The malware process identifies the target process and gets its process ID.

ਮਾਲਵੇਅਰ ਪ੍ਰਕਿਰਿਆ ਟੀਚਾ ਪ੍ਰਕਿਰਿਆ ਦੀ ਪਛਾਣ ਕਰਦੀ ਹੈ ਅਤੇ ਇਸਦਾ ਪ੍ਰਕਿਰਿਆ ID ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ।


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.

ਹਮਲਾਵਰ ਫਾਈਲ ਸਿਸਟਮ ਤੱਕ ਪਹੁੰਚ ਕੀਤੇ ਬਿਨਾਂ, ਸਿੱਧੇ ਮੈਮੋਰੀ ਤੋਂ ਕੋਡ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਲੋਡ ਅਤੇ ਚਲਾਉਣ ਲਈ ਪਾਵਰਸ਼ੈੱਲ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।


If you are new to PowerShell, you can find many tutorials to get started with PowerShell.

ਜੇਕਰ ਤੁਸੀਂ ਪਾਵਰਸ਼ੈੱਲ ਲਈ ਨਵੇਂ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਪਾਵਰਸ਼ੈੱਲ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰਨ ਲਈ ਬਹੁਤ ਸਾਰੇ ਟਿਊਟੋਰਿਅਲ ਲੱਭ ਸਕਦੇ ਹੋ।


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.

ਪਾਵਰਸ਼ੈੱਲ ਵਿੱਚ, ਵੇਰੀਏਬਲ ਦੀ ਵਰਤੋਂ ਮੁੱਲਾਂ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।


PowerShell's capabilities allow you to create scripts by combining multiple commands.

ਪਾਵਰਸ਼ੈੱਲ ਦੀਆਂ ਸਮਰੱਥਾਵਾਂ ਤੁਹਾਨੂੰ ਕਈ ਕਮਾਂਡਾਂ ਨੂੰ ਜੋੜ ਕੇ ਸਕ੍ਰਿਪਟ ਬਣਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀਆਂ ਹਨ।


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.

ਇੱਕ ਅਲੱਗ ਥਲੱਗ ਵਾਤਾਵਰਣ ਵਿੱਚ ਖਤਰਨਾਕ ਸਕ੍ਰਿਪਟ ਨੂੰ ਚਲਾਉਣਾ ਯਾਦ ਰੱਖੋ।


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

ਦੁਸ਼ਮਣ ਵਿਸ਼ਲੇਸ਼ਣ ਨੂੰ ਹੋਰ ਮੁਸ਼ਕਲ ਬਣਾਉਣ ਲਈ ਵੱਖ-ਵੱਖ ਓਬਫਸਕੇਸ਼ਨ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।


Often, adversaries want their malicious program to stay on the compromised computers, even when the Windows restarts.

ਅਕਸਰ, ਦੁਸ਼ਮਣ ਚਾਹੁੰਦੇ ਹਨ ਕਿ ਉਹਨਾਂ ਦਾ ਖਤਰਨਾਕ ਪ੍ਰੋਗਰਾਮ ਸਮਝੌਤਾ ਕੀਤੇ ਗਏ ਕੰਪਿਊਟਰਾਂ 'ਤੇ ਰਹੇ, ਭਾਵੇਂ ਵਿੰਡੋਜ਼ ਮੁੜ ਚਾਲੂ ਹੋ ਜਾਵੇ।


One of the most common persistence mechanisms used by adversaries to survive the reboot is achieved by adding an entry to the run registry keys.

ਰੀਬੂਟ ਤੋਂ ਬਚਣ ਲਈ ਦੁਸ਼ਮਣਾਂ ਦੁਆਰਾ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਸਭ ਤੋਂ ਆਮ ਸਥਿਰਤਾ ਵਿਧੀ ਵਿੱਚੋਂ ਇੱਕ ਰਨ ਰਜਿਸਟਰੀ ਕੁੰਜੀਆਂ ਵਿੱਚ ਇੱਕ ਐਂਟਰੀ ਜੋੜ ਕੇ ਪ੍ਰਾਪਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


Another persistence method adversaries use is to schedule a task that allows them to execute their malicious program at a specified time or during system startup.

ਇੱਕ ਹੋਰ ਸਥਿਰਤਾ ਵਿਧੀ ਜੋ ਦੁਸ਼ਮਣ ਵਰਤਦੇ ਹਨ ਉਹ ਇੱਕ ਕੰਮ ਨੂੰ ਤਹਿ ਕਰਨਾ ਹੈ ਜੋ ਉਹਨਾਂ ਨੂੰ ਇੱਕ ਨਿਰਧਾਰਤ ਸਮੇਂ ਜਾਂ ਸਿਸਟਮ ਸ਼ੁਰੂਆਤ ਦੌਰਾਨ ਉਹਨਾਂ ਦੇ ਖਤਰਨਾਕ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਚਲਾਉਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।


Adversaries can achieve persistence by adding their malicious binary in the startup folders.

ਦੁਸ਼ਮਣ ਸਟਾਰਟਅੱਪ ਫੋਲਡਰਾਂ ਵਿੱਚ ਆਪਣੇ ਖਤਰਨਾਕ ਬਾਈਨਰੀ ਨੂੰ ਜੋੜ ਕੇ ਸਥਿਰਤਾ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹਨ।


ਸ਼ਿਮ ਕੋਡ 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 using GetVersion().

ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੇ GetVersion() ਦੀ ਵਰਤੋਂ ਕਰਕੇ OS ਸੰਸਕਰਣ ਦੀ ਜਾਂਚ ਕੀਤੀ।


The application worked only on Windows XP.

ਐਪਲੀਕੇਸ਼ਨ ਸਿਰਫ਼ ਵਿੰਡੋਜ਼ XP 'ਤੇ ਕੰਮ ਕਰਦੀ ਸੀ।


The application won't work on Windows 7.

ਐਪਲੀਕੇਸ਼ਨ ਵਿੰਡੋਜ਼ 7 'ਤੇ ਕੰਮ ਨਹੀਂ ਕਰੇਗੀ।


You can apply a shim called WinXPVersionLie.

ਤੁਸੀਂ WinXPVersionLie ਨਾਮਕ ਇੱਕ ਸ਼ਿਮ ਲਾਗੂ ਕਰ ਸਕਦੇ ਹੋ।


The shim engine intercepts the GetVersion() call.

ਸ਼ਿਮ ਇੰਜਣ GetVersion() ਕਾਲ ਨੂੰ ਰੋਕਦਾ ਹੈ।


The shim returns Windows XP instead of Windows 7.

ਸ਼ਿਮ ਵਿੰਡੋਜ਼ 7 ਦੀ ਬਜਾਏ ਵਿੰਡੋਜ਼ XP ਵਾਪਸ ਕਰਦਾ ਹੈ।


ਸ਼ਿਮ IAT ਨੂੰ ਸੋਧਦਾ ਹੈ।


The WinXPVersionLie shim tricks the application.

WinXPVersionLie ਸ਼ਿਮ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਧੋਖਾ ਦਿੰਦਾ ਹੈ।


ਮਾਈਕਰੋਸਾਫਟ ਬਹੁਤ ਸਾਰੇ ਸ਼ਿਮ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।


Attackers abuse shims for malicious purposes.

ਹਮਲਾਵਰ ਖਤਰਨਾਕ ਉਦੇਸ਼ਾਂ ਲਈ ਸ਼ਿਮ ਦੀ ਦੁਰਵਰਤੋਂ ਕਰਦੇ ਹਨ।


ਹਮਲਾਵਰ ਸਥਿਰਤਾ ਲਈ ਸ਼ਿਮ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।


ਹਮਲਾਵਰ ਕੋਡ ਇੰਜੈਕਸ਼ਨ ਲਈ ਸ਼ਿਮ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।


Attackers use shims to execute malicious code.

ਹਮਲਾਵਰ ਖਤਰਨਾਕ ਕੋਡ ਨੂੰ ਚਲਾਉਣ ਲਈ ਸ਼ਿਮ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।


ਇੱਕ ਸ਼ਿਮ ਬਣਾਉਣ ਵਿੱਚ ਕਈ ਕਦਮ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ।


The script identifies the decryption function.

ਇਹ ਸਕ੍ਰਿਪਟ ਡੀਕ੍ਰਿਪਸ਼ਨ ਫੰਕਸ਼ਨ ਦੀ ਪਛਾਣ ਕਰਦੀ ਹੈ।


It determines the address of the function.

ਇਹ ਫੰਕਸ਼ਨ ਦਾ ਪਤਾ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ।


The malware decrypts file names during runtime.

ਮਾਲਵੇਅਰ ਰਨਟਾਈਮ ਦੌਰਾਨ ਫਾਈਲ ਨਾਮਾਂ ਨੂੰ ਡੀਕ੍ਰਿਪਟ ਕਰਦਾ ਹੈ।


Attackers try to hide from static analysis.

ਹਮਲਾਵਰ ਸਟੈਟਿਕ ਵਿਸ਼ਲੇਸ਼ਣ ਤੋਂ ਲੁਕਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਨ।


Malware authors use packers to obfuscate executables.

ਮਾਲਵੇਅਰ ਲੇਖਕ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਨੂੰ ਓਬਫਸਕੇਟ ਕਰਨ ਲਈ ਪੈਕਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।


A packer compresses and generates a new executable.

ਇੱਕ ਪੈਕਰ ਕੰਪਰੈੱਸ ਕਰਦਾ ਹੈ ਅਤੇ ਇੱਕ ਨਵਾਂ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਤਿਆਰ ਕਰਦਾ ਹੈ।


Cryptors encrypt the executable content.

ਕ੍ਰਿਪਟਰ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਸਮੱਗਰੀ ਨੂੰ ਐਨਕ੍ਰਿਪਟ ਕਰਦੇ ਹਨ।


Packed binaries reveal less information.

ਪੈਕ ਕੀਤੇ ਬਾਈਨਰੀ ਘੱਟ ਜਾਣਕਾਰੀ ਪ੍ਰਗਟ ਕਰਦੇ ਹਨ।


Unpacking removes the obfuscation layer.

ਅਨਪੈਕਿੰਗ ਓਬਫਸਕੇਸ਼ਨ ਪਰਤ ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ।


The OEP is the malware's first instruction.

OEP ਮਾਲਵੇਅਰ ਦਾ ਪਹਿਲਾ ਨਿਰਦੇਸ਼ ਹੈ।


ਅਸੀਂ ਇਨ੍ਹਾਂ ਕਦਮਾਂ ਨੂੰ ਵਿਸਥਾਰ ਵਿੱਚ ਦੇਖਾਂਗੇ।


ਐਂਟਰੀ ਪੁਆਇੰਟ UPX1 ਸੈਕਸ਼ਨ ਵਿੱਚ ਹੈ।


UPX0 ਸੈਕਸ਼ਨ ਦਾ ਕੱਚਾ ਆਕਾਰ 0 ਹੈ।


ਬਾਈਨਰੀ ਵਿੱਚ ਓਬਫਸਕੇਟਡ ਸਤਰ ਸ਼ਾਮਲ ਹਨ।


IDA recognizes the IAT is in a nonstandard location.

IDA ਪਛਾਣਦਾ ਹੈ ਕਿ IAT ਇੱਕ ਗੈਰ-ਮਿਆਰੀ ਸਥਾਨ ਵਿੱਚ ਹੈ।


Find the instruction that transfers control to the OEP.

ਉਸ ਨਿਰਦੇਸ਼ ਨੂੰ ਲੱਭੋ ਜੋ OEP ਨੂੰ ਕੰਟਰੋਲ ਟ੍ਰਾਂਸਫਰ ਕਰਦਾ ਹੈ।


The execution is paused at the jump instruction.

ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਜੰਪ ਨਿਰਦੇਸ਼ 'ਤੇ ਰੋਕਿਆ ਗਿਆ ਹੈ।


We are at the malware's first instruction.

ਅਸੀਂ ਮਾਲਵੇਅਰ ਦੇ ਪਹਿਲੇ ਨਿਰਦੇਸ਼ 'ਤੇ ਹਾਂ।


Scylla is used to dump the process memory.

ਸਾਈਲਾ ਦੀ ਵਰਤੋਂ ਪ੍ਰਕਿਰਿਆ ਦੀ ਮੈਮੋਰੀ ਨੂੰ ਡੰਪ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


Rebuild the import table of the packed binary.

ਪੈਕ ਕੀਤੇ ਬਾਈਨਰੀ ਦੀ ਇੰਪੋਰਟ ਟੇਬਲ ਨੂੰ ਮੁੜ ਬਣਾਓ।


The malware needs to choose which instructions to replace to insert a jump.

ਮਾਲਵੇਅਰ ਨੂੰ ਇਹ ਚੁਣਨਾ ਪਵੇਗਾ ਕਿ ਜੰਪ ਪਾਉਣ ਲਈ ਕਿਹੜੀਆਂ ਹਦਾਇਤਾਂ ਨੂੰ ਬਦਲਣਾ ਹੈ।


The jmp instruction requires at least 5 bytes.

jmp ਹਦਾਇਤ ਲਈ ਘੱਟੋ-ਘੱਟ 5 ਬਾਈਟਸ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।


The malware can make detection difficult by inserting the jump deeper in the API function.

ਮਾਲਵੇਅਰ API ਫੰਕਸ਼ਨ ਵਿੱਚ ਡੂੰਘਾਈ ਨਾਲ ਜੰਪ ਪਾ ਕੇ ਖੋਜ ਨੂੰ ਮੁਸ਼ਕਲ ਬਣਾ ਸਕਦਾ ਹੈ।


Malware may use a call instruction, or a combination of push and ret instructions, to redirect control.

ਮਾਲਵੇਅਰ ਕੰਟਰੋਲ ਨੂੰ ਰੀਡਾਇਰੈਕਟ ਕਰਨ ਲਈ ਇੱਕ ਕਾਲ ਹਦਾਇਤ, ਜਾਂ ਪੁਸ਼ ਅਤੇ ਰਿਟ ਹਦਾਇਤਾਂ ਦੇ ਸੁਮੇਲ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ।


Zeus bot hooks various API functions; one of them is the HttpSendRequestA() in Internet Explorer.

ਜ਼ਿਊਸ ਬੋਟ ਵੱਖ-ਵੱਖ API ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਹੁੱਕ ਕਰਦਾ ਹੈ; ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਇੱਕ ਇੰਟਰਨੈਟ ਐਕਸਪਲੋਰਰ ਵਿੱਚ HttpSendRequestA() ਹੈ।


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

ਇਸ ਫੰਕਸ਼ਨ ਨੂੰ ਹੁੱਕ ਕਰਕੇ, ਮਾਲਵੇਅਰ POST ਪੇਲੋਡ ਤੋਂ ਪ੍ਰਮਾਣ ਪੱਤਰ ਕੱਢ ਸਕਦਾ ਹੈ।


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

ਹੁੱਕ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਖਤਰਨਾਕ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਨੂੰ ਇੰਟਰਨੈਟ ਐਕਸਪਲੋਰਰ ਦੇ ਐਡਰੈੱਸ ਸਪੇਸ ਵਿੱਚ ਇੰਜੈਕਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


After injecting the executable, HttpSendRequestA() is hooked to redirect the program control.

ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਨੂੰ ਇੰਜੈਕਟ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਪ੍ਰੋਗਰਾਮ ਕੰਟਰੋਲ ਨੂੰ ਰੀਡਾਇਰੈਕਟ ਕਰਨ ਲਈ HttpSendRequestA() ਨੂੰ ਹੁੱਕ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


The first three instructions are replaced with the jmp instruction.

ਪਹਿਲੀਆਂ ਤਿੰਨ ਹਦਾਇਤਾਂ ਨੂੰ jmp ਹਦਾਇਤ ਨਾਲ ਬਦਲ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।


In inline hooking, we saw how the series of bytes in a function are patched.

ਇਨਲਾਈਨ ਹੁੱਕਿੰਗ ਵਿੱਚ, ਅਸੀਂ ਦੇਖਿਆ ਕਿ ਇੱਕ ਫੰਕਸ਼ਨ ਵਿੱਚ ਬਾਈਟਾਂ ਦੀ ਲੜੀ ਨੂੰ ਕਿਵੇਂ ਪੈਚ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


Microsoft uses in-memory patching to fix 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.

ਇੰਸਟਾਲ ਕੀਤੇ .sdb ਫਾਈਲਾਂ ਵਿੱਚ ਸ਼ੈਲਕੋਡ ਹੁੰਦਾ ਹੈ ਜੋ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਮੈਮੋਰੀ ਵਿੱਚ ਪੈਚ ਕੀਤਾ ਜਾਵੇਗਾ।


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

ਇਹ ਜਾਣਨ ਲਈ ਕਿ ਸ਼ੈਲਕੋਡ ਕੀ ਕਰ ਰਿਹਾ ਹੈ, ਸਾਨੂੰ PATCH_BITS ਨੂੰ ਪਾਰਸ ਕਰਨ ਦੇ ਯੋਗ ਹੋਣ ਦੀ ਲੋੜ ਹੈ।


The malware replaced the series of NOP instructions with call.

ਮਾਲਵੇਅਰ ਨੇ NOP ਹਦਾਇਤਾਂ ਦੀ ਲੜੀ ਨੂੰ ਕਾਲ ਨਾਲ ਬਦਲ ਦਿੱਤਾ।


You can attach the debugger to the patched explorer.exe process.

ਤੁਸੀਂ ਪੈਚ ਕੀਤੇ explorer.exe ਪ੍ਰਕਿਰਿਆ ਨਾਲ ਡੀਬੱਗਰ ਨੂੰ ਜੋੜ ਸਕਦੇ ਹੋ।


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

ਇਹ ਤਕਨੀਕ ਦਿਲਚਸਪ ਹੈ, ਕਿਉਂਕਿ ਮਾਲਵੇਅਰ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਮੈਮੋਰੀ ਅਲਾਟ ਨਹੀਂ ਕਰਦਾ ਜਾਂ ਕੋਡ ਇੰਜੈਕਟ ਨਹੀਂ ਕਰਦਾ।


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

ਮਾਲਵੇਅਰ ਲੇਖਕ ਅਕਸਰ ਜਾਣਕਾਰੀ ਨੂੰ ਲੁਕਾਉਣ ਲਈ ਵੱਖ-ਵੱਖ ਓਬਫਸਕੇਸ਼ਨ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।


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

ਵਿਰੋਧੀ ਆਮ ਤੌਰ 'ਤੇ ਜਾਣਕਾਰੀ ਨੂੰ ਲੁਕਾਉਣ ਲਈ ਏਨਕੋਡਿੰਗ/ਇਨਕ੍ਰਿਪਸ਼ਨ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।


Malware encrypts the plaintext, by passing it as input along with the key to an encryption function.

ਮਾਲਵੇਅਰ ਪਲੇਨਟੈਕਸਟ ਨੂੰ ਇਨਕ੍ਰਿਪਟ ਕਰਦਾ ਹੈ, ਇਸਨੂੰ ਇੱਕ ਇਨਕ੍ਰਿਪਸ਼ਨ ਫੰਕਸ਼ਨ ਵਿੱਚ ਕੁੰਜੀ ਦੇ ਨਾਲ ਇਨਪੁਟ ਵਜੋਂ ਪਾਸ ਕਰਕੇ।


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

ਬਾਈਨਰੀ ਵਿੱਚ Base64 ਅੱਖਰ ਸੈੱਟ ਦੀ ਮੌਜੂਦਗੀ ਦਾ ਪਤਾ ਲਗਾਉਣ ਦਾ ਇੱਕ ਹੋਰ ਤਰੀਕਾ ਇੱਕ 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 ਵਿੱਚ, ਪਲੇਨਟੈਕਸਟ ਦਾ ਹਰੇਕ ਬਾਈਟ ਏਨਕ੍ਰਿਪਸ਼ਨ ਕੁੰਜੀ ਨਾਲ 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 ਦੀ ਇੱਕ ਹੋਰ ਦਿਲਚਸਪ ਵਿਸ਼ੇਸ਼ਤਾ ਇਹ ਹੈ ਕਿ ਜਦੋਂ ਤੁਸੀਂ ਸਾਈਫਰਟੈਕਸਟ ਨੂੰ ਉਸੇ ਕੁੰਜੀ ਨਾਲ XOR ਕਰਦੇ ਹੋ ਜੋ ਏਨਕ੍ਰਿਪਟ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਪਲੇਨ ਟੈਕਸਟ ਵਾਪਸ ਮਿਲਦਾ ਹੈ।


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

ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਜੇਕਰ ਤੁਸੀਂ ਕੁੰਜੀ ਜਾਣਦੇ ਹੋ, ਤਾਂ ਉਸੇ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਡੇਟਾ ਨੂੰ ਏਨਕ੍ਰਿਪਟ ਅਤੇ ਡੀਕ੍ਰਿਪਟ ਦੋਵੇਂ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।


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

XOR ਏਨਕੋਡਿੰਗ ਐਲਗੋਰਿਦਮ ਦੀ ਸਮਝ ਦੇ ਨਾਲ, ਆਓ ਇੱਕ ਕੀਲੌਗਰ ਦੀ ਇੱਕ ਉਦਾਹਰਣ 'ਤੇ ਇੱਕ ਨਜ਼ਰ ਮਾਰੀਏ।


It then writes the logged keystrokes to the file using the WriteFile() API.

ਫਿਰ ਇਹ WriteFile() API ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਲੌਗ ਕੀਤੇ ਕੀਸਟ੍ਰੋਕਸ ਨੂੰ ਫਾਈਲ ਵਿੱਚ ਲਿਖਦਾ ਹੈ।


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

enc_function ਦੀ ਜਾਂਚ ਕਰਨ 'ਤੇ ਪਤਾ ਚੱਲਦਾ ਹੈ ਕਿ ਮਾਲਵੇਅਰ ਸਿੰਗਲ ਬਾਈਟ XOR ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।


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

ਇੱਕ ਸਿੰਗਲ ਬਾਈਟ XOR ਵਿੱਚ, ਕੁੰਜੀ ਦੀ ਲੰਬਾਈ ਇੱਕ ਬਾਈਟ ਹੁੰਦੀ ਹੈ, ਇਸਲਈ ਸਿਰਫ਼ 255 ਸੰਭਾਵਿਤ ਕੁੰਜੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ।


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

ਉਦਾਹਰਨ ਲਈ, ਇੱਕ ਮਾਲਵੇਅਰ ਨਮੂਨੇ ਨੂੰ ਚਲਾਉਣ 'ਤੇ, ਆਓ ਕਹਿੰਦੇ ਹਾਂ ਕਿ ਮਾਲਵੇਅਰ ਕੰਪਿਊਟਰ ਦਾ ਹੋਸਟਨਾਮ mymachine ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ।


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

ਤੁਸੀਂ ਕੁੰਜੀ ਨੂੰ ਬ੍ਰੂਟ-ਫੋਰਸ ਕਰਨ ਅਤੇ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ConverterNET ਵਰਗੇ ਟੂਲ ਦੀ ਵਰਤੋਂ ਵੀ ਕਰ ਸਕਦੇ ਹੋ।


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

XOR ਏਨਕੋਡਿੰਗ ਵਿੱਚ, ਜਦੋਂ ਇੱਕ ਨਲ ਬਾਈਟ (0x00) ਨੂੰ ਇੱਕ ਕੁੰਜੀ ਨਾਲ XOR ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਕੁੰਜੀ ਵਾਪਸ ਮਿਲਦੀ ਹੈ।


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.

ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਜਦੋਂ ਵੀ ਵੱਡੀ ਗਿਣਤੀ ਵਿੱਚ ਨਲ ਬਾਈਟ ਵਾਲਾ ਇੱਕ ਬਫਰ ਏਨਕੋਡ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਸਿੰਗਲ ਬਾਈਟ xor ਕੁੰਜੀ ਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ।


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

ਹਮਲਾਵਰ ਆਮ ਤੌਰ 'ਤੇ ਮਲਟੀ-ਬਾਈਟ XOR ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ ਕਿਉਂਕਿ ਇਹ ਬ੍ਰੂਟ-ਫੋਰਸ ਤਕਨੀਕ ਦੇ ਵਿਰੁੱਧ ਬਿਹਤਰ ਸੁਰੱਖਿਆ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।


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

ਡੀਕ੍ਰਿਪਟ ਕੀਤਾ ਗਿਆ ਕੰਟੈਂਟ ਇੱਕ 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.

ਮਾਲਵੇਅਰ ਲੇਖਕ ਅਕਸਰ ਸਧਾਰਨ ਏਨਕੋਡਿੰਗ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ, ਕਿਉਂਕਿ ਇਹ ਡੇਟਾ ਨੂੰ ਧੁੰਦਲਾ ਕਰਨ ਲਈ ਕਾਫ਼ੀ ਹੈ।


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

ਇੱਕ ਫਾਈਲ ਜਾਂ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫਿਕ ਦਸਤਖਤਾਂ ਦੀ ਖੋਜ ਕਰਨ ਲਈ ਇੱਕ ਉਪਯੋਗੀ ਟੂਲ Signsrch ਹੈ।


The standalone executable is distributed for Windows, macOS, and Linux operating systems.

ਇਹ ਸਟੈਂਡਅਲੋਨ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਵਿੰਡੋਜ਼, ਮੈਕਓਐਸ ਅਤੇ ਲੀਨਕਸ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮਾਂ ਲਈ ਵੰਡਿਆ ਗਿਆ ਹੈ।


Volatility is an open source advanced memory forensics framework written in Python.

ਵੋਲੇਟਿਲਿਟੀ ਇੱਕ ਓਪਨ ਸੋਰਸ ਐਡਵਾਂਸਡ ਮੈਮੋਰੀ ਫੋਰੈਂਸਿਕਸ ਫਰੇਮਵਰਕ ਹੈ ਜੋ ਪਾਈਥਨ ਵਿੱਚ ਲਿਖਿਆ ਗਿਆ ਹੈ।


Once you acquire the memory of an infected system, the next step is to analyze the acquired memory image.

ਇੱਕ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਸੰਕਰਮਿਤ ਸਿਸਟਮ ਦੀ ਮੈਮੋਰੀ ਪ੍ਰਾਪਤ ਕਰ ਲੈਂਦੇ ਹੋ, ਤਾਂ ਅਗਲਾ ਕਦਮ ਪ੍ਰਾਪਤ ਕੀਤੀ ਮੈਮੋਰੀ ਚਿੱਤਰ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨਾ ਹੁੰਦਾ ਹੈ।


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

ਮਦਦ ਵਿਕਲਪ ਵੋਲੇਟਿਲਿਟੀ ਵਿੱਚ ਉਪਲਬਧ ਵੱਖ-ਵੱਖ ਵਿਕਲਪਾਂ ਅਤੇ ਪਲੱਗਇਨਾਂ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ।


You can use the /R or /COMPRESS option in DumpIt, which creates a .zdmp file.

ਤੁਸੀਂ ਡੰਪਇਟ ਵਿੱਚ /R ਜਾਂ /COMPRESS ਵਿਕਲਪ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ, ਜੋ ਇੱਕ .zdmp ਫਾਈਲ ਬਣਾਉਂਦਾ ਹੈ।


In most cases, you can acquire the memory of a Virtual Machine (VM) by suspending the VM.

ਜ਼ਿਆਦਾਤਰ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਤੁਸੀਂ VM ਨੂੰ ਮੁਅੱਤਲ ਕਰਕੇ ਇੱਕ ਵਰਚੁਅਲ ਮਸ਼ੀਨ (VM) ਦੀ ਮੈਮੋਰੀ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹੋ।


Volatility can run on various platforms (Windows, macOS, and Linux).

ਵੋਲੇਟਿਲਿਟੀ ਵੱਖ-ਵੱਖ ਪਲੇਟਫਾਰਮਾਂ (ਵਿੰਡੋਜ਼, ਮੈਕਓਐਸ, ਅਤੇ ਲੀਨਕਸ) 'ਤੇ ਚੱਲ ਸਕਦੀ ਹੈ।


The advantage of a standalone executable is that you don't need to install the Python interpreter.

ਇੱਕ ਸਟੈਂਡਅਲੋਨ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਦਾ ਫਾਇਦਾ ਇਹ ਹੈ ਕਿ ਤੁਹਾਨੂੰ ਪਾਈਥਨ ਇੰਟਰਪ੍ਰੈਟਰ ਨੂੰ ਸਥਾਪਤ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।


The standalone executable comes packaged with Python 2.7 Interpreter and all the required dependencies.

ਸਟੈਂਡਅਲੋਨ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਪਾਈਥਨ 2.7 ਇੰਟਰਪ੍ਰੈਟਰ ਅਤੇ ਸਾਰੀਆਂ ਲੋੜੀਂਦੀਆਂ ਨਿਰਭਰਤਾਵਾਂ ਦੇ ਨਾਲ ਪੈਕ ਕੀਤਾ ਗਿਆ ਹੈ।


You can check whether Volatility is ready to use by executing the standalone executable with the -h option.

ਤੁਸੀਂ -h ਵਿਕਲਪ ਨਾਲ ਸਟੈਂਡਅਲੋਨ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਨੂੰ ਚਲਾ ਕੇ ਜਾਂਚ ਕਰ ਸਕਦੇ ਹੋ ਕਿ ਵੋਲੇਟਿਲਿਟੀ ਵਰਤੋਂ ਲਈ ਤਿਆਰ ਹੈ ਜਾਂ ਨਹੀਂ।


Volatility is also distributed as a source package.

ਵੋਲੇਟਿਲਿਟੀ ਨੂੰ ਇੱਕ ਸੋਰਸ ਪੈਕੇਜ ਦੇ ਤੌਰ 'ਤੇ ਵੀ ਵੰਡਿਆ ਜਾਂਦਾ ਹੈ।


Volatility relies on various plugins to perform tasks.

ਵੋਲੇਟਿਲਿਟੀ ਕੰਮਾਂ ਨੂੰ ਕਰਨ ਲਈ ਵੱਖ-ਵੱਖ ਪਲੱਗਇਨਾਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ।


You need to install Python 2.7 Interpreter and its dependencies to run Volatility.

ਵੋਲੇਟਿਲਿਟੀ ਚਲਾਉਣ ਲਈ, ਤੁਹਾਨੂੰ ਪਾਈਥਨ 2.7 ਇੰਟਰਪ੍ਰੈਟਰ ਅਤੇ ਇਸਦੀਆਂ ਨਿਰਭਰਤਾਵਾਂ ਨੂੰ ਸਥਾਪਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।


The web page contains a list of the third-party Python packages that are required by some of the Volatility plugins.

ਵੈੱਬ ਪੇਜ ਵਿੱਚ ਤੀਜੀ-ਧਿਰ ਪਾਈਥਨ ਪੈਕੇਜਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਹੈ ਜੋ ਕੁਝ ਵੋਲੇਟਿਲਿਟੀ ਪਲੱਗਇਨਾਂ ਦੁਆਰਾ ਲੋੜੀਂਦੇ ਹਨ।


Once all the dependencies are installed, download the Volatility source code package, extract it, and run Volatility.

ਇੱਕ ਵਾਰ ਸਾਰੀਆਂ ਨਿਰਭਰਤਾਵਾਂ ਸਥਾਪਤ ਹੋ ਜਾਣ 'ਤੇ, ਵੋਲੇਟਿਲਿਟੀ ਸੋਰਸ ਕੋਡ ਪੈਕੇਜ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰੋ, ਇਸਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰੋ, ਅਤੇ ਵੋਲੇਟਿਲਿਟੀ ਚਲਾਓ।


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

ਵੋਲੇਟਿਲਿਟੀ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਪਲੱਗਇਨ ਹੁੰਦੇ ਹਨ ਜੋ ਮੈਮੋਰੀ ਚਿੱਤਰ ਤੋਂ ਵੱਖ-ਵੱਖ ਜਾਣਕਾਰੀ ਕੱਢ ਸਕਦੇ ਹਨ।


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.

ਕਈ ਵਾਰ, ਤੁਸੀਂ ਇਹ ਨਹੀਂ ਜਾਣਦੇ ਹੋਵੋਗੇ ਕਿ ਵੋਲੇਟਿਲਿਟੀ ਨੂੰ ਕਿਹੜਾ ਪ੍ਰੋਫਾਈਲ ਪ੍ਰਦਾਨ ਕਰਨਾ ਹੈ।


To hide a process, an attacker modifies the ActiveProcessLinks field.

ਇੱਕ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਲੁਕਾਉਣ ਲਈ, ਇੱਕ ਹਮਲਾਵਰ ActiveProcessLinks ਖੇਤਰ ਵਿੱਚ ਸੋਧ ਕਰਦਾ ਹੈ।


The attacker can hide the malicious process from forensic tools.

ਹਮਲਾਵਰ ਫੋਰੈਂਸਿਕ ਟੂਲਸ ਤੋਂ ਖਤਰਨਾਕ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਲੁਕਾ ਸਕਦਾ ਹੈ।


This technique also hides the process from the pslist plugin.

ਇਹ ਤਕਨੀਕ pslist ਪਲੱਗਇਨ ਤੋਂ ਵੀ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਲੁਕਾਉਂਦੀ ਹੈ।


The psscan output shows an additional process not present in pslist.

psscan ਆਉਟਪੁੱਟ pslist ਵਿੱਚ ਮੌਜੂਦ ਨਾ ਹੋਣ ਵਾਲੀ ਇੱਕ ਵਾਧੂ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।


The reason psscan detects the hidden process is due to pool tag scanning.

psscan ਦੇ ਲੁਕੀ ਹੋਈ ਪ੍ਰਕਿਰਿਆ ਦਾ ਪਤਾ ਲਗਾਉਣ ਦਾ ਕਾਰਨ ਪੂਲ ਟੈਗ ਸਕੈਨਿੰਗ ਹੈ।


Executive objects are managed by the object manager.

ਕਾਰਜਕਾਰੀ ਵਸਤੂਆਂ ਦਾ ਪ੍ਰਬੰਧਨ ਆਬਜੈਕਟ ਮੈਨੇਜਰ ਦੁਆਰਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


Every executive object has an associated structure.

ਹਰ ਕਾਰਜਕਾਰੀ ਵਸਤੂ ਦੀ ਇੱਕ ਸੰਬੰਧਿਤ ਬਣਤਰ ਹੁੰਦੀ ਹੈ।


Memory is allocated by the Windows memory manager from kernel pools.

ਮੈਮੋਰੀ ਵਿੰਡੋਜ਼ ਮੈਮੋਰੀ ਮੈਨੇਜਰ ਦੁਆਰਾ ਕਰਨਲ ਪੂਲ ਤੋਂ ਅਲਾਟ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


The pool is divided into paged and non-paged pools.

ਪੂਲ ਨੂੰ ਪੇਜਡ ਅਤੇ ਗੈਰ-ਪੇਜਡ ਪੂਲ ਵਿੱਚ ਵੰਡਿਆ ਗਿਆ ਹੈ।


Objects are kept in a non-paged pool in the kernel.

ਵਸਤੂਆਂ ਨੂੰ ਕਰਨਲ ਵਿੱਚ ਇੱਕ ਗੈਰ-ਪੇਜਡ ਪੂਲ ਵਿੱਚ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ।


The allocation is tagged by prepending a _POOL_HEADER structure.

ਅਲਾਟਮੈਂਟ ਨੂੰ _POOL_HEADER ਬਣਤਰ ਨੂੰ ਜੋੜ ਕੇ ਟੈਗ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


The _POOL_HEADER includes a PoolTag field.

_POOL_HEADER ਵਿੱਚ ਇੱਕ PoolTag ਖੇਤਰ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ।


The psscan plugin uses the Proc tag to identify the process object.

psscan ਪਲੱਗਇਨ ਪ੍ਰਕਿਰਿਆ ਵਸਤੂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ Proc ਟੈਗ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।


The psscan can also detect terminated processes.

psscan ਬੰਦ ਕੀਤੀਆਂ ਗਈਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਦਾ ਵੀ ਪਤਾ ਲਗਾ ਸਕਦਾ ਹੈ।


The pstree plugin displays parent/child process relationships.

pstree ਪਲੱਗਇਨ ਮਾਤਾ/ਬੱਚੇ ਦੀ ਪ੍ਰਕਿਰਿਆ ਦੇ ਰਿਸ਼ਤਿਆਂ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ।


pstree pslist ਤੋਂ ਆਉਟਪੁੱਟ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।


The pstree plugin cannot list hidden or terminated processes.

pstree ਪਲੱਗਇਨ ਲੁਕੀਆਂ ਜਾਂ ਬੰਦ ਕੀਤੀਆਂ ਗਈਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਨੂੰ ਸੂਚੀਬੱਧ ਨਹੀਂ ਕਰ ਸਕਦਾ।


psxview relies on extracting process information from different sources.

psxview ਵੱਖ-ਵੱਖ ਸਰੋਤਾਂ ਤੋਂ ਪ੍ਰਕਿਰਿਆ ਦੀ ਜਾਣਕਾਰੀ ਕੱਢਣ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ।


psxview enumerates the process in seven different ways.

psxview ਸੱਤ ਵੱਖ-ਵੱਖ ਤਰੀਕਿਆਂ ਨਾਲ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਗਿਣਦਾ ਹੈ।


The handles plugin can list the objects a process is accessing.

ਹੈਂਡਲ ਪਲੱਗਇਨ ਉਹਨਾਂ ਵਸਤੂਆਂ ਦੀ ਸੂਚੀ ਬਣਾ ਸਕਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਤੱਕ ਇੱਕ ਪ੍ਰਕਿਰਿਆ ਪਹੁੰਚ ਕਰ ਰਹੀ ਹੈ।


The program gives the full path on the disk.

ਪ੍ਰੋਗਰਾਮ ਡਿਸਕ 'ਤੇ ਪੂਰਾ ਮਾਰਗ ਦਿੰਦਾ ਹੈ।


The second node describes a memory range.

ਦੂਜਾ ਨੋਡ ਇੱਕ ਮੈਮੋਰੀ ਰੇਂਜ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ।


This does not contain any memory mapped file.

ਇਸ ਵਿੱਚ ਕੋਈ ਵੀ ਮੈਮੋਰੀ ਮੈਪਡ ਫਾਈਲ ਨਹੀਂ ਹੈ।


Similarly, the third node displays the information.

ਇਸੇ ਤਰ੍ਹਾਂ, ਤੀਜਾ ਨੋਡ ਜਾਣਕਾਰੀ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ।


It contains ntdll.dll and its memory protection.

ਇਸ ਵਿੱਚ ntdll.dll ਅਤੇ ਇਸਦੀ ਮੈਮੋਰੀ ਸੁਰੱਖਿਆ ਸ਼ਾਮਲ ਹੈ।


Detecting Advanced Malware Using Memory Forensics is important.

ਮੈਮੋਰੀ ਫੋਰੈਂਸਿਕਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਐਡਵਾਂਸਡ ਮਾਲਵੇਅਰ ਦਾ ਪਤਾ ਲਗਾਉਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।


An application is generally not allowed to allocate memory.

ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਆਮ ਤੌਰ 'ਤੇ ਮੈਮੋਰੀ ਅਲਾਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੁੰਦੀ।


If an attacker wants to inject a PE file, then a memory with a PAGE_EXECUTE_READWRITE protection needs be allocated.

ਜੇਕਰ ਕੋਈ ਹਮਲਾਵਰ ਇੱਕ PE ਫਾਈਲ ਨੂੰ ਇੰਜੈਕਟ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ, ਤਾਂ PAGE_EXECUTE_READWRITE ਸੁਰੱਖਿਆ ਵਾਲੀ ਮੈਮੋਰੀ ਅਲਾਟ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।


To detect code injection, we can look for memory ranges.

ਕੋਡ ਇੰਜੈਕਸ਼ਨ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ, ਅਸੀਂ ਮੈਮੋਰੀ ਰੇਂਜਾਂ ਦੀ ਭਾਲ ਕਰ ਸਕਦੇ ਹਾਂ।


A memory range having a protection of PAGE_EXECUTE_READWRITE is not always malicious.

PAGE_EXECUTE_READWRITE ਦੀ ਸੁਰੱਖਿਆ ਵਾਲੀ ਇੱਕ ਮੈਮੋਰੀ ਰੇਂਜ ਹਮੇਸ਼ਾ ਖਤਰਨਾਕ ਨਹੀਂ ਹੁੰਦੀ।


This malware injects code into a legitimate explorer.exe process.

ਇਹ ਮਾਲਵੇਅਰ ਇੱਕ ਜਾਇਜ਼ explorer.exe ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਕੋਡ ਇੰਜੈਕਟ ਕਰਦਾ ਹੈ।


Just from the memory protection, it is hard to conclude if the preceding memory regions contain any malicious code.

ਸਿਰਫ਼ ਮੈਮੋਰੀ ਸੁਰੱਖਿਆ ਤੋਂ, ਇਹ ਸਿੱਟਾ ਕੱਢਣਾ ਮੁਸ਼ਕਲ ਹੈ ਕਿ ਕੀ ਪਿਛਲੀਆਂ ਮੈਮੋਰੀ ਖੇਤਰਾਂ ਵਿੱਚ ਕੋਈ ਖਤਰਨਾਕ ਕੋਡ ਹੈ।


To determine if there is any malicious code, we can dump the contents of these memory regions.

ਇਹ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਕਿ ਕੀ ਕੋਈ ਖਤਰਨਾਕ ਕੋਡ ਹੈ, ਅਸੀਂ ਇਹਨਾਂ ਮੈਮੋਰੀ ਖੇਤਰਾਂ ਦੀ ਸਮੱਗਰੀ ਨੂੰ ਡੰਪ ਕਰ ਸਕਦੇ ਹਾਂ।


Dumping the contents of the memory address shows the presence of the PE file.

ਮੈਮੋਰੀ ਐਡਰੈੱਸ ਦੀ ਸਮੱਗਰੀ ਨੂੰ ਡੰਪ ਕਰਨ ਨਾਲ PE ਫਾਈਲ ਦੀ ਮੌਜੂਦਗੀ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ।


The memory protection of PAGE_EXECUTE_READWRITE and the presence of the PE file is a clear indication that the executable was not normally loaded.

PAGE_EXECUTE_READWRITE ਦੀ ਮੈਮੋਰੀ ਸੁਰੱਖਿਆ ਅਤੇ PE ਫਾਈਲ ਦੀ ਮੌਜੂਦਗੀ ਇੱਕ ਸਪੱਸ਼ਟ ਸੰਕੇਤ ਹੈ ਕਿ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਨੂੰ ਆਮ ਤੌਰ 'ਤੇ ਲੋਡ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ।


Sometimes, displaying the contents of a memory region may not be enough to identify malicious code.

ਕਈ ਵਾਰ, ਇੱਕ ਮੈਮੋਰੀ ਖੇਤਰ ਦੀ ਸਮੱਗਰੀ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨਾ ਖਤਰਨਾਕ ਕੋਡ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਕਾਫ਼ੀ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ।


If you suspect that the memory region contains a shellcode, you can use dis command.

ਜੇਕਰ ਤੁਹਾਨੂੰ ਸ਼ੱਕ ਹੈ ਕਿ ਮੈਮੋਰੀ ਖੇਤਰ ਵਿੱਚ ਇੱਕ ਸ਼ੈਲਕੋਡ ਹੈ, ਤਾਂ ਤੁਸੀਂ dis ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।


After you have identified the injected code, you may want to dump it to disk.

ਇੰਜੈਕਟ ਕੀਤੇ ਕੋਡ ਦੀ ਪਛਾਣ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਤੁਸੀਂ ਇਸਨੂੰ ਡਿਸਕ 'ਤੇ ਡੰਪ ਕਰਨਾ ਚਾਹ ਸਕਦੇ ਹੋ।


Some malware programs use stealth techniques to bypass detection.

ਕੁਝ ਮਾਲਵੇਅਰ ਪ੍ਰੋਗਰਾਮ ਖੋਜ ਨੂੰ ਬਾਈਪਾਸ ਕਰਨ ਲਈ ਚੋਰੀ-ਛਿਪੇ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ।


There is another Volatility plugin named malfind, which automates the process.

ਇੱਕ ਹੋਰ ਵੋਲੈਟਿਲਿਟੀ ਪਲੱਗਇਨ ਹੈ ਜਿਸਦਾ ਨਾਮ malfind ਹੈ, ਜੋ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਸਵੈਚਲਿਤ ਕਰਦਾ ਹੈ।


Hooking techniques were covered in Chapter 8.

ਹੁੱਕਿੰਗ ਤਕਨੀਕਾਂ ਨੂੰ ਅਧਿਆਇ 8 ਵਿੱਚ ਕਵਰ ਕੀਤਾ ਗਿਆ ਸੀ।


In this section, we will mainly focus on detecting such hooking techniques using memory forensics.

ਇਸ ਭਾਗ ਵਿੱਚ, ਅਸੀਂ ਮੁੱਖ ਤੌਰ 'ਤੇ ਮੈਮੋਰੀ ਫੋਰੈਂਸਿਕਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਜਿਹੀਆਂ ਹੁੱਕਿੰਗ ਤਕਨੀਕਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣ 'ਤੇ ਧਿਆਨ ਦੇਵਾਂਗੇ।


To identify API hooks in both process and kernel memory, you can use the apihooks Volatility plugin.

ਪ੍ਰਕਿਰਿਆ ਅਤੇ ਕਰਨਲ ਮੈਮੋਰੀ ਦੋਵਾਂ ਵਿੱਚ API ਹੁੱਕਾਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ, ਤੁਸੀਂ apihooks Volatility ਪਲੱਗਇਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।


In the following example of Zeus bot, an executable is injected into the explorer.exe process's memory.

ਜ਼ਿਊਸ ਬੋਟ ਦੀ ਹੇਠਲੀ ਉਦਾਹਰਣ ਵਿੱਚ, ਇੱਕ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਨੂੰ explorer.exe ਪ੍ਰਕਿਰਿਆ ਦੀ ਮੈਮੋਰੀ ਵਿੱਚ ਇੰਜੈਕਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


The hooked API is then redirected to address 0x2c7ec48.

ਫਿਰ ਹੁੱਕ ਕੀਤੇ API ਨੂੰ ਪਤੇ 0x2c7ec48 'ਤੇ ਰੀਡਾਇਰੈਕਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


The hook address falls within the address range of the injected executable.

ਹੁੱਕ ਦਾ ਪਤਾ ਇੰਜੈਕਟ ਕੀਤੇ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਦੀ ਐਡਰੈੱਸ ਰੇਂਜ ਵਿੱਚ ਆਉਂਦਾ ਹੈ।


The name of the hooking module is unknown, because it is not normally loaded from the disk.

ਹੁੱਕਿੰਗ ਮੋਡੀਊਲ ਦਾ ਨਾਮ ਅਣਜਾਣ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਆਮ ਤੌਰ 'ਤੇ ਡਿਸਕ ਤੋਂ ਲੋਡ ਨਹੀਂ ਹੁੰਦਾ ਹੈ।


A malicious program such as rootkit can load a kernel driver to run the code in kernel mode.

ਰੂਟਕਿਟ ਵਰਗਾ ਇੱਕ ਖਤਰਨਾਕ ਪ੍ਰੋਗਰਾਮ ਕਰਨਲ ਮੋਡ ਵਿੱਚ ਕੋਡ ਚਲਾਉਣ ਲਈ ਇੱਕ ਕਰਨਲ ਡਰਾਈਵਰ ਲੋਡ ਕਰ ਸਕਦਾ ਹੈ।


Once it's running in the kernel space, it has access to the internal operating system code.

ਇੱਕ ਵਾਰ ਇਹ ਕਰਨਲ ਸਪੇਸ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਹੈ, ਇਸਦੀ ਅੰਦਰੂਨੀ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਕੋਡ ਤੱਕ ਪਹੁੰਚ ਹੁੰਦੀ ਹੈ।


Windows has implemented various security mechanisms that are designed to prevent the execution of unauthorized code.

ਵਿੰਡੋਜ਼ ਨੇ ਕਈ ਸੁਰੱਖਿਆ ਵਿਧੀਆਂ ਲਾਗੂ ਕੀਤੀਆਂ ਹਨ ਜੋ ਅਣਅਧਿਕਾਰਤ ਕੋਡ ਦੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਰੋਕਣ ਲਈ ਤਿਆਰ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ।


This makes it difficult for a rootkit to install the kernel drivers.

ਇਹ ਇੱਕ ਰੂਟਕਿਟ ਲਈ ਕਰਨਲ ਡਰਾਈਵਰਾਂ ਨੂੰ ਸਥਾਪਤ ਕਰਨਾ ਮੁਸ਼ਕਲ ਬਣਾਉਂਦਾ ਹੈ।


ਇੱਕ ਤਰੀਕਾ ਹੈ ਬੂਟਕਿਟ ਸਥਾਪਤ ਕਰਨਾ।


A Bootkit infects the early stages of the system startup process.

ਇੱਕ ਬੂਟਕਿਟ ਸਿਸਟਮ ਸਟਾਰਟਅੱਪ ਪ੍ਰਕਿਰਿਆ ਦੇ ਸ਼ੁਰੂਆਤੀ ਪੜਾਵਾਂ ਨੂੰ ਸੰਕਰਮਿਤ ਕਰਦਾ ਹੈ।


We will start by listing the kernel modules.

ਅਸੀਂ ਕਰਨਲ ਮੋਡੀਊਲ ਦੀ ਸੂਚੀ ਬਣਾ ਕੇ ਸ਼ੁਰੂਆਤ ਕਰਾਂਗੇ।


Listing kernel modules may not always help you identify the malicious kernel driver.

ਕਰਨਲ ਮੋਡੀਊਲ ਦੀ ਸੂਚੀ ਬਣਾਉਣਾ ਹਮੇਸ਼ਾ ਤੁਹਾਨੂੰ ਖਤਰਨਾਕ ਕਰਨਲ ਡਰਾਈਵਰ ਦੀ ਪਛਾਣ ਕਰਨ ਵਿੱਚ ਮਦਦ ਨਹੀਂ ਕਰ ਸਕਦਾ ਹੈ।


The modules plugin lists the kernel modules in the order in which they were loaded.

ਮੋਡੀਊਲ ਪਲੱਗਇਨ ਕਰਨਲ ਮੋਡੀਊਲ ਨੂੰ ਉਸ ਕ੍ਰਮ ਵਿੱਚ ਸੂਚੀਬੱਧ ਕਰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਉਹ ਲੋਡ ਕੀਤੇ ਗਏ ਸਨ।


In the following example of the Laqma rootkit, the module listing shows the malicious driver.

ਲਾਕਮਾ ਰੂਟਕਿਟ ਦੀ ਹੇਠਲੀ ਉਦਾਹਰਣ ਵਿੱਚ, ਮੋਡੀਊਲ ਸੂਚੀ ਖਤਰਨਾਕ ਡਰਾਈਵਰ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ।


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

ਕਿਉਂਕਿ ਡਬਲ ਲਿੰਕਡ ਸੂਚੀ ਵਿੱਚੋਂ ਲੰਘਣਾ DKOM ਹਮਲਿਆਂ ਦਾ ਸ਼ਿਕਾਰ ਹੁੰਦਾ ਹੈ।


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

ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਦੂਰ ਕਰਨ ਲਈ, ਤੁਸੀਂ modscan ਨਾਮਕ ਇੱਕ ਹੋਰ ਪਲੱਗਇਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।


The modscan plugin relies on the pool tag scanning approach.

ਮੋਡਸਕੈਨ ਪਲੱਗਇਨ ਪੂਲ ਟੈਗ ਸਕੈਨਿੰਗ ਪਹੁੰਚ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ।


The driver updates the Major function table during initialization.

ਡਰਾਈਵਰ ਸ਼ੁਰੂਆਤ ਸਮੇਂ ਪ੍ਰਮੁੱਖ ਫੰਕਸ਼ਨ ਟੇਬਲ ਨੂੰ ਅਪਡੇਟ ਕਰਦਾ ਹੈ।


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

ਮੁੱਖ ਫੰਕਸ਼ਨ ਟੇਬਲ ਦੀ ਜਾਂਚ ਕਰਨ ਨਾਲ ਤੁਹਾਨੂੰ ਸਹਿਯੋਗੀ ਕਾਰਵਾਈਆਂ ਦਾ ਵਿਚਾਰ ਮਿਲਦਾ ਹੈ।


The index values 0 to 27 represent a particular operation.

ਸੂਚਕਾਂਕ ਮੁੱਲ 0 ਤੋਂ 27 ਇੱਕ ਖਾਸ ਕਾਰਵਾਈ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ।


If an application wants to open a file, the request goes to the I/O manager.

ਜੇਕਰ ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ ਇੱਕ ਫਾਈਲ ਖੋਲ੍ਹਣਾ ਚਾਹੁੰਦੀ ਹੈ, ਤਾਂ ਬੇਨਤੀ I/O ਮੈਨੇਜਰ ਕੋਲ ਜਾਂਦੀ ਹੈ।


The I/O manager uses the IRP_MJ_CREATE code as an index.

I/O ਮੈਨੇਜਰ ਇੰਡੈਕਸ ਦੇ ਤੌਰ 'ਤੇ IRP_MJ_CREATE ਕੋਡ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ।


For a read operation, IRP_MJ_READ is used as the index.

ਰੀਡ ਓਪਰੇਸ਼ਨ ਲਈ, IRP_MJ_READ ਨੂੰ ਇੰਡੈਕਸ ਵਜੋਂ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।


The null.sys driver only supports a few operations.

null.sys ਡਰਾਈਵਰ ਸਿਰਫ਼ ਕੁਝ ਕਾਰਵਾਈਆਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।


Supported operations are dispatched to the appropriate routine.

ਸਹਿਯੋਗੀ ਕਾਰਵਾਈਆਂ ਨੂੰ ਢੁਕਵੇਂ ਰੁਟੀਨ 'ਤੇ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ।


The write request is dispatched to the MajorFunction[IRP_MJ_WRITE] function.

ਲਿਖਣ ਦੀ ਬੇਨਤੀ ਨੂੰ MajorFunction[IRP_MJ_WRITE] ਫੰਕਸ਼ਨ 'ਤੇ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ।


Normally, different operations are handled by different routines.

ਆਮ ਤੌਰ 'ਤੇ, ਵੱਖ-ਵੱਖ ਕਾਰਵਾਈਆਂ ਨੂੰ ਵੱਖ-ਵੱਖ ਰੁਟੀਨ ਦੁਆਰਾ ਸੰਭਾਲਿਆ ਜਾਂਦਾ ਹੈ।


The I/O manager creates an IRP to describe the I/O request.

I/O ਮੈਨੇਜਰ I/O ਬੇਨਤੀ ਦਾ ਵਰਣਨ ਕਰਨ ਲਈ ਇੱਕ IRP ਬਣਾਉਂਦਾ ਹੈ।


The IRP contains a buffer for data storage.

IRP ਵਿੱਚ ਡਾਟਾ ਸਟੋਰੇਜ ਲਈ ਇੱਕ ਬਫਰ ਹੁੰਦਾ ਹੈ।


The driver receives the IRP and performs a check.

ਡਰਾਈਵਰ IRP ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਅਤੇ ਇੱਕ ਜਾਂਚ ਕਰਦਾ ਹੈ।


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

ਜਾਂਚ ਤੋਂ ਬਾਅਦ, ਡਰਾਈਵਰ I/O ਓਪਰੇਸ਼ਨ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ।


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

ਪੂਰਾ ਹੋਣ 'ਤੇ, ਡਰਾਈਵਰ IRP ਨੂੰ I/O ਮੈਨੇਜਰ ਨੂੰ ਵਾਪਸ ਕਰਦਾ ਹੈ।


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

I/O ਮੈਨੇਜਰ IRP ਨੂੰ ਖਾਲੀ ਕਰਦਾ ਹੈ ਜਾਂ ਇਸਨੂੰ ਅਗਲੇ ਡਰਾਈਵਰ ਨੂੰ ਭੇਜਦਾ ਹੈ।


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

I/O ਮੈਨੇਜਰ ਸਥਿਤੀ ਅਤੇ ਡਾਟਾ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਵਾਪਸ ਕਰਦਾ ਹੈ।


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

ਯੂਜ਼ਰ-ਮੋਡ ਕੋਡ ਕਰਨਲ-ਮੋਡ ਡਰਾਈਵਰ ਨਾਲ ਸੰਚਾਰ ਕਰਦਾ ਹੈ।


The DeviceIoControl API allows direct communication.

DeviceIoControl API ਸਿੱਧਾ ਸੰਚਾਰ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।


A rootkit can define its own control codes.

ਇੱਕ ਰੂਟਕਿੱਟ ਆਪਣੇ ਖੁਦ ਦੇ ਕੰਟਰੋਲ ਕੋਡ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰ ਸਕਦਾ ਹੈ।


To overcome this problem, we can use another plugin named ldrmodules.

ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ, ਅਸੀਂ ਇੱਕ ਹੋਰ ਪਲੱਗਇਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ ਜਿਸਨੂੰ ldrmodules ਕਿਹਾ ਜਾਂਦਾ ਹੈ।


The memory manager uses VADs to keep track of virtual addresses in the process memory that are reserved (or free).

ਮੈਮੋਰੀ ਮੈਨੇਜਰ ਵਰਚੁਅਲ ਐਡਰੈੱਸਾਂ ਦਾ ਧਿਆਨ ਰੱਖਣ ਲਈ VADs ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਜੋ ਪ੍ਰਕਿਰਿਆ ਮੈਮੋਰੀ ਵਿੱਚ ਰਾਖਵੇਂ (ਜਾਂ ਮੁਫਤ) ਹਨ।


If the process memory region contains a memory-mapped file (such as an executable, DLL), then the VAD node stores information about its base address, file path, and memory protection.

ਜੇਕਰ ਪ੍ਰਕਿਰਿਆ ਮੈਮੋਰੀ ਖੇਤਰ ਵਿੱਚ ਇੱਕ ਮੈਮੋਰੀ-ਮੈਪਡ ਫਾਈਲ (ਜਿਵੇਂ ਕਿ ਇੱਕ ਐਗਜ਼ੀਕਿਊਟੇਬਲ, DLL) ਹੁੰਦੀ ਹੈ, ਤਾਂ VAD ਨੋਡ ਇਸਦੇ ਬੇਸ ਐਡਰੈੱਸ, ਫਾਈਲ ਮਾਰਗ, ਅਤੇ ਮੈਮੋਰੀ ਸੁਰੱਖਿਆ ਬਾਰੇ ਜਾਣਕਾਰੀ ਸਟੋਰ ਕਰਦਾ ਹੈ।


Similarly, other VAD nodes will describe process memory ranges, including the ones that contain mapped executable images such as DLLs.

ਇਸੇ ਤਰ੍ਹਾਂ, ਹੋਰ VAD ਨੋਡ ਪ੍ਰਕਿਰਿਆ ਮੈਮੋਰੀ ਰੇਂਜਾਂ ਦਾ ਵਰਣਨ ਕਰਨਗੇ, ਜਿਸ ਵਿੱਚ ਉਹ ਵੀ ਸ਼ਾਮਲ ਹਨ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਮੈਪ ਕੀਤੇ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਚਿੱਤਰ ਜਿਵੇਂ ਕਿ DLLs ਸ਼ਾਮਲ ਹਨ।


To get the module's information, the ldrmodules plugin enumerates all the VAD nodes that contain mapped executable images and compares the results with the three PEB lists to identify any discrepancies.

ਮੋਡੀਊਲ ਦੀ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ, ldrmodules ਪਲੱਗਇਨ ਉਹਨਾਂ ਸਾਰੇ VAD ਨੋਡਾਂ ਨੂੰ ਗਿਣਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਵਿੱਚ ਮੈਪ ਕੀਤੇ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਚਿੱਤਰ ਹੁੰਦੇ ਹਨ ਅਤੇ ਕਿਸੇ ਵੀ ਅੰਤਰ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਨਤੀਜਿਆਂ ਦੀ ਤਿੰਨ PEB ਸੂਚੀਆਂ ਨਾਲ ਤੁਲਨਾ ਕਰਦਾ ਹੈ।


You can see that the ldrmodules plugin was able to identify a malicious DLL called TDSSoiqh.dll, which hides from all the three PEB lists.

ਤੁਸੀਂ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ ldrmodules ਪਲੱਗਇਨ ਇੱਕ ਖਤਰਨਾਕ DLL, TDSSoiqh.dll ਦੀ ਪਛਾਣ ਕਰਨ ਦੇ ਯੋਗ ਸੀ, ਜੋ ਤਿੰਨ PEB ਸੂਚੀਆਂ ਤੋਂ ਲੁਕਿਆ ਹੋਇਆ ਹੈ।


To dump a process executable from memory to disk, you can use the procdump plugin.

ਮੈਮੋਰੀ ਤੋਂ ਡਿਸਕ ਵਿੱਚ ਇੱਕ ਪ੍ਰਕਿਰਿਆ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਨੂੰ ਡੰਪ ਕਰਨ ਲਈ, ਤੁਸੀਂ procdump ਪਲੱਗਇਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।


To dump the process executable, you need to know either its process ID or its physical offset.

ਪ੍ਰਕਿਰਿਆ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਨੂੰ ਡੰਪ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਇਸਦੇ ਪ੍ਰਕਿਰਿਆ ID ਜਾਂ ਇਸਦੇ ਭੌਤਿਕ ਆਫਸੈੱਟ ਨੂੰ ਜਾਣਨ ਦੀ ਲੋੜ ਹੈ।


With the -D (--dump-dir) option, you specify the name of the directory in which to dump executable files.

-D (--dump-dir) ਵਿਕਲਪ ਦੇ ਨਾਲ, ਤੁਸੀਂ ਉਸ ਡਾਇਰੈਕਟਰੀ ਦਾ ਨਾਮ ਦੱਸਦੇ ਹੋ ਜਿਸ ਵਿੱਚ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਫਾਈਲਾਂ ਨੂੰ ਡੰਪ ਕਰਨਾ ਹੈ।


Similarly, to the process executable, you can dump a malicious DLL to disk using the dlldump plugin.

ਇਸੇ ਤਰ੍ਹਾਂ, ਪ੍ਰਕਿਰਿਆ ਐਗਜ਼ੀਕਿਊਟੇਬਲ ਲਈ, ਤੁਸੀਂ dlldump ਪਲੱਗਇਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਖਤਰਨਾਕ DLL ਨੂੰ ਡਿਸਕ ਵਿੱਚ ਡੰਪ ਕਰ ਸਕਦੇ ਹੋ।


Inspecting the networking activity will help you determine the network operations of the malware on the infected system.

ਨੈੱਟਵਰਕਿੰਗ ਗਤੀਵਿਧੀ ਦੀ ਜਾਂਚ ਕਰਨ ਨਾਲ ਤੁਹਾਨੂੰ ਸੰਕਰਮਿਤ ਸਿਸਟਮ 'ਤੇ ਮਾਲਵੇਅਰ ਦੇ ਨੈੱਟਵਰਕ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਮਿਲੇਗੀ।


To determine the active network connections on pre-vista systems (such as Windows XP and 2003), you can use the connections plugin.

ਪ੍ਰੀ-ਵਿਸਟਾ ਸਿਸਟਮ (ਜਿਵੇਂ ਕਿ ਵਿੰਡੋਜ਼ XP ਅਤੇ 2003) 'ਤੇ ਕਿਰਿਆਸ਼ੀਲ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ, ਤੁਸੀਂ ਕਨੈਕਸ਼ਨ ਪਲੱਗਇਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।


Sometimes, you may want to get the information about the open sockets and their associated processes.

ਕਈ ਵਾਰ, ਤੁਸੀਂ ਖੁੱਲ੍ਹੇ ਸਾਕਟਾਂ ਅਤੇ ਉਹਨਾਂ ਨਾਲ ਜੁੜੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਬਾਰੇ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹ ਸਕਦੇ ਹੋ।


From a forensics perspective, the registry can provide valuable information about the context of the malware.

ਫੋਰੈਂਸਿਕਸ ਦੇ ਨਜ਼ਰੀਏ ਤੋਂ, ਰਜਿਸਟਰੀ ਮਾਲਵੇਅਰ ਦੇ ਸੰਦਰਭ ਬਾਰੇ ਕੀਮਤੀ ਜਾਣਕਾਰੀ ਪ੍ਰਦਾਨ ਕਰ ਸਕਦੀ ਹੈ।


To print the registry key, subkeys, and its values, you can use the printkey plugin by providing the desired registry key path using the -K (--key) argument.

ਰਜਿਸਟਰੀ ਕੁੰਜੀ, ਸਬਕੀਜ਼, ਅਤੇ ਇਸਦੇ ਮੁੱਲਾਂ ਨੂੰ ਪ੍ਰਿੰਟ ਕਰਨ ਲਈ, ਤੁਸੀਂ -K (--key) ਆਰਗੂਮੈਂਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਲੋੜੀਂਦੇ ਰਜਿਸਟਰੀ ਕੁੰਜੀ ਮਾਰਗ ਪ੍ਰਦਾਨ ਕਰਕੇ printkey ਪਲੱਗਇਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।


The Userassist registry key contains a list of programs that have been executed by the user on the system and the time when the program was run.

Userassist ਰਜਿਸਟਰੀ ਕੁੰਜੀ ਵਿੱਚ ਉਹਨਾਂ ਪ੍ਰੋਗਰਾਮਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਹੁੰਦੀ ਹੈ ਜੋ ਸਿਸਟਮ 'ਤੇ ਉਪਭੋਗਤਾ ਦੁਆਰਾ ਚਲਾਏ ਗਏ ਹਨ ਅਤੇ ਜਿਸ ਸਮੇਂ ਪ੍ਰੋਗਰਾਮ ਚਲਾਇਆ ਗਿਆ ਸੀ।


In this section, we will focus on how to investigate services from the memory image.

ਇਸ ਭਾਗ ਵਿੱਚ, ਅਸੀਂ ਇਸ ਗੱਲ 'ਤੇ ਧਿਆਨ ਦੇਵਾਂਗੇ ਕਿ ਮੈਮੋਰੀ ਚਿੱਤਰ ਤੋਂ ਸੇਵਾਵਾਂ ਦੀ ਜਾਂਚ ਕਿਵੇਂ ਕੀਤੀ ਜਾਵੇ।


To list the services and their information such as display name, type of service, and startup type from the memory image, you can use the svcscan plugin.

ਮੈਮੋਰੀ ਚਿੱਤਰ ਤੋਂ ਸੇਵਾਵਾਂ ਅਤੇ ਉਹਨਾਂ ਦੀ ਜਾਣਕਾਰੀ ਜਿਵੇਂ ਕਿ ਡਿਸਪਲੇ ਨਾਮ, ਸੇਵਾ ਦੀ ਕਿਸਮ, ਅਤੇ ਸਟਾਰਟਅੱਪ ਕਿਸਮ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਨ ਲਈ, ਤੁਸੀਂ svcscan ਪਲੱਗਇਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।


Some malicious programs hijack the existing service that is unused or disabled to persist on the system.

ਕੁਝ ਖਤਰਨਾਕ ਪ੍ਰੋਗਰਾਮ ਸਿਸਟਮ 'ਤੇ ਬਣੇ ਰਹਿਣ ਲਈ ਮੌਜੂਦਾ ਸੇਵਾ ਨੂੰ ਹਾਈਜੈਕ ਕਰਦੇ ਹਨ ਜੋ ਵਰਤੀ ਨਹੀਂ ਜਾਂਦੀ ਜਾਂ ਅਯੋਗ ਹੈ।


Command history can provide valuable information about an attacker's activity on the compromised system.

ਕਮਾਂਡ ਇਤਿਹਾਸ ਸਮਝੌਤਾ ਕੀਤੇ ਸਿਸਟਮ 'ਤੇ ਇੱਕ ਹਮਲਾਵਰ ਦੀ ਗਤੀਵਿਧੀ ਬਾਰੇ ਕੀਮਤੀ ਜਾਣਕਾਰੀ ਪ੍ਰਦਾਨ ਕਰ ਸਕਦਾ ਹੈ।


The output shows the entry from the clean system.

ਇਹ ਆਉਟਪੁੱਟ ਸਾਫ਼ ਸਿਸਟਮ ਤੋਂ ਐਂਟਰੀ ਦਿਖਾਉਂਦਾ ਹੈ।


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

ਤੁਸੀਂ ਦੇਖ ਸਕਦੇ ਹੋ ਕਿ IDT ਵਿੱਚ ਐਂਟਰੀ UNKNOWN ਮੋਡੀਊਲ ਵਿੱਚ ਇੱਕ ਪਤੇ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰ ਰਹੀ ਹੈ।


Detecting Advanced Malware Using Memory Forensics is a complex task.

ਮੈਮੋਰੀ ਫੋਰੈਂਸਿਕਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਐਡਵਾਂਸਡ ਮਾਲਵੇਅਰ ਦਾ ਪਤਾ ਲਗਾਉਣਾ ਇੱਕ ਗੁੰਝਲਦਾਰ ਕੰਮ ਹੈ।


Instead of replacing the pointers in the SSDT, an attacker can modify the kernel function.

SSDT ਵਿੱਚ ਪੁਆਇੰਟਰਾਂ ਨੂੰ ਬਦਲਣ ਦੀ ਬਜਾਏ, ਇੱਕ ਹਮਲਾਵਰ ਕਰਨਲ ਫੰਕਸ਼ਨ ਨੂੰ ਸੋਧ ਸਕਦਾ ਹੈ।


You can use the apihooks plugin to detect inline hooking in the kernel space.

ਤੁਸੀਂ ਕਰਨਲ ਸਪੇਸ ਵਿੱਚ ਇਨਲਾਈਨ ਹੁੱਕਿੰਗ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ apihooks ਪਲੱਗਇਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।


The hooked API functions are redirected to the addresses within a malicious module.

ਹੁੱਕ ਕੀਤੇ API ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਇੱਕ ਖਤਰਨਾਕ ਮੋਡੀਊਲ ਦੇ ਅੰਦਰ ਪਤਿਆਂ 'ਤੇ ਰੀਡਾਇਰੈਕਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।


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

ਭਾਵੇਂ ਕਿ ਹੁੱਕਿੰਗ ਮੋਡੀਊਲ ਦਾ ਨਾਮ ਅਣਜਾਣ ਹੈ, ਫਿਰ ਵੀ ਖਤਰਨਾਕ ਕਰਨਲ ਮੋਡੀਊਲ ਦਾ ਪਤਾ ਲਗਾਉਣਾ ਸੰਭਵ ਹੈ।