小编dim*_*ike的帖子

破解以下复制保护有多容易?

我正在尝试复制保护一些工作,这是一个可引导的 SD 卡,用于在 ARM 设备(Raspberry Pi)上引导 Linux 内核。我正在使用这种方法:

  1. 该方法使用 initrd 来挂载加密的根文件系统。
  2. initrd 根据 SD 卡的 CID 生成文件系统的密码。(使用散列函数,尚未决定 md5 或 sha1)。Initrd 将尝试使用生成的密码挂载文件系统。
  3. 现在是最有趣/最可疑的部分:initrd 本身是使用自定义 C 函数加密的,基本上每个字节都使用自定义伪随机生成器进行 XOR 运算。内核被修改为具有相同的加密功能,作为解密器工作。
  4. 系统本身被剥离,因此无法使用键盘或外部存储。单个应用程序全屏运行。

所以在引导加载程序加载内核和 initrd 后,内核解密 initrd 并执行其 init 脚本,这将生成密码并挂载根文件系统。

我的问题是:打破这个设置(解密根文件系统并使其从任何 SD 卡启动)有多容易?最薄弱的部分是什么?反编译内核并找到那些自定义加密函数有多容易?

编辑:这里有一些更正,这样你就不会在明显的事情上浪费时间:

  1. 根设备将使用 LUKS (aes256) 加密,密钥将由某些 HMAC 函数使用 SD 卡的 CID 和一些盐生成。
  2. 用于 initramfs 加密的伪随机算法实际上是 RC4,只会使用一些自定义函数生成密钥,因为如果我只是将密钥存储在一个字节数组中,那么检索它就会变得非常简单(是的,这是通过默默无闻的安全性但似乎没有其他办法)。
  3. 我知道如果使用 SD 卡模拟器,有人可以开始复制这个系统,但这对我来说没问题,因为它非常困难,而且不是任何人都可以做到这一点。(也不是任何人都愿意与模拟器打交道)

linux encryption sd-card initrd

11
推荐指数
1
解决办法
8928
查看次数

如何提交由 Git 中的预提交钩子修改的文件

我花了几个小时努力使用 Metastore 制作文件的 git 存储元数据(权限/标志/等),我为此而使用hooks/pre-commit

脚本被正确调用,文件“元数据”被修改但未添加到提交中。

我试着打电话:

git add ./metadata 
Run Code Online (Sandbox Code Playgroud)

git add -u ./metadata
Run Code Online (Sandbox Code Playgroud)

来自预提交脚本,但没有效果。该文件最终未提交并标记为已修改或暂存但从未提交。

有什么办法可以使这项工作?基本上,我希望它在每次提交时更新和提交文件“元数据”(最好是相同的提交,因此我可以在结帐后恢复所有权限)

谢谢!

PS如果您想知道为什么我需要这个,答案是我为需要权限/suid标志等的嵌入式设备存储操作系统文件。

metadata git hook

8
推荐指数
1
解决办法
7273
查看次数

如何将 %fromhost-ip% 变量附加到远程主机日志的 rsyslog 中的每个日志行?

我使用 rsyslog 变量来组成日志文件名。变量 %HOSTNAME% 和 %fromhost-ip%。一切正常,但问题是:如何将这些变量附加/前置到来自远程主机的日志的每个日志行?

linux remote logging syslog

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

linux ×2

encryption ×1

git ×1

hook ×1

initrd ×1

logging ×1

metadata ×1

remote ×1

sd-card ×1

syslog ×1