Friday, April 20, 2012

RIPE net PHP bot attackers (IP BLACKLIST)


Nothing is more nerve-wracking for a network administrator then the RIPE bot network of the EU/UK. I had real problems, issues what have you with hosted bandwidth getting sucked away by malicious bot-nets targeting my servers IP. 

The most offensive bot net Troll on the web is the legendary  [European  Union / United Kingdom] or the Eur-o-zone Reagen. The IP address starting notably in “80“,”83“,”84“,”85“,”90“,”175“ are Spam’en bastards that push such items as winning lotto numbers, get quick scams,white trash stupid credit card scams, attacker & exploiter sites. The possibilities for random junk posts are endless! It was an epic battlefront of programming skills indeed. 

The Solution was to blacklist IP addresses by creating a script to log IP’s of all people posting to the forum. Repeating IP offenders are blacklisted by time/date. The solution is simple and sweet.  In this post I am just going to include the IP blacklist of every Spamer that I have encountered. 

IP BLACKLIST : 

 80.243.191.67
109.163.226.224
80.243.191.115
188.227.175.179
109.163.226.224
80.243.182.205
80.243.191.115
80.243.191.67
109.163.226.224
199.15.234.76
80.243.191.115
80.243.182.205
188.227.175.179
80.243.191.67
131.239.63.6
62.60.136.0
62.60.136.255
188.227.175.179
80.243.182.205
109.163.226.224
80.243.191.67
195.222.94.194
109.163.226.224
188.227.175.178
68.142.198.119
70.32.94.185
8.6.95.240
204.89.61.242
174.141.225.214
213.198.218.9
60.250.48.152
151.193.64.1
122.161.225.97
59.182.128.144
69.174.83.178
74.125.83.202
122.161.57.169
122.163.168.86
59.163.196.151
86.63.129.20
113.166.167.113
80.42.234.250
67.219.0.247
67.228.168.146
189.30.94.223
72.9.100.2
89.47.52.3
91.195.7.13
206.125.78.133
67.219.0.242
202.73.54.178
200.198.51.98
209.85.161.200
213.190.223.165
213.6.119.231
204.92.149.234
213.37.94.38
190.132.249.135
67.219.0.234
130.94.64.220
173.0.52.169
118.171.233.202
59.180.55.177
112.197.32.33
69.174.83.178
125.164.200.126
118.68.248.104
201.76.216.122
93.85.204.60
160.36.179.112
204.92.149.237
125.160.33.212
78.106.23.3
125.160.97.28
94.98.109.46
67.219.0.187
70.28.56.33
189.83.170.78
59.177.45.63
187.117.110.102
77.31.239.119
186.10.232.197
95.78.193.225
209.255.69.3
92.80.81.98
189.111.65.24
89.229.142.62
91.191.205.204
93.46.40.117
91.195.7.13
91.195.7.13
91.195.7.13
91.195.7.13
91.195.7.13
67.228.168.146
87.217.83.236
124.232.147.10
190.172.137.189
190.166.134.122
187.56.54.224
162.39.187.177
205.188.91.95
67.219.0.187
209.59.4.21
117.198.37.194
71.39.195.8
67.228.168.146
204.92.149.237
86.47.46.169
95.223.225.133
58.68.145.51
87.221.157.10
58.68.145.51
72.167.180.18
41.215.18.98
209.59.4.21
189.104.184.229
110.137.223.150
115.72.164.111
65.254.43.253
190.253.188.217
72.3.135.213
216.74.37.178
80.87.72.6
216.54.194.16
98.158.231.26
75.66.129.170
111.224.250.135
186.24.107.103
80.87.72.6
213.163.90.70
213.163.90.70
186.59.3.227
187.114.241.158
183.80.13.228
85.26.232.124
195.250.189.145
122.164.168.85
125.161.199.221
189.59.62.100
59.184.15.68
216.74.37.183
208.85.48.71
151.95.191.178
161.58.104.162
82.127.3.90
188.81.71.187
85.29.130.30
151.77.31.246
217.72.192.242
59.184.15.68
216.74.37.183
208.85.48.71
151.95.191.178
161.58.104.162
82.127.3.90
188.81.71.187
85.29.130.30
151.77.31.246
217.72.192.242
250.141.101.109
92.47.241.151
147.56.163.40
116.123.117.99
190.166.121.206
64.34.195.152
60.198.94.124
190.166.121.206
87.68.232.19
190.166.243.21
216.121.69.106
60.198.94.124
64.34.195.152
190.166.2.236
190.166.2.236
216.121.69.106
87.68.232.19
190.166.243.21
116.123.117.99
116.123.117.99
125.161.23.207
125.161.23.207
95.81.192.198
66.231.81.9
67.219.0.185
200.104.28.146
125.161.23.207
95.81.192.198
66.231.81.9
67.219.0.185
200.104.28.146
125.161.23.207
95.81.192.198
66.231.81.9
67.219.0.185
200.104.28.146
125.161.23.207
95.81.192.198
66.231.81.9
67.219.0.185
200.104.28.146
190.55.211.212
190.55.211.212
190.55.211.212
190.55.211.212
190.55.211.212
190.55.211.212
189.0.174.182
75.194.27.200
174.120.51.116
109.77.124.90
178.95.213.92
187.101.96.202
189.212.78.73
119.157.14.53
122.161.15.91
125.161.23.207
65.254.43.225
113.162.227.170
83.142.162.10
189.183.69.180
202.152.1.83
81.138.88.252
82.159.94.138
188.51.82.47
130.94.64.220
77.121.112.187
189.26.52.180
1124.62.211.19
1124.62.211.19
189.101.186.170
69.147.97.1
189.101.186.170
69.147.97.1
94.253.70.96
95.32.235.36
87.219.233.185
212.22.173.78
59.184.249.25
201.86.35.74
117.193.99.219
66.254.34.20
189.46.112.184
190.104.4.178
59.177.45.63
64.191.20.39
178.161.11.135
95.176.230.35
193.55.51.34
41.34.170.23
200.112.88.211
109.92.104.213
63.247.84.67
59.177.45.63
130.186.90.163
189.10.37.202
72.232.205.226
59.92.141.134
66.231.81.9
123.16.67.240
173.232.49.70
189.123.38.184
207.126.76.28
195.142.137.92
207.126.81.116
12.199.25.251
61.135.202.67
61.245.36.132
95.105.94.246
201.160.110.116
77.238.189.223
187.127.153.165
187.68.30.2
206.132.3.239
203.162.4.148
173.14.138.49
89.151.123.139
77.179.175.103
72.165.61.135
201.86.134.62
207.158.10.247
66.197.136.35
201.246.116.230
110.54.145.200
64.186.132.48
190.237.44.171
122.180.54.7
201.120.136.216
64.120.250.244
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
64.120.250.243
92.124.21.94
80.12.242.100
198.217.64.52
115.73.152.113
109.42.115.12
84.27.128.116
98.139.91.76
208.113.66.130
122.176.68.168
178.89.146.161
208.113.66.130
122.176.68.168
178.89.146.161
208.113.66.130
122.176.68.168
178.89.146.161
208.113.66.130
122.176.68.168
178.89.146.161
208.113.66.130
122.176.68.168
178.89.146.161
208.113.66.130
122.176.68.168
178.89.146.161
208.113.66.130
122.176.68.168
178.89.146.161
208.113.66.130
122.176.68.168
178.89.146.161
121.207.250.205
72.3.135.213
65.55.90.220
121.207.250.205
72.3.135.213
65.55.90.220
202.69.230.225
59.177.45.63
67.222.152.197
72.3.135.213
98.139.91.98
62.149.128.211
94.41.133.202
89.151.123.136
67.222.152.195
65.125.54.178
114.198.169.62
196.192.11.52
111.224.250.131
201.2.90.93
216.77.188.73
216.77.188.73
62.110.23.130
206.190.60.37
91.215.158.57
216.77.188.73
207.7.85.67
207.7.85.67
207.7.85.67
207.7.84.67
204.13.161.15
74.208.13.27
80.252.0.145
210.212.239.182
69.85.209.10
65.55.206.203
114.80.76.172
188.227.175.178
213.186.119.131
123.125.71.99
216.14.231.42
199.21.99.90
80.243.182.205
80.243.191.67
91.217.178.236
173.44.37.234
193.105.210.84
173.44.37.226
91.217.178.224
58.22.158.22
188.143.232.80
220.161.150.114
188.143.232.203
112.111.181.125
110.90.31.93
192.162.19.171
188.143.232.33
91.217.178.220
96.47.225.178
188.143.234.21
91.207.6.118
58.22.158.88
188.143.232.156
199.19.109.246
176.31.106.146
89.252.58.37
112.111.179.195
91.207.5.174
46.183.162.60
98.142.212.112
188.143.232.83
189.85.30.106
186.200.12.15
58.185.166.243
91.207.6.86
178.137.165.24
173.234.19.196
76.73.68.186
79.142.66.135
84.42.3.12
89.28.124.238
94.158.34.15
91.195.183.210
188.72.202.152
95.173.40.118
204.45.210.65
173.208.37.178
94.158.34.61
94.158.34.61
184.82.200.78
220.96.223.199
194.187.151.104
188.143.232.110
173.212.198.71
121.52.146.89
64.120.31.241
222.165.130.214
210.213.139.85
173.224.218.99
217.170.97.242
61.213.158.124
87.126.247.51
190.241.128.214
173.234.159.51
117.204.168.228
200.21.205.217
173.242.112.78
139.132.12.19
187.49.174.245
190.8.32.47
209.62.26.82
69.163.39.233
213.208.139.2
189.85.30.106
188.92.75.148
61.67.7.140
173.234.11.92
67.22.99.211
212.65.244.147
69.147.240.193
174.140.172.7
80.86.201.83
173.234.19.228
217.10.246.2
173.234.54.50
173.234.38.21
212.160.130.217
64.120.248.211
173.224.218.156
203.92.211.166
69.147.240.178
210.89.91.45
41.190.16.17
222.165.130.214
173.208.124.235
69.45.74.253
82.143.255.135
122.146.153.135
178.49.12.75
202.229.99.154
200.192.89.231
212.154.216.50
91.107.169.30
93.174.93.37
89.248.168.40
89.248.172.10
91.201.66.21
195.131.117.44
78.109.84.129
91.201.66.81
200.223.206.78
178.64.43.74
91.214.44.35
212.117.164.8
91.214.47.166
213.197.183.254
173.208.70.41
118.97.72.37
193.54.76.50
98.198.30.164
213.131.35.59
99.24.203.198
74.117.58.121
93.93.184.177
212.118.103.69
220.227.80.238
201.20.18.165
216.218.211.56
93.190.139.148
91.201.66.44
89.248.168.40
174.34.169.182
213.5.71.163
91.201.66.31
173.208.70.36
121.96.213.71
213.5.69.179
212.117.164.64
80.67.13.101
188.168.87.81
77.240.81.20
217.6.171.194
121.96.214.134
74.115.6.56
173.234.46.63
91.212.226.41
81.213.109.99
72.37.244.20
213.5.69.179
81.191.229.167
125.168.56.240
81.9.62.213
95.168.183.233
174.136.4.38
94.136.160.108
91.201.66.5
200.101.66.123
144.71.169.20
74.206.98.195
61.192.219.190
192.239.84.73
163.15.183.29
85.25.86.215
195.127.150.117
204.236.254.16
77.233.4.138
213.134.176.111
69.69.215.196
203.216.220.11
202.133.50.204
115.42.158.18
188.168.85.131
67.198.133.163
184.154.211.250
46.119.126.48
77.65.48.239
188.143.232.68
117.26.202.126
110.90.85.136
218.6.8.19
82.193.109.248
91.236.74.139
94.27.66.28
188.227.176.154
80.243.181.194
108.62.211.106
93.182.189.37
109.173.69.114
175.42.95.136
188.138.149.40
46.119.123.17
93.182.173.13
80.243.182.205
1.11.0.0
1.11.255.255
1.16.0.0
1.19.255.255
1.96.0.0
1.111.255.255
1.176.0.0
1.177.255.255
1.201.0.0
1.201.255.255
1.208.0.0
1.255.255.255
14.4.0.0
14.7.255.255
14.32.0.0
14.95.255.255
14.128.128.0
14.129.255.255
14.138.0.0
14.138.255.255
14.192.80.0
14.192.95.255
14.206.0.0
14.206.255.255
27.1.0.0
27.1.255.255
27.35.0.0
27.35.255.255
27.96.128.0
27.96.191.255
27.100.128.0
27.102.255.255
27.111.96.0
27.111.127.255
27.112.128.0
27.113.127.255
27.115.128.0
27.115.255.255
27.116.64.0
27.117.255.255
27.118.64.0
27.120.63.255
27.122.128.0
27.122.255.255
27.124.128.0
27.125.127.255
27.126.0.0
27.126.63.255
27.160.0.0
27.183.255.255
27.232.0.0
27.239.255.255
27.255.64.0
27.255.127.255
39.4.0.0
39.7.255.255
36.38.0.0
36.39.255.255
39.16.0.0
39.31.255.255
39.112.0.0
39.127.255.255
42.8.0.0
42.47.255.255
42.82.0.0
42.82.255.255
49.1.0.0
49.1.255.255
49.8.0.0
49.11.255.255
49.16.0.0
49.31.255.255
49.50.0.0
49.50.3.255
49.50.16.0
49.50.63.255
49.50.128.0
49.50.191.255
49.63.255.255
49.128.192.0
49.128.223.255
49.142.0.0
49.143.223.255
49.160.0.0
49.175.255.255
49.236.191.255
49.238.64.0
49.238.255.255
49.239.128.0
49.239.191.255
49.246.0.0
49.246.127.255
49.254.0.0
49.254.255.255
58.29.0.0
58.29.255.255
58.65.64.0
58.65.127.255
58.72.0.0
58.79.255.255
58.87.32.0
58.87.63.255
58.102.0.0
58.103.255.255
58.120.0.0
58.127.255.255
58.138.192.0
58.138.255.255
58.140.0.0
58.143.255.255
58.145.0.0
58.145.127.255
58.146.192.0
58.146.255.255
58.147.176.0
58.147.183.255
58.148.0.0
58.151.255.255
58.180.0.0
58.181.63.255
58.184.0.0
58.184.255.255
58.224.0.0
58.239.255.255
59.0.0.0
59.31.255.255
59.86.192.0
59.86.255.255
59.150.0.0
59.150.255.255
59.151.192.0
59.151.255.255
59.152.128.0
 59.152.191.255
