开源项目 reallymine
使用教程
1. 项目的目录结构及介绍
reallymine
是一个用于解密 Western Digital MyBook 和 MyPassport 外部硬盘驱动器的开源项目。以下是项目的目录结构及其介绍:
reallymine/
├── ata/
├── bridge/
├── byteops/
├── command/
├── decryptloop/
├── disk/
├── kek/
├── _notes/
├── _pre/
├── _sectors/
├── _try/
├── LICENSE
├── README.md
├── TODO.md
├── decrypter.go
├── format.go
├── main.go
├── researchcommands.go
└── usercommands.go
ata/
,bridge/
,byteops/
,command/
,decryptloop/
,disk/
,kek/
: 这些目录包含了项目的主要功能模块,如 ATA 接口处理、桥接芯片处理、字节操作、命令处理、解密循环、磁盘处理和密钥扩展密钥处理。_notes/
,_pre/
,_sectors/
,_try/
: 这些目录可能包含开发过程中的笔记、预处理文件、扇区数据和尝试文件。LICENSE
: 项目的许可证文件,采用 GPL-3.0 许可证。README.md
: 项目的介绍和使用说明。TODO.md
: 项目待办事项列表。decrypter.go
,format.go
,main.go
,researchcommands.go
,usercommands.go
: 这些是项目的主要源代码文件,包括解密器、格式化、主程序入口、研究命令和用户命令。
2. 项目的启动文件介绍
项目的启动文件是 main.go
,它是整个项目的入口点。以下是 main.go
的简要介绍:
package main
import (
"fmt"
"os"
"github.com/andlabs/reallymine/command"
)
func main() {
if len(os.Args) < 2 {
fmt.Println("Usage: reallymine [options] command [args]")
os.Exit(1)
}
cmd := os.Args[1]
args := os.Args[2:]
switch cmd {
case "decrypt":
command.Decrypt(args)
case "getdek":
command.GetDEK(args)
// 其他命令处理
default:
fmt.Printf("Unknown command: %s\n", cmd)
os.Exit(1)
}
}
main.go
文件主要负责解析命令行参数,并根据不同的命令调用相应的处理函数。例如,decrypt
命令会调用 command.Decrypt
函数进行解密操作,getdek
命令会调用 command.GetDEK
函数获取解密密钥。
3. 项目的配置文件介绍
reallymine
项目本身没有显式的配置文件,其配置主要通过命令行参数进行。以下是一些常用的命令行参数示例:
# 解密整个驱动器
$ reallymine decrypt /dev/sdb decrypted.img
# 获取解密密钥
$ reallymine getdek /dev/sdb
通过这些命令行参数,用户可以指定要解密的驱动器和输出文件,或者获取解密密钥。
以上是 reallymine
开源项目的使用教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望这份文档能帮助你更好地理解和使用该项目。