|
本帖最后由 xiaooloong 于 2016-7-23 15:01 编辑
写了个 php 命令行版的,用自己的 mini 版(R1CM)测试了一下,和官方给出的 SSH 密码一样。
解包了三代(R3),二代(R2D),青春版(R1CL)的 mkxqimage ,盐和 mini 版一样,可以使用。
解包了垃圾桶(R1D)的,发现盐是 'A2E371B0-B34B-48A5-8C40-A7133F3B5D88',且 hash 时不反转
- #!/usr/bin/env php
- <?php
- //路由器固件解包后,从 /bin/mkxqimage 中提取的盐
- $salt = array(
- 'r1d' => 'A2E371B0-B34B-48A5-8C40-A7133F3B5D88',
- 'others' => 'd44fb0960aa0-a5e6-4a30-250f-6d2df50a'
- );
- isset($argv[1]) or die('Usage: ' . $argv[0] . " SN\n");
- print_line(get_passwd($argv[1]));
- function print_line($message) {
- echo $message . "\n";
- }
- //密码算法:
- //原始 SN 拼接反转后的盐,做 md5 运算取前 8 个字符
- function get_passwd($sn) {
- return substr(md5($sn . get_salt($sn)), 0, 8);
- }
- // SN 中不含 '/' 则为 r1d
- function get_salt($sn) {
- global $salt;
- if (false === strpos($sn, '/')) {
- return $salt['r1d'];
- } else {
- return swap_salt($salt['others']);
- }
- }
- //非 R1D 盐要反转后才能使用
- function swap_salt($salt) {
- return implode('-', array_reverse(explode('-', $salt)));
- }
复制代码
使用方法:
保存为 a.php
在命令行界面运行:
- [xiaooloong@localhost ~]# php a.php 0000/00000000 #输入完整的 sn (带有 /)
- 6e9ea860 #即可获取 ssh 密码
复制代码
centos 可以用
安装 php 命令行环境
|
评分
-
查看全部评分
|