CN113360957B - Password extraction method of solid state disk with SM2246EN master control - Google Patents

Password extraction method of solid state disk with SM2246EN master control Download PDF

Info

Publication number
CN113360957B
CN113360957B CN202110731408.6A CN202110731408A CN113360957B CN 113360957 B CN113360957 B CN 113360957B CN 202110731408 A CN202110731408 A CN 202110731408A CN 113360957 B CN113360957 B CN 113360957B
Authority
CN
China
Prior art keywords
data
bytes
block number
executing
password
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110731408.6A
Other languages
Chinese (zh)
Other versions
CN113360957A (en
Inventor
许超明
董超
彭炼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xly Salvationdata Technology Inc
Original Assignee
Xly Salvationdata Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xly Salvationdata Technology Inc filed Critical Xly Salvationdata Technology Inc
Priority to CN202110731408.6A priority Critical patent/CN113360957B/en
Publication of CN113360957A publication Critical patent/CN113360957A/en
Application granted granted Critical
Publication of CN113360957B publication Critical patent/CN113360957B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Abstract

The invention discloses a password extraction method of a solid state disk with SM2246EN as a main control, which is characterized by comprising the following steps: s100: acquiring parameter data of the solid state disk as first data; s200: calculating and obtaining the maximum block number of the solid state disk; s300: the method for acquiring the block number of the solid state disk password comprises the following steps: s301: acquiring a third numerical value in the first data, and judging whether the third numerical value is larger than zero and smaller than the maximum block number, if so, executing a step S302, otherwise, executing a step S400; s302: acquiring a first block number and a second block number and judging whether the first block number and the second block number are effective block numbers or not; s303: traversing and acquiring a block number where a solid state disk password is located, wherein the solid state disk password comprises a main password and a user password; s304: checking the third value; s400: acquiring a solid state disk password, wherein the step S400 comprises the following steps: s401: traversing page data of the third block number; s402: judging the existence of the password; s403: and acquiring a main password and a user password.

Description

Password extraction method of solid state disk with SM2246EN master control
Technical Field
The invention belongs to the technical field of information security, relates to a password extraction method of a solid state disk, and particularly relates to a password extraction method of a solid state disk with SM2246EN as a main control.
Background
In the fields of information security technology and data recovery, the capacity of hard disks is continuously increased and the use amount of the hard disks is continuously enlarged, and meanwhile, the shipment volume of Hard Disk Drives (HDD) type hard disks is continuously reduced, and the shipment volume of Solid State Disk (SSD) is continuously increased. Since 2010, the Solid State Disk (SSD) shipment starts to increase rapidly, and the increase rate is kept more than 10% for nine consecutive years: the increase rate in 2015 is 30.4%, and the increase rate in 2018 Solid State Disk (SSD) output volume is 37.2%; in 2020, the Solid State Disk (SSD) shipment is expected to increase to more than 2 hundred million pieces.
The solid state disk SSD is widely used because of its high read/write speed. With the continuous increase of the Solid State Disk (SSD) shipment volume, more and more problems appear. For example, in the case of encryption of the solid state disk SSD, when the data of the solid state disk SSD is to be extracted, the password must be obtained and the hard disk is decrypted, and then the data of the solid state disk SSD can be accessed, otherwise, the data is in an encrypted state and cannot be accessed and extracted.
In the solid state disk SSD, the solid state disk with the SM2246EN as the master is also widely used. However, in the prior art, there is no method for obtaining the SSD password of the solid state disk, especially the password of the solid state disk with the master control SM2246 EN.
Disclosure of Invention
Aiming at the defects of the prior art, the invention provides a password extraction method of a solid state disk with SM2246EN as a main control, which is characterized in that the solid state disk password is obtained by obtaining parameter data of the solid state disk, calculating and obtaining the maximum block number of the solid state disk and obtaining the block number of the solid state disk password. The method has the advantages of strong operability, simplicity and reliability.
The invention comprises the following steps:
s100: acquiring parameter data of the solid state disk as first data, wherein the step S100 comprises the following steps:
sending a write instruction to the solid state disk to set the size of the sector of the buffer area of the solid state disk read by the read instruction;
sending the reading instruction to a solid state disk to read first data, wherein the byte length of the first data is equal to the size of the buffer sector;
s200: calculating and obtaining the maximum block number of the solid state disk;
s300: the method for acquiring the block number of the solid state disk password comprises the following steps:
s301: acquiring a third numerical value in the first data, and judging whether the third numerical value is larger than zero and smaller than the maximum block number, if so, executing a step S302, otherwise, executing a step S400;
s302: acquiring a first block number and a second block number and judging whether the first block number and the second block number are effective block numbers or not;
s303: traversing and acquiring a block number where a solid state disk password is located, wherein the solid state disk password comprises a main password and a user password;
s304: checking the third value;
s400: acquiring a solid state disk password, wherein the step S400 comprises the following steps:
s401: traversing page data of the third block number;
s402: judging the existence of the password;
s403: and acquiring a main password and a user password.
Preferably, step S200 includes the steps of:
s201: obtaining a first numerical value: the starting address of the first data is shifted backwards by 0x10 bytes, and 2 bytes of content is continuously read in a big-end format as a first numerical value;
s202: the starting address of the first data is shifted backwards by 0x20 bytes, and the content of 6 bytes is read continuously in a small-end format as second data;
s203: it is determined whether the second data is equal to 0xAD3C15AB444A, and if so, the maximum block number is equal to the first value divided by 2 modulo otherwise, the maximum block number is equal to the first value.
Preferably, step S301 includes the steps of:
s3011: the starting address of the first data is shifted backwards by 0x23E bytes, and 2 bytes of content is read continuously in a small-end format as a second value;
s3012: the initial address of the first data is shifted backwards by 0x230 bytes, and 2 bytes of content is continuously read in a small-end format and is marked as data A;
the initial address of the first data is shifted backwards by 0x232 bytes, and 2 bytes of content is continuously read in a small-end format and is recorded as data B;
the initial address of the first data is shifted backwards by 0x234 bytes, and 2 bytes of content is continuously read in a small-end format and is recorded as data C;
the starting address of the first data is shifted backwards by 0x236 bytes, and 2 bytes of content is continuously read in a small-end format and is recorded as data D;
the starting address of the first data is shifted backwards by 0x238 bytes, and 2 bytes of content is continuously read in a small-end format and recorded as data E;
the starting address of the first data is shifted backwards by 0x23A bytes, and 2 bytes of content are continuously read in a small-end format and are marked as data F;
s3013: judging whether the second value is equal to any one of the data A to the data F, if so, executing the step S302, otherwise, executing the step S3014:
s3014: interchanging high bytes and low bytes of the second numerical value, and taking the generated numerical value as a third numerical value;
s3015: and judging whether the third numerical value is larger than zero and smaller than the maximum block number, if so, executing the step S302, otherwise, executing the step S400.
Preferably, step S302 includes the steps of:
s3021: the start address of the first data is shifted backward by 0x238 bytes, 2 bytes of content are continuously read in the big-end format as a first block number, the start address of the first data is shifted backward by 0x23A bytes, and 2 bytes of content are continuously read in the big-end format as a second block number;
s3022: judging whether the first block number and the second block number are both larger than zero and smaller than the maximum block number, if so, executing a step S3023, otherwise, exiting the process;
s3023: the first block number and the second block number are marked as effective block numbers.
Preferably, step S303 includes the steps of:
s3031: the page number of the current page is given as an initial value of 1;
s3032: reading the data of the current page of the second block number;
s3033: judging whether the ASCII character corresponding to the previous 8 bytes of the current page is SmiIndex, if so, executing step S3034, otherwise, executing step S3035;
s3034: the starting address of the current page is shifted backwards by 0x1C bytes, and 2 bytes of content are continuously read in a small-end format as a third numerical value;
s3035: the current page number is equal to the current page number + 1;
s3036: whether the page number of the current page is not more than the maximum page number or not is judged, if yes, step S3032 is executed, and if not, step S3037 is executed;
s3037: judging whether the current third numerical value has a value, if so, executing the step S304, otherwise, executing the step S3038;
s3038: and replacing the second block number with the first block number, executing steps S3031 to S3037, judging whether the current third numerical value has a value, if so, executing step S304, otherwise, ending the flow.
Preferably, the step S304 includes the steps of:
and judging whether the third numerical value is smaller than the maximum block number, if so, executing the step S400, otherwise, ending the process.
Preferably, the step S401 includes the steps of:
s4011: reading the value of the third numerical value as a third block number, and giving an initial value of 1 to the page number of the current page;
s4012: reading the current page data of the third block number;
s4013: judging whether the data type of the current page is firmware data of a solid state disk, if so, executing a step S4014, otherwise, executing a step S4015;
s4014: adding the page data tail of the firmware data to a data list;
s4015: the current page number is equal to the current page number + 1;
s4016: whether the page number of the current page is less than or equal to the maximum page number or not, if so, executing a step S4012, otherwise, executing a step S4017;
s4017: the page data having the largest page number and the content of the 7 th byte of the page management area of 0x22 in the data list is searched as the third data.
Preferably, the step S402 includes the steps of:
s4021: the starting address of the third data is shifted backward by 0x02 bytes, and the content of 1 byte is read as a fourth value;
s4022: judging whether the 6 th bit in the fourth numerical value is equal to 1, if so, indicating that a main password exists, executing a step S4023, otherwise, exiting the process;
s4023: judging whether the 1 st bit or the 5 th bit in the fourth numerical value is equal to 1, if so, indicating that a user password exists, executing a step S4024, otherwise, exiting the process;
s4024: the starting address of the third data is shifted backward by 0x03 bytes, and the content of 1 byte is read as a fifth value;
s4025: and judging whether the 5 th bit and the 6 th bit in the fifth numerical value are both equal to 0, if so, indicating that the user password and the main password are not encrypted, executing the step S403, otherwise, exiting the process.
Preferably, the step S403 includes the steps of:
the start address of the third data is shifted backward by 0x40 bytes, and the content of 0x20 bytes is read continuously as the main password, and the start address of the third data is shifted backward by 0x20 bytes, and the content of 0x20 bytes is read continuously as the user password.
Preferably, the step S4013 includes the steps of:
s40131: judging whether the content of the first two bytes of the page management area is equal to 0xFFFF or 0x0000, if so, executing step S4015, otherwise, executing step S40132;
s40132: and judging whether the value of the third byte data of the page management area is equal to 0xE7, if so, indicating that the data type of the current page is firmware data of a solid state disk, executing step S4014, and if not, executing step S4015.
The method has the beneficial effects that: the technical problem that a method for controlling the password of the solid state disk SM2246EN does not exist in the prior art is solved, and the method is high in operability, simple and reliable.
Drawings
FIG. 1 is a general flow diagram of the method provided by the present invention;
FIG. 2 is a data structure diagram of first data in one embodiment provided by the present invention;
fig. 3 is a flowchart of traversing and acquiring a block number where a solid state disk password is located in an embodiment provided in the present invention;
FIG. 4 is a flow chart for traversing page data of a third block number in one embodiment provided by the present invention;
fig. 5 is a data structure diagram of the main password and the user password obtained in one embodiment of the present invention.
Detailed Description
Fig. 1 shows a general flow chart of the method provided by the present invention. As shown in fig. 1, the method of the present invention comprises the steps of:
s100: acquiring parameter data of the solid state disk as first data, wherein the step S100 comprises the following steps:
sending a write instruction to the solid state disk to set the size of the sector of the buffer area of the solid state disk read by the read instruction;
sending a reading instruction to the solid state disk, wherein the reading instruction is used for reading first data, and the byte length of the first data is equal to the size of a buffer area sector;
specifically, a write instruction is sent first, which is used to inform the solid state disk that hard disk information data of 2 sectors needs to be read when a next instruction is received, and the write instruction is as follows:
0x00,0x01,0xAA,0x55,0x00,0xE0,0xCA,0x00,0x00,0x00,0x00,0x00, the written buffer size is 0x200, the data of the first two bytes of the buffer are 0xF0 and 0x20 in sequence, the data of the last four bytes of the buffer are 0x55, 0xAA,0x55 and 0xAA in sequence, the twelfth byte of the buffer is 0x02, and all the data of other bytes are zero.
Sending a reading instruction, wherein the instruction is as follows:
0x00,0x02,0xAA,0x55,0x00,0xE0,0xC8,0x00,0x00,0x00,0x00 and 0x00, all data in the read buffer are cleared, the size of the read buffer is set to 0x400, and after a read instruction is sent, the data in the read buffer is recorded as first data.
Fig. 2 is a data structure diagram illustrating first data in one embodiment provided by the present invention.
S200: and calculating and acquiring the maximum block number of the solid state disk. Step S200 includes the steps of:
s201: obtaining a first numerical value: the starting address of the first data is shifted backward by 0x10 bytes, and 2 bytes of content are continuously read in a big-end format as a first value; as shown in fig. 2, the first data start address is shifted backward by 0x10 bytes, and 2 bytes of content 0x0379 are read continuously in big-endian format as the first value;
s202: the starting address of the first data is shifted backward by 0x20 bytes, and the content of 6 bytes is read continuously in a small-end format as the second data; as shown in fig. 2, the start address of the first data is shifted backward by 0x20 bytes, and 6 bytes of content 0xCAA44394DEEC are read successively in a small-endian format as the second data;
s203: it is determined whether the second data is equal to 0xAD3C15AB444A, and if so, the maximum block number is equal to the first value divided by 2 modulo otherwise, the maximum block number is equal to the first value. In this embodiment, the reading of 6 bytes is not equal to 0xAD3C15AB444A, so the maximum block number is equal to the first value 0x 0379.
S300: the method for acquiring the block number of the solid state disk password comprises the following steps:
s301: acquiring a third numerical value in the first data, and judging whether the third numerical value is larger than zero and smaller than the maximum block number, if so, executing the step S302, otherwise, executing the step S400;
specifically, step S301 includes the steps of:
s3011: the start address of the first data is shifted backward by 0x23E bytes, and 2 bytes of content are read continuously in a small-end format as a second value;
s3012: the starting address of the first data is shifted backwards by 0x230 bytes, and 2 bytes of content is continuously read in a small-end format and is marked as data A;
the initial address of the first data is shifted backwards by 0x232 bytes, and 2 bytes of content is continuously read in a small-end format and is marked as data B;
the starting address of the first data is shifted backward by 0x234 bytes, and 2 bytes of content are continuously read in a small-end format and recorded as data C;
the starting address of the first data is shifted backwards by 0x236 bytes, and 2 bytes of content are continuously read in a small-end format and recorded as data D;
the starting address of the first data is shifted backward by 0x238 bytes, and 2 bytes of content are continuously read in a small-end format and recorded as data E;
the start address of the first data is shifted backward by 0x23A bytes, and 2 bytes of content are read continuously in a small format and recorded as data F;
s3013: judging whether the second value is equal to any one of the data A to the data F, if so, executing the step S302, otherwise, executing the step S3014:
s3014: interchanging high bytes and low bytes of the second numerical value, and taking the generated numerical value as a third numerical value;
s3015: and judging whether the third numerical value is larger than zero and smaller than the maximum block number, if so, executing the step S302, otherwise, executing the step S400.
S302: acquiring a first block number and a second block number and judging whether the first block number and the second block number are effective block numbers or not;
specifically, step S302 includes the steps of:
s3021: the start address of the first data is shifted backward by 0x238 bytes, 2 bytes of content are continuously read in the big-endian format as a first block number, the start address of the first data is shifted backward by 0x23A bytes, and 2 bytes of content are continuously read in the big-endian format as a second block number;
s3022: judging whether the first block number and the second block number are both larger than zero and smaller than the maximum block number, if so, executing a step S3023, otherwise, exiting the process;
s3023: the first block number and the second block number are marked as effective block numbers.
S303: traversing and acquiring a block number where a solid state disk password is located, wherein the solid state disk password comprises a main password and a user password;
FIG. 3 is a flowchart illustrating traversing and obtaining block numbers where solid state disk passwords are located in one embodiment of the present invention; as shown in fig. 3, step S303 includes the steps of:
s3031: the page number of the current page is given as an initial value of 1;
s3032: reading the data of the current page of the second block number;
s3033: judging whether the ASCII character corresponding to the previous 8 bytes of the current page is SmiIndex, if so, executing step S3034, otherwise, executing step S3035;
s3034: the starting address of the current page is shifted backwards by 0x1C bytes, and 2 bytes of content are continuously read in a small-end format as a third numerical value;
s3035: the current page number is equal to the current page number + 1;
s3036: whether the page number of the current page is not more than the maximum page number or not is judged, if yes, step S3032 is executed, and if not, step S3037 is executed;
s3037: judging whether the current third numerical value has a value, if so, executing the step S304, otherwise, executing the step S3038;
s3038: and replacing the second block number with the first block number, executing steps S3031 to S3037, judging whether the current third numerical value has a value, if so, executing step S304, otherwise, ending the flow.
S304: checking the third value; step S304 includes the steps of:
and judging whether the third numerical value is smaller than the maximum block number, if so, executing the step S400, otherwise, ending the process.
S400: acquiring a solid state disk password, wherein the step S400 comprises the following steps:
s401: traversing page data of the third block number;
FIG. 4 shows a flow chart for traversing page data of a third block number in one embodiment provided by the present invention. As shown in fig. 4, step S401 includes the steps of:
s4011: reading the value of the third numerical value as a third block number, and giving an initial value of 1 to the page number of the current page;
s4012: reading the current page data of the third block number;
s4013: judging whether the data type of the current page is firmware data of a solid state disk, if so, executing a step S4014, otherwise, executing a step S4015;
specifically, step S4013 includes the steps of:
s40131: judging whether the content of the first two bytes of the page management area is equal to 0xFFFF or 0x0000, if so, executing step S4015, otherwise, executing step S40132;
s40132: and judging whether the value of the third byte data of the page management area is equal to 0xE7, if so, indicating that the data type of the current page is firmware data of a solid state disk, executing step S4014, and if not, executing step S4015.
S4014: adding the page data tail of the firmware data to a data list;
s4015: the current page number is equal to the current page number + 1;
s4016: whether the page number of the current page is less than or equal to the maximum page number or not, if so, executing a step S4012, otherwise, executing a step S4017;
s4017: the page data having the largest page number and the content of the 7 th byte of the page management area of 0x22 in the data list is searched as the third data.
S402: judging the existence of the password;
specifically, step S402 includes the steps of:
s4021: the starting address of the third data is shifted backward by 0x02 bytes, and the content of 1 byte is read as a fourth value;
s4022: judging whether the 6 th bit in the fourth numerical value is equal to 1, if so, indicating that a main password exists, executing a step S4023, otherwise, exiting the process;
s4023: judging whether the 1 st bit or the 5 th bit in the fourth numerical value is equal to 1, if so, indicating that a user password exists, executing a step S4024, otherwise, exiting the process;
s4024: the starting address of the third data is shifted backward by 0x03 bytes, and the content of 1 byte is read as a fifth value;
s4025: and judging whether the 5 th bit and the 6 th bit in the fifth numerical value are both equal to 0, if so, indicating that the user password and the main password are not encrypted, executing the step S403, otherwise, exiting the process.
S403: and acquiring a main password and a user password. Step S403 includes the steps of:
the start address of the third data is shifted backward by 0x40 bytes, and the content of 0x20 bytes is read continuously as the main password, and the start address of the third data is shifted backward by 0x20 bytes, and the content of 0x20 bytes is read continuously as the user password.
Fig. 5 is a data structure diagram of the acquired main password and the user password in one embodiment of the present invention. As shown in fig. 5, the start address of the third data is shifted backward by 0x40 bytes, and the contents of the consecutive read 0x20 bytes are all zero (i.e., the contents are shown by the black underlined portion in fig. 5), which indicates that there is no main password.
The start address of the third data is shifted backward by 0x20 bytes, and 0x20 bytes of content (i.e., content indicated by a black box portion in fig. 5) 0x313233343536 (i.e., 123456 in ASCII representation) are continuously read, i.e., the user password.
And acquiring the main password and/or the user password to extract the data of the solid state disk.
It is to be understood that the invention is not limited to the examples described above, but that modifications and variations are possible to those skilled in the art in light of the above teachings, and that all such modifications and variations are intended to be included within the scope of the invention as defined in the appended claims.

Claims (7)

1. A password extraction method of a solid state disk with SM2246EN as a master control is characterized by comprising the following steps:
s100: acquiring parameter data of the solid state disk as first data, wherein the step S100 comprises the following steps:
sending a write instruction to the solid state disk to set the size of the sector of the buffer area of the solid state disk read by the read instruction;
sending the reading instruction to a solid state disk to read first data, wherein the byte length of the first data is equal to the size of the buffer sector;
s200: calculating and obtaining the maximum block number of the solid state disk;
s300: the method for acquiring the block number of the solid state disk password comprises the following steps:
s301: acquiring a third numerical value in the first data, and determining whether the third numerical value is greater than zero and smaller than the maximum block number, if so, executing step S302, otherwise, executing step S400, where step S301 includes the following steps:
s3011: the starting address of the first data is shifted backwards by 0x23E bytes, and 2 bytes of content is read continuously in a small-end format as a second value;
s3012: the initial address of the first data is shifted backwards by 0x230 bytes, and 2 bytes of content is continuously read in a small-end format and is marked as data A;
the initial address of the first data is shifted backwards by 0x232 bytes, and 2 bytes of content is continuously read in a small-end format and is recorded as data B;
the initial address of the first data is shifted backwards by 0x234 bytes, and 2 bytes of content is continuously read in a small-end format and is recorded as data C;
the starting address of the first data is shifted backwards by 0x236 bytes, and 2 bytes of content is continuously read in a small-end format and is recorded as data D;
the starting address of the first data is shifted backwards by 0x238 bytes, and 2 bytes of content is continuously read in a small-end format and recorded as data E;
the starting address of the first data is shifted backwards by 0x23A bytes, and 2 bytes of content are continuously read in a small-end format and are marked as data F;
s3013: judging whether the second value is equal to any one of the data A to the data F, if so, executing the step S302, otherwise, executing the step S3014:
s3014: interchanging high bytes and low bytes of the second numerical value, and taking the generated numerical value as a third numerical value;
s3015: judging whether the third value is larger than zero and smaller than the maximum block number, if so, executing the step S302, otherwise, executing the step S400;
s302: acquiring the first block number and the second block number and judging whether the first block number and the second block number are valid block numbers, wherein the step S302 comprises the following steps:
s3021: the start address of the first data is shifted backward by 0x238 bytes, 2 bytes of content are continuously read in the big-end format as a first block number, the start address of the first data is shifted backward by 0x23A bytes, and 2 bytes of content are continuously read in the big-end format as a second block number;
s3022: judging whether the first block number and the second block number are both larger than zero and smaller than the maximum block number, if so, executing a step S3023, otherwise, exiting the process;
s3023: recording the first block number and the second block number as effective block numbers;
s303: traversing and acquiring a block number where a solid state disk password is located, wherein the solid state disk password comprises a main password and a user password;
s304: checking the third value;
s400: acquiring a password of the solid state disk, wherein the step S400 comprises the following steps:
s401: traversing the page data of the third block number, step S401 includes the steps of:
s4011: reading the value of the third numerical value as a third block number, and giving an initial value of 1 to the page number of the current page;
s4012: reading the current page data of the third block number;
s4013: judging whether the data type of the current page is firmware data of a solid state disk, if so, executing a step S4014, otherwise, executing a step S4015;
s4014: adding the page data tail of the firmware data to a data list;
s4015: the current page number is equal to the current page number + 1;
s4016: whether the page number of the current page is less than or equal to the maximum page number or not, if so, executing a step S4012, otherwise, executing a step S4017;
s4017: searching page data with the largest page number and the content of the 7 th byte of the page management area being 0x22 in the data list as third data;
s402: judging the existence of the password;
s403: and acquiring a main password and a user password.
2. The method for extracting the password of the solid state disk with the master control of SM2246EN as claimed in claim 1, wherein the step S200 comprises the following steps:
s201: obtaining a first numerical value: the starting address of the first data is shifted backwards by 0x10 bytes, and 2 bytes of content is continuously read in a big-end format as a first numerical value;
s202: the starting address of the first data is shifted backwards by 0x20 bytes, and the content of 6 bytes is read continuously in a small-end format as second data;
s203: it is determined whether the second data is equal to 0xAD3C15AB444A, and if so, the maximum block number is equal to the first value divided by 2 to get modulo, otherwise, the maximum block number is equal to the first value.
3. The method for extracting the password of the solid state disk with the master control of SM2246EN as claimed in claim 1, wherein step S303 includes the following steps:
s3031: the page number of the current page is given as an initial value of 1;
s3032: reading the data of the current page of the second block number;
s3033: judging whether the ASCII character corresponding to the previous 8 bytes of the current page is SmiIndex, if so, executing step S3034, otherwise, executing step S3035;
s3034: the starting address of the current page is shifted backwards by 0x1C bytes, and 2 bytes of content are continuously read in a small-end format as a third numerical value;
s3035: the current page number is equal to the current page number + 1;
s3036: whether the page number of the current page is not more than the maximum page number or not is judged, if yes, step S3032 is executed, and if not, step S3037 is executed;
s3037: judging whether the current third numerical value has a value, if so, executing the step S304, otherwise, executing the step S3038;
s3038: and replacing the second block number with the first block number, executing steps S3031 to S3037, judging whether the current third numerical value has a value, if so, executing step S304, otherwise, ending the flow.
4. The method for password extraction of a solid state disk hosted by SM2246EN as claimed in claim 1, wherein the step S304 includes the following steps:
and judging whether the third numerical value is smaller than the maximum block number, if so, executing the step S400, otherwise, ending the process.
5. The method for extracting the password of the solid state disk hosted by the SM2246EN as claimed in claim 1, wherein the step S402 includes the following steps:
s4021: the starting address of the third data is shifted backward by 0x02 bytes, and the content of 1 byte is read as a fourth value;
s4022: judging whether the 6 th bit in the fourth numerical value is equal to 1, if so, indicating that a main password exists, executing a step S4023, otherwise, exiting the process;
s4023: judging whether the 1 st bit or the 5 th bit in the fourth numerical value is equal to 1, if so, indicating that a user password exists, executing a step S4024, otherwise, exiting the process;
s4024: the starting address of the third data is shifted backward by 0x03 bytes, and the content of 1 byte is read as a fifth value;
s4025: and judging whether the 5 th bit and the 6 th bit in the fifth numerical value are both equal to 0, if so, indicating that the user password and the main password are not encrypted, executing the step S403, otherwise, exiting the process.
6. The method for extracting the password of the solid state disk hosted by the SM2246EN as claimed in claim 1, wherein the step S403 includes the following steps:
the start address of the third data is shifted backward by 0x40 bytes, and the content of 0x20 bytes is read continuously as the main password, and the start address of the third data is shifted backward by 0x20 bytes, and the content of 0x20 bytes is read continuously as the user password.
7. The method for extracting the password of the solid state disk with the master control of SM2246EN as claimed in claim 1, wherein the step S4013 includes the following steps:
s40131: judging whether the content of the first two bytes of the page management area is equal to 0xFFFF or 0x0000, if so, executing step S4015, otherwise, executing step S40132;
s40132: and judging whether the value of the third byte data of the page management area is equal to 0xE7, if so, indicating that the data type of the current page is firmware data of a solid state disk, executing step S4014, and if not, executing step S4015.
CN202110731408.6A 2021-06-30 2021-06-30 Password extraction method of solid state disk with SM2246EN master control Active CN113360957B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110731408.6A CN113360957B (en) 2021-06-30 2021-06-30 Password extraction method of solid state disk with SM2246EN master control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110731408.6A CN113360957B (en) 2021-06-30 2021-06-30 Password extraction method of solid state disk with SM2246EN master control

Publications (2)

Publication Number Publication Date
CN113360957A CN113360957A (en) 2021-09-07
CN113360957B true CN113360957B (en) 2022-08-02

Family

ID=77537228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110731408.6A Active CN113360957B (en) 2021-06-30 2021-06-30 Password extraction method of solid state disk with SM2246EN master control

Country Status (1)

Country Link
CN (1) CN113360957B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114139181B (en) * 2021-11-30 2023-08-01 四川效率源信息安全技术股份有限公司 Method for setting, clearing and opening solid state disk password

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611549A (en) * 2011-01-21 2012-07-25 夏普株式会社 Data encryption device and memory card
CN104794027A (en) * 2015-04-30 2015-07-22 四川效率源信息安全技术有限责任公司 Parameter identification error repair method
CN110427765A (en) * 2019-07-31 2019-11-08 四川效率源信息安全技术股份有限公司 A kind of method of user data key in generation solid state hard disk
CN110427764A (en) * 2019-07-31 2019-11-08 四川效率源信息安全技术股份有限公司 A kind of data decryption method for main control chip
CN110457239A (en) * 2019-07-31 2019-11-15 四川效率源信息安全技术股份有限公司 A method of extracting solid state hard disk basic key
CN111694764A (en) * 2020-05-29 2020-09-22 四川效率源信息安全技术股份有限公司 Data reading method of failed solid state disk
CN112286720A (en) * 2020-10-28 2021-01-29 四川效率源信息安全技术股份有限公司 Method for extracting deleted data after TRIM command is started by solid state disk controlled by SM2246EN
CN112417491A (en) * 2020-12-11 2021-02-26 合肥大唐存储科技有限公司 Data encryption key obtaining and recovering method and data reading and writing method of solid state disk

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10803970B2 (en) * 2011-11-14 2020-10-13 Seagate Technology Llc Solid-state disk manufacturing self test

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102611549A (en) * 2011-01-21 2012-07-25 夏普株式会社 Data encryption device and memory card
CN104794027A (en) * 2015-04-30 2015-07-22 四川效率源信息安全技术有限责任公司 Parameter identification error repair method
CN110427765A (en) * 2019-07-31 2019-11-08 四川效率源信息安全技术股份有限公司 A kind of method of user data key in generation solid state hard disk
CN110427764A (en) * 2019-07-31 2019-11-08 四川效率源信息安全技术股份有限公司 A kind of data decryption method for main control chip
CN110457239A (en) * 2019-07-31 2019-11-15 四川效率源信息安全技术股份有限公司 A method of extracting solid state hard disk basic key
CN111694764A (en) * 2020-05-29 2020-09-22 四川效率源信息安全技术股份有限公司 Data reading method of failed solid state disk
CN112286720A (en) * 2020-10-28 2021-01-29 四川效率源信息安全技术股份有限公司 Method for extracting deleted data after TRIM command is started by solid state disk controlled by SM2246EN
CN112417491A (en) * 2020-12-11 2021-02-26 合肥大唐存储科技有限公司 Data encryption key obtaining and recovering method and data reading and writing method of solid state disk

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Self-Encrypting Deception: Weaknesses in the Encryption of Solid State Drives;Carlo Meijer 等;《2019 IEEE Symposium on Security and Privacy (SP)》;20190916;72-87 *
基于Hoare逻辑的密码软件安全性形式化验证方法;肖堃;《吉林大学学报(工学版)》;20181115;第49卷(第4期);1301-1306 *
缺陷固态硬盘的电子数据提取方法探讨;张佳强 等;《信息数据与电子工程》;20191231;第25卷(第36期);113-115 *

Also Published As

Publication number Publication date
CN113360957A (en) 2021-09-07

Similar Documents

Publication Publication Date Title
US7984296B2 (en) Content protection device and content protection method
US8024363B2 (en) Information processing apparatus, information processing method, program and program recording medium
CN113360957B (en) Password extraction method of solid state disk with SM2246EN master control
KR100623125B1 (en) Information storage device, information storage method, and program product for information storage processing
US20150149415A1 (en) Rollback Mechanism for Linear Tape File Systems
JP4367643B2 (en) Data storage system, data storage method, and data storage program
CN101465937B (en) Image processing apparatus and data erasing method
Vieyra et al. Solid state drive forensics: Where do we stand?
US20120317133A1 (en) Task context recovery
CN111930708A (en) Extension system and method of object tag based on Ceph object storage
CN108831510B (en) Method, device, terminal and storage medium for dotting audio and video files
US7925773B2 (en) Virtual format for the storage of streaming data
CN112527195B (en) Method for extracting physical data of solid state disk
CN103049534A (en) Method for quickly destroying data of database
US20090198870A1 (en) Methods and Media for Writing Data to Flash Memory
CN107134287A (en) File extraction method based on CDFS file system
Cox et al. Potential difficulties during investigations due to solid state drive (SSD) technology
CN112286720A (en) Method for extracting deleted data after TRIM command is started by solid state disk controlled by SM2246EN
Woods et al. Functional Access to Forensic Disk Images in a Web Service.
US10380070B2 (en) Reading and writing a header and record on tape
JP2020160985A (en) File encryption device, method and program
US11176096B2 (en) File system for genomic data
US11416158B1 (en) Selective data unarchiving
Alhussein et al. Forensics filesystem with cluster-level identifiers for efficient data recovery
JP2007080368A (en) Data recording method, data recording apparatus, and data recording program

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant