+------------------------------------------------------------------------------+
SDC - 自解密二进制生成器
版权 (C) 2006 Claes M Nyberg <[email protected]>
+------------------------------------------------------------------------------+
SDC 程序用于为常见操作系统和架构创建自解密二进制文件。目标文件使用 Blowfish 加密算法的密文反馈模式 (CFB) 加密,并附加到一个可执行文件中,该可执行文件在运行时读取自身并尝试解密附加的数据。
在 src 目录中运行 'make' 会显示几个选项:
$ make
make <target>
SDC 生成器目标:
linux_x86
windows_x86
openbsd_x86
openbsd_arm
openbsd_sparc64
freebsd_x86
netbsd_x86
solaris_sparc
自解密目标:
selfdecrypt_linux_x86
selfdecrypt_windows_x86
selfdecrypt_openbsd_x86
selfdecrypt_openbsd_arm
selfdecrypt_openbsd_sparc64
selfdecrypt_netbsd_x86
selfdecrypt_freebsd_x86
selfdecrypt_solaris_sparc
SDC 生成器目标将为该平台构建一个 sdc 二进制文件,可用于为任何自解密目标生成自解密文件。
构建 "自解密目标" 将为该目标构建实际的自解密二进制文件。从中剥离符号,并在生成的 selfdecrypt 二进制文件及其长度上运行 genhex.pl 脚本,以输出一个转义字符串,该字符串可重定向以创建一个头文件,就像 targets 目录中的文件一样。然后将包含文件添加到 targets.h,以便在下次构建 sdc 二进制文件时将其包含。
列出的目标已经作为头文件存在,并且已包含在 sdc 二进制文件中。
* 在加密前添加文件压缩以增加混淆度。
* OpenBSD ARM 支持
* MacOSX 支持
为了使 elf_offset() 函数正常工作,ELF 文件(selfdecrypt)应该是剥离后的(我懒得计算字符串表的大小)。
./sdc /etc/services
Encryption key:
Verify key:
Writing self decrypting file services.sdc for Linux x86 (ELF)
./services.sdc
Encryption key:
Decrypting to services
$
在 Linux 上为 Windows 生成自解密文件
$ ./sdc -t Windows_x86 /etc/services
Encryption key:
Verify key:
Writing self decrypting file services.sdc.exe for Windows x86 (PE-COFF)
双击 services.sdc.exe 会弹出一个对话框,要求输入解密密钥:
