The strings utility can extract both ASCII and Unicode strings.

স্ট্রিংস ইউটিলিটি ASCII এবং ইউনিকোড উভয় স্ট্রিংই বের করতে পারে।


Malware authors often use simple string obfuscation techniques.

ম্যালওয়্যার লেখকরা প্রায়শই সাধারণ স্ট্রিং অস্পষ্টকরণ কৌশল ব্যবহার করেন।


FLOSS is designed to identify and extract obfuscated strings from malware automatically.

FLOSS স্বয়ংক্রিয়ভাবে ম্যালওয়্যার থেকে অস্পষ্ট স্ট্রিং সনাক্ত এবং বের করার জন্য ডিজাইন করা হয়েছে।


You can download FLOSS for Windows or Linux.

আপনি উইন্ডোজ বা লিনাক্সের জন্য FLOSS ডাউনলোড করতে পারেন।


Running FLOSS on a malware specimen extracted human-readable strings.

একটি ম্যালওয়্যার নমুনার উপর FLOSS চালানো মানুষের পাঠযোগ্য স্ট্রিংগুলি বের করেছে।


FLOSS also decoded the obfuscated strings.

FLOSS অস্পষ্ট স্ট্রিংগুলিও ডিকোড করেছে।


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

আপনি যদি FLOSS আউটপুট থেকে স্ট্যাটিক স্ট্রিংগুলি বাদ দিতে চান তবে --no-static-strings সুইচ ব্যবহার করুন।


Malware authors obfuscate their malware binary to protect the inner workings.

ম্যালওয়্যার লেখকরা তাদের অভ্যন্তরীণ কার্যক্রম রক্ষার জন্য তাদের ম্যালওয়্যার বাইনারিটিকে অস্পষ্ট করে।


Packers and Cryptors are used to obfuscate files.

প্যাকার এবং ক্রিপ্টর ফাইলগুলিকে অস্পষ্ট করতে ব্যবহৃত হয়।


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

একটি প্যাকার এক্সিকিউটেবলের বিষয়বস্তুকে অস্পষ্ট করতে কম্প্রেশন ব্যবহার করে।


Upon execution of the packed program, it executes a decompression routine.

প্যাক করা প্রোগ্রামটি কার্যকর করার পরে, এটি একটি ডিকম্প্রেশন রুটিন চালায়।


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

একটি ক্রিপ্টর এক্সিকিউটেবলের বিষয়বস্তুকে অস্পষ্ট করতে এনক্রিপশন ব্যবহার করে।


Extracting strings from Spybot shows references to suspicious executable names.

স্পাইবট থেকে স্ট্রিং বের করলে সন্দেহজনক এক্সিকিউটেবল নামের উল্লেখ দেখা যায়।


UPX uses compression, because of which the size of the packed binary is lower.

UPX কম্প্রেশন ব্যবহার করে, যার কারণে প্যাক করা বাইনারির আকার ছোট হয়।


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

প্যাক করা বাইনারিতে স্ট্রিং কমান্ড চালালে অস্পষ্ট স্ট্রিং দেখায়।


Exeinfo PE can detect packers on Windows.

Exeinfo PE উইন্ডোজে প্যাকার সনাক্ত করতে পারে।


The PE file format is used by Windows executable files.

উইন্ডোজ এক্সিকিউটেবল ফাইলগুলি PE ফাইল ফর্ম্যাট ব্যবহার করে।


Examining the PE header yields a wealth of information about the binary.

PE হেডার পরীক্ষা করলে বাইনারি সম্পর্কে প্রচুর তথ্য পাওয়া যায়।


Inspecting the DLLs and API functions can give an idea about the functionality of malware.

DLL এবং API ফাংশনগুলি পরীক্ষা করে ম্যালওয়্যারের কার্যকারিতা সম্পর্কে ধারণা পাওয়া যেতে পারে।


If you come across a malware with very few imports, then it is a strong indication of a packed binary.

যদি আপনি খুব কম ইম্পোর্ট সহ একটি ম্যালওয়্যার খুঁজে পান তবে এটি একটি প্যাক করা বাইনারির শক্তিশালী ইঙ্গিত।


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.

পাইথনে, পাইথন-এসএসডিপ ব্যবহার করে ফাজি হ্যাশ গণনা করা যেতে পারে।


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 contained within the malware specimen.

ম্যালওয়্যার গবেষকরা ম্যালওয়্যার নমুনার মধ্যে থাকা টেক্সট বা বাইনারি তথ্যের উপর ভিত্তি করে 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 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 নিয়ম প্যাক শনাক্ত করতেও ব্যবহার করা যেতে পারে।


YARA can be used to detect patterns in any file.

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.

ডাইনামিক বিশ্লেষণ (আচরণগত বিশ্লেষণ)-এ একটি বিচ্ছিন্ন পরিবেশে একটি নমুনা কার্যকর করে বিশ্লেষণ করা জড়িত।


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

ম্যালওয়্যার বিশ্লেষণ শেখা উইন্ডোজ ম্যালওয়্যার বিশ্লেষণ এবং তদন্ত করার জন্য ধারণা, সরঞ্জাম এবং কৌশলগুলি অন্বেষণ করে।


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

এই বইটি উইন্ডোজ ম্যালওয়্যারের আচরণ এবং বৈশিষ্ট্যগুলি বুঝতে ধারণা, সরঞ্জাম এবং কৌশল শেখায়।


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

উন্নত ম্যালওয়্যার এবং লক্ষ্যযুক্ত আক্রমণের বিরুদ্ধে লড়াই করার জন্য ম্যালওয়্যার বিশ্লেষণ একটি অপরিহার্য দক্ষতা হয়ে উঠেছে।


If you're an incident responder, cybersecurity investigator, or a curious security professional, this book is for you.

যদি আপনি একজন ঘটনা প্রতিক্রিয়াকারী, সাইবার নিরাপত্তা তদন্তকারী, অথবা কৌতূহলী নিরাপত্তা পেশাদার হন, তবে এই বইটি আপনার জন্য।


Chapter 1 introduces readers to the concept of malware analysis and setting up an isolated malware analysis lab environment.

অধ্যায় ১ ম্যালওয়্যার বিশ্লেষণের ধারণা এবং একটি বিচ্ছিন্ন ম্যালওয়্যার বিশ্লেষণ পরীক্ষাগার পরিবেশ স্থাপন সম্পর্কে পাঠকদের পরিচয় করিয়ে দেয়।


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

অধ্যায় ২ ম্যালওয়্যার বাইনারি থেকে মেটাডেটা তথ্য বের করার জন্য সরঞ্জাম এবং কৌশল শেখায়।


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 and its interaction with the system.

অধ্যায় ৩ ম্যালওয়্যারের আচরণ এবং সিস্টেমের সাথে এর মিথস্ক্রিয়া নির্ধারণের জন্য সরঞ্জাম এবং কৌশল শেখায়।


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

আপনি কীভাবে ম্যালওয়্যারের সাথে সম্পর্কিত নেটওয়ার্ক এবং হোস্ট-ভিত্তিক সূচকগুলি পাবেন তা শিখবেন।


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

অধ্যায় ৪ অ্যাসেম্বলি ভাষার একটি মৌলিক ধারণা দেয় এবং কোড বিশ্লেষণ করার জন্য প্রয়োজনীয় দক্ষতা শেখায়।


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

অধ্যায় ৫ IDA Pro Disassembler-এর বৈশিষ্ট্যগুলি কভার করে এবং আপনি স্ট্যাটিক কোড বিশ্লেষণ করতে IDA Pro ব্যবহার করা শিখবেন।


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

অধ্যায় ৬ x64dbg এবং IDA Pro ডিবাগার ব্যবহার করে একটি বাইনারি ডিবাগ করার কৌশল শেখায়।


You will learn how to use a debugger to control the execution of a program and to manipulate a program's behavior.

আপনি একটি প্রোগ্রামের কার্যকরকরণ নিয়ন্ত্রণ করতে এবং একটি প্রোগ্রামের আচরণ ম্যানিপুলেট করতে একটি ডিবাগার ব্যবহার করা শিখবেন।


Chapter 7 describes various functionalities of malware using reverse engineering.

অধ্যায় ৭ রিভার্স ইঞ্জিনিয়ারিং ব্যবহার করে ম্যালওয়্যারের বিভিন্ন কার্যকারিতা বর্ণনা করে।


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

এটি দূষিত প্রোগ্রামগুলি দ্বারা ব্যবহৃত বিভিন্নpersistence পদ্ধতিগুলিও কভার করে।


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

অধ্যায় ৮ দূষিত প্রোগ্রামগুলি দ্বারা ব্যবহৃত সাধারণ কোড ইনজেকশন কৌশলগুলি শেখায়।


It also describes the hooking techniques used by the malware to redirect control to the malicious code.

এটি ম্যালওয়্যার দ্বারা দূষিত কোডে নিয়ন্ত্রণ পুনঃনির্দেশিত করতে ব্যবহৃত হুকিং কৌশলগুলিও বর্ণনা করে।


Chapter 9 covers encoding, encryption, and packing techniques used by the malicious programs.

অধ্যায় ৯ দূষিত প্রোগ্রামগুলি দ্বারা ব্যবহৃত এনকোডিং, এনক্রিপশন এবং প্যাকিং কৌশলগুলি কভার করে।


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

অধ্যায় ১০ মেমরি ফরেনসিক ব্যবহার করে দূষিত উপাদান সনাক্ত করার কৌশল শেখায়।


You will learn various Volatility plugins to detect and identify forensic artifacts in memory.

আপনি মেমরিতে ফরেনসিক আর্টিফ্যাক্ট সনাক্ত এবং সনাক্ত করতে বিভিন্ন Volatility প্লাগইন শিখবেন।


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

যদি আপনি এই বইটিতে কোনো ভুল খুঁজে পান, তবে আমরা কৃতজ্ঞ হব যদি আপনি আমাদের কাছে এটি রিপোর্ট করেন।


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

অনুগ্রহ করে www.packtpub.com/submit-errata-তে যান, আপনার বই নির্বাচন করুন, Errata Submission Form লিঙ্কে ক্লিক করুন এবং বিবরণ লিখুন।


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

যদি আপনি ইন্টারনেটে আমাদের কাজের কোনো অবৈধ অনুলিপি খুঁজে পান, তবে আমরা কৃতজ্ঞ হব যদি আপনি আমাদের অবস্থান ঠিকানা বা ওয়েবসাইটের নাম সরবরাহ করেন।


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

আপনি যদি লেখক হতে আগ্রহী হন: যদি এমন কোনো বিষয় থাকে যাতে আপনার দক্ষতা আছে এবং আপনি বই লিখতে বা অবদান রাখতে আগ্রহী, তাহলে অনুগ্রহ করে authors.packtpub.com-এ যান।


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

এই বইটি পড়ার এবং ব্যবহার করার পরে, যে সাইট থেকে কিনেছেন সেখানে একটি পর্যালোচনা করলে কেমন হয়?


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

নিঃসন্দেহে সাইবার আক্রমণের সংখ্যা বাড়ছে, যা সরকার, সামরিক বাহিনী, সরকারি এবং বেসরকারি ক্ষেত্রকে লক্ষ্য করে।


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

এই সাইবার আক্রমণগুলি মূল্যবান তথ্য বের করার উদ্দেশ্যে ব্যক্তি বা সংস্থাগুলিকে লক্ষ্য করে।


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

কখনও কখনও, এই সাইবার আক্রমণগুলি সাইবার অপরাধ বা রাষ্ট্র-পৃষ্ঠপোষিত গোষ্ঠীর সাথে যুক্ত থাকে বলে অভিযোগ করা হয়, তবে তাদের লক্ষ্য অর্জনের জন্য পৃথক গোষ্ঠীগুলিও এটি করতে পারে।


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

এই সাইবার আক্রমণগুলির বেশিরভাগই তাদের লক্ষ্যকে সংক্রামিত করতে দূষিত সফ্টওয়্যার (যা ম্যালওয়্যার নামেও পরিচিত) ব্যবহার করে।


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

এই ধরনের আক্রমণ সনাক্তকরণ, তদন্ত এবং প্রতিরোধের জন্য দূষিত সফ্টওয়্যার বিশ্লেষণ করার জন্য প্রয়োজনীয় জ্ঞান, দক্ষতা এবং সরঞ্জাম অপরিহার্য।


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

ম্যালওয়্যার হল এমন একটি কোড যা দূষিত কাজ করে; এটি একটি এক্সিকিউটেবল, স্ক্রিপ্ট, কোড বা অন্য কোনো সফ্টওয়্যারের রূপ নিতে পারে।


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

আক্রমণকারীরা সংবেদনশীল তথ্য চুরি করতে, আক্রান্ত সিস্টেমে গুপ্তচরবৃত্তি করতে বা সিস্টেমের নিয়ন্ত্রণ নিতে ম্যালওয়্যার ব্যবহার করে।


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

এটি সাধারণত আপনার সম্মতি ছাড়াই আপনার সিস্টেমে প্রবেশ করে এবং ইমেল, ওয়েব বা ইউএসবি ড্রাইভের মতো বিভিন্ন যোগাযোগের মাধ্যমে সরবরাহ করা যেতে পারে।


