데스크탑 Linux에서 SD 카드의 Android 암호화 디스크 이미지 파일 잠금 해제

데스크탑 Linux에서 SD 카드의 Android 암호화 디스크 이미지 파일 잠금 해제

인터넷의 지침을 사용하여 데스크톱 Linux에서 손상된 Android 암호화 SD 카드를 성공적으로 잠금 해제할 수 있습니다.

# dmsetup create crypt5 --table "0 `blockdev --getsize /dev/mmcblk0p2` crypt aes-cbc-essiv:sha256 HEXIDECIMALPASSPHRASEHERE 0 /dev/mmcblk0p2 0"

photorec을 사용하여 SD 카드에서 직접 복구하는 데 너무 많은 시간이 걸렸습니다. 절충안으로 암호화된 파티션에서 디스크 이미지 파일을 만드는 것부터 시작하여 SD 카드의 무결성을 확인하고 재사용한 다음 나중에 이미지 파일에서 데이터를 복구하기로 결정했습니다.

# dd if=/dev/mmcblk0p2 of=/home/crash/Documents/128gb.img iflag=direct oflag=dsync

이제 질문은 "디스크 이미지 파일의 잠금을 어떻게 해제합니까?"입니다. 디스크 이미지 파일이 원래 파티션과 동일해야 한다는 것을 알고 원래 명령을 조정하여 블록 장치의 크기와 디스크 이미지 파일의 위치를 ​​연결해 보았습니다.

# blockdev --getsize /dev/mmcblk0p2

결과:

250048479

연결하세요:

# dmsetup create crypt6 --table "0 250048479 crypt aes-cbc-essiv:sha256 HEXIDECIMALPASSPHRASEHERE 0 /home/crash/Documents/128gb.img 0"

다음 오류로 인해 실패합니다.

device-mapper: reload ioctl on crypt6 failed: Invalid argument
Command failed

무엇이 잘못되었는지 알 수 없습니다. SD 카드를 지우고 테스트하기 전에 이 디스크 이미지의 잠금을 해제할 수 있는지 확인하고 싶습니다.

답변1

dmcrypt이미지 파일을 처리하기 전에 블록 장치로 변환해야 한다고 생각합니다 . 여기서는 loop명명된 파일에 블록 인터페이스를 제공할 수 있는 장치를 사용합니다.

# Create a loop device and capture its name
lodev=$(losetup --show --find /home/crash/Documents/128gb.img)
echo "Using device $lodev for the image" >&2

# Map the crypto layer on to the loop block device
dmsetup create crypt6 --table "0 250048479 crypt aes-cbc-essiv:sha256 HEXIDECIMALPASSPHRASEHERE 0 $lodev 0"

...
# Delete the loop device when we have finished with it
losetup -d "$lodev"

실제로 이 구성을 사용하면 상수를 250048479콜백으로 바꿀 수 있습니다(역시 backticks 대신 blockdev더 현대적인 것을 사용하고 있음에 유의하세요 ).$(...)`...`

dmsetup create crypt6 --table "0 $(blockdev --getsize "$lodev") crypt aes-cbc-essiv:sha256 HEXIDECIMALPASSPHRASEHERE 0 $lodev 0"

관련 정보