harsh_final report
harsh_final report
On
Bachelor of Technology
In
Computer Science & Engineering/Information Technology
ROHTAK – 124001
May-2024
1. Introduction
In our increasingly digital world, data serves as the lifeblood of individuals, businesses, and
organizations. It encompasses everything from personal photos and documents to critical
financial records and scientific research. Losing this data can be devastating, leading to
financial losses, productivity disruptions, and emotional distress.
Project Lost Data Retrieval aims to be a comprehensive solution for recovering lost data in
various scenarios. This detailed introduction will explore the project's purpose, the different
types of data loss it addresses, the various retrieval techniques employed, and the benefits it
offers.
Data loss can occur due to a variety of reasons, some accidental and others malicious. Here's
a breakdown of the most common culprits:
• Hardware failure: Hard drive crashes, solid-state drive (SSD) failures, and other
storage device malfunctions can lead to complete data inaccessibility.
• Accidental deletion: Human error like accidentally deleting files or formatting a
storage device can cause data loss.
• Software malfunction: Software crashes, bugs, or power outages during data writing
can corrupt files or entire storage systems.
• Malware attacks: Viruses, ransomware, and other malicious software can encrypt,
corrupt, or permanently delete data.
• Natural disasters: Fires, floods, and other natural disasters can physically damage
storage devices, leading to data loss.
These events can have significant consequences. Businesses might lose financial records,
customer information, or intellectual property. Individuals might lose irreplaceable photos,
videos, personal documents, or work files. Project Lost Data Retrieval seeks to provide a
lifeline in these situations, offering a chance to recover lost data and minimize the impact of
these events.
Types of Data Loss Addressed
Project Lost Data Retrieval is designed to tackle a wide range of data loss scenarios. Here's a
closer look at the types of data it can potentially recover:
It's important to note that the success rate of data recovery depends on several factors,
including the cause of data loss, the type of storage device, and the time elapsed since the loss
occurred.
Project Lost Data Retrieval will utilize a combination of different techniques to maximize the
chances of successful recovery. These techniques can be broadly categorized as follows:
• Data carving: This technique analyzes the raw data on a storage device to identify
recognizable file fragments and attempt to reconstruct them into complete files.
• File system repair: If the file system of the storage device is corrupted, data recovery
software can sometimes repair the file system and make the lost data accessible again.
• Undelete tools: These tools can recover recently deleted files from the free space on a
storage device before new data overwrites them.
• Disk imaging: Creating an image of the entire storage device allows for data recovery
attempts without risking further damage to the original storage media.
• Advanced data recovery software: Specialized software can employ complex
algorithms to analyze storage media and identify recoverable data patterns.
The specific techniques employed by Project Lost Data Retrieval will be tailored to the
specific data loss scenario. The project may also involve collaboration with data recovery
professionals who can utilize specialized tools and advanced techniques to maximize
recovery chances.
• Reduced financial losses: Businesses can avoid the cost of replicating lost data, such
as financial records, customer information, or intellectual property.
• Improved productivity: Data recovery can minimize downtime caused by data loss
and help individuals and businesses get back to work quickly.
• Preserving memories: Individuals can recover irreplaceable photos, videos, and
personal documents that hold sentimental value.
• Maintaining compliance: Recovering lost data can help organizations meet legal and
regulatory requirements for data retention.
• Peace of mind: Knowing that there's a potential solution for data loss can provide
peace of mind and mitigate the stress associated with such situations.
Project Lost Data Retrieval aims to be a user-friendly and accessible solution, offering both
software tools and professional data recovery services depending on the complexity of the
situation.
In the ever-reliant world of digital information, data loss can be a devastating experience.
From personal photos and financial records to critical business documents and scientific
research, the potential consequences of losing access to crucial data are vast. This is where
Project Lost Data Retrieval steps in, offering a beacon of hope for those facing data disaster.
This project aims to develop a comprehensive system for retrieving lost data across various
storage mediums. Imagine a one-stop solution capable of tackling a wide range of data loss
scenarios, from accidental deletion and drive failure to complex hardware malfunctions and
cyberattacks.
Data loss can occur due to a multitude of factors, some user-induced and others beyond our
control. Here are some common causes:
• Accidental Deletion: This is perhaps the most frequent cause of data loss. A simple
click can send important files into oblivion.
• Hardware Failure: Storage devices like hard drives and solid-state drives (SSDs) are
prone to physical damage or internal malfunctions, resulting in data inaccessibility.
• Formatting Errors: Accidental formatting or unexpected filesystem corruption can
render data unreadable.
• Software Corruption: Malicious software (malware) attacks or software bugs can
damage files or corrupt entire storage systems.
• Natural Disasters: Events like floods, fires, and earthquakes can physically destroy
storage devices, leading to permanent data loss.
The impact of data loss can be severe, depending on the nature of the data involved. Lost
personal photos and documents can be irreplaceable, while businesses can face financial
losses, reputational damage, and legal repercussions if crucial data goes missing.
Project Lost Data Retrieval tackles this complex challenge by employing a multi-faceted
approach:
• Data Carving: Recovers lost files by analyzing raw data patterns on storage media,
even after formatting or deletion.
• File System Repair: Attempts to repair damaged file systems, allowing access to
files within the corrupted structure.
• Disk Imaging: Creates a complete copy of the storage device, including deleted files,
for secure analysis in a safe environment.
• RAID Recovery: Focuses on recovering data from complex RAID (Redundant Array
of Independent Disks) storage systems, which use data mirroring or striping for
redundancy.
2. Advanced Data Analysis Tools:
• Data Forensics: Utilizes specialized software and techniques to uncover deleted files
and reconstruct data footprints from storage media.
• Data Carving Algorithms: Employs sophisticated algorithms to identify and extract
lost files from raw data, even in heavily fragmented states.
• File Signature Identification: Identifies the type of file based on its unique
signature, allowing for targeted recovery efforts.
Project Lost Data Retrieval offers a range of benefits to individuals and organizations alike:
• Reduced Data Loss Impact: Minimizes the consequences of data loss by providing a
viable chance of recovery.
• Improved Business Continuity: Ensures businesses can continue operations with
minimal disruption by enabling swift recovery of critical data.
• Preserved Personal Memories: Allows individuals to recover irreplaceable personal
files like photographs, documents, and other digital memories.
• Enhanced Security Options: Promotes data security by offering a safety net in case
of accidental deletion or unforeseen data loss events.
Project Lost Data Retrieval recognizes the ever-evolving landscape of data storage
technologies. The project is committed to continuous development in several key areas:
• Cloud Data Recovery: Developing techniques for retrieving lost data from cloud
storage platforms, which are increasingly used by businesses and individuals.
• Solid-State Drive (SSD) Recovery: Addressing the unique challenges of data
recovery from SSDs, which are becoming the dominant storage technology in many
devices.
• Cybersecurity Integration: Incorporating data recovery solutions into cybersecurity
strategies to mitigate the impact of cyberattacks and ransomware threats.
data is the lifeblood of our personal and professional lives. It encompasses critical
documents, cherished memories, financial records, and irreplaceable work projects. Data loss,
however, is a constant threat, caused by a multitude of factors ranging from hardware failures
and accidental deletions to software malfunctions and cyberattacks. This is where Project
Lost Data Retrieval steps in, offering a beacon of hope for those facing the nightmare of data
loss.
Data loss can be categorized into two main types: logical and physical. Logical data loss
refers to situations where the data itself is intact but inaccessible due to software errors,
formatting issues, or accidental deletion. Physical data loss occurs when the storage medium
itself is damaged or destroyed, for example, due to a hard drive crash, solid-state drive (SSD)
failure, fire, flood, or even physical wear and tear.
Project Lost Data Retrieval aims to tackle the challenge of data loss by employing a
comprehensive approach that encompasses various methodologies and tools. Here's a
breakdown of the key components:
• Data Assessment: The first step involves a thorough assessment of the data loss
situation. This includes determining the type of data loss (logical or physical), the
affected storage medium (hard drive, SSD, memory card, etc.), and the potential cause
of the loss.
• Data Recovery Techniques: Based on the assessment, specific data recovery
techniques are employed. For logical data loss, software-based recovery tools are used
to scan the storage device for recoverable files. These tools can identify deleted files
and folders, even if they have been overwritten partially. Depending on the severity of
the data loss, specialized data recovery software might be required.
• Physical Data Recovery: In cases of physical damage, specialized hardware tools
and techniques are needed to access and recover data from the damaged storage
device. This often involves working in specialized cleanroom environments to
minimize further damage. Physical data recovery can be a complex and expensive
process, but it can be crucial in situations where the data is irreplaceable.
• Data Imaging: A crucial step in data recovery involves creating an image of the
storage device. This image is a complete copy of the data on the device, including
deleted files and even sections that may be physically damaged. The data image
serves as a pristine copy on which data recovery tools can work without impacting the
original device.
• Data Validation and Verification: Once data is recovered, it undergoes a rigorous
validation process to ensure its integrity and functionality. This involves verifying
whether the recovered files are complete, free from corruption, and can be opened and
used correctly.
Advanced Technologies in Data Recovery:
Project Lost Data Retrieval leverages advancements in technology to enhance data recovery
capabilities. Some of the key areas of focus include:
• Data Carving: This technique bypasses the file system and directly scans the storage
medium for patterns that resemble known file signatures. This is particularly useful in
situations where the file system itself is damaged.
• RAID Recovery: RAID (Redundant Array of Independent Disks) configurations
offer data redundancy and can withstand the failure of one or more disks. However,
data recovery from RAID systems can be complex. Project Lost Data Retrieval
employs specialized tools and techniques to recover data from RAID configurations.
• Solid-State Drive (SSD) Recovery: Data recovery from SSDs can be particularly
challenging due to the way data is stored and overwritten. Project Lost Data Retrieval
utilizes specialized techniques for SSD recovery that maximize the chances of
successful data retrieval.
While Project Lost Data Retrieval offers a valuable lifeline for data loss situations, prevention
is always better than cure. The project incorporates the importance of data backup strategies
to minimize data loss risks. Here are some key recommendations:
• Regular Backups: Implement a regular data backup regimen. This could involve
backing up data to an external hard drive, cloud storage, or a combination of both.
• Redundancy: Consider implementing RAID configurations or other redundancy
measures to ensure data availability even in case of a disk failure.
• Encryption: Encrypt sensitive data to protect it against unauthorized access in case of
physical theft or cyberattacks.
• Data Hygiene: Practice good data hygiene by avoiding unnecessary deletions, using
antivirus software, and keeping your storage devices healthy and free from malware.
Data loss can occur due to a multitude of reasons, some accidental and others more
deliberate. Here are some common scenarios:
• Accidental Deletion: A simple mistake, such as hitting the wrong button, can result
in permanent data loss.
• Hardware Failure: Storage devices like hard drives and solid-state drives (SSDs)
can malfunction due to physical damage, overheating, or wear and tear.
• Software Corruption: Corrupted files or operating system issues can render data
inaccessible.
• Formatting Errors: Accidental formatting or formatting errors can completely erase
data on a storage device.
• Virus Attacks: Malware can encrypt or delete data, making it inaccessible.
The goal of Project Lost Data Retrieval is to provide a comprehensive approach to data
recovery, regardless of the cause of loss. The project typically follows a multi-step process:
1. Initial Assessment:
• The project begins with a thorough consultation with the client to understand the
nature of the data loss. This includes details about the storage device, the type of data
lost, and the potential cause of loss.
2. Data Recovery Techniques:
• Based on the assessment, data recovery specialists will select the appropriate
technique(s) for recovering the lost data. Common techniques include:
o Undelete Software: Special software can find and recover recently deleted
files on a storage device.
o Data Carving: This technique identifies data fragments scattered across a
storage device and attempts to reassemble them into usable files.
o Disk Imaging: Creates a complete image of the storage device, allowing
recovery attempts on a copy without jeopardizing the original data.
o Physical Data Recovery: In extreme cases, when physical damage to the
storage device is suspected, advanced techniques involving cleanroom
environments and specialized hardware may be necessary.
• Once the data is recovered, it may be fragmented or corrupted. The retrieved data will
be cleaned and validated to ensure its integrity and usability.
• Project Lost Data Retrieval can go beyond immediate recovery. Recommendations for
data backup strategies and data security best practices can be provided to help prevent
future data loss incidents.
• Peace of Mind: Knowing that a data recovery solution exists can provide a
sense ofsecurity and reduce the risk associated with potential data loss.
While data recovery is a powerful tool, it doesn't guarantee complete success. Here are some
limitations to consider:
• Severity of Data Loss: The more severe the data loss (e.g., physical damage to the
storage device), the lower the chances of successful recovery.
• Overwriting of Data: Data can be permanently overwritten by new files stored on
the affected device, reducing the chances of recovery.
• Time Factor: Timely action is crucial for maximizing the chances of data recovery.
The longer the delay, the greater the risk of overwriting or further damage.
2. Objective
In today's data-driven world, the loss of crucial information can have crippling consequences.
Accidental deletion, hardware malfunctions, system crashes, cyberattacks - these are just a
few threats that can lead to data disasters. This project aims to develop a comprehensive lost
data retrieval solution with a multi-tiered approach, addressing diverse user needs and
maximizing recovery success rates.
This project breaks down data recovery into three distinct tiers, each catering to different
levels of user expertise and data loss severity.
Tier 1: User-Friendly Recovery for Non-Technical Users:
• Automated File Retrieval: Implement intuitive tools that scan storage devices for
commonly deleted files. This tier caters to users who have accidentally deleted files
and need a quick and easy solution.
• Data Type-Specific Recovery: Enable recovery of specific file types (documents,
photos, videos) through pre-defined profiles. Users can prioritize the recovery of
critical data types based on their needs.
• Guided Recovery Wizards: Develop interactive wizards that guide non-technical
users through the recovery process with clear instructions and minimal technical
jargon.
• Data Preview: Allow users to preview recovered files before full restoration,
ensuring they retrieve the correct data.
• Data Source Identification: Provide advanced tools to identify the type of storage
media, file system, and operating system involved. This information can be crucial in
selecting the most appropriate recovery methods.
• Data Loss Assessment: Implement diagnostic tools to analyze the extent of damage
and the likelihood of successful recovery. This allows users to understand the
potential limitations and optimize the recovery process.
• Customizable Recovery Options: Offer a variety of advanced recovery techniques,
including file system repair, partition recovery, RAID reconstruction, and data
carving. Experienced users can tailor their recovery approach based on the specific
cause of data loss.
• Raw Data Recovery: Incorporate tools for extracting data fragments directly from
raw storage media in cases of severe file system corruption. This caters to scenarios
where traditional recovery methods fail.
This tier (potentially an add-on service) caters to highly specialized situations with severe
data loss. It may involve:
3. Project Scope:
• Recovery of data from a wide range of storage media, including internal and external
hard drives, SSDs, USB drives, memory cards, and RAID configurations.
• Integration with popular operating systems (Windows, macOS, Linux) and file
systems (NTFS, FAT32, ext4, etc.).
• Recovery of a vast array of file types, catering to documents, images, videos, audio
files, databases, and applications.
• User-friendly interfaces for all three tiers, catering to both technical and non-technical
users.
• Modular design allowing for future integration of advanced data recovery techniques
and potential integration with laboratory services.
4. Success Criteria:
5. Target Users:
7. Project Impact:
This project aims to empower users with a robust and versatile solution for lost data retrieval.
By offering a user-friendly platform with various recovery options, the project can help
minimize the impact of data loss incidents for individuals and organizations alike.
The digital age has brought immense convenience, but also introduced the constant fear of
data loss....
The digital age has brought immense convenience, but also introduced the constant fear of
data loss. Accidental deletion, hardware malfunctions, software glitches, and cyber threats
can all lead to the irretrievable loss of critical information. Lost data can translate into
significant financial losses, intellectual property theft, operational disruptions, and
reputational damage for businesses and organizations.
This project aims to develop a comprehensive and customizable lost data retrieval solution
that addresses various scenarios and caters to diverse user needs. The focus goes beyond
simply recovering data; it emphasizes a holistic approach that prioritizes data security,
prioritization, and usability.
Chapter 3. Source code
import argparse
import os
import logging
import sys
LOG = logging.getLogger('FATX')
def main(arg):
# TODO: have the option to specify a custom range
with open(arg.inputfile, 'rb') as infile:
drive = FatXDrive(infile)
if arg.print_drive:
print("Partitions:")
drive.print_partitions()
fatx = drive.get_partition(arg.index)
fatx.mount()
if arg.print_partition:
fatx.print_volume_metadata()
if arg.print_files or arg.recover:
root_dir = fatx.get_root()
if len(root_dir) == 0:
print("No files in this partition!")
else:
if arg.print_files:
for dirent in root_dir:
dirent.print_dirent("root:")
if arg.recover:
if not arg.outpath:
raise Exception("Must specify an output path (--output).")
if not os.path.exists(arg.outpath):
os.makedirs(arg.outpath)
_stream = logging.StreamHandler(sys.stdout)
_stream.setLevel(logging.INFO)
_stream.setFormatter(logging.Formatter('%(levelname).4s: %(message)s'))
if log_verbosity != logging.NOTSET:
_file = logging.FileHandler('log.txt', 'w', 'utf-8')
_file.setLevel(logging.DEBUG)
_file.setFormatter(
logging.Formatter('%(module)s::%(funcName)s::%(lineno)d %(levelname).4s %(asctime)s -
%(message)s'))
LOG.setLevel(log_verbosity)
LOG.addHandler(_file)
else:
LOG.setLevel(logging.INFO)
LOG.addHandler(_stream)
main(args)
import argparse
import sys
import os
import logging
LOG = logging.getLogger('FATX')
def main_recover(arg):
with open(arg.inputfile, 'rb') as infile:
drive = FatXDrive(infile)
basename = os.path.basename(arg.inputfile)
analyzer = FatXAnalyzer(volume)
analyzer.perform_orphan_analysis(max_clusters=arg.so_length)
analyzer.save_roots(basename)
roots = analyzer.get_roots()
for root in roots:
root.print_dirent('.')
if arg.recover:
if not os.path.exists(args.outputpath):
os.mkdir(args.outputpath)
root.recover(root_dir)
analyzer = FatXCarver(volume)
if drive.mode == DRIVE_XBOX:
analyzer.perform_signature_analysis(x_signatures,
interval=arg.ss_interval,
length=arg.ss_length)
elif drive.mode == DRIVE_X360:
analyzer.perform_signature_analysis(x360_signatures,
interval=arg.ss_interval,
length=arg.ss_length)
if arg.recover:
for find in analyzer.found_signatures:
find.recover(arg.outputpath)
args = parser.parse_args()
_stream = logging.StreamHandler(sys.stdout)
_stream.setLevel(logging.INFO)
_stream.setFormatter(logging.Formatter('%(levelname).4s: %(message)s'))
if log_verbosity != logging.NOTSET:
_file = logging.FileHandler('log.txt', 'w', 'utf-8')
_file.setLevel(logging.DEBUG)
_file.setFormatter(
logging.Formatter('%(module)s::%(funcName)s::%(lineno)d %(levelname).4s %(asctime)s -
%(message)s'))
LOG.setLevel(log_verbosity)
LOG.addHandler(_file)
else:
LOG.setLevel(logging.INFO)
LOG.addHandler(_stream)
main_recover(args)
Backend Code
try:
import Tkinter as tk
import ttk
from tkFileDialog import askopenfilename, askdirectory
import tkMessageBox
except ImportError:
import tkinter as tk
from tkinter import ttk
from tkinter.filedialog import askopenfilename, askdirectory
import tkinter.messagebox
LOG = logging.getLogger("FATX")
class DrivePanel(ttk.Frame):
def init (self, master):
ttk.Frame. init (self, master)
self.master = master
self.progress_label_text = tk.StringVar()
self.progress_label = ttk.Label(self, textvariable=self.progress_label_text)
self.progress_label.pack(side=tk.BOTTOM, fill=tk.X)
self.thread = None
self.analyzer = None
self.timer0 = None
self.timer1 = None
self.pack()
tree_columns = ('filesize', 'attr', 'cdate', 'mdate', 'adate')
self.tree = ttk.Treeview(self, columns=tree_columns)
self.tree.heading('#0', text='Drive Contents')
self.tree.column('#0', minwidth=100)
self.tree.pack(side=tk.LEFT, expand=True, fill=tk.BOTH)
self.tree.bind("<ButtonRelease-3>", self.open_context_menu)
# self.tree.heading('cluster', text='Cluster')
self.tree.heading('filesize', text='File Size')
self.tree.heading('attr', text='Attributes')
self.tree.heading('cdate', text='Date Created')
self.tree.heading('mdate', text='Date Modified')
self.tree.heading('adate', text='Date Accessed')
def expand_all(self):
def expand_node(node):
for child in self.tree.get_children(node):
self.tree.item(child, open=True)
expand_node(child)
partition_node = self.tree.selection()[0]
self.tree.item(partition_node, open=True)
expand_node(partition_node)
def collapse_all(self):
def collapse_node(node):
for child in self.tree.get_children(node):
self.tree.item(child, open=False)
collapse_node(child)
partition_node = self.tree.selection()[0]
self.tree.item(partition_node, open=False)
collapse_node(partition_node)
def recover_progress(self):
file_name = self.thread.current_file[1]
label_text = 'Recovering: {}'.format(file_name)
self.progress_label_text.set(label_text)
self.progress_bar['value'] = self.thread.current_file[0]
if self.thread.is_alive():
self.after(100, self.recover_progress)
else:
self.progress_label_text.set('')
self.progress_bar['value'] = 0
self.timer1 = time.time()
print('Dump completed in {} seconds'.format(self.timer1 - self.timer0))
self.master.bell()
class RecoverPartition(threading.Thread):
def init (self, partition, directory):
threading.Thread. init (self)
self.partition = partition
self.directory = directory
self.current_file = (0, '')
def run(self):
for x, dirent in enumerate(self.partition.get_root()):
self.current_file = (x, dirent.file_name)
dirent.recover(self.directory)
def recover_partition(self):
if self.thread is not None and self.thread.is_alive():
tkMessageBox.showerror("Error", "Please wait for analysis to finish.")
return
def orphan_scanner_progress(self):
cluster = self.analyzer.current_block
label_text = "Cluster {}/{}".format(cluster, self.progress_bar['maximum'])
self.progress_label_text.set(label_text)
self.progress_bar['value'] = cluster
if self.thread.is_alive():
self.after(100, self.orphan_scanner_progress)
else:
# self.tree.configure(state='normal')
self.progress_label_text.set('')
self.progress_bar['value'] = 0
self.timer1 = time.time()
print('analysis completed in {} seconds.'.format(self.timer1 - self.timer0))
self.master.bell()
panel = RecoverPanel(self.master, 0)
self.master.add(panel, text='Analysis results')
orphans = self.analyzer.get_roots()
panel.add_orphans(orphans)
class OrphanScanner(threading.Thread):
def init (self, analyzer):
threading.Thread. init (self)
self.analyzer = analyzer
def run(self):
self.analyzer.perform_orphan_analysis()
self.analyzer.save_roots('data')
def run_orphan_scanner(self):
if self.thread is not None and self.thread.is_alive():
tkMessageBox.showerror("Error", "Please wait for analysis to finish.")
return
partition_node = self.tree.selection()[0]
partition = self.partition_nodes[partition_node]
self.analyzer = FatXAnalyzer(partition)
self.thread = self.OrphanScanner(self.analyzer)
self.progress_bar['maximum'] = self.analyzer.volume.max_clusters
# self.tree.state(('disabled',))
self.timer0 = time.time()
self.thread.start()
self.orphan_scanner_progress()
pass
def signature_scanner_progress(self):
cluster = self.analyzer.current_block
label_text = "Block {}/{}".format(cluster, self.progress_bar['maximum'])
self.progress_label_text.set(label_text)
self.progress_bar['value'] = cluster
if self.thread.is_alive():
self.after(100, self.signature_scanner_progress)
else:
# self.tree.configure(state='normal')
self.progress_label_text.set('')
self.progress_bar['value'] = 0
self.timer1 = time.time()
print('analysis completed in {} seconds.'.format(self.timer1 - self.timer0))
self.master.bell()
panel = RecoverPanel(self.master, 1)
self.master.add(panel, text='Analysis results')
orphans = self.analyzer.get_valid_sigs()
panel.add_entries(orphans)
class SignatureScanner(threading.Thread):
def init (self, analyzer, signatures, interval=0x200, length=0):
threading.Thread. init (self)
self.analyzer = analyzer
self.signatures = signatures
self.interval = interval
self.length = length
def run(self):
self.analyzer.perform_signature_analysis(signatures=self.signatures,
interval=self.interval,
length=self.length)
def run_signature_scanner(self):
if self.thread is not None and self.thread.is_alive():
tkMessageBox.showerror("Error", "Please wait for analysis to finish.")
return
partition_node = self.tree.selection()[0]
partition = self.partition_nodes[partition_node]
self.analyzer = FatXCarver(partition)
# TODO: this is nasty, don't do this
signatures = x360_signatures if self.analyzer.volume.endian_fmt == '>' else x_signatures
3. System Requirements
3.1 Hardware Requirements
The hardware requirements for a lost data retrieval project can vary depending on several
factors, including:
• Target Users: A user-friendly data recovery application for non-technical users will
have less demanding hardware requirements compared to a tool designed for IT
professionals and data recovery specialists.
• Recovery Techniques Employed: Advanced techniques like data carving or RAID
reconstruction require more processing power and memory compared to basic file
recovery.
• Data Source and Size: Recovering data from a large hard drive will likely require
more resources compared to retrieving data from a small USB flash drive.
Minimum Requirements:
• Processor (CPU): Dual-core processor with a minimum clock speed of 2.0 GHz
(faster is recommended for complex recoveries)
• Memory (RAM): 4 GB minimum (8 GB or more recommended for improved
performance)
• Storage: Sufficient free space on a separate drive (not the source drive with lost data)
to accommodate recovered data. The amount needed depends on the size of the data
being recovered.
• Operating System: Compatibility with popular operating systems (Windows,
macOS, Linux) based on the target user base.
Recommended Requirements:
• Processor (CPU): Quad-core or higher processor with a clock speed of 3.0 GHz or
faster (improves performance for complex tasks)
• Memory (RAM): 8 GB or more (allows for smoother operation during data recovery
scans and analysis)
• Storage: SSD (Solid State Drive) for faster data access and processing (HDD can be
used but may be slower) with sufficient free space to accommodate recovered data.
• Additional Considerations:
o Dedicated Data Recovery Tools: Some advanced data recovery software
may have specific hardware recommendations for optimal performance.
o External Drive Enclosure: If recovering data from an external drive that is
no longer bootable, an external drive enclosure may be needed to connect it to
the recovery system.
Important Notes:
• Data Recovery is not guaranteed: Meeting these hardware requirements does not
guarantee successful data recovery. The success rate depends on the severity of data
loss and the chosen recovery techniques.
• Data Security: It is crucial to use a separate drive for recovered data to avoid
accidentally overwriting the lost data on the source drive.
This document outlines the software requirements for the lost data retrieval project.
These requirements are divided into functional requirements, non-functional
requirements, and user interface (UI) requirements.
1. Functional Requirements:
• Data Source Identification:
o The software should be able to identify the type of storage device
(HDD, SSD, USB, etc.) and file system (NTFS, FAT32, ext4, etc.)
used.
o It should identify the operating system involved (Windows, macOS,
Linux) if possible.
• Data Loss Assessment:
o The software should analyze storage devices to assess the extent of
data loss, including the type and size of files affected.
o It should provide an estimate of the likelihood of successful recovery
for different file types.
• Data Recovery Features:
o The software should offer tiered recovery options catering to different
user needs:
▪ Tier 1 - User-Friendly Recovery:
▪ Automated scan for commonly deleted files.
▪ Data type-specific recovery (documents, photos, videos).
▪ Guided recovery wizards for non-technical users.
▪ Data preview before full restoration.
▪ Tier 2 - Advanced Recovery:
▪ File system repair for corrupted file structures.
▪ Partition recovery for lost or deleted partitions.
▪ RAID reconstruction for RAID systems experiencing
component failure.
▪ Customization of recovery techniques based on data loss
cause.
▪ Raw data recovery from severely corrupted storage
media.
o The software should support a wide range of file types for recovery,
including documents, images, videos, audio files, databases, and
applications.
• Data Security and Privacy:
o The software should employ encryption to protect data during recovery
and while stored temporarily.
o It should adhere to data privacy regulations and user consent when
handling sensitive information.
• Reporting and Documentation:
o The software should generate reports detailing the data loss incident,
recovery process, recovered files, and limitations encountered.
o It should offer comprehensive documentation on recovery procedures
and tools used for future reference.
2. Non-Functional Requirements:
• Performance:
o The software should perform data scans and recovery operations
efficiently with minimal impact on system resources.
o Recovery times should be optimized for both simple and complex
scenarios.
• Scalability:
o The software should be scalable to handle data recovery from various
storage device capacities.
• Usability:
o The software should offer a user-friendly interface catering to both
technical and non-technical users.
o The tiered recovery approach should guide users towards the most
appropriate recovery options.
o Clear instructions and contextual help should be available throughout
the recovery process.
• Portability:
o The software should be compatible with major operating systems
(Windows, macOS, Linux).
3. User Interface (UI) Requirements:
• The user interface should be intuitive and visually appealing.
• Tiered recovery options should be clearly presented to users.
• Wizards and tutorials should guide non-technical users through the recovery
process with minimal technical jargon.
• Users should be able to preview files before full restoration.
• Progress indicators and completion notifications should be displayed during
recovery operations.
• Detailed logs and reports should be accessible for advanced users and IT
professionals.
3.3 Introduction to tools/technologies/ s/w used
Tools, Technologies, and Software for Lost Data Retrieval Project
The project can leverage a combination of open-source and commercial tools depending on
specific functionalities and budget constraints. Open-source tools offer a good starting point
for basic recovery needs, while commercial software often provides more advanced features
and user-friendliness.
Additional Considerations:
• User Interface: An intuitive and user-friendly interface that caters to both technical
and non-technical users.
• Accessibility: Support for multiple languages and operating systems.
• Security: Secure data handling practices to ensure user privacy and data integrity.
• Documentation: Comprehensive documentation for the software and its
functionalities.
• Testing and Validation: Thorough testing with a variety of data loss scenarios and
storage devices.
• Error Handling: Robust error handling mechanisms to gracefully communicate
issues to users.
5. Software Design
5.1 S/W Development Lifecycle Model
Project Scope: Develop a software application that assists users in recovering lost data from
various storage devices.
The project will primarily follow the Waterfall model, ensuring a structured approach.
However, iterative elements will be incorporated for flexibility in adapting to new
information or challenges during development.
SDLC Phases:
• Define Business Needs: Identify the target audience (individuals, businesses) and
specific data loss scenarios the software aims to address (accidental deletion,
hardware failure, etc.).
• User Interviews and Surveys: Gather user input on desired functionalities, ease of
use, and supported storage devices.
• Feature Prioritization: Prioritize features based on user needs and development
complexity.
• System Requirements Document (SRD): Document the project scope,
functionalities, non-functional requirements (performance, security), and user
interface (UI) expectations.
• High-Level Design: Define the overall system architecture, including data flow,
retrieval modules, and user interaction components.
• Data Recovery Techniques: Identify the data recovery techniques the software will
utilize (e.g., deep scanning, file system analysis) based on the storage media and loss
scenario.
• Technical Architecture Document (TAD): Document the chosen technologies,
hardware/software requirements, and system components.
• System Testing: Test the complete system with various data loss scenarios, storage
devices, and user inputs.
• Data Recovery Efficiency Testing: Measure the software's effectiveness in
recovering different data types and quantities.
• Usability Testing: Observe users interacting with the software to assess its ease of
use and identify areas for improvement.
• Performance Testing: Evaluate the software's performance under different loads and
data sizes.
• Defect Tracking and Resolution: Record bugs and issues encountered during
testing. Fix them and re-test to ensure resolution.
Iterative Elements:
Success Criteria:
• The software successfully retrieves lost data from various storage devices.
• User interface is intuitive and easy to navigate.
• Performance meets expected recovery times and efficiency levels.
• User feedback is positive concerning functionality and ease of use.
• The software is secure and protects user data integrity.
Utilize project management tools like Jira, Trello, or Asana to manage tasks, track
development progress, and facilitate communication within the development team.
Implement a version control system (e.g., Git) to track code changes, revert to previous
versions if necessary, and manage concurrent development efforts.
This SDLC model provides a structured framework for developing a robust and user-friendly
lost data retrieval application. By following this plan and continuously adapting to user needs
and technological advancements, the project can achieve success in delivering a valuable tool for
data recovery.
Chapter 5. Results
Fig.1: [Log Creation]
Fig 2: [ Disk Selection ]
E
Figure 1.8: Fuzzing mode part 2
F
Figure 1.10: Fuzzing mode part 4
G
Figure 1.12: Fuzzing mode part 6
H
Figure 1.14: Fuzzing mode part 8
I
Figure 1.16: Fuzzing mode part 10
Alvarez, E., & Tippins, S. (2019). Socialization agents that Puerto Rican college students
use to make financial decisions. Journal of Social Change, 11(1), 75–
85. https://doi.org/10.5590/JOSC.2019.11.1.07
Laplante, J. P., & Nolin, C. (2014). Consultas and socially responsible investing in
Guatemala: A case study examining Maya perspectives on the Indigenous right to free,
prior, and informed consent. Society & Natural Resources, 27, 231–
248. https://doi.org/10.1080/08941920.2013.861554
Jerrentrup, A., Mueller, T., Glowalla, U., Herder, M., Henrichs, N., Neubauer, A.,&
Schaefer, J. R. (2018). Teaching medicine with the help of “Dr. House.” PLoSONE,
13(3), Article e0193972. https://doi.org/10.1371/journal.pone.0193972
I
Eaton, T. V., & Akers, M. D. (2007). Whistleblowing and good governance. CPA
Journal, 77(6), 66–
71. http://archives.cpajournal.com/2007/607/essentials/p58.htm
States. https://scholarworks.waldenu.edu/symposium2018/23/
Torgerson, K., Parrill, J., & Haas, A. (2019, April 5-9). Tutoring strategies for online
students [Conference session]. The Higher Learning Commission Annual Conference,
Chicago, IL, United
States. http://onlinewritingcenters.org/scholarship/torgerson-parrill-haas-2019/
I
0