59.186.0.0
59.187.255.255
60.196.0.0
60.197.255.255
60.253.0.0
60.253.63.255
61.4.192.0
61.4.255.255
61.5.160.0
61.5.191.255
61.32.0.0
61.43.255.255
61.47.192.0
61.47.255.255
61.72.0.0
61.85.255.255
61.96.0.0
61.111.255.255
61.245.176.0
61.245.191.255
61.245.224.0
61.245.255.255
61.247.64.0
61.247.159.255
61.247.192.0
61.247.223.255
61.248.0.0
61.255.255.255
66.232.13
6.066.232.147.255
101.1.8.0
101.1.15.255
101.1.32.0
101.1.63.255
101.53.64.0
101.53.95.255
101.55.0.0
101.55.127.255
101.79.0.0
101.79.255.255
101.101.128.0
101.101.255.255
101.202.0.0
101.202.255.255
101.235.0.0
101.235.255.255
101.250.0.0
101.250.255.255
103.2.76.0
103.2.79.255
103.2.84.0
103.2.87.255
103.3.36.0
103.3.39.255
103.4.48.0
103.4.51.255
103.4.148.0
103.4.151.255
103.4.176.0
103.4.183.255
103.5.128.0
103.5.131.255
103.5.144.0
103.5.147.255
103.6.72.0
103.6.75.255
103.6.80.0
103.6.83.255
103.6.100.0
103.6.103.255
103.6.172.0
103.6.175.255
103.7.32.0
103.7.35.255
103.10.92.0
103.10.95.255
103.10.216.0
103.10.219.255
103.11.24.0
103.11.27.255
103.11.44.0
103.11.47.255
103.11.56.0
103.11.59.255
103.11.128.0
103.11.131.255
103.11.248.0
103.11.251.255
103.22.220.0
103.22.223.255

