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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/80—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
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
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.
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)
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)
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)
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 |
-
2021
- 2021-06-30 CN CN202110731408.6A patent/CN113360957B/en active Active
Patent Citations (8)
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)
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 | |
US20080282355A1 (en) | Document container data structure and methods thereof | |
JP2008107965A (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 | |
Vieyra et al. | Solid state drive forensics: Where do we stand? | |
CN101465937B (en) | Image processing apparatus and data erasing method | |
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 | |
Cox et al. | Potential difficulties during investigations due to solid state drive (SSD) technology | |
US20090198870A1 (en) | Methods and Media for Writing Data to Flash Memory | |
CN107134287A (en) | File extraction method based on CDFS file system | |
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 | |
US11176096B2 (en) | File system for genomic data | |
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 | |
EP4057155A1 (en) | Memory-efficient data unarchiving |
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 |