কম্পিউটার কার্যক্রম ব্যাহত করা


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

ব্যক্তিগত, ব্যবসায়িক এবং আর্থিক ডেটা সহ সংবেদনশীল তথ্য চুরি করা


Unauthorized access to the victim's system

ভুক্তভোগীর সিস্টেমে অননুমোদিত অ্যাক্সেস


ভুক্তভোগীদের উপর গুপ্তচরবৃত্তি করা


স্প্যাম ইমেল পাঠানো


Engaging in distributed-denial-of-service attacks (DDOS)

ডিস্ট্রিবিউটেড-ডিনায়াল-অফ-সার্ভিস আক্রমণ (DDOS) -এ জড়িত হওয়া


Locking up the files on the computer and holding them for ransom

কম্পিউটারে ফাইল লক করা এবং মুক্তিপণ আদায়ের জন্য সেগুলিকে আটকে রাখা


Drop are set to Bidirectional. Click on OK.

ড্রপ বাইডাইরেকশনাল হিসেবে সেট করা আছে। ওকে ক্লিক করুন।


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

এই মুহূর্তে, লিনাক্স ভার্চুয়াল মেশিন হোস্ট-অনলি মোড ব্যবহার করার জন্য কনফিগার করা হয়েছে এবং সমস্ত পরিষেবাগুলি অনুকরণ করতে INetSim সেট আপ করা হয়েছে।


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

শেষ ধাপ হল একটি স্ন্যাপশট (পরিষ্কার স্ন্যাপশট) নেওয়া এবং আপনার পছন্দের একটি নাম দেওয়া যাতে প্রয়োজন অনুযায়ী আপনি এটিকে পরিষ্কার অবস্থায় ফিরিয়ে আনতে পারেন।


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

VMware ওয়ার্কস্টেশনে একটি স্ন্যাপশট নিতে, 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.

উইন্ডোজ ভার্চুয়াল মেশিন সেট আপ করার আগে, আপনাকে প্রথমে ভার্চুয়ালাইজেশন সফ্টওয়্যারে আপনার পছন্দের একটি উইন্ডোজ অপারেটিং সিস্টেম (উইন্ডোজ ৭, উইন্ডোজ ৮, ইত্যাদি) ইনস্টল করতে হবে।


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.

অবশ্যই পাইথন ২.৭.x (যেমন ২.৭.১৩) ডাউনলোড করুন; এই বইটিতে ব্যবহৃত বেশিরভাগ স্ক্রিপ্ট পাইথন ২.৭ সংস্করণে চালানোর জন্য লেখা হয়েছে এবং পাইথন ৩-এ সঠিকভাবে নাও চলতে পারে।


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

নিশ্চিত করুন যে আপনি পিপ ইনস্টল করার এবং পাইথন.ইএক্সই পাথে যোগ করার বিকল্পটি নির্বাচন করেছেন, যেমন নিম্নলিখিত স্ক্রিনশটে দেখানো হয়েছে।


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

আপনার উইন্ডোজ ভার্চুয়াল মেশিনকে হোস্ট-অনলি নেটওয়ার্ক কনফিগারেশন মোডে চালানোর জন্য কনফিগার করুন।


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

VMware বা VirtualBox-এ এটি করতে, নেটওয়ার্ক সেটিংস আনুন এবং হোস্ট-অনলি মোড নির্বাচন করুন; সেটিংস সংরক্ষণ করুন এবং পুনরায় চালু করুন।


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

উইন্ডোজ ভার্চুয়াল মেশিনের আইপি ঠিকানা ১৯২.১৬৮.১.x হিসেবে কনফিগার করুন (১৯২.১৬৮.১.১০০ বাদে যেকোনো আইপি ঠিকানা বেছে নিন কারণ লিনাক্স ভার্চুয়াল মেশিন সেই আইপি ব্যবহার করার জন্য সেট করা আছে) এবং আপনার ডিফল্ট গেটওয়ে এবং ডিএনএস সার্ভারকে লিনাক্স ভার্চুয়াল মেশিনের আইপি ঠিকানায় সেট আপ করুন (অর্থাৎ, ১৯২.১৬৮.১.১০০)।


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

লিনাক্স ভার্চুয়াল মেশিন এবং উইন্ডো ভার্চুয়াল মেশিন উভয়কেই চালু করুন এবং নিশ্চিত করুন যে তারা একে অপরের সাথে যোগাযোগ করতে পারে।


You can check for the connectivity by running the ping command, as shown in this screenshot:

আপনি এই স্ক্রিনশটে দেখানো হিসাবে পিং কমান্ডটি চালিয়ে সংযোগ পরীক্ষা করতে পারেন:


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

আপনার উইন্ডোজ ভার্চুয়াল মেশিনে উইন্ডোজ ডিফেন্ডার পরিষেবাটি নিষ্ক্রিয় করতে হবে কারণ এটি ম্যালওয়্যার নমুনা চালানোর সময় হস্তক্ষেপ করতে পারে।


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

এটি করতে, রান মেনু খুলতে উইন্ডোজ কী + R টিপুন, gpedit.msc লিখুন এবং লোকাল গ্রুপ পলিসি এডিটর চালু করতে এন্টার চাপুন।


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

একটি পরিষ্কার স্ন্যাপশট নিন যাতে আপনি প্রতিটি বিশ্লেষণের পরে মূল/পরিষ্কার অবস্থায় ফিরে যেতে পারেন।


At this point, your lab environment should be ready.

এই মুহূর্তে, আপনার ল্যাব পরিবেশ প্রস্তুত হওয়া উচিত।


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

এই বই জুড়ে, আমি বিভিন্ন ম্যালওয়্যার বিশ্লেষণ সরঞ্জাম নিয়ে আলোচনা করব; আপনি যদি সেই সরঞ্জামগুলি ব্যবহার করতে চান তবে আপনি সেগুলিকে ভার্চুয়াল মেশিনে পরিষ্কার স্ন্যাপশটে কপি করতে পারেন।


The code will execute after the 'else' block.

'else' ব্লকের পরে কোডটি কার্যকর হবে।


Assembly language is used to translate the C program.

সি প্রোগ্রাম অনুবাদ করতে অ্যাসেম্বলি ভাষা ব্যবহার করা হয়।


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

যদি x, 0 এর সমান না হয় তবে শর্তসাপেক্ষ জাম্প নেওয়া হবে।


Before the 'else' block, there is an unconditional jump to 'end'.

'else' ব্লকের আগে, 'end'-এ একটি শর্তহীন জাম্প আছে।


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

যদি x, 0 এর সমান হয়, তবে 'else' ব্লকটি এড়িয়ে যাওয়া হয়।


The code contains 'if-ElseIf-Else' statements.

কোডটিতে 'if-ElseIf-Else' স্টেটমেন্ট রয়েছে।


এখানে দুটি শর্তসাপেক্ষ জাম্প পয়েন্ট আছে।


If x is not equal to 0, it will jump to the 'else_if' block.

যদি x, 0 এর সমান না হয়, তবে এটি 'else_if' ব্লকে ঝাঁপ দেবে।


The unconditional jumps skip the 'else' statement.

শর্তহীন জাম্পগুলি 'else' স্টেটমেন্টটি এড়িয়ে যায়।


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

আসুন কোডটিকে তার উচ্চ-স্তরের সমতুল্যে অনুবাদ করি।


আমাদের শর্তটি বিপরীত করতে হবে।


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

যখন x, 0 এর সমান হবে, তখন জাম্প নেওয়া হবে না।


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

লুপের দুটি সবচেয়ে সাধারণ প্রকার হল 'for' এবং 'while'।


The initialization statement is executed only once.

ইনস্টলমেন্ট স্টেটমেন্টটি শুধুমাত্র একবার কার্যকর করা হয়।


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

উভয় ক্ষেত্রেই, যখন i, 5 এর চেয়ে বড় বা সমান হবে, তখন একটি জাম্প নেওয়া হবে।


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

স্ট্যাকটি লাস্ট-ইন-ফার্স্ট-আউট (LIFO) কাঠামোতে সংগঠিত।


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

পুশ নির্দেশাবলী স্ট্যাকের উপরে একটি 4-বাইটের মান রাখে।


The pop instruction pops a 4-byte value from the top of the stack.

পপ নির্দেশাবলী স্ট্যাকের শীর্ষ থেকে একটি 4-বাইটের মান সরিয়ে দেয়।


The parameters that a function accepts are pushed onto the stack.

একটি ফাংশন যে প্যারামিটারগুলি গ্রহণ করে তা স্ট্যাকের উপরে রাখা হয়।


The return value is placed in the eax register.

ফেরত মানটি eax রেজিস্টারে রাখা হয়।


To reduce noise, you can use the filtering features which hides unwanted entries.

গোলমাল কমাতে, আপনি ফিল্টারিং বৈশিষ্ট্যগুলি ব্যবহার করতে পারেন যা অবাঞ্ছিত এন্ট্রিগুলি লুকিয়ে রাখে।


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

এই বৈশিষ্ট্যটি অ্যাক্সেস করতে, ফিল্টার মেনু নির্বাচন করুন এবং তারপরে ফিল্টারে ক্লিক করুন (অথবা Ctrl + L চাপুন)।


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

নোরিবেন একটি পাইথন স্ক্রিপ্ট যা প্রসেস মনিটরের সাথে একত্রে কাজ করে।


The advantage of using Noriben is that it comes with pre-defined filters.

নোরিবেন ব্যবহারের সুবিধা হল এটি পূর্ব-নির্ধারিত ফিল্টারগুলির সাথে আসে।


Download it to your Windows VM, extract it to a folder, and copy Process Monitor.

আপনার উইন্ডোজ ভিএম-এ এটি ডাউনলোড করুন, একটি ফোল্ডারে এটি বের করুন এবং প্রসেস মনিটর অনুলিপি করুন।


Once you are done with the monitoring, you can stop Noriben by pressing Ctrl + C.

একবার আপনার পর্যবেক্ষণ শেষ হয়ে গেলে, আপনি Ctrl + C চেপে Noriben বন্ধ করতে পারেন।


The text file contains events segregated based on the categories.

টেক্সট ফাইলটিতে বিভাগগুলির উপর ভিত্তি করে পৃথক করা ইভেন্টগুলি রয়েছে।


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

CSV ফাইলটিতে সময়রেখা অনুসারে সাজানো সমস্ত ইভেন্ট রয়েছে।


If you are interested in the summary of events based on the category then you can look at the text file.

আপনি যদি বিভাগের উপর ভিত্তি করে ইভেন্টগুলির সারসংক্ষেপে আগ্রহী হন তবে আপনি টেক্সট ফাইলটি দেখতে পারেন।


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

ওয়্যারশার্ক একটি প্যাকেট স্নিফার যা আপনাকে নেটওয়ার্ক ট্র্যাফিক ক্যাপচার করতে দেয়।


To invoke Wireshark on Linux, run the following command: $ sudo wireshark

লিনাক্সে ওয়্যারশার্ক চালু করতে, নিম্নলিখিত কমান্ডটি চালান: $ sudo wireshark


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

বেশিরভাগ ম্যালওয়্যার, যখন কার্যকর করা হয়, ইন্টারনেটে পৌঁছায়।


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

INetSim হল স্ট্যান্ডার্ড ইন্টারনেট পরিষেবাগুলি অনুকরণ করার জন্য একটি বিনামূল্যের লিনাক্স-ভিত্তিক সফ্টওয়্যার স্যুট।


Once INetSim is launched, it simulates various services.

একবার INetSim চালু হলে, এটি বিভিন্ন পরিষেবা অনুকরণ করে।


Apart from simulating services, INetSim can log communications.

পরিষেবাগুলি অনুকরণ করা ছাড়াও, INetSim যোগাযোগগুলি লগ করতে পারে।


For example, if malware requests an executable (.exe) file from the C2 server, INetSim can return a dummy executable file to the malware.

উদাহরণস্বরূপ, যদি ম্যালওয়্যার C2 সার্ভার থেকে একটি এক্সিকিউটেবল (.exe) ফাইলের অনুরোধ করে, তাহলে INetSim ম্যালওয়্যারের কাছে একটি ডামি এক্সিকিউটেবল ফাইল ফেরত দিতে পারে।


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

ডায়নামিক বিশ্লেষণের সময় (আচরণগত বিশ্লেষণ), আপনি পদক্ষেপগুলির একটি ক্রম অনুসরণ করবেন।


Reverting to the clean snapshot: This includes reverting your virtual machines to a clean state.

পরিষ্কার স্ন্যাপশটে প্রত্যাবর্তন: এর মধ্যে আপনার ভার্চুয়াল মেশিনগুলিকে একটি পরিষ্কার অবস্থায় ফিরিয়ে আনা অন্তর্ভুক্ত।


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

এই ধাপে, আপনি ম্যালওয়্যার নমুনাটি কার্যকর করার আগে পর্যবেক্ষণ সরঞ্জামগুলি চালাবেন।


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

ডায়নামিক বিশ্লেষণ সরঞ্জাম এবং ডায়নামিক বিশ্লেষণে জড়িত পদক্ষেপগুলি সম্পর্কে আপনার ধারণা হয়ে গেলে, এই সরঞ্জামগুলি একসাথে ব্যবহার করা যেতে পারে।


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

0x403000 মেমরি ঠিকানায় 100 মানটি সংরক্ষিত আছে।


Assembly language uses addresses to access values in memory.

অ্যাসেম্বলি ভাষা মেমরিতে মান অ্যাক্সেস করতে ঠিকানা ব্যবহার করে।


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

`mov eax, [0x403000]` নির্দেশ মেমরি থেকে মানটি eax রেজিস্টারে সরিয়ে নেয়।


Square brackets in assembly indicate that you want the value at the memory location.

অ্যাসেম্বলিতে বর্গাকার বন্ধনী নির্দেশ করে যে আপনি মেমরি লোকেশনে থাকা মানটি পেতে চান।


During reverse engineering, you'll often encounter instructions like `mov eax, [ebx]`.

রিভার্স ইঞ্জিনিয়ারিংয়ের সময়, আপনি প্রায়শই `mov eax, [ebx]` এর মতো নির্দেশাবলী দেখতে পাবেন।


The `lea` instruction loads the effective address, not the value itself.

`lea` নির্দেশ কার্যকর ঠিকানা লোড করে, মানটি নয়।


The instruction `lea ebx, [0x403000]` loads the address 0x403000 into the ebx register.

`lea ebx, [0x403000]` নির্দেশ 0x403000 ঠিকানাটি ebx রেজিস্টারে লোড করে।


The `dword ptr` specifies a 4-byte value.

`dword ptr` একটি 4-বাইটের মান নির্দিষ্ট করে।


You can move values from registers to memory by swapping operands.

আপনি অপারেন্ড অদলবদল করে রেজিস্টার থেকে মেমরিতে মান সরিয়ে নিতে পারেন।


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

`mov [0x403000], eax` নির্দেশ eax-এর মান মেমরিতে সরিয়ে নেয়।


The `mov dword ptr [402000], 13498h` instruction moves a 4-byte value to memory.

`mov dword ptr [402000], 13498h` নির্দেশ একটি 4-বাইটের মান মেমরিতে সরিয়ে নেয়।


Disassembly helps understand what a code snippet does.

ডিসঅ্যাসেম্বলি একটি কোড স্নিপেট কী করে তা বুঝতে সাহায্য করে।


The disassembled code can be translated back to pseudocode.

ডিসঅ্যাসেম্বল করা কোডটিকে আবার একটি সিউডোকোডে অনুবাদ করা যেতে পারে।


In C, a variable is a symbolic name for a memory address.

C-তে, একটি ভেরিয়েবল হল একটি মেমরি ঠিকানার প্রতীকী নাম।


Registers are used by the CPU for temporary storage.

রেজিস্টারগুলি CPU দ্বারা অস্থায়ী স্টোরেজের জন্য ব্যবহৃত হয়।


Variables in high-level languages have data types.

উচ্চ-স্তরের ভাষাগুলিতে ভেরিয়েবলের ডেটা প্রকার থাকে।


Arithmetic operations like addition and subtraction are performed in assembly.

অ্যাসেম্বলিতে যোগ এবং বিয়োগের মতো গাণিতিক ক্রিয়াকলাপগুলি করা হয়।


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

`add` নির্দেশ সোর্স এবং ডেস্টিনেশন যোগ করে এবং ফলাফল ডেস্টিনেশনে সংরক্ষণ করে।


Multiplication is done using the `mul` instruction.

`mul` নির্দেশ ব্যবহার করে গুণ করা হয়।


The `div` instruction performs division.

`div` নির্দেশ বিভাজন করে।


The DLL entry point function was called, which in turn called DLLMain, containing the malicious code.

ডিএলএল এন্ট্রি পয়েন্ট ফাংশনটিকে কল করা হয়েছিল, যা পরবর্তীতে ডিএলএলমেইনকে ডেকেছিল, যার মধ্যে দূষিত কোড ছিল।


Then rundll32.exe tries to find the address of the export function test.

তারপরে rundll32.exe রপ্তানি ফাংশন পরীক্ষা-এর ঠিকানা খুঁজে বের করার চেষ্টা করে।


Since it cannot find the address of test, the following error was displayed.

যেহেতু এটি পরীক্ষার ঠিকানা খুঁজে পায় না, তাই নিম্নলিখিত ত্রুটিটি প্রদর্শিত হয়েছিল।


Even though the error message was displayed, the DLL was successfully loaded.

ত্রুটি বার্তা প্রদর্শিত হলেও, ডিএলএল সফলভাবে লোড হয়েছিল।


Upon execution, the malware establishes an HTTP connection with the C2 domain.

চালু হওয়ার পরে, ম্যালওয়্যারটি C2 ডোমেনের সাথে একটি HTTP সংযোগ স্থাপন করে।


In this example, we will look at another malicious DLL (obe.dll).

এই উদাহরণে, আমরা আরেকটি দূষিত ডিএলএল (obe.dll) দেখব।


The DLL sample was run with the following command.

নিম্নলিখিত কমান্ডের মাধ্যমে ডিএলএল নমুনাটি চালানো হয়েছিল।


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

যদিও obe.dll rundll32.exe-এর মেমরিতে লোড হয়েছিল, এটি কোনও আচরণ ট্রিগার করেনি।


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

এর কারণ হল ডিএলএল-এর এন্ট্রি পয়েন্ট ফাংশন কোনো কার্যকারিতা প্রয়োগ করে না।


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

অন্যদিকে, নীচে দেখানো ডিএলএলরেজিস্টারসার্ভার ফাংশন সহ নমুনাটি চালালে C2 সার্ভারে একটি HTTPS যোগাযোগ শুরু হয়।


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

আপনি একটি স্ক্রিপ্ট লিখতে পারেন একটি DLL-এ সমস্ত রপ্তানি করা ফাংশন নির্ধারণ করতে এবং সেগুলিকে ক্রমানুসারে কল করতে।


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

এই কৌশলটি প্রতিটি রপ্তানি করা ফাংশনের কার্যকারিতা বুঝতে সাহায্য করতে পারে।


The DLL used in this example was delivered via powerpoint.

এই উদাহরণে ব্যবহৃত ডিএলএল পাওয়ারপয়েন্টের মাধ্যমে সরবরাহ করা হয়েছিল।


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

