|
|
1.1 root 1: /*
2: * Generate a Truly Block 64-bit Block
3: * D.P.Mitchell 83/06/28.
4: */
5:
6: #include <stdio.h>
7: #include <sys/types.h>
8: #include <sys/stat.h>
9: #include "crypt.h"
10:
11: char *volatile_file[] = {
12: "/bin/echo",
13: "/bin/sh",
14: "/bin/cat",
15: "/bin/ls",
16: "/bin/stty",
17: "/bin/date",
18: "/bin/cat",
19: "/bin/cc",
20: "/etc/motd",
21: "/etc/utmp",
22: "/dev/kmem",
23: "",
24: };
25:
26: Block
27: rand_block()
28: {
29: register i;
30: Block block;
31: struct stat buf;
32: extern long time();
33:
34: block.left ^= 0x9662f394;
35: block.right ^= 0x9f17c55f;
36: key_setup(&block, 0);
37: block.right = NEXT(getpid() + (getuid() << 16));
38: block.left = NEXT(time((long *)0));
39: des(&block);
40: for (i = 0; strlen(volatile_file[i]); i++) {
41: if (stat(volatile_file[i], &buf) == -1)
42: continue;
43: block.right ^= NEXT(buf.st_atime);
44: block.left ^= NEXT(buf.st_mtime);
45: des(&block);
46: }
47: return block;
48: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.