Thursday, April 12, 2012

A GCC/C++ Project I was working on..

/*
Tested on Ubuntu 9.10
To Make File: gcc filename.c -o filename
RUN File: ./filename
The Epic Junk code Project.
Program Outline:
0. default Options/Help menu.
1. Basic XOR Encrypt / Decrypt Files.
2. Hex Dumper.
3. Overwriting files data & removes file.
*/
#include "stdio.h"
#include "stdlib.h"
#define KEY_LENGTH 66
#define LINELEN 16
#define overWrite 4.E5
void printFileAsHex(FILE* file);
char toVisibleCharacter(int byteVal);
void writeLine(char* lineBuffer, int buflen);
char upperToHex(int byteVal);
char lowerToHex(int byteVal);
char nibbleToHex(int nibble);
#ifdef WIN32
#define CRLF "\r\n"
#else
#define CRLF "\n"
#endif
void printFileAsHex(FILE* file)
{
int count = 0;
char buffer[LINELEN];
while(1)
{
int byteVal = fgetc(file);
if(EOF == byteVal)
{
break;
}
buffer[count] = byteVal;
count++;
if(count >= LINELEN)
{
writeLine(buffer, LINELEN);
count = 0;
}
}
if(count > 0)
{
writeLine(buffer, count);
}
}
char toVisibleCharacter(int byteVal)
{
if(byteVal >= 32 && byteVal <= 126)
{
return (char) byteVal;
}
return '_';
}
void writeLine(char* lineBuffer, int buflen)
{
int i;
for(i=0; i<buflen; i++)
{
char chu = upperToHex(lineBuffer[i]);
char chl = lowerToHex(lineBuffer[i]);
printf("%c%c ", chu, chl);
}
if(buflen < LINELEN)
{
for(i = LINELEN - buflen; i>0; i--)
{
printf(".");
}
}
printf("\t");
for(i=0; i<buflen; i++)
{
char ch = toVisibleCharacter(lineBuffer[i]);
printf("%c", ch);
}
printf(CRLF);
}
char upperToHex(int byteVal)
{
int i = (byteVal & 0xF0) >> 4;
return nibbleToHex(i);
}
char lowerToHex(int byteVal)
{
int i = (byteVal & 0x0F);
return nibbleToHex(i);
}
char nibbleToHex(int nibble)
{
const int ascii_zero = 48;
const int ascii_a = 65;
if((nibble >= 0) && (nibble <= 9))
{
return (char) (nibble + ascii_zero);
}
if((nibble >= 10) && (nibble <= 15))
{
return (char) (nibble - 10 + ascii_a);
}
return '?';
}
unsigned char Random_Byte(void)
{
double result;
result = (double) rand() / (double) RAND_MAX;
result = result * 255.0;
return (unsigned char) result;
}
void Crypt(FILE *input, FILE *output)
{
unsigned char key[KEY_LENGTH];
int key_index, in_value;
unsigned char out_value, random_value;
int done;
for (key_index = 0; key_index < KEY_LENGTH; key_index++)
key[key_index] = Random_Byte();
fwrite(key, sizeof(unsigned char), KEY_LENGTH, output);
done = 0;
while (!done)
{
in_value = fgetc(input);
if (in_value >= 0)
{
out_value = (unsigned char) in_value;
random_value = Random_Byte();
for (key_index = 0; key_index < KEY_LENGTH; key_index++)
out_value = out_value ^ key[key_index];
out_value = out_value ^ random_value;
fputc(random_value, output);
fputc(out_value, output);
}
else
done = 1;
}
}
void Decrypt(FILE *input, FILE *output)
{
unsigned char key[KEY_LENGTH];
int key_index, in_value;
unsigned char random_value, out_value;
int done;
fread(key, sizeof(unsigned char), KEY_LENGTH, input);
done = 0;
while (!done)
{
in_value = fgetc(input);
if (in_value >= 0)
{
random_value = (unsigned char) in_value;
in_value = fgetc(input);
if (in_value >= 0)
{
out_value = (unsigned char) in_value;
out_value = out_value ^ random_value;
for (key_index = (KEY_LENGTH - 1); key_index >= 0; key_index--)
out_value = out_value ^ key[key_index];
fputc(out_value, output);
}
else
done = 1;
}
else
done = 1;
}
}
int main(int argc, char *argv[])
{
int x, i, choice = 0;
FILE *originalData, *input, *output, *file;
if (argc < 4)
{
printf("Menu~\n\n1.)Dump Hex of file.\n2.Help\n3.Safe-Remove file.\n>");
scanf("%d",&choice);
switch (choice)
{
case 1:
{
file = fopen(argv[1], "rb");
if(NULL == file)
{
printf("ERROR: Cannot open %s", argv[1]);
printf(CRLF);
return 2;
}
printFileAsHex(file);
fclose(file);
exit(0);
}
case 2:
{
printf("\nChipper7 Encryption \n");
printf("usage: chipper7 e|d <in_file> <out_file>\n");
printf("Use the `e' option to encrypt in_file, producing out_file.\n");
printf("Use the `d' option to decrypt out_file giving in_file.\n\n");
exit(0);
}
case 3:
{
printf("Overwriteing file data.\n");
for(x=0;x<15;x++)
{
printf(".");
originalData = fopen(argv[1], "wb");
if(NULL == originalData)
{
printf("ERROR: Cannot open %s", argv[1]);
printf(CRLF);
exit(0);
}
for(i=0;i<overWrite;i++)
{
if(x < 3)
fprintf(originalData,"102600100260001002600100");
if(x == 3)
fprintf(originalData, "26002600010001026002600");
if(x > 3)
fprintf(originalData, "26001000010000100000010");
}
fclose(originalData);
}
printf("\n\nSafe Remove of %s ...\nNow Killing file..", argv[1]);
remove(argv[1]);
printf("..Done.\n");
exit(0);
}
default:
{ printf("\33[0;28m illegal selection \n\n");
exit(0);
}
}
return 0;
}
if ( (argv[1][0] != 'e') && (argv[1][0] != 'd') )
{
printf("First agument must be `e' or `d'.\n");
return 1;
}
input = fopen(argv[2], "r");
if (!input)
{
printf("Cannot open %s for reading.\n", argv[2]);
return 1;
}
output = fopen(argv[3], "w");
if (!output)
{
printf("Cannot open %s for writting.\n", argv[3]);
fclose(input);
return 1;
}
file = fopen(argv[2], "rb");
if(NULL == file)
{
printf("ERROR: Cannot open %s", argv[2]);
printf(CRLF);
return 2;
}
printFileAsHex(file);
fclose(file);
printf("Working......");
srand( time(NULL) );
if (argv[1][0] == 'e')
Crypt(input, output);
else
Decrypt(input, output);
printf("....Done.\n");
fclose(input);
fclose(output);
return 0;
}