ডিএলএল (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 দিয়ে একটি ডিএলএল চালু করা ভালো কাজ করবে।


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

এই ধরনের ক্ষেত্রে, আচরণ ট্রিগার করার জন্য আপনাকে ডিএলএলটিকে নির্দিষ্ট প্রক্রিয়ায় ইনজেক্ট করতে হবে।


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

ম্যালওয়্যারটি C:\ ড্রাইভে একটি ফোল্ডার (resycled) এবং একটি ফাইল autorun.inf তৈরি করেছে।


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

প্রধান ফাংশনটি পরীক্ষা ফাংশনকে ডেকেছিল এবং প্যারামিটারগুলিকে স্ট্যাকের উপর ঠেলে দিয়ে পরীক্ষা ফাংশনে পাস করেছিল।


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

প্রধান ফাংশনটি কলার (বা কলিং ফাংশন) হিসাবে পরিচিত এবং পরীক্ষাটি ক্যালি (বা কলড ফাংশন)।


The calling convention dictates how the parameters should be passed and who (caller or the callee) is responsible for removing them from the stack.

কলিং কনভেনশন নির্দেশ করে কিভাবে প্যারামিটারগুলি পাস করা উচিত এবং স্ট্যাক থেকে সেগুলি সরানোর জন্য কে (কলার বা ক্যালি) দায়ী।


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

বেশিরভাগ সংকলিত সি প্রোগ্রাম সাধারণত cdecl কলিং কনভেনশন অনুসরণ করে।


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

cdecl কনভেনশনে, কলার স্ট্যাকের উপর ডান থেকে বাম দিকে প্যারামিটারগুলি ঠেলে দেয় এবং কলার নিজেই স্ট্যাক পরিষ্কার করে।


There are other calling conventions such as stdcall and fastcall.

এছাড়াও stdcall এবং fastcall-এর মতো অন্যান্য কলিং কনভেনশন রয়েছে।


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

Microsoft Windows DLL ফাইল দ্বারা রপ্তানি করা ফাংশনগুলির (API) জন্য stdcall কনভেনশন ব্যবহার করে।


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

fastcall কলিং কনভেনশনে, প্রথম কয়েকটি প্যারামিটার রেজিস্টারে রেখে একটি ফাংশনে পাস করা হয়।


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

একটি অ্যারে একই ডেটা টাইপ নিয়ে গঠিত একটি তালিকা।


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

অ্যারে উপাদানগুলি মেমরির সংলগ্ন স্থানগুলিতে সংরক্ষণ করা হয়, যা অ্যারে উপাদানগুলিতে অ্যাক্সেস করা সহজ করে তোলে।


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

অ্যারের নাম nums হল একটি পয়েন্টার ধ্রুবক যা অ্যারের প্রথম উপাদানের দিকে নির্দেশ করে।


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

একটি উচ্চ-স্তরের ভাষায়, অ্যারের উপাদানগুলি অ্যাক্সেস করতে, আপনি সূচকের সাথে অ্যারের নাম ব্যবহার করেন।


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

উদাহরণস্বরূপ, আপনি nums[0] ব্যবহার করে প্রথম উপাদান, nums[1] ব্যবহার করে দ্বিতীয় উপাদান এবং আরও অনেক কিছু অ্যাক্সেস করতে পারেন।


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

অ্যাসেম্বলি ভাষায়, অ্যারের যেকোনো উপাদানের ঠিকানা তিনটি জিনিস ব্যবহার করে গণনা করা হয়: অ্যারের বেস ঠিকানা, উপাদানের সূচক, অ্যারের প্রতিটি উপাদানের আকার


একটি স্ট্রিং হল অক্ষরের একটি অ্যারে।


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

আপনি যখন একটি স্ট্রিং সংজ্ঞায়িত করেন, তখন প্রতিটি স্ট্রিংয়ের শেষে একটি নাল টার্মিনেটর (স্ট্রিং টার্মিনেটর) যোগ করা হয়।


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

স্ট্রিং নাম str হল একটি পয়েন্টার ভেরিয়েবল যা স্ট্রিংয়ের প্রথম অক্ষরের দিকে নির্দেশ করে।


The x86 family of processors provides string instructions, which operate on strings.

x86 পরিবারের প্রসেসর স্ট্রিং নির্দেশাবলী সরবরাহ করে, যা স্ট্রিংগুলিতে কাজ করে।


The movsx instructions are used to move a sequence of bytes from one memory location to another.

movsx নির্দেশাবলী এক মেমরি স্থান থেকে অন্য স্থানে বাইটের একটি ক্রম সরানোর জন্য ব্যবহৃত হয়।


The rep instruction depends on the ecx register, and it repeats the string instruction the number of times specified by the ecx register.

rep নির্দেশাবলী ecx রেজিস্টারের উপর নির্ভর করে এবং এটি ecx রেজিস্টার দ্বারা নির্দিষ্ট সংখ্যক বার স্ট্রিং নির্দেশাবলী পুনরাবৃত্তি করে।


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

সি কোডের ডিসঅ্যাসেম্বলি ৬৪-বিট প্রসেসরের জন্য করা হয়েছে।


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

প্রথম নির্দেশটি স্ট্যাকের উপর ৫৬ বাইট জায়গা বরাদ্দ করে।


The fifth and sixth parameters are stored on the stack.

পঞ্চম এবং ষষ্ঠ প্যারামিটার স্ট্যাকের উপর সংরক্ষণ করা হয়।


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

মেমরি ঠিকানাটি একটি স্থানীয় ভেরিয়েবল নাকি একটি প্যারামিটার, তা নির্ধারণ করা কঠিন।


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

ফর্ম্যাট স্ট্রিং printf ফাংশনে কতগুলি প্যারামিটার পাঠানো হয়েছে তা নির্ধারণ করতে সাহায্য করে।


Intel 64 (x64) and IA-32 (x86) architectures consist of many instructions.

ইন্টেল ৬৪ (x64) এবং IA-32 (x86) আর্কিটেকচার অনেক নির্দেশাবলী নিয়ে গঠিত।


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

৬৪-বিট উইন্ডোজ অপারেটিং সিস্টেম একটি ৩২-বিট এক্সিকিউটেবল চালাতে পারে।


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

WOW64 ৬৪-বিট উইন্ডোজে ৩২-বিট বাইনারিগুলির কার্যকর করার অনুমতি দেয়।


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

৩২-বিট অ্যাপ্লিকেশনগুলি ৬৪-বিট উইন্ডোজে ভিন্নভাবে আচরণ করতে পারে।


If you find malware accessing the system32 directory, it is really accessing the syswow64 directory.

যদি আপনি ম্যালওয়্যারটিকে system32 ডিরেক্টরি অ্যাক্সেস করতে দেখেন তবে এটি আসলে syswow64 ডিরেক্টরি অ্যাক্সেস করছে।


It is essential to understand this difference to avoid confusion during analysis.

বিশ্লেষণের সময় বিভ্রান্তি এড়াতে এই পার্থক্যটি বোঝা অপরিহার্য।


Code analysis tools can be classified based on their functionalities.

কোড বিশ্লেষণ সরঞ্জামগুলি তাদের কার্যকারিতার উপর ভিত্তি করে শ্রেণীবদ্ধ করা যেতে পারে।


A disassembler translates machine code back to assembly code.

একটি ডিসঅ্যাসেম্বলার মেশিন কোডকে অ্যাসেম্বলি কোডে অনুবাদ করে।


A debugger allows you to execute the compiled binary in a controlled manner.

একটি ডিবাগগার আপনাকে একটি নিয়ন্ত্রিত পদ্ধতিতে সংকলিত বাইনারি কার্যকর করতে দেয়।


Decompilers can greatly assist you with the reverse engineering process.

ডিকম্পাইলারগুলি আপনাকে রিভার্স ইঞ্জিনিয়ারিং প্রক্রিয়ায় ব্যাপকভাবে সহায়তা করতে পারে।


IDA Pro is a popular commercial disassembler/debugger.

IDA Pro একটি জনপ্রিয় বাণিজ্যিক ডিসঅ্যাসেম্বলার/ডিবাগগার।


IDA বিভিন্ন প্ল্যাটফর্মে চলতে পারে।


The demo version has certain limitations.

ডেমো সংস্করণে কিছু সীমাবদ্ধতা রয়েছে।


The commercial version of IDA does not lack any functionality.

IDA-এর বাণিজ্যিক সংস্করণে কোনো কার্যকারিতার অভাব নেই।


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

আপনি কিভাবে স্ট্যাটিক কোড বিশ্লেষণ করতে IDA ব্যবহার করবেন তা শিখবেন।


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.

যখন একটি এক্সিকিউটেবল আইডিএ-তে লোড করা হয়, তখন এটি পাঁচটি ফাইল নিয়ে গঠিত একটি ডাটাবেস তৈরি করে।


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.

আপনি আইডিএ বন্ধ করে ডাটাবেস সংরক্ষণ করতে পারেন।


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

আসুন আরেকটি সাধারণ প্রোগ্রাম দেখি এবং আইডিএ-এর আরও কয়েকটি বৈশিষ্ট্য অনুসন্ধান করি।


The program translates to the following disassembly listing.

প্রোগ্রামটি নিম্নলিখিত ডিসঅ্যাসেম্বলি তালিকায় অনুবাদ করে।


আইডিএ তিনটি স্থানীয় ভেরিয়েবল সনাক্ত করেছে।


IDA also identified the global variables and assigned names.

আইডিএ গ্লোবাল ভেরিয়েবলগুলিকেও চিহ্নিত করেছে এবং নাম দিয়েছে।


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

আইডিএ অফসেট কীওয়ার্ড ব্যবহার করে নির্দেশ করে যে ভেরিয়েবলের ঠিকানা ব্যবহার করা হয়েছে।


You can rename these addresses to more meaningful names using the rename option.

আপনি রিনেম অপশন ব্যবহার করে এই ঠিকানাগুলির আরও অর্থপূর্ণ নাম দিতে পারেন।


IDA gives you the ability to reformat constant values.

আইডিএ আপনাকে ধ্রুবক মানগুলি পুনরায় বিন্যাসিত করার ক্ষমতা দেয়।


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

আইডিএ-এর আরেকটি দুর্দান্ত বৈশিষ্ট্য হল এটি একটি প্রোগ্রামের মধ্যে যেকোনো জায়গায় নেভিগেট করা অনেক সহজ করে তোলে।


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

যখন একটি প্রোগ্রাম ডিসঅ্যাসেম্বল করা হয়, তখন আইডিএ প্রোগ্রামের প্রতিটি স্থানকে লেবেল করে।


Cross-references link addresses together.

ক্রস-রেফারেন্স ঠিকানাগুলিকে একসাথে লিঙ্ক করে।


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

একটি ডেটা ক্রস-রেফারেন্স নির্দিষ্ট করে যে কীভাবে একটি বাইনারির মধ্যে ডেটা অ্যাক্সেস করা হয়।


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

একটি কোড ক্রস-রেফারেন্স একটি নির্দেশ থেকে অন্যটিতে কন্ট্রোল ফ্লো নির্দেশ করে।


The graph view is especially useful to get a visual representation of branching/looping statements.

গ্রাফ ভিউ ব্রাঞ্চিং/লুপিং স্টেটমেন্টগুলির একটি ভিজ্যুয়াল উপস্থাপনা পেতে বিশেষভাবে উপযোগী।


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

একটি ডিবাগিং প্রোগ্রাম আপনাকে আরও বিস্তারিতভাবে ক্ষতিকারক কোড পরীক্ষা করার ক্ষমতা দেয়।


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

এটি ম্যালওয়্যারের রানটাইম আচরণের উপর সম্পূর্ণ নিয়ন্ত্রণ প্রদান করে এবং আপনাকে একটি একক নির্দেশ কার্যকর করতে দেয়।


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

এই অধ্যায়ে, আপনি প্রধানত IDA Pro এবং x64dbg দ্বারা প্রদত্ত ডিবাগিং বৈশিষ্ট্যগুলি শিখবেন।


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

আপনি এই ডিবাগারগুলির বৈশিষ্ট্যগুলি এবং কীভাবে একটি প্রোগ্রামের রানটাইম আচরণ পরীক্ষা করতে সেগুলি ব্যবহার করবেন তা শিখবেন।


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

আপনি যখন একটি ম্যালওয়্যার ডিবাগ করছেন, তখন যথাযথ যত্ন নেওয়া দরকার, কারণ আপনি একটি সিস্টেমে ক্ষতিকারক কোড চালাবেন।


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

এটি অত্যন্ত সুপারিশ করা হয় যে আপনি একটি বিচ্ছিন্ন পরিবেশে কোনো ম্যালওয়্যার ডিবাগিং করুন।


Debugging normally begins by selecting the program to debug.

সাধারণত ডিবাগিং শুরু হয় ডিবাগ করার জন্য প্রোগ্রামটি নির্বাচন করার মাধ্যমে।


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

একটি প্রোগ্রাম ডিবাগ করার দুটি উপায় আছে: (ক) একটি চলমান প্রক্রিয়ার সাথে ডিবাগার সংযুক্ত করা, এবং (খ) একটি নতুন প্রক্রিয়া চালু করা।


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

আপনি যখন একটি চলমান প্রক্রিয়ার সাথে ডিবাগার সংযুক্ত করেন, তখন আপনি প্রক্রিয়াটির প্রাথমিক ক্রিয়াকলাপ নিয়ন্ত্রণ বা নিরীক্ষণ করতে পারবেন না।


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

অন্যদিকে, একটি নতুন প্রক্রিয়া চালু করা আপনাকে প্রক্রিয়ার প্রতিটি পদক্ষেপ নিরীক্ষণ বা ডিবাগ করতে দেয়।


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

আপনি যখন ডিবাগার শুরু করেন, তখন মূল বাইনারিটি ডিবাগার চালানো ব্যবহারকারীর বিশেষাধিকারের সাথে কার্যকর করা হবে।


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

একটি প্রোগ্রামের এন্ট্রি পয়েন্ট হল প্রথম নির্দেশের ঠিকানা যা কার্যকর করা হবে।


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

একটি ডিবাগার আপনাকে প্রক্রিয়াটি কার্যকর হওয়ার সময় এর আচরণ নিয়ন্ত্রণ/পরিবর্তন করার ক্ষমতা দেয়।


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

একটি ডিবাগার দ্বারা প্রদত্ত দুটি গুরুত্বপূর্ণ ক্ষমতা হল: (ক) কার্যকর করার ক্ষমতা নিয়ন্ত্রণ করা, এবং (খ) কার্যকরকরণে বাধা দেওয়া (ব্রেকপয়েন্ট ব্যবহার করে)।


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

একটি ডিবাগার ব্যবহার করে, আপনি ডিবাগারে নিয়ন্ত্রণ ফিরিয়ে দেওয়ার আগে এক বা একাধিক নির্দেশ (বা নির্বাচিত ফাংশন) কার্যকর করতে পারেন।


During analysis, you will combine both the debugger's controlled execution and the interruption (breakpoint) feature to monitor a malware's behavior.

বিশ্লেষণের সময়, আপনি একটি ম্যালওয়্যারের আচরণ নিরীক্ষণের জন্য ডিবাগারের নিয়ন্ত্রিত কার্যকরকরণ এবং বাধা (ব্রেকপয়েন্ট) বৈশিষ্ট্য উভয়কে একত্রিত করবেন।


This executes all of the instructions, until a breakpoint is reached or an exception occurs.

এটি সমস্ত নির্দেশ কার্যকর করে, যতক্ষণ না একটি ব্রেকপয়েন্ট পৌঁছায় বা একটি ব্যতিক্রম ঘটে।


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

স্টেপ ইন এবং স্টেপ ওভার ব্যবহার করে, আপনি একটি একক নির্দেশ কার্যকর করতে পারেন।


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

একটি ব্রেকপয়েন্ট হল একটি ডিবাগার বৈশিষ্ট্য যা আপনাকে একটি প্রোগ্রামের মধ্যে একটি নির্দিষ্ট স্থানে প্রোগ্রাম কার্যকরকরণে বাধা দিতে দেয়।


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

আপনি একটি প্রোগ্রামের সর্বত্র একাধিক ব্রেকপয়েন্ট সেট করতে পারেন এবং কোনো ব্রেকপয়েন্টে পৌঁছালে কার্যকরকরণে বাধা দেওয়া হবে।


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


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

এই ক্ষেত্রে, IDA ➊ এ ডিসঅ্যাসেম্বল করা ফাংশনটিকে একটি আমদানি করা ফাংশন হিসাবে সনাক্ত করতে এবং এটিকে CreateFileA নামকরণ করতে সক্ষম হয়েছিল।


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

লাইব্রেরি এবং আমদানি করা ফাংশন সনাক্ত করার জন্য IDA-এর ক্ষমতা অত্যন্ত উপযোগী।


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

IDA প্যারামিটারের নামগুলি মন্তব্য হিসাবে যুক্ত করেছে যা নির্দেশ করে কোন প্যারামিটারটি ঠেলে দেওয়া হচ্ছে।


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

উপরের ডিসঅ্যাসেম্বলি তালিকা থেকে, আপনি বলতে পারেন যে ম্যালওয়্যার হয় একটি ফাইল তৈরি করে বা খোলে।


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

ম্যালওয়্যার লেখকরা প্রায়শই তাদের সোর্স কোডে GENERIC_WRITE-এর মতো প্রতীকী ধ্রুবক ব্যবহার করেন।


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

এই ক্ষেত্রে, উইন্ডোজ এপিআই ডকুমেন্টেশন থেকে, আমরা জানি যে ➌ এ 40000000h মানটি একটি প্রতীকী ধ্রুবক যা GENERIC_WRITE-কে উপস্থাপন করে।


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

একইভাবে, পঞ্চম আর্গুমেন্ট হিসাবে পাস করা 2 মান (➍), প্রতীকী নাম CREATE_ALWAYS-কে উপস্থাপন করে।


After replacing the constants with symbolic names, the disassembly listing is translated to the one shown in the following snippet.

ধ্রুবকগুলিকে প্রতীকী নাম দিয়ে প্রতিস্থাপনের পরে, ডিসঅ্যাসেম্বলি তালিকাটি নিম্নলিখিত অংশে দেখানো হয়েছে।


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

কোডটি এখন আরও পাঠযোগ্য, এবং কোড থেকে, আপনি বলতে পারেন যে ম্যালওয়্যার ফাইল সিস্টেমে psto.exe ফাইল তৈরি করে।


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

উইন্ডোজ দুটি সমান্তরাল এপিআই সেট সমর্থন করে: একটি ANSI স্ট্রিংগুলির জন্য, এবং অন্যটি ইউনিকোড স্ট্রিংগুলির জন্য।


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

আপনি CreateFileW-এর মতো API ব্যবহার করে ম্যালওয়্যারও দেখতে পাবেন; শেষে W উল্লেখ করে যে ফাংশনটি ইনপুট হিসাবে একটি ইউনিকোড স্ট্রিং নেয়।


During malware analysis, when you come across a function such as CreateFileA or CreateFileW, just remove the trailing A and W characters and use CreateFile to search MSDN for the function documentation.

ম্যালওয়্যার বিশ্লেষণের সময়, যখন আপনি CreateFileA বা CreateFileW-এর মতো একটি ফাংশনের সম্মুখীন হন, তখন কেবল শেষ A এবং W অক্ষরগুলি সরিয়ে দিন এবং ফাংশন ডকুমেন্টেশনের জন্য MSDN অনুসন্ধান করতে CreateFile ব্যবহার করুন।


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

আপনি প্রায়শই তাদের নামের শেষে Ex প্রত্যয়যুক্ত ফাংশন নামের সম্মুখীন হবেন, যেমন RegCreateKeyEx।


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

আসুন 32-বিট ম্যালওয়্যারের একটি উদাহরণ দেখি কিভাবে ম্যালওয়্যার একাধিক এপিআই ফাংশন ব্যবহার করে তা বুঝতে।


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

যেহেতু আমরা 32-বিট ম্যালওয়্যার নিয়ে কাজ করছি, তাই RegOpenKeyEx API-এর সমস্ত প্যারামিটার স্ট্যাকের উপর ঠেলে দেওয়া হয়।


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

RegOpenKeyEx কল করে রান রেজিস্ট্রি কী-এর হ্যান্ডেল খোলার পরে, প্রত্যাবর্তিত হ্যান্ডেল (phkResult ভেরিয়েবলে সংরক্ষিত ➌) ecx রেজিস্টারে সরানো হয় এবং তারপর RegSetValueExW-এর প্রথম প্যারামিটার ➍ হিসাবে পাস করা হয়।


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

আপনি আরও দেখেছেন কিভাবে ম্যালওয়্যার একটি বস্তুর (যেমন রেজিস্ট্রি কী) একটি হ্যান্ডেল অর্জন করে এবং তারপর পরবর্তী ক্রিয়াকলাপগুলি সম্পাদন করতে অন্যান্য এপিআই ফাংশনগুলির সাথে সেই হ্যান্ডেলটি শেয়ার করে।


In the next chapter, you will learn how to execute malware in a controlled manner with the help of a debugger.

পরের অধ্যায়ে, আপনি একটি ডিবাগারের সাহায্যে কিভাবে নিয়ন্ত্রিত উপায়ে ম্যালওয়্যার কার্যকর করতে হয় তা শিখবেন।


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

একটি 64-বিট ফাংশনে, স্ট্যাক স্থানটি ফাংশনের শুরুতে বরাদ্দ করা হয়।


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

বরাদ্দকৃত স্ট্যাক স্থানটি স্থানীয় ভেরিয়েবল এবং ফাংশন প্যারামিটারগুলি সংরক্ষণ করতে ব্যবহৃত হয়।


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

পুশ এবং পপ নির্দেশাবলীর অভাবের কারণে ফাংশন দ্বারা গৃহীত প্যারামিটারের সংখ্যা নির্ধারণ করা কঠিন।


Debugging Malicious BinariesChapter 6 [ 209 ]

ত্রুটিপূর্ণ বাইনারিগুলির ডিবাগিং অধ্যায় 6 [ 209 ]


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

ফাংশন প্যারামিটার এবং রিটার্ন ভ্যালুগুলি কোথায় খুঁজে পাবেন সে সম্পর্কে ধারণা পেলে, আপনি API কলে একটি ব্রেকপয়েন্ট সেট করতে পারেন।


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

আসুন একটি 64-বিট ম্যালওয়্যার নমুনার উদাহরণ দেখি যা রেজিস্ট্রি-তে কিছু মান সেট করতে RegSetValueEx কল করে।


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

নিম্নলিখিত স্ক্রিনশটে, RegSetValueEx-এর কল করার আগে ব্রেকপয়েন্টটি ট্রিগার করা হয়েছে।


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

ফাংশনে পাস করা প্যারামিটারগুলি পরীক্ষা করার জন্য আপনাকে রেজিস্টার এবং স্ট্যাক উইন্ডোতে মানগুলি দেখতে হবে।


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

x64dbg-তে, ফাংশন প্যারামিটারগুলির একটি দ্রুত সারসংক্ষেপ পাওয়ার সবচেয়ে সহজ উপায় হল ডিফল্ট উইন্ডোটি দেখা।


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

API ডকুমেন্টেশন থেকে, আপনি বলতে পারেন যে RegSetValueEx API 6টি প্যারামিটার নেয়।


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.

explorer.exe-এর সাথে logoninit.exe যোগ করে, ম্যালওয়্যার নিশ্চিত করে যে Userinit.exe দ্বারা logoninit.exe-ও চালু করা হয়েছে।


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

পরের অংশে, আপনি কীভাবে একটি দূষিত DLL ডিবাগ করবেন তা শিখবেন যাতে এর আচরণ নির্ধারণ করা যায়।


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

একটি DLL ডিবাগ করতে, x64dbg চালু করুন (বিশেষত প্রশাসক সুবিধা সহ) এবং DLL লোড করুন।


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

আপনি DLL লোড করার পরে, ডিবাগার সিস্টেম ব্রেকপয়েন্ট, TLS কলব্যাক, বা DLL এন্ট্রি পয়েন্ট ফাংশনে বিরতি দিতে পারে।


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

আরেকটি কার্যকর পদ্ধতি হল DLL ডিবাগ করার জন্য rundll32.exe ব্যবহার করা।


To do so, first load rundll32.exe from the system32 directory into the debugger.

এটি করতে, প্রথমে সিস্টেম32 ডিরেক্টরি থেকে ডিবাগারে rundll32.exe লোড করুন।


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

তারপরে, ডিবাগ | কমান্ড লাইন পরিবর্তন করুন নির্বাচন করুন এবং rundll32.exe-এর জন্য কমান্ড-লাইন আর্গুমেন্টগুলি নির্দিষ্ট করুন।


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

এটি ডিবাগারকে DLL (rasaut.dll) লোড হওয়ার সময় বিরতি দিতে বলবে।


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

আপনি প্রতিবার রান (F9) করার সময় ব্রেকপয়েন্ট ঠিকানার পাশের মন্তব্যটি দেখে, কার্যকরীকরণ কোথায় বিরতি দিয়েছে তা ট্র্যাক করতে পারেন।


Malware often uses ShellExecute() to run downloaded components.

ম্যালওয়্যার প্রায়শই ডাউনলোড করা উপাদানগুলি চালানোর জন্য ShellExecute() ব্যবহার করে।


Downloaders are frequently part of exploit shellcode.

ডাউনলোডারগুলি প্রায়শই এক্সপ্লয়েট শেলকোডের অংশ হয়।


The URL for the malware binary download can be determined by setting a breakpoint.

একটি ব্রেকপয়েন্ট সেট করে ম্যালওয়্যার বাইনারি ডাউনলোডের URL নির্ধারণ করা যেতে পারে।


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

ডাউনলোড করা এক্সিকিউটেবল সাধারণত %TEMP% ডিরেক্টরিতে সংরক্ষণ করা হয়।


Malware may also use WinExec() or CreateProcess() to execute the downloaded file.

ম্যালওয়্যার ডাউনলোড করা ফাইলটি চালানোর জন্য WinExec() বা CreateProcess() ব্যবহার করতে পারে।


Monitoring tools like Wireshark are helpful during debugging.

ডিবাগিংয়ের সময় Wireshark-এর মতো মনিটরিং সরঞ্জামগুলি সহায়ক।


A dropper embeds malware components within itself.

একটি ড্রপার নিজের মধ্যে ম্যালওয়্যার উপাদানগুলি এম্বেড করে।


Droppers often use FindResource(), LoadResource(), and related APIs.

ড্রপারগুলি প্রায়শই FindResource(), LoadResource() এবং সম্পর্কিত API ব্যবহার করে।


The Resource Hacker tool can show PE files in the resource section.

রিসোর্স হ্যাকার সরঞ্জাম রিসোর্স বিভাগে PE ফাইলগুলি দেখাতে পারে।


Setting breakpoints on API calls like FindResourceA() is useful.

FindResourceA() এর মতো API কলগুলিতে ব্রেকপয়েন্ট সেট করা উপযোগী।


A 64-bit dropper uses similar API functions, but parameters are in registers.

একটি 64-বিট ড্রপার অনুরূপ API ফাংশন ব্যবহার করে, তবে প্যারামিটারগুলি রেজিস্টারে থাকে।


Keyloggers intercept and log keystrokes to steal information.

কীলগারগুলি তথ্য চুরি করতে কীস্ট্রোকগুলি আটক করে এবং লগ করে।


Attackers use keylogging to steal confidential information.

আক্রমণকারীরা গোপনীয় তথ্য চুরি করতে কীলগিং ব্যবহার করে।


GetAsyncKeyState() and SetWindowsHookEx() are common keylogging techniques.

GetAsyncKeyState() এবং SetWindowsHookEx() সাধারণ কীলগিং কৌশল।


GetAsyncKeyState() queries the state of each key.

GetAsyncKeyState() প্রতিটি কী-এর অবস্থা জিজ্ঞাসা করে।


Keyloggers often loop through virtual-key codes.

কীলগারগুলি প্রায়শই ভার্চুয়াল-কী কোডগুলির মাধ্যমে লুপ করে।


Malware can spread via removable media like USB drives.

ম্যালওয়্যার USB ড্রাইভের মতো অপসারণযোগ্য মিডিয়ার মাধ্যমে ছড়াতে পারে।


Attackers exploit Autorun features to infect systems.

আক্রমণকারীরা সিস্টেমগুলিকে সংক্রামিত করতে অটোরান বৈশিষ্ট্যগুলি কাজে লাগায়।


Malware may copy itself to removable media.

ম্যালওয়্যার নিজেকে অপসারণযোগ্য মিডিয়াতে কপি করতে পারে।


Andromeda malware uses tricks to infect USB drives.

অ্যান্ড্রোমিডা ম্যালওয়্যার USB ড্রাইভগুলিকে সংক্রামিত করতে কৌশল ব্যবহার করে।


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

C2 সার্ভার থেকে আসা নির্দেশের ভিত্তিতে ম্যালওয়্যার কর্ম সম্পাদন করে।


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

ম্যালওয়্যারের কার্যাবলী বুঝতে, লেখকের উপস্থাপনাটি দেখুন।


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

ম্যালওয়্যার লেখকরা প্রায়শই তাদের ক্ষতিকারক কার্যকলাপ লুকানোর জন্য পাওয়ারশেল ব্যবহার করে।


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

পাওয়ারশেল হল .NET ফ্রেমওয়ার্কের উপর ভিত্তি করে তৈরি একটি ম্যানেজমেন্ট ইঞ্জিন।


Attackers use PowerShell to execute their malicious code.

আক্রমণকারীরা তাদের ক্ষতিকারক কোড কার্যকর করতে পাওয়ারশেল ব্যবহার করে।


PowerShell provides access to major operating system functions.

পাওয়ারশেল প্রধান অপারেটিং সিস্টেমের কার্যাবলীগুলিতে অ্যাক্সেস সরবরাহ করে।


PowerShell leaves very few traces, making detection difficult.

পাওয়ারশেল খুব কম চিহ্ন রেখে যায়, যা সনাক্তকরণকে কঠিন করে তোলে।


PowerShell is often used post-exploitation to download additional components.

পাওয়ারশেল প্রায়শই অতিরিক্ত উপাদান ডাউনলোড করতে শোষণের পরে ব্যবহৃত হয়।


Malicious code invokes PowerShell to download additional components.

ক্ষতিকারক কোড অতিরিক্ত উপাদান ডাউনলোড করতে পাওয়ারশেলকে আহ্বান করে।


Attackers use PowerShell to spread inside the network.

আক্রমণকারীরা নেটওয়ার্কের ভিতরে ছড়িয়ে পড়ার জন্য পাওয়ারশেল ব্যবহার করে।


PowerShell allows attackers to execute code directly from memory.

পাওয়ারশেল আক্রমণকারীদের সরাসরি মেমরি থেকে কোড কার্যকর করতে দেয়।


This makes forensic analysis much harder.

এটি ফরেনসিক বিশ্লেষণকে আরও কঠিন করে তোলে।


Attackers use obfuscated code to make detection difficult.

আক্রমণকারীরা সনাক্তকরণ কঠিন করতে অস্পষ্ট কোড ব্যবহার করে।


You can execute a PowerShell command using the interactive console.

আপনি ইন্টারেক্টিভ কনসোল ব্যবহার করে একটি পাওয়ারশেল কমান্ড কার্যকর করতে পারেন।


A cmdlet is a compiled command written in a .NET Framework language.

একটি cmdlet হল একটি সংকলিত কমান্ড যা .NET ফ্রেমওয়ার্ক ভাষায় লেখা হয়।


Variables can be used to store values in PowerShell.

পাওয়ারশেলে মানগুলি সংরক্ষণ করতে ভেরিয়েবল ব্যবহার করা যেতে পারে।


PowerShell scripts have a .ps1 extension.

পাওয়ারশেল স্ক্রিপ্টগুলির একটি .ps1 এক্সটেনশন রয়েছে।


The execution policy determines how PowerShell scripts are executed.

এক্সিকিউশন নীতি নির্ধারণ করে কিভাবে পাওয়ারশেল স্ক্রিপ্টগুলি কার্যকর করা হবে।


The execution policy is not a security feature.

এক্সিকিউশন নীতি একটি নিরাপত্তা বৈশিষ্ট্য নয়।


Attackers often use email attachments to deliver malicious code.

আক্রমণকারীরা প্রায়শই ক্ষতিকারক কোড সরবরাহ করতে ইমেল অ্যাটাচমেন্ট ব্যবহার করে।


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.

রাইট এবং রিড/রাইট অপশনগুলির বিরতি আপনাকে মেমরি ব্রেকপয়েন্ট তৈরি করতে দেয়।


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

আপনি যদি জানতে চান কখন আপনার প্রোগ্রাম ডেটার একটি অংশে প্রবেশ করে, তবে এই ব্রেকপয়েন্টটি কার্যকর।


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.

আপনি শর্ত ক্ষেত্রটিতে শর্ত উল্লেখ করে একটি শর্তসাপেক্ষ ব্রেকপয়েন্ট সেট করতে পারেন।


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.

ম্যালওয়্যার একটি ফাইল তৈরি করতে CreateFileW API কল করে।


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

ফাইলের নাম নির্ধারণ করতে, আমরা সেই ঠিকানায় একটি ব্রেকপয়েন্ট সেট করতে পারি যেখানে CreateFileW কল করা হয়েছে।


After the call to CreateFileW, the handle to the file will be returned in the eax register.

CreateFileW কল করার পরে, ফাইলের হ্যান্ডেলটি eax রেজিস্টারে ফিরে আসবে।


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

এই ক্ষেত্রে, ম্যালওয়্যার C:\Users\test\AppData\Local\Temp ডিরেক্টরিতে SHAMple.dat নামে একটি ফাইল তৈরি করছে।


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

ফাইল তৈরি করার পরে, ম্যালওয়্যার WriteFile ফাংশনে প্রথম আর্গুমেন্ট হিসাবে ফাইল হ্যান্ডেলটি পাস করে।


In Chapter 3, Dynamic Analysis, you learned the techniques to execute a DLL to perform dynamic analysis.

অধ্যায় 3, ডায়নামিক অ্যানালাইসিসে, আপনি ডায়নামিক বিশ্লেষণ করতে একটি DLL কার্যকর করার কৌশলগুলি শিখেছেন।


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

আইডিএ ডিবাগার ব্যবহার করে একটি DLL ডিবাগ করতে, প্রথমে আপনাকে সেই এক্সিকিউটেবলটি (যেমন rundll32.exe) নির্দিষ্ট করতে হবে যা DLL লোড করতে ব্যবহৃত হবে।


The malware loads a malicious DLL into the process memory.

ম্যালওয়্যারটি একটি ক্ষতিকারক DLL প্রক্রিয়া মেমরিতে লোড করে।


Adversaries can exploit DLL search order hijacking to gain persistence.

শত্রুরা টিকে থাকার জন্য DLL অনুসন্ধান ক্রম হাইজ্যাকিংয়ের সুযোগ নিতে পারে।


The operating system searches for DLLs in a specific order.

অপারেটিং সিস্টেম একটি নির্দিষ্ট ক্রমে DLL অনুসন্ধান করে।


COM hijacking allows attackers to execute malicious code.

COM হাইজ্যাকিং আক্রমণকারীদেরকে ক্ষতিকারক কোড কার্যকর করতে দেয়।


Services run in the background without a user interface.

পরিষেবাগুলি ব্যবহারকারী ইন্টারফেস ছাড়াই ব্যাকগ্রাউন্ডে চলে।


An attacker can modify an existing service to persist.

একজন আক্রমণকারী টিকে থাকার জন্য বিদ্যমান পরিষেবাটি পরিবর্তন করতে পারে।


Malware can use the sc utility to create and start services.

ম্যালওয়্যার পরিষেবা তৈরি এবং শুরু করতে sc ইউটিলিটি ব্যবহার করতে পারে।


Virtual memory is an illusion created by the operating system.

ভার্চুয়াল মেমরি হল অপারেটিং সিস্টেম দ্বারা তৈরি একটি বিভ্রম।


Each process has its own private memory address space.

প্রতিটি প্রক্রিয়ার নিজস্ব ব্যক্তিগত মেমরি ঠিকানা স্থান রয়েছে।


The kernel memory is shared by all processes.

কার্নেল মেমরি সমস্ত প্রক্রিয়া দ্বারা শেয়ার করা হয়।


Process memory consists of several components.

প্রক্রিয়া মেমরি বেশ কয়েকটি উপাদান নিয়ে গঠিত।


The process executable is loaded into process memory.

প্রক্রিয়াযোগ্য ফাইলটি প্রক্রিয়া মেমরিতে লোড করা হয়।


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

একটি প্রক্রিয়া তৈরি হওয়ার সময় DLL গুলি প্রক্রিয়া মেমরিতে লোড হয়।


The PEB contains information about the executable.

PEB-তে এক্সিকিউটেবল সম্পর্কে তথ্য রয়েছে।


You can examine process memory using Process Hacker.

আপনি প্রসেস হ্যাকার ব্যবহার করে প্রক্রিয়া মেমরি পরীক্ষা করতে পারেন।


Kernel memory contains the operating system and device drivers.

কার্নেল মেমরিতে অপারেটিং সিস্টেম এবং ডিভাইস ড্রাইভার রয়েছে।


The HAL is implemented in the loadable kernel.

HAL লোডযোগ্য কার্নেলে প্রয়োগ করা হয়।


Malware uses API calls to interact with the system.

ম্যালওয়্যার সিস্টেমের সাথে ইন্টারঅ্যাক্ট করার জন্য API কল ব্যবহার করে।


Code injection is a technique used by malware.

কোড ইনজেকশন হল ম্যালওয়্যার দ্বারা ব্যবহৃত একটি কৌশল।


Attackers often target legitimate processes for code injection.

আক্রমণকারীরা প্রায়শই কোড ইনজেকশনের জন্য বৈধ প্রক্রিয়াগুলিকে লক্ষ্য করে।


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, which are callable by user-mode applications.

এক্সিকিউটিভ সিস্টেম পরিষেবা রুটিন নামক ফাংশনগুলি প্রয়োগ করে, যা ব্যবহারকারী-মোড অ্যাপ্লিকেশনগুলির দ্বারা কল করা যেতে পারে।


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.

কার্নেল স্থানে চলমান কোড উচ্চ সুবিধা সহ কার্যকর হয়।


If user-mode applications cannot directly interact with the hardware, then how can malware write to a file?

যদি ব্যবহারকারী-মোড অ্যাপ্লিকেশনগুলি সরাসরি হার্ডওয়্যারের সাথে ইন্টারঅ্যাক্ট করতে না পারে, তবে ম্যালওয়্যার কীভাবে একটি ফাইলে লিখতে পারে?


Most APIs called by user-mode applications, end up calling 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 implemented in DLLs.

উইন্ডোজ অপারেটিং সিস্টেম DLL-এ প্রয়োগ করা 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.

ম্যালওয়্যার প্রক্রিয়াটি লক্ষ্য প্রক্রিয়া সনাক্ত করে এবং এর প্রক্রিয়া আইডি পায়।


শিম কোড এপিআই কলগুলিকে পুনর্নির্দেশ করে।


Applications use the IAT to call Windows APIs.

অ্যাপ্লিকেশনগুলি উইন্ডোজ এপিআই কল করার জন্য IAT ব্যবহার করে।


The shim modifies parameters passed to the API.

শিম এপিআই-তে পাঠানো প্যারামিটারগুলি পরিবর্তন করে।


The shim can redirect or modify API responses.

শিম এপিআই প্রতিক্রিয়াগুলিকে পুনর্নির্দেশ বা পরিবর্তন করতে পারে।


Let's look at an example to understand the functionality of a shim.

একটি শিমের কার্যকারিতা বুঝতে একটি উদাহরণ দেখা যাক।


An application checked the OS version before performing an operation.

একটি অ্যাপ্লিকেশন কোনো কাজ করার আগে অপারেটিং সিস্টেমের সংস্করণ পরীক্ষা করত।


The application used GetVersion() API in kernel32.dll.

অ্যাপ্লিকেশনটি kernel32.dll-এ GetVersion() API ব্যবহার করত।


The application worked only if the OS was Windows XP.

অ্যাপ্লিকেশনটি শুধুমাত্র তখনই কাজ করত যদি অপারেটিং সিস্টেম উইন্ডোজ এক্সপি হত।


Running the application on Windows 7 caused issues.

উইন্ডোজ ৭-এ অ্যাপ্লিকেশনটি চালালে সমস্যা হত।


The WinXPVersionLie shim can be applied to make the application work.

অ্যাপ্লিকেশনটি কাজ করানোর জন্য WinXPVersionLie শিম প্রয়োগ করা যেতে পারে।


The shim engine intercepts and returns a different Windows version.

শিম ইঞ্জিন বাধা দেয় এবং একটি ভিন্ন উইন্ডোজ সংস্করণ প্রদান করে।


The shim engine modifies the IAT and redirects the API call.

শিম ইঞ্জিন IAT পরিবর্তন করে এবং এপিআই কলকে পুনর্নির্দেশ করে।


The WinXPVersionLie shim tricks the application.

WinXPVersionLie শিম অ্যাপ্লিকেশনটিকে ধোঁকা দেয়।


Microsoft provides many shims to alter application behavior.

Microsoft অ্যাপ্লিকেশন আচরণ পরিবর্তন করতে অনেক শিম সরবরাহ করে।


Attackers abuse shims for persistence and code injection.

আক্রমণকারীরা পার্সিস্টেন্স এবং কোড ইনজেকশনের জন্য শিমগুলির অপব্যবহার করে।


একটি শিম তৈরি করার মধ্যে বেশ কয়েকটি পদক্ষেপ জড়িত।


You need administrator rights to create and install a shim.

একটি শিম তৈরি এবং ইনস্টল করার জন্য আপনার প্রশাসক অধিকার প্রয়োজন।


The Application Compatibility Toolkit (ACT) is used for this.

এটির জন্য অ্যাপ্লিকেশন কম্প্যাটিবিলিটি টুলকিট (ACT) ব্যবহার করা হয়।


The InjectDll shim is used to load a DLL into a target process.

একটি টার্গেট প্রক্রিয়ায় একটি DLL লোড করতে InjectDll শিম ব্যবহার করা হয়।


Attackers can create shims to inject malicious code.

আক্রমণকারীরা দূষিত কোড ইনজেক্ট করার জন্য শিম তৈরি করতে পারে।


We have renamed the decryption function to dec_function.

আমরা ডিক্রিপশন ফাংশনটির নাম পরিবর্তন করে dec_function রেখেছি।


It is accessible from the names window in IDA.

এটি IDA-এর নাম উইন্ডো থেকে অ্যাক্সেসযোগ্য।


The previous script iterates through the names window.

পূর্বের স্ক্রিপ্টটি নাম উইন্ডোটির মাধ্যমে পুনরাবৃত্তি করে।


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

যদি dec_function উপস্থিত থাকে, তবে এটি dec_function-এর ঠিকানা নির্ধারণ করে।


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

এটি dec_function-এর ক্রস-রেফারেন্সগুলি নির্ধারণ করতে dec_function-এর ঠিকানা ব্যবহার করে।


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

এটি সেই সমস্ত ঠিকানায় ব্রেকপয়েন্ট সেট করে যেখানে dec_function কল করা হয়।


এটি স্বয়ংক্রিয়ভাবে ডিবাগার শুরু করে।


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

যখন dec_function-এ ব্রেকপয়েন্ট হিট হয়, তখন এটি এনক্রিপ্ট করা স্ট্রিংটি পড়ে।


A point to remember is, for the IDA debugger to start automatically, be sure to select the debugger.

মনে রাখতে হবে, IDA ডিবাগার স্বয়ংক্রিয়ভাবে শুরু করার জন্য, ডিবাগার নির্বাচন করতে ভুলবেন না।


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

এরপরে, এটি ডিক্রিপশন ফাংশনটি কার্যকর করতে ফাংশনটির উপর দিয়ে যায়।


It reads the return value, which contains the address of the decrypted string.

এটি রিটার্ন ভ্যালু পাঠ করে, যাতে ডিক্রিপ্ট করা স্ট্রিংটির ঠিকানা থাকে।


তারপর এটি ডিক্রিপ্ট করা স্ট্রিংটি প্রিন্ট করে।


It repeats the previous steps, to decrypt each string.

এটি প্রতিটি স্ট্রিং ডিক্রিপ্ট করার জন্য পূর্ববর্তী পদক্ষেপগুলি পুনরাবৃত্তি করে।


After running the previous script, the encrypted strings and their corresponding decrypted strings are displayed.

পূর্বের স্ক্রিপ্টটি চালানোর পরে, এনক্রিপ্ট করা স্ট্রিং এবং তাদের সংশ্লিষ্ট ডিক্রিপ্ট করা স্ট্রিংগুলি প্রদর্শিত হয়।


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

আউটপুট থেকে, আপনি দেখতে পারেন যে ম্যালওয়্যার ফাইল নামগুলি ডিক্রিপ্ট করে।


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

ম্যালওয়্যার লেখকরা প্রায়শই এক্সিকিউটেবল কন্টেন্টকে অস্পষ্ট করতে প্যাকার এবং ক্রিপ্টর ব্যবহার করেন।


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

একটি প্যাকার হল এমন একটি প্রোগ্রাম যা একটি সাধারণ এক্সিকিউটেবল নেয়, এর বিষয়বস্তু সংকুচিত করে এবং একটি নতুন অস্পষ্ট এক্সিকিউটেবল তৈরি করে।


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

যখন একটি বাইনারি প্যাক করা হয়, তখন এটি খুব কম তথ্য প্রকাশ করে।


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

একটি প্যাক করা বাইনারি আনপ্যাক করতে, আপনি স্বয়ংক্রিয় সরঞ্জাম ব্যবহার করতে পারেন বা ম্যানুয়ালি করতে পারেন।


প্রথম ধাপ হল OEP সনাক্ত করা।


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 (like AND, OR, and NOT), and it is performed on the corresponding bits of the operands.

XOR হল একটি বিটওয়াইজ অপারেশন (AND, OR, এবং NOT-এর মতো), এবং এটি অপারেন্ডের সংশ্লিষ্ট বিটগুলিতে সম্পাদিত হয়।


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 এনকোডিং অ্যালগরিদম সম্পর্কে ধারণা নিয়ে, আসুন একটি কীলগারের উদাহরণ দেখি।


When this sample is executed, it logs the keystrokes, and it opens a file.

এই নমুনাটি কার্যকর করার সময়, এটি কীস্ট্রোকগুলি লগ করে এবং একটি ফাইল খোলে।


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

তারপরে এটি WriteFile() API ব্যবহার করে ফাইলে লগ করা কীস্ট্রোকগুলি লিখে।


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

লক্ষ্য করুন কিভাবে ম্যালওয়্যার CreateFileA() কল করার পরে এবং WriteFile() কল করার আগে একটি ফাংশন (enc_function হিসাবে পুনঃনামকরণ করা হয়েছে) কল করে।


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

enc_function পরীক্ষা করে দেখা যায় যে ম্যালওয়্যার একক বাইট XOR ব্যবহার করে।


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

একটি একক বাইট XOR-এ, কী-এর দৈর্ঘ্য এক বাইট, তাই শুধুমাত্র 255টি সম্ভাব্য কী থাকতে পারে।


Since there are only 255 keys, you can try all possible keys on the encrypted data.

যেহেতু শুধুমাত্র 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 ব্যবহার করে কারণ এটি ব্রুট-ফোর্স কৌশল থেকে আরও ভাল সুরক্ষা প্রদান করে।


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

XOR এনকোডিং সনাক্ত করতে, IDA-তে বাইনারি লোড করুন এবং XOR নির্দেশনার জন্য অনুসন্ধান করুন।


To replace the first few instructions of a function with a jump, the malware needs to choose which instructions to replace.

একটি ফাংশনের প্রথম কয়েকটি নির্দেশাবলীকে জাম্প দিয়ে প্রতিস্থাপন করতে, ম্যালওয়্যারটিকে কোন নির্দেশাবলী প্রতিস্থাপন করতে হবে তা বেছে নিতে হবে।


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

jmp নির্দেশের জন্য কমপক্ষে 5 বাইট প্রয়োজন, তাই ম্যালওয়্যারটিকে এমন নির্দেশাবলী বেছে নিতে হবে যা 5 বাইট বা তার বেশি জায়গা নেয়।


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

DeleteFileA() তে প্রতিস্থাপিত হওয়ার জন্য তিনটি নির্দেশাবলী অনুলিপি করা হয় এবং তারপরে কিছু ধরণের জাম্প স্টেটমেন্ট দিয়ে প্রতিস্থাপন করা হয়, যা নিয়ন্ত্রণকে দূষিত ফাংশনে স্থানান্তর করে।


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

প্রতিস্থাপিত নির্দেশাবলী, টার্গেট ফাংশনে ফিরে আসা জাম্প স্টেটমেন্ট সহ, ট্রাম্পোলিন হিসাবে পরিচিত।


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

এই কৌশলটি API ফাংশনের শুরুতে অপ্রত্যাশিত জাম্প নির্দেশাবলীর জন্য অনুসন্ধান করে সনাক্ত করা যেতে পারে।


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

jmp নির্দেশের পরিবর্তে, ম্যালওয়্যার নিয়ন্ত্রণ পুনঃনির্দেশিত করতে কল নির্দেশ বা পুশ এবং রেট নির্দেশের সংমিশ্রণ ব্যবহার করতে পারে।


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

Zeus বট বিভিন্ন API ফাংশন হুক করে; তাদের মধ্যে একটি হল ইন্টারনেট এক্সপ্লোরারের (iexplore.exe) HttpSendRequestA()।


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

এই ফাংশনটি হুক করার মাধ্যমে, ম্যালওয়্যার POST পেলোড থেকে প্রমাণপত্রগুলি বের করতে পারে।


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

হুক করার আগে, দূষিত এক্সিকিউটেবল (বিভিন্ন ফাংশন ধারণ করে) ইন্টারনেট এক্সপ্লোরারের ঠিকানা স্থানে ইনজেক্ট করা হয়।


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

এক্সিকিউটেবল ইনজেক্ট করার পরে, প্রোগ্রাম নিয়ন্ত্রণকে ইনজেক্ট করা এক্সিকিউটেবলের মধ্যে থাকা একটি দূষিত ফাংশনে পুনঃনির্দেশিত করতে HttpSendRequestA() হুক করা হয়।


The first three instructions (occupying 5 bytes, highlighted in the preceding screenshot) are replaced to redirect control.

প্রথম তিনটি নির্দেশ (যা 5 বাইট দখল করে, পূর্ববর্তী স্ক্রিনশটে হাইলাইট করা হয়েছে) নিয়ন্ত্রণ পুনঃনির্দেশিত করতে প্রতিস্থাপিত হয়।


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

ইনলাইন হুকিং-এ, আমরা দেখেছি কীভাবে একটি ফাংশনের বাইটের সিরিজকে দূষিত কোডে নিয়ন্ত্রণ পুনঃনির্দেশিত করতে প্যাচ করা হয়।


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

Microsoft তাদের পণ্যগুলিতে দুর্বলতাগুলি ঠিক করতে প্যাচ প্রয়োগ করতে ইন-মেমরি প্যাচিং বৈশিষ্ট্যটি ব্যবহার করে।


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

ম্যালওয়্যার লেখকরা কোড ইনজেক্ট করতে এবং API ফাংশনগুলিকে হুক করতে ইন-মেমরি প্যাচিং ব্যবহার করেছেন।


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

ইনস্টল করা .sdb ফাইলগুলিতে শেলকোড রয়েছে যা সরাসরি টার্গেট প্রক্রিয়ার মেমরিতে প্যাচ করা হবে।


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

শেলকোড কী করছে তা জানতে, আমাদের PATCH_BITS পার্স করতে সক্ষম হতে হবে, যা একটি অ-নথিভুক্ত কাঠামো।


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

অন্য কথায়, এটি RVA 0x0004f0ed-এ নিয়ন্ত্রণ পুনঃনির্দেশ করে।


This technique is interesting, because in this case, the malware does not allocate memory or inject code directly, but relies on Microsoft's shim feature.

এই কৌশলটি আকর্ষণীয়, কারণ এই ক্ষেত্রে, ম্যালওয়্যার মেমরি বরাদ্দ করে না বা সরাসরি কোড ইনজেক্ট করে না, তবে Microsoft-এর শিম বৈশিষ্ট্যের উপর নির্ভর করে।


In this chapter, we looked at the different code injection techniques used by malicious programs.

এই অধ্যায়ে, আমরা দূষিত প্রোগ্রামগুলি দ্বারা ব্যবহৃত বিভিন্ন কোড ইনজেকশন কৌশলগুলি দেখেছি।


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

ম্যালওয়্যার লেখকরা প্রায়শই তথ্য লুকানোর জন্য এবং সনাক্তকরণ ও বিশ্লেষণকে কঠিন করে তুলতে দূষিত বিষয়বস্তু পরিবর্তন করতে বিভিন্ন অবফাসেশন কৌশল ব্যবহার করেন।


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

ভোল্যাটিলিটি শুরু করার সবচেয়ে দ্রুত উপায় হল স্বতন্ত্র এক্সিকিউটেবল ব্যবহার করা।


You can use the /R or /COMPRESS option in DumpIt to create a .zdmp file.

.zdmp ফাইল তৈরি করতে আপনি DumpIt-এ /R বা /COMPRESS বিকল্পটি ব্যবহার করতে পারেন।


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

ভোল্যাটিলিটি হল পাইথনে লেখা একটি ওপেন সোর্স উন্নত মেমরি ফরেনসিক ফ্রেমওয়ার্ক।


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

সাহায্য বিকল্পটি ভোল্যাটিলিটিতে উপলব্ধ বিভিন্ন বিকল্প এবং প্লাগইন প্রদর্শন করে।


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

অধিকাংশ ক্ষেত্রে, আপনি ভার্চুয়াল মেশিন (VM) স্থগিত করে তার মেমরি সংগ্রহ করতে পারেন।


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

ভোল্যাটিলিটি উইন্ডোজ, ম্যাকওএস এবং লিনাক্স সহ বিভিন্ন প্ল্যাটফর্মে চলতে পারে।


The dump file (.zdmp) can then be analyzed with the Comae Stardust enterprise platform.

ডাম্প ফাইল (.zdmp) তারপর Comae Stardust এন্টারপ্রাইজ প্ল্যাটফর্মের সাথে বিশ্লেষণ করা যেতে পারে।


For those applications where the memory cannot be acquired by suspending, then you can use DumpIt inside the guest machine.

যেসব অ্যাপ্লিকেশনের জন্য স্থগিত করে মেমরি সংগ্রহ করা যায় না, সেক্ষেত্রে আপনি গেস্ট মেশিনের ভিতরে DumpIt ব্যবহার করতে পারেন।


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

সংক্রমিত সিস্টেমের মেমরি সংগ্রহ করার পরে, পরবর্তী পদক্ষেপ হল সংগৃহীত মেমরি ইমেজ বিশ্লেষণ করা।


Volatility relies on various plugins to perform tasks, and some of these plugins depend on third-party Python packages.

ভোল্যাটিলিটি বিভিন্ন কাজ সম্পাদনের জন্য বিভিন্ন প্লাগইনের উপর নির্ভর করে এবং এদের কিছু তৃতীয় পক্ষের পাইথন প্যাকেজের উপর নির্ভরশীল।


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

স্বতন্ত্র এক্সিকিউটেবল উইন্ডোজ, ম্যাকওএস এবং লিনাক্স অপারেটিং সিস্টেমের জন্য বিতরণ করা হয়।


You can install these dependencies by reading the documentation.

আপনি ডকুমেন্টেশন পড়ে এই নির্ভরতাগুলি ইনস্টল করতে পারেন।


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

সাহায্য বিকল্প, -h (--help), যা আপনি আগে দেখেছেন, ভোল্যাটিলিটি-র সমস্ত প্লাগইনের ক্ষেত্রে প্রযোজ্য সাহায্য প্রদর্শন করে।


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

ভোল্যাটিলিটিতে বিভিন্ন প্লাগইন রয়েছে যা মেমরি ইমেজ থেকে বিভিন্ন তথ্য বের করতে পারে।


For instance, if you wish to list the running processes from the memory image, you can use a plugin such a pslist.

উদাহরণস্বরূপ, আপনি যদি মেমরি ইমেজ থেকে চলমান প্রক্রিয়াগুলি তালিকাভুক্ত করতে চান তবে আপনি pslist-এর মতো একটি প্লাগইন ব্যবহার করতে পারেন।


Using -f, you specify the path to the memory image file, and --profile tells Volatility which system and architecture the memory image was acquired from.

-f ব্যবহার করে, আপনি মেমরি ইমেজ ফাইলের পথ নির্দিষ্ট করেন এবং --profile ভোল্যাটিলিটিকে বলে যে মেমরি ইমেজটি কোন সিস্টেম এবং আর্কিটেকচার থেকে সংগ্রহ করা হয়েছিল।


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

কখনও কখনও, আপনি ভোল্যাটিলিটিকে কী প্রোফাইল সরবরাহ করবেন তা নাও জানতে পারেন।


প্রশ্ন হল, pslist কিভাবে কাজ করে?


একটি প্রক্রিয়া একটি বস্তু।


The Windows operating system is object-based.

উইন্ডোজ অপারেটিং সিস্টেম অবজেক্ট-ভিত্তিক।


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

একটি প্রক্রিয়া লুকানোর জন্য, আক্রমণকারী ActiveProcessLinks ক্ষেত্রটি পরিবর্তন করে।


The attacker can hide the malicious process from forensic tools.

আক্রমণকারী ফরেনসিক সরঞ্জাম থেকে দূষিত প্রক্রিয়াটি লুকাতে পারে।


The pslist plugin also relies on walking the doubly linked list.

pslist প্লাগইনটিও দ্বিগুণ লিঙ্কযুক্ত তালিকা ধরে হাঁটার উপর নির্ভর করে।


When you compare the output from pslist and psscan, you will notice an additional process.

আপনি যখন pslist এবং psscan থেকে প্রাপ্ত আউটপুট তুলনা করবেন, তখন আপনি একটি অতিরিক্ত প্রক্রিয়া লক্ষ্য করবেন।


The reason psscan detects the hidden process is that it uses a different technique.

pscan যে লুকানো প্রক্রিয়াটি সনাক্ত করে তার কারণ হল এটি একটি ভিন্ন কৌশল ব্যবহার করে।


Every executive object has a structure associated with it.

প্রতিটি নির্বাহী বস্তুর সাথে একটি কাঠামো যুক্ত থাকে।


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

পুলটিকে একটি পেজড পুল এবং একটি নন-পেজড পুলে ভাগ করা হয়েছে।


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

বস্তুগুলি কার্নেলে একটি নন-পেজড পুলে রাখা হয়।


This allocation is tagged by prepending a _POOL_HEADER structure.

এই বরাদ্দটি একটি _POOL_HEADER কাঠামো যুক্ত করে ট্যাগ করা হয়।


The psscan plugin can also detect terminated processes.

psscan প্লাগইনটি সমাপ্ত প্রক্রিয়াগুলিও সনাক্ত করতে পারে।


It can be useful to determine the parent/child relationships.

পিতা/মাতা-সন্তানের সম্পর্ক নির্ধারণ করা সহায়ক হতে পারে।


The pstree plugin displays the parent-child process relationships.

pstree প্লাগইনটি পিতামাতা-সন্তান প্রক্রিয়ার সম্পর্ক প্রদর্শন করে।


By looking at the events, you can assume that the user opened a malicious Excel document.

ঘটনাগুলি দেখে, আপনি ধরে নিতে পারেন যে ব্যবহারকারী একটি দূষিত এক্সেল নথি খুলেছে।


The psxview plugin relies on extracting process information from different sources.

psxview প্লাগইন বিভিন্ন উৎস থেকে প্রক্রিয়া তথ্য আহরণের উপর নির্ভর করে।


It enumerates the process in seven different ways.

এটি সাতটি ভিন্ন উপায়ে প্রক্রিয়াটি গণনা করে।


Each process' information is displayed as a single row.

প্রতিটি প্রক্রিয়ার তথ্য একটি সারিতে প্রদর্শিত হয়।


A False value under a particular column indicates that the process was not found.

একটি নির্দিষ্ট কলামের অধীনে একটি মিথ্যা মান নির্দেশ করে যে প্রক্রিয়াটি পাওয়া যায়নি।


You may want to know which objects the process is accessing.

আপনি সম্ভবত জানতে চাইবেন যে প্রক্রিয়াটি কোন বস্তুগুলি অ্যাক্সেস করছে।


A handle is an indirect reference to an object.

একটি হ্যান্ডেল একটি বস্তুর প্রতি পরোক্ষ উল্লেখ।


The dlllist plugin displays the full path associated with a process.

dlllist প্লাগইন একটি প্রক্রিয়ার সাথে যুক্ত সম্পূর্ণ পথ প্রদর্শন করে।


The explorer.exe file path is displayed on the disk.

explorer.exe ফাইলের সম্পূর্ণ পথটি ডিস্কে প্রদর্শিত হয়।


The memory range is described by the second node.

দ্বিতীয় নোড দ্বারা মেমরি পরিসীমা বর্ণনা করা হয়েছে।


The third node provides information about the process memory range.

তৃতীয় নোডটি প্রক্রিয়া মেমরি পরিসীমা সম্পর্কে তথ্য সরবরাহ করে।


The VAD node starts at address 0x8724d718.

VAD নোড 0x8724d718 ঠিকানা থেকে শুরু হয়।


The protection is PAGE_EXECUTE_WRITECOPY.


The file object is located at 0x8723f8c0.

ফাইল অবজেক্টটি 0x8723f8c0 এ অবস্থিত।


ফাইলটির নাম হল explorer.exe।


VAD নোড 0x8723fb50 থেকে শুরু হয়।


তৃতীয় নোডটি 0x77690000 থেকে শুরু হয়।


ntdll.dll is contained within the process memory range.

ntdll.dll প্রক্রিয়া মেমরি পরিসরের মধ্যে রয়েছে।


To get VAD information, use the .process command.

VAD তথ্য পেতে, .process কমান্ড ব্যবহার করুন।


An executable image is loaded into memory with PAGE_EXECUTE_WRITECOPY protection.

একটি এক্সিকিউটেবল ইমেজ PAGE_EXECUTE_WRITECOPY সুরক্ষা সহ মেমরিতে লোড হয়।


Attackers may inject code to allocate memory with PAGE_EXECUTE_READWRITE protection.

আক্রমণকারীরা PAGE_EXECUTE_READWRITE সুরক্ষা সহ মেমরি বরাদ্দ করতে কোড ইনজেক্ট করতে পারে।


We can look for memory ranges with PAGE_EXECUTE_READWRITE protection to detect code injection.

কোড ইনজেকশন সনাক্ত করতে, আমরা PAGE_EXECUTE_READWRITE সুরক্ষা সহ মেমরি রেঞ্জগুলি দেখতে পারি।


The vadinfo plugin shows suspicious memory protection.

vadinfo প্লাগইন সন্দেহজনক মেমরি সুরক্ষা দেখায়।


It is hard to conclude if the memory regions contain malicious code just from the memory protection.

মেমরি সুরক্ষা থেকে শুধুমাত্র সন্দেহজনক কোড আছে কিনা তা বলা কঠিন।


The db command dumps the content of the memory address.

db কমান্ড মেমরি ঠিকানার বিষয়বস্তু ডাম্প করে।


The presence of the PE file indicates that the executable was injected.

PE ফাইলের উপস্থিতি নির্দেশ করে যে এক্সিকিউটেবল ইনজেক্ট করা হয়েছিল।


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

এই সমস্যাটি কাটিয়ে উঠতে, আমরা ldrmodules নামক অন্য একটি প্লাগইন ব্যবহার করতে পারি।


The ldrmodules plugin compares module information from the three PEB lists with the information from a data structure residing in the kernel memory known as VADs.

ldrmodules প্লাগইনটি তিনটি PEB তালিকা থেকে প্রাপ্ত মডিউল তথ্যের সাথে VADs নামে পরিচিত কার্নেল মেমরিতে থাকা একটি ডেটা স্ট্রাকচারের তথ্য তুলনা করে।


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

মেমরি ম্যানেজার প্রক্রিয়া মেমরিতে সংরক্ষিত (বা খালি) ভার্চুয়াল ঠিকানাগুলির উপর নজর রাখতে VAD ব্যবহার করে।


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 নোডগুলি প্রক্রিয়া মেমরির রেঞ্জ বর্ণনা করবে, যার মধ্যে DLL-এর মতো ম্যাপ করা এক্সিকিউটেবল ইমেজ রয়েছে।


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 প্লাগইনটি TDSSoiqh.dll নামক একটি দূষিত 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.

প্রসেস এক্সিকিউটেবল ডাম্প করার জন্য, আপনাকে এর প্রসেস আইডি বা এর ফিজিক্যাল অফসেট জানতে হবে।


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

-D (--dump-dir) বিকল্পের মাধ্যমে, আপনি সেই ডিরেক্টরির নাম নির্দিষ্ট করেন যেখানে এক্সিকিউটেবল ফাইলগুলি ডাম্প করা হবে।


To dump a process with the physical offset, you can use the -o (--offset) option.

ফিজিক্যাল অফসেট সহ একটি প্রক্রিয়া ডাম্প করতে, আপনি -o (--offset) বিকল্পটি ব্যবহার করতে পারেন।


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

একইভাবে, প্রসেস এক্সিকিউটেবলের মতো, আপনি dlldump প্লাগইন ব্যবহার করে একটি দূষিত DLL ডিস্কে ডাম্প করতে পারেন।


Most malicious programs perform some network activity.

বেশিরভাগ দূষিত প্রোগ্রাম কিছু নেটওয়ার্ক কার্যকলাপ করে।


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

নেটওয়ার্কিং কার্যকলাপ পরিদর্শন করা আপনাকে সংক্রমিত সিস্টেমে ম্যালওয়্যারের নেটওয়ার্ক কার্যক্রম নির্ধারণ করতে সাহায্য করবে।


To determine the active network connections on pre-vista systems, you can use the connections plugin.

প্রি-ভিস্টা সিস্টেমে সক্রিয় নেটওয়ার্ক সংযোগগুলি নির্ধারণ করতে, আপনি সংযোগ প্লাগইন ব্যবহার করতে পারেন।


Another plugin that you can use to list the network connections on pre-vista systems is connscan.

প্রি-ভিস্টা সিস্টেমে নেটওয়ার্ক সংযোগ তালিকাভুক্ত করার জন্য আপনি যে অন্য একটি প্লাগইন ব্যবহার করতে পারেন তা হল connscan।


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

কখনও কখনও, আপনি খোলা সকেট এবং তাদের সংশ্লিষ্ট প্রক্রিয়াগুলি সম্পর্কে তথ্য পেতে চাইতে পারেন।


On Vista and later systems, you can use the netscan plugin to display both the network connections and the sockets.

Vista এবং পরবর্তী সিস্টেমগুলিতে, আপনি নেটওয়ার্ক সংযোগ এবং সকেট উভয়ই প্রদর্শন করতে netscan প্লাগইন ব্যবহার করতে পারেন।


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

ফরেনসিক দৃষ্টিকোণ থেকে, রেজিস্ট্রি ম্যালওয়্যারের প্রেক্ষাপট সম্পর্কে মূল্যবান তথ্য সরবরাহ করতে পারে।


To print the registry key, subkeys, and its values, you can use the printkey plugin.

রেজিস্ট্রি কী, সাবকী এবং এর মানগুলি প্রিন্ট করতে, আপনি printkey প্লাগইন ব্যবহার করতে পারেন।


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.

Zeus বট-এর নিম্নলিখিত উদাহরণে, একটি এক্সিকিউটেবল explorer.exe প্রক্রিয়ার মেমরিতে ইনজেক্ট করা হয়েছে।


The hooked API is then redirected to address 0x2c7ec48 (hook address).

হুক করা API টি তখন 0x2c7ec48 (হুক ঠিকানা) ঠিকানায় পুনঃনির্দেশিত হয়।


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

রুটকিটের মতো একটি দূষিত প্রোগ্রাম কার্নেল মোডে কোড চালানোর জন্য একটি কার্নেল ড্রাইভার লোড করতে পারে।


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

উইন্ডোজ বিভিন্ন সুরক্ষা ব্যবস্থা প্রয়োগ করেছে যা অননুমোদিত কোড কার্যকর করা প্রতিরোধ করার জন্য ডিজাইন করা হয়েছে।


Another security mechanism is Kernel Patch Protection (KPP), also known as PatchGuard.

আরেকটি সুরক্ষা ব্যবস্থা হল কার্নেল প্যাচ সুরক্ষা (KPP), যা PatchGuard নামেও পরিচিত।


একটি পদ্ধতি হল একটি বুটকিট ইনস্টল করা।


We will start by listing the kernel modules.

আমরা কার্নেল মডিউলগুলি তালিকাভুক্ত করার মাধ্যমে শুরু করব।


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

কার্নেল মডিউল তালিকাভুক্ত করা সবসময় আপনাকে দূষিত কার্নেল ড্রাইভার সনাক্ত করতে সাহায্য নাও করতে পারে।


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

Laqma রুটকিটের নিম্নলিখিত উদাহরণে, মডিউল তালিকাটি দূষিত ড্রাইভার দেখায়।


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

যেহেতু দ্বিগুণ লিঙ্কযুক্ত তালিকাটি DKOM আক্রমণের জন্য সংবেদনশীল।


The modscan plugin relies on the pool tag scanning approach.

modscan প্লাগইন পুল ট্যাগ স্ক্যানিং পদ্ধতির উপর নির্ভর করে।


In other words, it scans the physical address space looking for the pool tag.

অন্য কথায়, এটি পুল ট্যাগ খুঁজছে এমন শারীরিক ঠিকানা স্থান স্ক্যান করে।


When you run the modules plugin against the memory image infected with the Necurs rootkit, it does not display that malicious driver.

যখন আপনি Necurs রুটকিট দ্বারা আক্রান্ত মেমরি চিত্রের বিরুদ্ধে মডিউল প্লাগইন চালান, তখন এটি সেই দূষিত ড্রাইভারটি প্রদর্শন করে না।


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

driverscan প্লাগইন DRIVER_OBJECT নামক একটি কাঠামো থেকে কার্নেল মডিউল সম্পর্কিত তথ্য পায়।


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

আপনি দূষিত কার্নেল মডিউল সনাক্ত করার পরে, আপনি moddump প্লাগইন ব্যবহার করে মেমরি থেকে ডিস্কে এটি ডাম্প করতে পারেন।


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

এই বিভাগে, আপনি ব্যবহারকারী-মোড এবং কার্নেল-মোড উপাদানগুলির মধ্যে পারস্পরিক ক্রিয়া বুঝতে পারবেন।


Let's try to understand what happens when a user-mode application performs input/output (I/O) operations.

আসুন বোঝার চেষ্টা করি যখন একটি ব্যবহারকারী-মোড অ্যাপ্লিকেশন ইনপুট/আউটপুট (I/O) অপারেশন করে তখন কী ঘটে।