去年在一个群里,有一个小伙子在群里扔了一个加密的pdf文档,问谁能破解一下,结果被一个大佬秒破了,真的牛逼,真的有这么强大的软件吗,不是那种从1-9,A-z这种一个一个去碰的,这种破解方式破到我走了都还不知道密码是啥
恰巧在字典里,或者恰巧查到了密码。
1 Like
有些加密算法确实是有漏洞的,PDF版本有更新,所以估计不会有太大漏洞。
有个pdf密码移除器,不知什么原理,好像大部分都能用……
RegKey原理如下
代码
use rand::prelude::*;
const PAIRS: [(usize, usize, u8, u8); 3] = [
(0, 1, 4, 9), // (p1, p2, min, max)
(5, 13, 2, 9),
(18, 19, 4, 9),
];
fn main() {
let result = generate_random_string();
let path = directories::BaseDirs::new()
.unwrap()
.home_dir()
.join("license.dat");
if path.exists() {
let _ = std::fs::remove_file(&path);
}
let content = format!("[VeryPDFPWDR]\nRegcode={}\n", result);
std::fs::write(&path, content).unwrap_or_else(|e| eprintln!("Write Error {}", e));
}
fn generate_random_string() -> String {
let mut rng = rand::rng();
let mut chars: Vec<char> = (0..20)
.map(|_| {
if rng.random_bool(0.5) {
(rng.random_range(0..=9) + b'0') as char
} else {
rng.random_range('A'..='F')
}
})
.collect();
chars[12] = '6';
chars[14] = 'P';
chars[15] = 'R';
for (pos1, pos2, min, max) in PAIRS {
let n = rng.random_range(min..=max);
chars[pos1] = (n + b'0') as char;
chars[pos2] = ((if pos1 == 5 { 11 } else { 13 } - n) + b'0') as char;
}
chars.into_iter().collect()
}
1 Like
- 方式一:我没法破解文件密码,但能找到没加密的同样的文件。
- 方式二:我没法破解文件密码,但能通过漏洞看到文件内容。
- 方式三:密码恰好在字典里,毕竟现代CPU对老旧的 ARC4算法的暴力解密速度是每秒百万级别
4 Likes
之前我评PDF编辑器,有好几个可以,但我不敢写 ![]()
1 Like
如果是只有编辑密码(owner password),没有打开密码(user password),这种是可以直接破解的
是打开pdf就要密码
这是啥?
这个移除打开密码强不强
所以有没有这样的软件,想尝试一下呢
试试pdf24和iLovePDF
理论上很强,主要是我现在手头也没样本,不好测试
之前朋友发过我一个,我顺手试了123456,然后对了。发给她后她觉得我很厉害 ![]()
6 Likes
话说这东西从原理上来讲不是pdf套了层壳子吗,又不是像zip这种打碎再拼,应该好办的吧?
1 Like
看描述,这个只是破解防止复制、修改的密码,不是打开的密码
PDF X-Change Editor的某个破解版本可以移除掉前者这种密码
我来分享个打开就需要密码的PDF
进门财经的路演经常放一些文档,保存下来会发现全是加了打开密码的,但是在浏览器里访问就可以直接看,但我又不喜欢用浏览器看PDF……
比如这个PDF:2024年医保数据解读 - 国海证券 20250322
有啥不敢写的,发出来让我们学习一下 ![]()
检查发现还是写了~看我发的帖子就有了
1 Like
!qaz@wsx#edc
2 Likes