linux调用sd加密卡,在桌面Linux上解锁Android加密的SDK文件SD卡

我能够使用来自Internet的指令在桌面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卡之前可以解锁此磁盘映像.

解决方法:

我想在dmcrypt可以处理它之前你需要将你的图像文件转换为块设备.这里我们使用循环设备,它允许我们为命名文件提供一个块接口:

# 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"

实际上,使用这个配置你可以用一个回调到blockdev的替换你的常量250048479(注意我也使用更现代的$(…)而不是反引号“`):

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

标签:linux,sd-card,dm-crypt

来源: https://codeday.me/bug/20190815/1661781.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值