How to be a hacker ?

Discussion in 'Computer Science & Culture' started by Seeker01, Oct 13, 2002.

Thread Status:
Not open for further replies.
  1. GRO$$ Registered Senior Member

    Messages:
    304
    as far as the original comment, there will always be hackers (unless we live under perfect communism, but then everything will be perfect... so w/e)
     
  2. Google AdSense Guest Advertisement



    to hide all adverts.
  3. Benji Registered Senior Member

    Messages:
    306
    We'r getting the deffinitions wrong again people.

    Do some research?

    BTW Microsoft dont make software, they make excuses

    Please Register or Log in to view the hidden image!

     
  4. Google AdSense Guest Advertisement



    to hide all adverts.
  5.          Reign Mack Registered Senior Member

    Messages:
    58
    while we are on the subject of microsoft and stuff does anyoen know where I can find EVO-X I need to flash this damn bios chip.
     
  6. Google AdSense Guest Advertisement



    to hide all adverts.
  7. Adam §Þ@ç€ MØnk€¥ Registered Senior Member

    Messages:
    7,415
    I am living currently at my university. More hacking goes on within a university than anywhere else, except perhaps the military/government. You need to learn some computer security stuff here (thus far I know nothing about hacking, but I have more firewalls than anyone really needs). Since people are out there being silly, I'm quite happy to hear any tips people have.
     
  8. Sir Aristrotle The C.E.O. of Teen-Moods Registered Senior Member

    Messages:
    152
    hacking with only intent to learn about my computer's security is boring to me, I like to case mod.
     
  9. Stryder Keeper of "good" ideas. Valued Senior Member

    Messages:
    13,105
    Adam, you should ask yourself if you need so many firewalls, afterall you should look at what they actualy do.

    I mean you can have a program stop ports being opened at your end, or stop them being listened to. Perhaps the program has the ability to shut down the communication of threads in your Kernel (This for a code writer would be worthwhile, but it would take some tweaking to work out what should be communicating with the kernel).

    You then need something to make sure that when your processes run, they are the same as they were when they installed. This is to try and stop the trojans that can get into a system even through a firewall (take for instance the I-worm)

    If you truly want to secure your system, then don't use it on the net. This is the only way of keeping important data safe, along with backing up regularly.

    (Oh, yes that will bring back the War Dialers)
     
  10. Rick Valued Senior Member

    Messages:
    3,336
    Perl:an Essential for Hackers

    Perl was invented by Larry Wall. He called it Practical Extraction and Reporting Language (he also calls it Pathologically Eclectic Rubbish Lister). What started as an exercise in unifying multiple tools used to write scripts to make routine tasks of a system adminstrator evolved into a powerful scripting language with lots of followers.

    In all fairness, Perl (written always as Perl and not as PERL), is now treated as a generic programming language, though its early beginnings as a melting pot of multiple computing paradigms still make it possible to write undecipherable programs! We will try to get an introduction to Perl and its prowess as a text manipulation language without trying to write cryptic programs.

    According to Larry Wall, the parents of Perl are

    COMPUTER SCIENCE

    LINGUISTICS Perl COMMON SENSE

    ART

    So, Perl is a computer language that helps to implement some common sense with help from the principles of computer science in an artistic way using common linguistic constructs.

    1.1 Short History
    Like mentioned before, Perl was born as a tool to aid system administrators. In 1986, Larry Wall was asked to build a bi-coastal CM system in a very short time. That, he did and then his manager asked to produce reports from the system. Awk in those days did not have the capability to manage multiple input files and hence the new language was born.

    Primarily, the new language was aimed at getting things done quickly with data from and to multiple files.


    1.2 Evolution
    From a quick hack by one system administrator, Perl has grown into a full-fledged language. It is being developed and enhanced continuously by hundreds of programmers around the world. One big step in earning recognition was the addition of regular expression engine. Now, the regular expression capabilities of Perl are so well known (especially since version 5.0), that it is being used in other languages like Python as Perl5 regex'es.

    The growth of Internet also complemented Perl. The initial attempt at providing dynamic content was through CGI (even now CGI is used extensively), and Perl's remarkable text handling features made it a quick fit. CGI programming is now synonymous with Perl programming.

    CPAN - Comprehensive Perl Archive Network, was set up to share Perl code. Perl supports modules and chances are that for 99% of the programming requirements, there is already a tested module in CPAN (for the remaining 1%, write modules and contribute to CPAN!). Using modules really mask the complexities of adhering to pre-defined standards and frees you to concentrate on your tasks - no point in re-inventing the wheel. Now, you have modules which handles graphics, CGI etc...

    You can also embed Perl code in your C/C++ programs. A very popular embedded Perl architecture is mod_perl for Apache web server.

    JAPH is a project to get Java and Perl working together.


    1.3 Relevance


    Data manipulation
    Perl can handle strings, dates, binary data, database connectivity, streams, sockets and many more. This ability to manipulate multiple data types help immensely in data conversion (and by the way, it is much faster than PL/SQL!). Perl also has provision for lists (or arrays) and for hashes (associative arrays). Perl also supports references, which are similar to the pointers in C. Lists, hashes and references together make it possible to define and manipulate powerful custom-defined data-types.


    Glue language
    Perl does not differentiate between files and pipes. So, it makes it very easy to use Perl as a glue language. Suppose you have a sed script, the output of which is to be given to a Perl script. You can do this the UNIX way,

    sedscript | perlscript

    or the perl way
    perlscript
    open(FH,"sedscript|") or die "could not open sedscript\n"l
    ...

    This really helps when people want to migrate from traditional UNIX tools like Awk, sed, grep etc... You can use these tools straightaway instead of worrying on how to do the same thing entirely in Perl.
    In this aspect, Perl is just like shell. However, we must consider other features of Perl, which shell simply cannot provide easily.



    CGI
    CGI.pm. Period. Almost all CGI programs written today are using the CGI.pm module from CPAN. Even before this was written, people used to use Perl extensively for CGI programming. CGI.pm made the process streamlined and easy, even for beginners. The graphics library GD is used extensively in producing dynamic web charts.


    Quick coding
    The ease with which Perl can be employed to write programs quickly cannot be overstressed. A disturbing fact about this is that such quick code can tend to be dirty and quickly get out of hand if you keep extending it! Most of the time, you must control your urges to over-extend short programs! But, as a prototyping tool, or as a fast reporting/text-processing tool, Perl is immensely helpful.

    Two very good tools worth mentioning in this context are s2p and a2p tools which come with the Perl distribution. s2p converts a sed script to Perl script and a2p converts from Awk scripts. These two help a lot in extending sed and awk scripts.


    Portability
    Most of the Perl code will run without any change in Unix or Windows or Macintosh. Typical changes you might have to make include specifying file paths and use of low-level OS specific functions.


    1.4 Installation
    Just go to http://www.perl.com and download the source or pre-compiled binaries. Installation typically includes extracting the binary and then changing your PATH variable to reflect where Perl executable resides. Even when you want to compile Perl from scratch, it is a simple job.


    1.5 Similarities to common languages/tools
    Perl has a remarkable resemblance to the syntax of C, AWK, SED and SHELL.


    C
    99% of code looks like C code. So, it is very easy for C programmers to switch to Perl. And believe me, the code as you go philosophy of Perl really makes C programmers happy - especially for small programs. All C functions that are available through standard libraries are available with little or no change at all in Perl.


    AWK & SED
    The string processing strategy of Perl is very similar to that of Awk and sed, making it easy to migrate.


    Shell
    Again, the commenting scheme, variable naming scheme etc of Perl look similar to that of Shell. Many shell utilities like grep, tr etc are available as functions within Perl.

    2.1 First Step
    Ever since Kernighan and Ritchie came out with C programming language, people have started learning almost any programming language with the obligatory "Hello World" program. Let us do the same!


    Hello World!
    Here is the basic perl program that we'll use to get started.


    --------------------------------------------------------------------------------

    #! /usr/local/bin/perl
    #
    # prints a greeting.
    #
    print 'Hello world.'; # Print a message


    --------------------------------------------------------------------------------


    Comments
    A common Perl-pitfall is to write cryptic code. In that context, Perl do provide for comments, albeit not very flexible. Perl treats any thing from a hash # to the end of line as a comment. Block comments are not possible. So, if you want to have a block of comments, you must ensure that each line starts with #.


    Statements
    Everything other than comments are Perl statements, which must end with a semicolon, like the last line above. Unlike C, you need not put a wrapping character \ for long statements. A Perl statement always ends with a semicolon.


    2.2 Running Perl
    Type in the example program using a text editor, and save it. The first line of the program is a typical shell construct, which will make the shell start the interpreter and feed the remaining lines of the file as an input to the interpreter.

    After you've entered and saved the program make sure the file is executable by using the command

    chmod u+x progname

    at the UNIX prompt, where progname is the filename of the program. Now, to run the program, just type any of the following at the prompt.
    perl progname
    ./progname
    progname

    If something goes wrong then you may get error messages, or you may get nothing. You can always run the program with warnings using the command
    perl -w progname

    at the prompt. This will display warnings and other (hopefully) helpful messages before it tries to execute the program. To run the program with a debugger use the command
    perl -d progname

    When the file is executed Perl first compiles it and then executes that compiled version. Unlike many other interpreted languages, Perl scripts are compiled first, helping you to catch most of errors before program actually starts executing. In this context, the -w switch is very helpful. It will warn you about unused variables, suspicious statements etc.


    2.3 Scalars
    Perl supports 3 basic types of variables, viz., scalars, lists and hashes. We will explore each of these little more.

    The most basic kind of variable in Perl is the scalar variable. Scalar variables hold both strings and numbers, and are remarkable in that strings and numbers are completely interchangeable. For example, the statement

    $age = 27;

    sets the scalar variable $age to 27, but you can also assign a string to exactly the same variable:
    $age = 'Twenty Seven';

    Perl also accepts numbers as strings, like this:
    $priority = '9';
    $default = '0009';

    and can still cope with arithmetic and other operations quite happily. However, please note that the following code is a bit too much to ask for!
    $age = 'Twenty Seven';
    $age = $age + 10;

    For the curious, the above code will set $age to 10. Think why.
    In general variable names consists of numbers, letters and underscores, but they should not start with a number and the variable $_ is special, as we'll see later. Also, Perl is case sensitive, so $a and $A are different.


    Operations and Assignment

    Perl uses all the usual C arithmetic operators:

    $a = 1 + 2; # Add 1 and 2 and store in $a
    $a = 3 - 4; # Subtract 4 from 3 and store in $a
    $a = 5 * 6; # Multiply 5 and 6
    $a = 7 / 8; # Divide 7 by 8 to give 0.875
    $a = 9 ** 10; # Nine to the power of 10
    $a = 5 % 2; # Remainder of 5 divided by 2
    ++$a; # Increment $a and then return it
    $a++; # Return $a and then increment it
    --$a; # Decrement $a and then return it
    $a--; # Return $a and then decrement it

    and for strings Perl has the following among others:
    $a = $b . $c; # Concatenate $b and $c
    $a = $b x $c; # $b repeated $c times

    To assign values Perl includes
    $a = $b; # Assign $b to $a
    $a += $b; # Add $b to $a
    $a -= $b; # Subtract $b from $a
    $a .= $b; # Append $b onto $a

    Note that when Perl assigns a value with $a = $b it makes a copy of $b and then assigns that to $a. Therefore the next time you change $b it will not alter $a.
    Other operators can be found on the perlop manual page. Type man perlop at the prompt.


    Interpolation
    The following code prints apples and pears using concatenation:

    $a = 'apples';
    $b = 'pears';
    print $a.' and '.$b;

    It would be nicer to include only one string in the final print statement, but the line
    print '$a and $b';

    prints literally $a and $b which isn't very helpful. Instead we can use the double quotes in place of the single quotes:
    print "$a and $b";

    The double quotes force interpolation of any codes, including interpreting variables. This is a much nicer than our original statement. Other codes that are interpolated include special characters such as newline and tab. The code \n is a newline and \t is a tab.


    Exercise
    This exercise is to rewrite the Hello world program so that (a) the string is assigned to a variable and (b) this variable is then printed with a newline character. Use the double quotes and don't use the concatenation operator.


    2.4 Lists (Arrays)
    A slightly more interesting kind of variable is the list variable which is an array of scalars (i.e. numbers and strings). From now on, we will use the terms list and array interchangeably.

    Array variables have the same format as scalar variables except that they are prefixed by an @ symbol. The statement

    @food = ("apples", "pears", "eels");
    @music = ("whistle", "flute");

    assigns a three element list to the array variable @food and a two element list to the array variable @music.
    The array is accessed by using indices starting from 0, and square brackets are used to specify the index. The expression

    $food[2]

    returns eels. Notice that the @ has changed to a $ because eels is a scalar.

    Array assignments
    As in all of Perl, the same expression in a different context can produce a different result. The first assignment below explodes the @music variable so that it is equivalent to the second assignment.

    @moremusic = ("organ", @music, "harp");
    @moremusic = ("organ", "whistle", "flute", "harp");

    This should suggest a way of adding elements to an array. A neater way of adding elements is to use the statement
    push(@food, "eggs");

    which pushes eggs onto the end of the array @food. To push two or more items onto the array use one of the following forms:
    push(@food, "eggs", "lard");
    push(@food, ("eggs", "lard"));
    push(@food, @morefood);

    The push function returns the length of the new list. So does $#food !


    To remove the last item from a list and return it use the pop function. From our original list the pop function returns eels and @food now has two elements:


    $grub = pop(@food); # Now $grub = "eels"



    It is also possible to assign an array to a scalar variable. As usual context is important. The line

    $f = @food;

    assigns the length of @food, but
    $f = "@food";

    turns the list into a string with a space between each element. This space can be replaced by any other string by changing the value of the special $" variable. This variable is just one of Perl's many special variables, most of which have odd names.
    When you get overloaded with oddity, use the English module which lets you name these variables in more user-friendly (i.e. to English-speaking people) way.

    Arrays can also be used to make multiple assignments to scalar variables:

    ($a, $b) = ($c, $d); # Same as $a=$c; $b=$d;
    ($a, $b) = @food; # $a and $b are the first two
    # items of @food.
    ($a, @somefood) = @food; # $a is the first item of @food
    # @somefood is a list of the
    # others.
    (@somefood, $a) = @food; # @somefood is @food and
    # $a is undefined.

    The last assignment occurs because arrays are greedy, and @somefood will swallow up as much of @food as it can. Therefore that form is best avoided.
    Finally, you may want to find the index of the last element of a list. To do this for the @food array use the expression

    $#food


    Displaying arrays
    Since context is important, it shouldn't be too surprising that the following all produce different results:

    print @food; # By itself
    print "@food"; # Embedded in double quotes
    print @food.""; # In a scalar context


    2.5 Hashes (Associative Arrays)
    Ordinary list arrays allow us to access their element by number. The first element of array @food is $food[0]. The second element is $food[1], and so on. But Perl also allows us to create arrays which are accessed by string. These are called associative arrays or hashes.



    To define an associative array we use the usual parenthesis notation, but the array itself is prefixed by a % sign. Suppose we want to create an array of people and their ages. It would look like this:

    %ages = ("Michael Caine", 39,
    "Dirty Den", 34,
    "Angie", 27,
    "Willy", "21 in dog years",
    "The Queen Mother", 108);

    Now we can find the age of people with the following expressions
    $ages{"Michael Caine"}; # Returns 39
    $ages{"Dirty Den"}; # Returns 34
    $ages{"Angie"}; # Returns 27
    $ages{"Willy"}; # Returns "21 in dog years"
    $ages{"The Queen Mother"}; # Returns 108

    Notice that like list arrays each % sign has changed to a $ to access an individual element because that element is a scalar. Unlike list arrays the index (in this case the person's name) is enclosed in curly braces, the idea being that associative arrays are fancier than list arrays.


    An associative array can be converted back into a list array just by assigning it to a list array variable. A list array can be converted into an associative array by assigning it to an associative array variable. Ideally the list array will have an even number of elements:

    @info = %ages; # @info is a list array. It
    # now has 10 elements
    $info[5]; # Returns the value 27 from
    # the list array @info
    %moreages = @info; # %moreages is an associative
    # array. It is the same as %ages



    Operators

    Associative arrays do not have any order to their elements (they are just like hash tables) but is it possible to access all the elements in turn using the keys function and the values function:

    foreach $person (keys %ages)
    {
    print "I know the age of $person\n";
    }
    foreach $age (values %ages)
    {
    print "Somebody is $age\n";
    }

    When keys is called it returns a list of the keys (indices) of the associative array. When values is called it returns a list of the values of the array. These functions return their lists in the same order, but this order has nothing to do with the order in which the elements have been entered.


    When keys and values are called in a scalar context they return the number of key/value pairs in the associative array.



    There is also a function each which returns a two element list of a key and its value. Every time each is called it returns another key/value pair:

    while (($person, $age) = each(%ages))
    {
    print "$person is $age\n";
    }



    Environment variables

    When you run a perl program, or any script in UNIX, there will be certain environment variables set. These will be things like USER which contains your username and DISPLAY which specifies which screen your graphics will go to. When you run a perl CGI script on the World Wide Web there are environment variables which hold other useful information. All these variables and their values are stored in the associative %ENV array in which the keys are the variable names. Try the following in a perl program:

    print "You are called $ENV{'USER'} and you are ";
    print "using display $ENV{'DISPLAY'}\n";


    2.6 Control Structures

    More interesting possibilities arise when we introduce control structures and looping. Perl supports lots of different kinds of control structures which tend to be like those in C, but are very similar to Pascal, too. Here we discuss a few of them.



    foreach

    To go through each line of an array or other list-like structure (such as lines in a file) Perl uses the foreach structure. This has the form

    foreach $morsel (@food) # Visit each item in turn
    # and call it $morsel
    {
    print "$morsel\n"; # Print the item
    print "Yum yum\n"; # That was nice
    }

    The actions to be performed each time are enclosed in a block of curly braces. The first time through the block $morsel is assigned the value of the first item in the array @food. Next time it is assigned the value of the second item, and so until the end. If @food is empty to start with then the block of statements is never executed.


    Testing

    The next few structures rely on a test being true or false. In Perl any non-zero number and non-empty string is counted as true. The number zero, zero by itself in a string, and the empty string are counted as false. Here are some tests on numbers and strings.

    $a == $b # Is $a numerically equal to $b?
    # Beware: Don't use the = operator.
    $a != $b # Is $a numerically unequal to $b?
    $a eq $b # Is $a string-equal to $b?
    $a ne $b # Is $a string-unequal to $b?



    You can also use logical and, or and not:

    ($a && $b) # Is $a and $b true?
    ($a || $b) # Is either $a or $b true?
    !($a) # is $a false?



    for

    Perl has a for structure that mimics that of C. It has the form

    for (initialise; test; inc)
    {
    first_action;
    second_action;
    etc
    }

    First of all the statement initialise is executed. Then while test is true the block of actions is executed. After each time the block is executed inc takes place. Here is an example for loop to print out the numbers 0 to 9.

    for ($i = 0; $i < 10; ++$i) # Start with $i = 1
    # Do it while $i < 10
    # Increment $i before repeating
    {
    print "$i\n";
    }



    while and until

    Here is a program that reads some input from the keyboard and won't continue until it is the correct password

    #!/usr/local/bin/perl
    print "Password? "; # Ask for input
    $a = ; # Get input
    chop $a; # Remove the newline at end
    while ($a ne "fred") # While input is wrong...
    {
    print "sorry. Again? "; # Ask again
    $a = ; # Get input again
    chop $a; # Chop off newline again
    }

    The curly-braced block of code is executed while the input does not equal the password. The while structure should be fairly clear, but this is the opportunity to notice several things. First, we can we read from the standard input (the keyboard) without opening the file first. Second, when the password is entered $a is given that value including the newline character at the end. The chop function removes the last character of a string which in this case is the newline.


    To test the opposite thing we can use the until statement in just the same way. This executes the block repeatedly until the expression is true, not while it is true.



    Another useful technique is putting the while or until check at the end of the statement block rather than at the beginning. This will require the presence of the do operator to mark the beginning of the block and the test at the end. If we forgo the sorry. Again message in the above password program then it could be written like this.

    #!/usr/local/bin/perl
    do
    {
    print "Password? "; # Ask for input
    $a = ; # Get input
    chop $a; # Chop off newline
    }
    while ($a ne "fred") # Redo while wrong input


    Exercise

    Modify the program from the previous exercise so that each line of the file is read in one by one and is output with a line number at the beginning. You should get something like:

    1 root

    Please Register or Log in to view the hidden image!

    YpYXm/qRO6N2:0:0:Super-User:/:/bin/csh
    2 sysadm:*:0:0:System V Administration:/usr/admin:/bin/sh
    3 diag:*:0:996:Hardware Diagnostics:/usr/diags:/bin/csh
    etc

    You may find it useful to use the structure
    while ($line = )
    {
    ...
    }

    When you have done this see if you can alter it so that line numbers are printed as 001, 002, ..., 009, 010, 011, 012, etc. To do this you should only need to change one line by inserting an extra four characters. Perl's clever like that.


    if-else
    Of course Perl also allows if/then/else statements. These are of the following form:

    if ($a)
    {
    print "The string is not empty\n";
    }
    else
    {
    print "The string is empty\n";
    }

    For this, remember that an empty string is considered to be false. It will also give an "empty" result if $a is the string 0.


    It is also possible to include more alternatives in a conditional statement:

    if (!$a) # The ! is the not operator
    {
    print "The string is empty\n";
    }
    elsif (length($a) == 1) # If above fails, try this
    {
    print "The string has one character\n";
    }
    elsif (length($a) == 2) # If that fails, try this
    {
    print "The string has two characters\n";
    }
    else # Now, everything has failed
    {
    print "The string has lots of characters\n";
    }

    In this, it is important to notice that the elsif statement really does have an "e" missing.
    Sometimes, it is more readable to use unless instead of if (!...) . The switch-case statement familiar to C programmers are not available in Perl. You can simulate it in other ways. See the manual pages.


    Exercise
    From the previous exercise you should have a program which prints out the password file with line numbers. Change it so that works with the text file. Now alter the program so that line numbers aren't printed or counted with blank lines, but every line is still printed, including the blank ones. Remember that when a line of the file is read in it will still include its newline character at the end.


    2.7 File operations
    Here is the basic perl program which does the same as the UNIX cat command on a certain file.

    #!/usr/local/bin/perl
    #
    # Program to open the password file, read it in,
    # print it, and close it again.

    $file = '/etc/passwd'; # Name the file
    open(INFO, $file); # Open the file
    @lines = ; # Read it into an array
    close(INFO); # Close the file
    print @lines; # Print the array



    The open function opens a file for input (i.e. for reading). The first parameter is the filehandle which allows Perl to refer to the file in future. The second parameter is an expression denoting the filename. If the filename was given in quotes then it is taken literally without shell expansion. So the expression '~/notes/todolist' will not be interpreted successfully. If you want to force shell expansion then use angled brackets: that is, use <~/notes/todolist> instead.



    The close function tells Perl to finish with that file.



    There are a few useful points to add to this discussion on file-handling. First, the open statement can also specify a file for output and for appending as well as for input. To do this, prefix the filename with a > for output and a >> for appending:

    open(INFO, $file); # Open for input
    open(INFO, ">$file"); # Open for output
    open(INFO, ">>$file"); # Open for appending
    open(INFO, "<$file"); # Also open for input



    Second, if you want to print something to a file you've already opened for output then you can use the print statement with an extra parameter. To print a string to the file with the INFO filehandle use

    print INFO "This line goes to the file.\n";



    Third, you can use the following to open the standard input (usually the keyboard) and standard output (usually the screen) respectively:

    open(INFO, '-'); # Open standard input
    open(INFO, '>-'); # Open standard output

    In the above program the information is read from a file. The file is the INFO file and to read from it Perl uses angled brackets. So the statement

    @lines = ;

    reads the file denoted by the filehandle into the array @lines. Note that the expression reads in the file entirely in one go. This is because the reading takes place in the context of an array variable. If @lines is replaced by the scalar $lines then only the next one line would be read in. In either case each line is stored complete with its newline character at the end.


    Exercise

    Modify the above program so that the entire file is printed with a # symbol at the beginning of each line. You should only have to add one line and modify another. Use the $" variable. Unexpected things can happen with files, so you may find it helpful to use the -w option.


    Extending pipes
    You can very easily substitute reading a file to reading a pipe. The following example shows reading the ouput of the ps command.

    open(PS,"ps -aef|") or die "Cannot open ps \n";
    while(){
    print ;
    }
    close(PS);


    2.8 String Processing
    One of the most useful features of Perl (if not the most useful feature) is its powerful string manipulation facilities. At the heart of this is the regular expression (RE) which is shared by many other UNIX utilities.


    Regular expressions

    A regular expression is contained in slashes, and matching occurs with the =~ operator. The following expression is true if the string the appears in variable $sentence.

    $sentence =~ /the/

    The RE is case sensitive, so if
    $sentence = "The quick brown fox";

    then the above match will be false. The operator !~ is used for spotting a non-match. In the above example
    $sentence !~ /the/

    is true because the string the does not appear in $sentence.


    The $_ special variable

    We could use a conditional as

    if ($sentence =~ /under/)
    {
    print "We're talking about rugby\n";
    }

    which would print out a message if we had either of the following
    $sentence = "Up and under";
    $sentence = "Best winkles in Sunderland";

    But it's often much easier if we assign the sentence to the special variable $_ which is of course a scalar. If we do this then we can avoid using the match and non-match operators and the above can be written simply as
    if (/under/)
    {
    print "We're talking about rugby\n";
    }

    The $_ variable is the default for many Perl operations and tends to be used very heavily.

    More on REs

    In an RE there are plenty of special characters, and it is these that both give them their power and make them appear very complicated. It's best to build up your use of REs slowly; their creation can be something of an art form.



    Here are some special RE characters and their meaning

    . # Any single character except a newline
    ^ # The beginning of the line or string
    $ # The end of the line or string
    * # Zero or more of the last character
    + # One or more of the last character
    ? # Zero or one of the last character

    and here are some example matches. Remember that should be enclosed in /.../ slashes to be used.
    t.e # t followed by anthing followed by e
    # This will match the
    # tre
    # tle
    # but not te
    # tale
    ^f # f at the beginning of a line
    ^ftp # ftp at the beginning of a line
    e$ # e at the end of a line
    tle$ # tle at the end of a line
    und* # un followed by zero or more d characters
    # This will match un
    # und
    # undd
    # unddd (etc)
    .* # Any string without a newline. This is because
    # the . matches anything except a newline and
    # the * means zero or more of these.
    ^$ # A line with nothing in it.



    There are even more options. Square brackets are used to match any one of the characters inside them. Inside square brackets a - indicates "between" and a ^ at the beginning means "not":

    [qjk] # Either q or j or k
    [^qjk] # Neither q nor j nor k
    [a-z] # Anything from a to z inclusive
    [^a-z] # No lower case letters
    [a-zA-Z] # Any letter
    [a-z]+ # Any non-zero sequence of lower case letters

    At this point you can probably skip to the end and do at least most of the exercise. The rest is mostly just for reference.


    A vertical bar | represents an "or" and parentheses (...) can be used to group things together:

    jelly|cream # Either jelly or cream
    (eg|le)gs # Either eggs or legs
    (da)+ # Either da or dada or dadada or...



    Here are some more special characters:

    \n # A newline
    \t # A tab
    \w # Any alphanumeric (word) character.
    # The same as [a-zA-Z0-9_]
    \W # Any non-word character.
    # The same as [^a-zA-Z0-9_]
    \d # Any digit. The same as [0-9]
    \D # Any non-digit. The same as [^0-9]
    \s # Any whitespace character: space,
    # tab, newline, etc
    \S # Any non-whitespace character
    \b # A word boundary, outside [] only
    \B # No word boundary



    Clearly characters like $, |, [, ), \, / and so on are peculiar cases in regular expressions. If you want to match for one of those then you have to preceed it by a backslash. So:

    \| # Vertical bar
    \[ # An open square bracket
    \) # A closing parenthesis
    \* # An asterisk
    \^ # A carat symbol
    \/ # A slash
    \\ # A backslash

    and so on.

    Some example REs

    As was mentioned earlier, it's probably best to build up your use of regular expressions slowly. Here are a few examples. Remember that to use them for matching they should be put in /.../ slashes

    [01] # Either "0" or "1"
    \/0 # A division by zero: "/0"
    \/ 0 # A division by zero with a space: "/ 0"
    \/\s0 # A division by zero with a whitespace:
    # "/ 0" where the space may be a tab etc.
    \/ *0 # A division by zero with possibly some
    # spaces: "/0" or "/ 0" or "/ 0" etc.
    \/\s*0 # A division by zero with possibly some
    # whitespace.
    \/\s*0\.0* # As the previous one, but with decimal
    # point and maybe some 0s after it. Accepts
    # "/0." and "/0.0" and "/0.00" etc and
    # "/ 0." and "/ 0.0" and "/ 0.00" etc.
    # Check for valid currency value
    ^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(\.[0-9]{1,2})?$
    # Check for valid email address
    ^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$



    Exercise

    Previously your program counted non-empty lines. Alter it so that instead of counting non-empty lines it counts only lines with

    the letter x
    the string the
    the string the which may or may not have a capital t
    the word the with or without a capital. Use \b to detect word boundaries.
    In each case the program should print out every line, but it should only number those specified. Try to use the $_ variable to avoid using the =~ match operator explicitly.
    Substitution & Translation
    Just like the sed and tr utilities in Unix, you have s/// and tr/// in Perl. The former is for substitution and the later is for translation.

    $bar =~ s/this/that/g; # change this to that in $bar
    $path =~ s|/usr/bin|/usr/local/bin|;

    s/\bgreen\b/mauve/g; # don't change wintergreen

    s/Login: $foo/Login: $bar/; # run-time pattern
    $count = ($paragraph =~ s/Mister\b/Mr./g); # get change-count

    $program =~ s {
    /\* # Match the opening delimiter.
    .*? # Match a minimal number of characters.
    \*/ # Match the closing delimiter.
    } []gsx; # Delete (most) C comments.

    s/^\s*(.*?)\s*$/$1/; # trim white space in $_, expensively
    for ($variable) { # trim white space in $variable, cheap
    s/^\s+//;
    s/\s+$//;
    }

    s/([^ ]*) *([^ ]*)/$2 $1/; # reverse 1st two fields

    #Note the use of $ instead of \ in the last example. Unlike sed,
    #we use the \ form in only the left hand side.
    #Anywhere else it's $.

    $myname = "BABU";
    $myname =~ tr/[A-Z]/[a-z]/ ; # yields babu


    Splitting
    Perl provides a split function to split strings, based on REs. The syntax is

    split /PATTERN/,EXPR,LIMIT
    split /PATTERN/,EXPR
    split /PATTERN/
    split

    If EXPR is omitted, $_ is used. If PATTERN is also omitted, splits on whitespaces, after skipping leading whitespaces. LIMIT sets the maximum fields returned - so this can be used to split partially. Some examples are given below:
    # process the password file
    open(PASSWD, '/etc/passwd');
    while () {
    ($login, $passwd, $uid, $gid,
    $gcos, $home, $shell) = split(/:/);
    # note that $shell still has a new line.
    # use chop or chomp to remove the newline
    #...
    ($login, $passwd, $remainder) = split(/:/, $_, 3);
    # here we use LIMIT to set the number of fields

    }

    We also have join which is the opposite of split. For fixed length strings, we have unpack and pack functions.

    2.9 Subroutines
    Like any good programming language Perl allows the user to define their own functions, called subroutines. They may be placed anywhere in your program but it's probably best to put them all at the beginning or all at the end. A subroutine has the form

    sub mysubroutine
    {
    print "Not a very interesting routine\n";
    print "This does the same thing every time\n";
    }

    regardless of any parameters that we may want to pass to it. All of the following will work to call this subroutine. Notice that a subroutine is called with an & character in front of the name:
    &mysubroutine; # Call the subroutine
    &mysubroutine($_); # Call it with a parameter
    &mysubroutine(1+2, $_); # Call it with two parameters



    Parameters


    In the above case the parameters are acceptable but ignored. When the subroutine is called any parameters are passed as a list in the special @_ list array variable. This variable has absolutely nothing to do with the $_ scalar variable. The following subroutine merely prints out the list that it was called with. It is followed by a couple of examples of its use.

    sub printargs
    {
    print "@_\n";
    }

    &printargs("perly", "king"); # Example prints "perly king"
    &printargs("frog", "and", "toad"); # Prints "frog and toad"

    Just like any other list array the individual elements of @_ can be accessed with the square bracket notation:
    sub printfirsttwo
    {
    print "Your first argument was $_[0]\n";
    print "and $_[1] was your second\n";
    }

    Again it should be stressed that the indexed scalars $_[0] and $_[1] and so on have nothing to with the scalar $_ which can also be used without fear of a clash.


    Returning values

    Result of a subroutine is always the last thing evaluated. This subroutine returns the maximum of two input parameters. An example of its use follows.

    sub maximum
    {
    if ($_[0] > $_[1])
    {
    $_[0];
    }
    else
    {
    $_[1];
    }
    }

    $biggest = &maximise(37, 24); # Now $biggest is 37

    The &printfirsttwo subroutine above also returns a value, in this case 1. This is because the last thing that subroutine did was a print statement and the result of a successful print statement is always 1.


    Local variables

    The @_ variable is local to the current subroutine, and so of course are $_[0], $_[1], $_[2], and so on. Other variables can be made local too, and this is useful if we want to start altering the input parameters. The following subroutine tests to see if one string is inside another, spaces not withstanding. An example follows.


    sub inside
    {
    local($a, $b); # Make local variables
    ($a, $b) = ($_[0], $_[1]); # Assign values
    $a =~ s/ //g; # Strip spaces from
    $b =~ s/ //g; # local variables
    ($a =~ /$b/ || $b =~ /$a/); # Is $b inside $a
    # or $a inside $b?
    }

    &inside("lemon", "dole money"); # true

    In fact, it can even be tidied up by replacing the first two lines with
    local($a, $b) = ($_[0], $_[1]);


    2.10 More information
    Only a very brief of Perl is covered in this tutorial. The easiest way to lern Perl is to look at existing code. The Perl manual pages and FAQ's are really superb and will help you a lot. Unless until you are sure, run Perl with the -w switch!

    ...

    more to follow...
    Disclamer:this is intended for purely educational purpose and not for anything else.I dont know the Second part was written by whom,but if someone wants to claim the copyrights i dont mind...


    thanks...

    bye!
     
  11. Rick Valued Senior Member

    Messages:
    3,336
    Some More Hacker manuals:SSL TUNNELING...

    Hi,
    this is an extract from various sites:
    ----------------------------------------------------------------
    securitywritersguild..

    happyhacker.org...
    crosswinds...

    compiled together suitably.
    What is SSL?

    SSL stands for Secure Socket Layer. The 'Secure' implies an
    encryption, while Socket Layer denotes an addition to the Window Socket system,
    Winsock. For those that don't know, a Socket is an attachment to a port
    on a system. You can have many sockets on one port, providing they are
    non-blocking (allowing control to pass through to another socket aware
    application which wishes to connect to that port).

    A Secure Socket Layer means that any sockets under it, are both secure
    and safe. The idea behind SSL was to provide an encrypted, and thus,
    secure route for traffic along a socket based system, such as TCP/IP
    (the internet protocol). Doing this allows security in credit card
    transactions on the Internet, encrypted and protected communiqué along a
    data line, and overall peace of mind.

    The SSL uses an encryption standard developed by RSA. RSA are a world
    respected American organisation that specializes in encryption and data
    security. Initially, they developed a cipher length of only 40 bits, for
    use with the Secure Socket Layer, this was considered weak and therefore
    a longer much more complicated encryption cipher was created, 128 bits.
    The reasoning behind it was simple: it needs to be secure.

    The RSA site puts the advantage of a longer encryption length pretty clearly:
    because 40-bit encryption is considered to be relatively weak. 128-bits
    is about 309 septillion times ( 309,485,000,000,000,000,000,000,000 )
    larger than 40-bits. This would mean it would take that many times
    longer to crack or break 128-bit encryption than it would 40-bit.

    If you want more information on the technicalities or RSA's SSL
    encryption engine, visit their site:

    http://www.rsasecurity.com/standards/ssl.

    But what does all this encryption and security have to do with you?
    Well, that's a simple question. No matter how hard you try, at times
    your privacy will need to be knowingly invaded so you can make use of
    the product offered for doing so. If you think about food, for example,
    one cannot eat without swallowing. When we wish to make a transaction or
    view a site on the internet, where we have to give enough information
    away so that it happens, we also want to be assured no one else along
    the line gathers that data. An encrypted session would mean our data is
    not at the hands of any privacy perpetrators unless they knew how to
    decode it - and the only ones in the know, are those you specifically
    wish. SSL uses public key encryption as explained in the PGP section.

    To put this at a head: if you use an encrypted connection or session,
    you can be relatively assured that there are no prying eyes along the
    way.

    And how do I implement SSL with SSL Tunnelling?

    We know that a Secure Socket Layer is safe, but what we don't know is
    what a Tunnel is. In the most simplistic form, a tunnel is a proxy. Like
    proxy voting in general elections, a tunnel will relay your data back
    and forth for you. You may be aware though, that there are already
    'proxies' out there, and yes, that is true. Tunnelling is done via
    proxies, but it is not considered to be the same as a standard proxy
    relaying simply because it isn't.

    Tunnelling is very special kind of proxy relay, in that it can, and does
    relay data without interfering. It does this transparently and without
    grievance or any care for what is passing its way.

    Now, if we add this ability to 'tunnel' data, any data, in a pipe, to
    the Secure Sockets Layer, we have a closed connection that is
    independent of the software carrying it; and something that is also
    encrypted. For those of you wanting to know a little more about the
    technicalities, the SSL layer is also classless in the sense it does not
    interferer with the data passed back and forth - after all, it is
    encrypted and impossible to tamper with. That attribute means an SSL
    capable proxy is able to transfer data out of its 'proxied' connection
    to the destination required.

    So to sum up, we have both a secure connection that does the job and
    relays things in the right direction; and we have direct tunnel that
    doesn't care what we pass through it. Two very useful, and almost blind
    entities. All we need now is a secure proxy that we can use as the
    tunnel.

    Then proxies:

    Secure proxies are alike standard proxies. We can either use an HTTP
    base SSL equipped proxy - one specifically designed for security HTTP
    traffic, but because of the ignorant nature of SSL communication, it can
    be bent to any needs - or we can use a proper SSL service designed for
    our connection - like you would use a secure NNTP (news) program with a
    secure proxy on port 563 instead of taking our long way - which would
    probably work as well.

    A secure HTTP proxy operates on port 443. Host proxies are not public,
    that means they operate for, and allow only traffic from their subnet or
    the ISP that operates them - but, there are many badly configured HTTP
    proxies and some public ones out there. The use of a program called
    HTTrack (available on Neworder) will aid you in scanning and searching
    for proxies on your network or anywhere on the Internet if your ISP does
    not provide you with one.

    Neworder also features a number of sites dedicated to listing public
    proxies in the Anonymity section. While it's often hard to find a
    suitable fast proxy, it's worth the effort when you get one.

    So how can I secure my connections with SSL Tunnelling?
    That's a big question, and beyond the scope out this tuition as it must
    come to and end. I can however, point you in the right direction of two
    resources that will aid you in tunnelling both IRC, and most other
    connections via a HTTP proxy.

    For Windows, the first stop would be http://www.totalrc.net's,
    Socks2HTTP. This is an SSL tunnelling program that turns a normal socks
    proxy connection into a tunnelled SSL connection.
    The second stop, for both Windows and Unix is stunnel. Stunnel is a GNU
    kit developed for SSL tunnelling any connection. It is available for
    compile and download as binary here: Stunnel homepage -
    http://mike.daewoo.com.pl/computer/stunnel

    Matt

    Oh, lastly, I do have an old security 'tip' I've written up (sadly it
    made neworder first, I'm sorry, but I do like neworder!) and has
    promptly vanished off the edge of the board for ever.

    It's not as long as above, half the size, and talks about "find /home
    --perm 0777 -type f --print >> worldwriteable.txt"

    Please Register or Log in to view the hidden image!

    ))

    ADDED BY ZION:
    ------------------------------------------------------------------------------
    DISCLAMER:I DONT ENCOURAGE ILLEGAL ACTIVITIES.THIS IS FOR EDUCATIONAL USAGE.PLEASE REFRAIN YOURSELF AND GROW UP.

    thanks!
    bye!
     
  12. Rick Valued Senior Member

    Messages:
    3,336
    Hacker Being...

    HACKER BEING
    on the meaning of being a hacker
    by Valerio "Elf Qrin" Capello (http://www.ElfQrin.com)
    Copyright (C) 1999 Valerio Capello
    First written: 23JAN2000
    v1.1eng 26MAR2000
    This is a translation from the original Italian version v1.5 r23JAN2000 (first written: 31AUG1999-09SEP1999)
    Supervisor for the English language: SirD.

    Latest version available from: http://www.ElfQrin.com/docs/BeingHacker.html
    Other language versions: Italian

    "But did you, in your three- piece psychology and 1950's
    technobrain, ever take a look behind the eyes of the hacker?
    Did you ever wonder what made him tick,
    what forces shaped him, what may have molded him?
    I am a hacker, enter my world..."
    ("The Conscience of a Hacker", The Mentor)


    "Fear them not therefore: for there is nothing covered, that
    shall not be revealed; and hid, that shall not be known"
    (Matthew 10:26)



    THE HACKER

    Another idiot has been locked up because of committing a senseless act with little or no thought to the consequences. Law enforcement needs to look good, the news becomes public domain and the press is unleashed, using attention grabbing headlines like: "Computer terrorist busted", or better, a "hacker".

    Not only is the term misused, but it is usually only understood to be a mere synonym for "computer pirate", which is not only limitive, but completely wrong. Few people, even those who would define themselves as such, really know what "being a hacker" means.

    The WWWebster Online Dictionary (http://www.m-w.com/), at the "hacker" entry says:

    Main Entry: hacker
    Pronunciation: 'ha-k&r
    Function: noun
    Date: 14th century
    1 : one that hacks
    2 : a person who is inexperienced or unskilled at a particular activity "a tennis hacker"
    3 : an expert at programming and solving problems with a computer
    4 : a person who illegally gains access to and sometimes tampers with information in a computer system

    Among the various meanings quoted above, (besides definition 1, which is obvious...), definition 4 is the one which generally corresponds to the idea of "the hacker" that the majority of people have, while definition 3, is the one which is actually closer to the real meaning of "hacker", even if it is still rather limiting.
    A dictionary rarely gives a definative answer, but it is always a good start.
    For a more precise definition we can consult a specific dictionary such as the Jargon File, the most prestigious dictionary of hacker terminology, "a comprehensive compendium of hacker slang illuminating many aspects of hackish tradition, folklore, and humor", begun by Raphael Finkel of the university of Stanford in 1975, and then passed in management to Don Woods of the MIT, up to see the light of the printed paper in 1983, with the title of "The Hacker's Dictionary" (Harper & Row CN 1082, ISBN 0-06-091082-8, also known in the scene as "Steele-1983").

    The on-line hacker Jargon File, version 2.9.10, 01 JUL 1992 (part of the Project Gutenberg), at the "hacker" entry says:

    :hacker: [originally, someone who makes furniture with an axe] n. 1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary.
    2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming.
    3. A person capable of appreciating {hack value}.
    4. A person who is good at programming quickly.
    5. An expert at a particular program, or one who frequently does work using it or on it; as in `a UNIX hacker'. (Definitions 1 through 5 are correlated, and people who fit them congregate.)
    6. An expert or enthusiast of any kind. One might be an astronomy hacker, for example.
    7. One who enjoys the intellectual challenge of creatively overcoming or circumventing limitations.
    8. [deprecated] A malicious meddler who tries to discover sensitive information by poking around. Hence `password hacker', `network hacker'. See {cracker}.
    Since this is a specific dictionary, the definition of hacker here is closer to its original meaning, even if it is necessary to extrapolate it from the varied proposed meanings in order to obtain the closest and most faithfull interpretation.
    A hacker is a person that loves to study all things in depth (definition 1), especially the more apparently meaningless details, to discover hidden peculiarities, new features and weakness in them. For example, it is possible to hack a book, by using it to equalize the legs of a table, or to use the sharp edge of one of its pages to cut something. The main point being that it is used for more than it's conventional function of being read. But more than this, a hacker soon learns that the same techniques used for exploiting computer systems can be used to manipulate people. This is the so-called social hacking. With a little skilled psychology, the masters of "social hacking" can convince other people to do what they want (within limits of course, and depending on the abilities of the "social hacker"), in order to obtain the information they require. This may sound like an unusual and unatural practise, but once you take into account that this is performed quite regularly, in everyday life, by girlfriends, friends and teachers etc. to obtain what they want from others, it's not that strange, even if hackers do use a little more skill and technique.
    Another way of bringing hacking out from the computer's world, is the so-called vadding (the term is actually rarely used, but the activity is largely practiced) this consists of exploring places where the average person doesn't normally have access, such as basements, roofs of public buildings, maintenance tunnels, elevator wells and similar places. Sometimes, some of these activities born inside the hacker scene, grow and eventually separate, becoming new entities, like phreaking, the term applied to the world of "hacking" telephones and telephone systems, or the term carding, which is basically "techno-credit card fraud",.. very illegal and risky.
    In short, a hacker has the tendency to use his skills also beyond of the computer context, and anywhere tends to use the hacking techniques and to discover what is normally hidden to the common man.
    For a hacker, the ability to reason, harness his full brain capacity and maintain his mind at maximum efficiency levels, is most important.
    With a few exceptions, it is unusual that a hacker would smoke, use drugs, or drink excessively (however beer appears to be the preferred choice, when alcohol is drunk). Speaking of John Draper, (a.k.a "Captain Crunch", one of the most legendary phreaker/hackers, famous for discovering that by sending a tone of 2600Hz over the telephone lines of AT&T, it was possible to effect free calls), Steven Levy says: "Cigarettes made him violent": smoking next to him was extremely hazardous to your health...

    A hacker is certainly a programming maniac, (definition 2): once a technique has been discovered, it is necessary to write a program that exploits it.
    Hackers often spend many day's and night's in front of a computer, programming or experimenting with new techniques. After spending so many hours in front of a computer, a hacker gains a remarkable ability to analyze large amounts of data very quickly.
    The ability to program quickly, (definition 4) can be a characteristic of a hacker, but is not always necessarily so. As far as a hacker is concerned, it is faster to type on a keyboard, than it is to write things down, many hackers spend quite a lot of time reflecting over, or analyzing previously written code, while they are programming.
    Definition 5 is, in effect, a restrictive meaning of the word "hacker" since it limits it to a single field (as in UNIX), it can however be considered as a specialization.
    Actually in these cases, especially when it concerns true experts in a field, the terms wizard or guru are preferred. For example, the definition "UNIX wizard" in the United States is also recognized outside of the hacker environment and it can be included in a resume.

    Definition 3 may be considered apart: a person that qualifies for this definition is not neccasarily a real hacker, but a very experienced person with a good knowledge, who is not neccasarily able to develop hacker techniques. To make it clearer, think about the differences between a good author and someone that appreciates a good book.

    Definition 7, together with definition 1, are the ones that get closer to the real essence of the hacker. To study a system, to discover weaknesses, the peculiarities and hidden features of it, and then use them to go beyond its limits, with creativeness and imagination. This, in a certain way, brings us directly to definition 8. The person with these skills can use his knowledge to try to access information to which he doesn't have the right to access, and here the discourse gets complicated, because for a hacker there is no information which he does not have the right to access. We will get back to this point later, when we will speak about the "hacker ethic".

    Finally, although it has nothing to do with the character of the hacker, I would like to attract attention to definition 6; for a hacker, the term hacker is always positive: if he speaks of a "hacker of astronomy", he speaks of a true expert of that subject. Contrary to this, in everyday language, according to definition 2 of the WWWebster dictionary, a "hacker" in a certain field is a person that is not skilled in that specific field.

    After giving the definitions, the Jargon File provides more information on the meaning of the word "hacker":

    The term `hacker' also tends to connote membership in the global community [...]. It also implies that the person described is seen to subscribe to some version of the hacker ethic [...].
    It is better to be described as a hacker by others than to describe oneself that way. Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome. There is thus a certain ego satisfaction to be had in identifying yourself as a hacker (but if you claim to be one and are not, you'll quickly be labeled {bogus}). [...] [or most commonly, the most used term in these circumstances is "lamer", even if next versions of the Jargon File use this term in a slightly different context]

    But, perhaps more than anything else, curiosity and above average intelligence are the signatures of a true hacker. The hacker has an almost physical need of knowledge of any kind.
    The hacker is most certainly a voracious reader, even if his preference is only for scientific matters or science fiction, and generally one would find many shelves full of books in his room. But a hacker is not satisfied by the "ready made" knowledge, of the information that he finds in the books written for the average person, a hacker wants it all, and collects all possible information.
    Schools are institutions that are not able to furnish all the information that a hacker needs. The governments and all the public or private institutions have the tendency to furnish the least necessary information.
    About this point, Steven Levy in "Hackers, Heroes of the Computer Revolution" (written in 1984), affirms that the hackers "are possessed not merely by curiosity, but by a positive *lust to know.*"
    This idea is even clearer in these excerpts took from what is a considered "the hacker's manifesto": "The Conscience of to Hacker" (sometimes erroneously reported, in a nearly prophetic sense, as "Mentor's Last Words"), written by The Mentor on January 8th 1986, and published for the first time on the e-zine Phrack, Volume One, Issue 7, Phile 3.
    This text collects in a few paragraphs, a large part of the hacker philosophy, with touching results for most true hackers (even if it may be difficult to think of a hacker as a person that has a heart as well as a brain).

    [...]
    Mine is a world that begins with school... I'm smarter than most of the other kids, this crap they teach us bores me... Damn underachiever.

    [...]

    we've been spoon-fed baby food at school when we hungered for steak... the bits of meat that you did let slip through were pre-chewed and tasteless. We've been dominated by sadists, or ignored by the apathetic. The few that had something to teach found us willing pupils, but those few are like drops of water in the desert.

    [...]

    We explore... and you call us criminals. We seek after knowledge... and you call us criminals. We exist without skin color, without nationality, without religious bias... and you call us criminals. You build atomic bombs, you wage wars, you murder, cheat, and lie to us and try to make us believe it's for our own good, yet we're the criminals.

    Yes, I am a criminal. My crime is that of curiosity. My crime is that of judging people by what they say and think, not what they look like. My crime is that of outsmarting you, something that you will never forgive me for.

    [...]

    In these words, you will see the frustration of living in a defective world, that deprives the individuals that wish to rise above the mediocre, of the very information and resources they desire, to know what is kept hidden, and it condemns them hypocritically as criminals.
    But the desperate search of knowledge is only one of the characteristics of the hacker. Another sure one is the pursute of extreme perfection. An interesting article, is the one that narrates the history of the first hackers, and of how they developed "Spacewar!" (the first videogame in history, born as a demo for the TX-0, meant as a "killer application" for this computer, with all its features exploitable), is "The origin of Spacewar", written by J. M. Graetz, and published in the August, 1981 issue of Creative Computing magazine.


    One of the forces driving the dedicated hacker is the quest for elegance. It is not sufficient to write programs that work. They must also be "elegant," either in code or in function -- both, if possible. An elegant program does its job as fast as possible, or is as compact as possible, or is as clever as possible in taking advantage of the particular features of the machine in which it runs, and (finally) produces its results in an aesthetically pleasing form without compromising either the results or operation of other programs associated with it.
    But the elegance and the perfection of hackers is not always comprehensible to the average individual. A hacker can often be in ecstasy reading some code written by another hacker, admiring his ability and "tasting" his style, as if he was reading poetry.
    For example, normally to exchange the content of two variables (a and b, in this case), the statement most commonly used is this, which uses a third temporary variable:

    dummy = a : a = b : b = dummy
    The following method, instead, doesn't need the third variable, because it exploits a mathematical peculiarity of the boolean operator XOR:
    a = a XOR b : b = a XOR b : a = a XOR b
    Even if this system is at least three times slower than the first one because it requires the execution of three mathematical operations, (however it allows the saving of memory that the third variable would normally occupy), a hacker will surely admire the ingeniousness and the elegance of this method, to him it assumes the taste of a Japanese haiku.
    Talking about the perfectionism of the hackers, in "Hackers: Heroes of the Computer Revolution" written by Steven Levy in 1984, in the chapter 2 ("The Hacker Ethic"), we read:

    Hackers believe that essential lessons can be learned about the systems--about the world--from taking things apart, seeing how they work, and using this knowledge to create new and even more interesting things. They resent any person, physical barrier, or law that tries to keep them from doing this.
    This is especially true when a hacker wants to fix something that (from his point of view) is broken or needs improvement. Imperfect systems infuriate hackers, whose primal instinct is to debug them. This is one reason why hackers generally hate driving cars--the system of randomly programmed red lights and oddly laid out one-way streets causes delays which are so goddamned UNNECESSARY that the impulse is to rearrange signs, open up traffic-light control boxes . . .redesign the entire system.

    In a perfect hacker world, anyone pissed off enough to open up a control box near a traffic light and take it apart to make it work better should be perfectly welcome to make the attempt.

    It's just in the name of such principle that the Linux operating system and the Gnu C compiler have been developed, their code is open and available to be changed and modified by anyone.
    Lately, many important commercial software producers also started moving in this direction, as Netscape: Netscape Communicator 5, will, in fact be the first software, originally born as a "closed" commercial product, to be developed with this type of philosophy.
    A hacker is never satisfied with the default settings of a program or of the custom installations, he always has to open the configuration menu and set the options to get the maximum performance, and to make the product work as close as possible to his "way". A hacker must be able to use, to modify and to check all the possible features of a program.

    But after all, what motivates hackers? Why do they create programs that exploit advanced techniques and then distribute them free? And why do they freely distribute knowledge that was incredibly difficult to obtain?
    A good answer could be found in the site of the KIN (Klever Internet Nothings, http://www.klever.net), they are not exactly a hacker crew, but a group of people that write programs and release them freely on the Internet:

    What makes people write software and distribute it for free? Vanity, you said? Well, maybe.. But after all, what is this business all about? Is it all about money? Ask anyone - it's not. Most people I know in the industry will tell you that.
    Their idea is "just leave me alone and let me do what I love to do".
    In short, it's not about money. It's about feeling free to do what you want, and, just possibly, to find someone that appreciates your work.

    THE HACKER ETHIC

    The true hacker doesn't have morals, and he would never censor information or ideas of any kind. An initiative of the Italian priest Don Fortunato di Noto, (fortunad@sistemia.it,) who in January of 1998 formed the "Committee of resistance against the Pedophiles", and who asked for the help of the hacker community to unmask, capture and close the sites of the pedophiles on the Internet, failed miserably as it was only supported by self-acclaimed hackers without any skill.
    Besides, hackers are tolerant by nature, and rarely get angry, but they are irritated by people and tasks perceived to be wasting their time.
    There are however, some things that hackers can be intolerant of. One of these is when lies are told, to, or about them, you can say that hackers are imbeciles (it's an opinion, after all), but you can not say that they steal chickens. And yet, it would still be unusual that hackers would hack a site to remove the lies propogated about them. It would be more typical that they would create another site, refuting the lies against them.
    Hacking can be used like as a form of protest, breaking into and modifying the websites of very well known societies and government or military corporate entities, can be a way to make public certain injustices (especially attacks to the liberty of information or expression) or violations of human rights. The hacks, of the websites of the CIA (that became Central Stupidity Agency) and of the Department of Justice, are famous for being hacked with this intention in mind.
    In the article "Hacking for Human Rights?" by Arik Hesseldahl (ahess@reporters.net) published on the online magazine Wired (http://www.wired.com) dated 14.Jul.98 9:15am, the hacker Bondie Wong, (a dissident Chinese astrophysicist who lives in Canada, that temporarily disabled a Chinese satellite in 1997), a member of the famous hacker crew, Cult of the Dead Cow (which in the beginning of 1999 released the Back Orifice trojan) threatened to attack the computer networks of foreign companies that did business with China, causing them serious damages and huge financial losses.
    In an interview conducted by Oxblood Ruffin, a former United Nations consultant, and published on Wired, Blondie Wong says: "Human rights is an international issue, so I don't have a problem with businesses that profit from our suffering paying part of the bill".

    Contrary to the complete lack of moral judgement (but, above all, of moralism) of hackers, lies a deep ethical sense, that is something allmost "religious" in most hackers.
    About this point, we can go back to the Jargon File:

    :hacker ethic, the: n.
    1. The belief that information-sharing is a powerful positive good, and that it is an ethical duty of hackers to share their expertise by writing free software and facilitating access to information and to computing resources wherever possible.
    2. The belief that system-cracking for fun and exploration is ethically OK as long as the cracker commits no theft, vandalism, or breach of confidentiality.
    Both of these normative ethical principles are widely, but by no means universally) accepted among hackers. Most hackers subscribe to the hacker ethic in sense 1, and many act on it by writing and giving away free software. A few go further and assert that *all* information should be free and *any* proprietary control of it is bad [...]

    Sense 2 is more controversial: some people consider the act of cracking itself to be unethical [...]
    But this principle at least moderates the behavior of people who see themselves as `benign' crackers (see also {samurai}). On this view, it is one of the highest forms of hackerly courtesy to (a) break into a system, and then (b) explain to the sysop, preferably by email from a {superuser} account, exactly how it was done and how the hole can be plugged --- acting as an unpaid (and unsolicited) {tiger team} [The "tiger team" derives from the U.S. military jargon. These people are paid professionals who do hacker-type tricks, e.g., leave cardboard signs saying "bomb" in critical defense installations, hand-lettered notes saying "Your codebooks have been stolen" (they usually haven't been) inside safes, etc. Serious successes of tiger teams sometimes lead to early retirement for base commanders and security officers].

    [...]

    Breaking into a system is not seen by the hacker as a criminal action, but like a challenge. The idea is not to damage the "victim", but to find a way to penetrate its defenses. It's the intellectual challenge, the curiosity, the will to experiment and to explore, this is what moves the hacker, not the will to damage someone or something, and not even to obtain personal profit.
    In another writing of The Mentor, "A Novice's Guide to Hacking- 1989 edition", dated December 1988, the author opens the essay with a call to the ethics of the category, to which follows a list of "suggestions for guidelines to follow to ensure that not only you stay out of trouble, but you pursue your craft without damaging the computers you hack into or the companies who own them":

    As long as there have been computers, there have been hackers. In the 50's at the Massachusets Institute of Technology (MIT), students devoted much time and energy to ingenious exploration of the computers. Rules and the law were disregarded in their pursuit for the 'hack'. Just as they were enthralled with their pursuit of information, so are we. The thrill of the hack is not in breaking the law, it's in the pursuit and capture of knowledge.
    In a file titled "The Hotmail Hack" written by Digital Assassin of the "United Underground" (or "U2", for short), in which a weakness of the HotMail system is illustrated, through which it is possible to enter into the mailbox of another person, the author, at a certain point interrupts the explanation with these words:
    ....but before I tell you how to use that line, I'm going to side track for a little theory behind this hack. Because there's NO point in a hack, if you don't know how it works. That is the whole idea of hacking, to find out how systems work.
    These are clear examples of what the real intent of a hacker is when he breaks a system. It's very close to the idea of a child that opens a toy to see how it works. The difference is that the hacker tries not to destroy the toy (aside from the fact that the toy is not his own...).
    Anyway, let's see the specific definition of the "cracker", according to the Jargon File:

    :cracker: n. One who breaks security on a system. Coined ca. 1985 by hackers in defense against journalistic misuse of {hacker} (q.v., sense 8). An earlier attempt to establish `worm' in this sense around 1981--82 on USENET was largely a failure.
    Both these neologisms reflected a strong revulsion against the theft and vandalism perpetrated by cracking rings. While it is expected that any real hacker will have done some playful cracking and knows many of the basic techniques, anyone past {larval stage} is expected to have outgrown the desire to do so.

    Thus, there is far less overlap between hackerdom and crackerdom than the {mundane} [the term "mundane" is taken from the Sci-Fi fandom and identifies everything outside the world of the computer science, or the hacking] reader misled by sensationalistic journalism might expect. Crackers tend to gather in small, tight-knit, very secretive groups that have little overlap with the huge, open poly-culture this lexicon describes; though crackers often like to describe *themselves* as hackers, most true hackers consider them a separate and lower form of life.

    Ethical considerations aside, hackers figure that anyone who can't imagine a more interesting way to play with their computers than breaking into someone else's has to be pretty {losing} [on the other hand, they have the same consideration for the people who use the computer in an absolute conventional way, such as only to write documents or to play] [...]

    Furthermore, about the "cracking" itself, the Jargon File says:
    :cracking: n. The act of breaking into a computer system; what a {cracker} does. Contrary to widespread myth, this does not usually involve some mysterious leap of hackerly brilliance, but rather persistence and the dogged repetition of a handful of fairly well-known tricks that exploit common weaknesses in the security of target systems. Accordingly, most crackers are only mediocre hackers.
    However, This is a superficial and reductive vision. In fact, as it is easily imaginable, there exist people, that are as experienced with computers and as thirsty of knowledge, that however don't have any respect of the hacker ethic and don't hesitate to perform actions meant to damage computer systems or other people.
    They are the so-called Dark-side hackers. This term derives from George Lucas' "Star Wars". A Dark-side hacker, just like Darth Vader, is "seduced by the dark side of the Force". It has nothing to do with the common idea of "good" and "bad", but it's closer to the idea of "legal" and "chaotic" in Dungeons&Dragons: In substance, the dark-side hackers are accorded the same dignity and recognized as having the ability of a hacker, but their orientation makes them a dangerous element for the community.
    A more common definition, reserved for those that damage someone else's computer systems without drawing any benefit from it, (therefore for pure stupidity or evilness), it is that of Malicious hackers.
    More recent versions of the Jargon File (in which some most obsolete terms have been removed), as the version 4.0.0, 24 JUL 1996, makes clear, not only the distinction between hacker and cracker, but also between the entire hack scenes and other parallel realities, like piracy, and the "warez d00dz", who collect an impressive amount of software (games and applications, or better said "gamez" and "appz"), that they are never likely to use, and whose greatest pride is to get software, break its protections, and distribute it on their website before their rival crew, where possible, within the same day it was released ("0-day warez").

    One could think that the Jargon File speaks only in theory, and that it describes the hacker ethic in a fantastic and utopian way. This is not so, hackers really are attached to their principles. The following is a practical example concerning one of the most famous hacker crews, the LOD (Legions Of Doom, that takes its name from the group of baddies in the series of cartoons of Superman and his Superfriends), of which The Mentor was also a member during the years 1988-89 (the already cited author of "The conscience of a Hacker").

    In "The History of LOD/H", Revision #3 May 1990, written by Lex Luthor (founder of the crew, from the name of the baddie in the movie Superman I), and published on their e-zine "The LOD/H Technical Journal", Issue #4, released on May 20, 1990 (File 06 of 10), we can read:

    Of all 38 members, only one was forcefully ejected. It was found out that Terminal Man [member dof the LOD/H in 1985] destroyed data that was not related to covering his tracks. This has always been unacceptable to us, regardless of what the media and law enforcement tries to get you to think.
    Yet, not all agree upon the same principles, and there are some "grey areas": for example, taking possession of objects that allow you to access information, or pursuing a personal purpose, can be considered "ethical" by some. A specific example could be "grabbing": the theft of things like keys, magnetic cards, manuals or technical schemes, anyway this is a debatable activity, since a hacker prefers to copy rather to subtract, not only to not damage the "victim", but also to avoid leaving traces of his intrusion. A more acceptable and legal variant is "trashing", that consists in looking inside the garbage of the subject, searching for objects and/or useful information.
    But breaking into computer systems is only a small activity amongst the many things that hackers are involved in, and the aversion against the virtual vandal actions are a small part of the hacker ethic.
    The hacker ethic is something greater, almost mystic, and draws its origins from the first hackers, those that programmed the TX-0, using the first available computers in the big American universities like MIT or Stanford.
    From the already cited "Hackers, Heroes of the Computer Revolution" by Steven Levy:

    Something new was coalescing around the TX-0: a new way of life, with a philosophy, an ethic, and a dream.
    There was no one moment when it started to dawn on the TX-0 hackers that by devoting their technical abilities to computing with a devotion rarely seen outside of monasteries they were the vanguard of a daring symbiosis between man and machine. With a fervor like that of young hot-rodders fixated on souping up engines, they came to take their almost unique surroundings for granted, Even as the elements of a culture were forming, as legends began to accrue, as their mastery of programming started to surpass any previous recorded levels of skill, the dozen or so hackers were reluctant to acknowledge that their tiny society, on intimate terms with the TX-0, had been slowly and implicitly piecing together a body of concepts, beliefs, and mores.

    The precepts of this revolutionary Hacker Ethic were not so much debated and discussed as silently agreed upon. No manifestos were issued ["The Mentor"'s one, very polemic, was written only about twenty years later]. No missionaries tried to gather converts. The computer did the converting [...]

    Shortly, Steven Levy sums up the "hacker ethic" this way:
    Access to computers -- and anything which might teach you something about the way the world works -- should be unlimited and total. Always yield to the Hands-On imperative.
    All information should be free.

    Mistrust Authority. Promote Decentralization.

    Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race, or position.

    You can create art and beauty on a computer.

    Computers can change your life for the better.

    LIKE ALADDIN'S LAMP, YOU COULD GET IT [THE COMPUTER] TO DO YOUR BIDDING.


    THE LAMER

    From "The Hacker Crackdown - Law and Disorder on the Electronic Frontier" by Bruce Sterling, Bantam Books, 1992. (ISBN 0-553-08058-X, paperback: ISBN 0-553-56370-X, released as free electronic text for non-commercial purposes)

    There are hackers today who fiercely and publicly resist any besmirching of the noble title of hacker. Naturally and understandably, they deeply resent the attack on their values implicit in using the word "hacker" as a synonym for computer-criminal.
    [...]

    The term "hacking" is used routinely today by almost all law enforcement officials with any professional interest in computer fraud and abuse. American police describe almost any crime committed with, by, through, or against a computer as hacking.

    If the differentiation between hacker, cracker and dark-side hacker can result a very tiny distinction for the ones who live outside of the computer scene, nobody, especially a journalist, should confuse a hacker with the poor idiot that was locked up for using, with no thought to the consequences, programs that he found somewhere. (even if using the term "hacker" does sell more newspapers... The difference between hackers and journalists is that the aforementioned have ethics, the latter, not even a sense of modesty... but this is often simply mere ignorance).
    Let's take as an example the following article published on the Italian newspaper "L'Unione Sarda" (http://www.unionesarda.it/), by Luigi Almiento (almiento@unionesarda.it).

    POLICE.

    The arrested hacker is a surveyor, aged 25

    Files were stolen from the computers of internet "navigators", with the aid of a virus
    spread on the Internet


    Many people from different national service providers, recently learned to their own detriment, that it is better not to stay and chat to strangers on the chat-lines of the Internet. This occured when a hacker aged 25, obtained the user names and passwords of their dial up accounts, while they were on-line.

    [...]

    "Harris", explains the lieutenant Saverio Spoto, commander of the Police Station [actually they are "Carabinieri", not the normal Police, because in Italy there are two different polices, don't ask why], « contacted his victims through Icq, a "talking place", offered by many Internet providers». During these "written talks", using an access key he acquired that gives false information, G. F. sent the Netbus virus to the computers of his victims. This allowed him to "navigate" the hard drives of the computers of these people while they were connected to the internet. Harris also had a site, which offered pornographic pictures, pirate-programs and files of every kind, and whenever someone connected to his address, they were immediately infected by the computer virus.

    [...]

    In a few words, lieutenant Spoto succeeds in showing his complete ignorance of the subject: he gives an abominable definition of ICQ, defines Netbus as a virus rather than a trojan (which means he doesn't have any idea of how it works), and still not being satisfied with this, attributes it with a contagiousness similar to the Ebola virus: to be infected simply by connecting to an Internet address sounds like something supernatural. Then, he shamelessy concludes with the invitation "If anyone has had contact with Harris, and thinks that their files may have been forced, they can come to us at the Police Station". If everyone at the Police Station are as experienced as he is, it would be preferable to keep the Harris' "virus" rather than allowing them to put their hands anywhere near your computer.
    Besides, these self-acclaimed hackers are almost never bust because of a police operation, (unless they caused a lot of trouble), but because they have the stupid habit of boasting of their actions in chatrooms or even in real life. Often in front of total strangers, that are often police officers or people close to the law enforcement environment, (such as the child or the girlfriend of a police officer).
    In fact, the conclusive part of the article regarding "Harris" says: "The investigators did not explain how, but only that they had succeeded in identifying the surveyor": obviously the law officers would like people to think that they identified the guilty person by means of some complicated technique, pursuing the information packets or something in this line, rather than admitting that they only had to make a few enquiries on IRC channels.

    The hacker is the one that develops the exploit, and eventually creates a program based on this expoit. People that blindly use these programs because they found them on the Internet, or even worse, because a friend passed them on to them, are merely lamers, that only have a vague idea of how to use the tool they have in their hands and they know nothing about computer systems, programming, or how to cover their tracks. Often these self-acclaimed hackers, self infect themselves with a virus or a trojan they just downloaded, due to their incapabilities.
    Putting these programs in the hands of the average person is like giving a loaded gun to a five year-old.

    The fact is, that up to the early '80s, computers were only intended for hackers, specialized personnel or students. Only later did they appear on the desks of offices and in houses. The first home computers replaced the primitive consoles of videogames like the Atari 2600, the Intellivision and the Colecovision (the revolution was lead by the Commodore 64 and the Sinclair ZX Spectrum), but still across the whole world there was a "computer culture" throughout the '80s, there were published magazines that taught programming (mainly BASIC, as well as Machine Code) and very advanced techniques worthy of the best hackers. Then during the '90s, Apple and Microsoft's dream started to come true, "a computer on every desk and in every home". The computer became a common appliance available to almost everybody, the general level of the magazines started to drop, and almost all were confined to publishing articles about the latest hardware and software, or advice on how to use commercial applications.
    This change in the computer world that made computers not only the sole domain of the hackers, but for everyone, has certainly had some positive general effects, but it proved to be a double edged sword, especially with the advent of the Internet. These days anyone can have powerful tools that inflict damage on other people, real "digital weapons", without having a clue about how they work or how they should be "handled". The average guy can get locked up just for perpetrating what he thought was a "cool" joke, even if it was in bad taste.

    All those lamers-wannabe-hackers should better satisfy their needs with APEX v1.00 r10/8/91, a nice program written by Ed T. Toton III (however the original idea is older) that simulates the connection to different US government and military computers (like those of NORAD, or of NASA), among other things it is also possible to pretend that you are the President of the United States of America, and enter the system that controls the nuclear weapons.
    With a bit of ability and practice, it is possible to convince some friends that you are really trying to force the US computer systems, and pass the time having good clean fun, without hurting anybody, risking a jail sentence and/or offending the hackers by trying to pretend to be what you are not.

    But besides this, outside of the "criminal" context, something that bothers hackers is the ever increasing mass of self-claimed computer "experts", that actually don't know much more than how to turn on a computer and launch a program, and they fill their mouthes with loads of technical words about which they know nothing.
    At this point, it is very interesting to read this text from the already quoted home page of the KIN:

    I remember [...] When writing software was closer to art and magic than to business and/or just coding. I miss that now. What happened after that? Well, tons of fast graduates appeared who could only do Basic or Clipper/DBase programming, who pretended to be the best. They could wear suites and had money and relatives... I called them nephews. How many times were you in the situation when you gave the best offer, and you simply feel you HAD to write this software - but in the end your client says something like: "I'm really sorry, but I just got a call from my wife and her nephew works for this company in Nebraska who are certified Basic engineers so we'll have to give the contract to them?" The nephews produced terrible software which led to terrible disappointments in the industry ('I've invested so much money in computers and it's not really working for me').
    [...] The Net gives you a chance to be first creative and then think about business. Let's use it now - before nephews will get their certified degrees....

    Sadly, a crowd of nephews are already working, with or without certified degrees, and armed with programs like Front Page or Publisher creating websites, filling their big mouths with words like FTP and client-server application, even if they don't know what they mean or what they are talking about.
    Luckily, the Net is large and, - at least for the moment, - it generates its own rules by itself. There is room for everyone.
    ...
    should have posted this shit earlier...
    bye!
     
  13. Rick Valued Senior Member

    Messages:
    3,336
    Some Interesting Proxy Basics

    The content is taken without any consent from author and is intended purely for educational purpose.
    added by me are some extra lines here and there about proxies etc:
    ---------------
    PROXY
    by Jatt
    ----------------------------
    What is a Proxy Server?
    Proxy Server is a server that someone (maybe an ISP, maybe a friend) has setup so that when you go to connect to a website, instead of going directly to the site's server, it will take a detour and 1st go through the proxy server and then from the proxy server go to the website. Well, actually, the proxy server first downloads the data for you and then sends it over. So if someone else loads the website and is also going through the same network they will just get the website off of the Proxy Server. Whoever (most likely a System Admin, ISP, etc.) is managing this server will be in charge of setting up the time in which the proxy server refreshes the websites. Everytime a new page is visited, it is saved on the Proxy Server. Again, its up to the person in charge of the Proxy Server to choose how long the site stays on the server. If a user notices that a site is not updated and needs to be refreshed (such as a site that is supposed to be updated daily) all he or she has to do is hit the "refresh or reload" button on their browsers and it will update the page on the proxy server.

    Why use a Proxy Server?
    There are different reasons. Some ISP's (Internet Service Providers) like it because it cuts down on overall traffic for their network, and speeds up surfing for their users (since the Proxy is closer to them than the site's server, they get less "trip time", less lag or in other words, faster surfing). Users like it because it can help to make it harder to track their activities over the web. This is especially useful since Users can actually chain some proxies and actually go through 3 or more different proxy servers; however it will be hard to find 3 servers that will allow it for one thing. For Another, The speed of the connection will become noticeably slower, especially if we're dealing with servers on different continents. Another reason is if you connect to a larger proxy server, your speed will increase. Note: It's a good thing to find out who runs the proxy server you are connecting through. If its Microsoft don't bother, they'll probably log your every move. If it's anonymous or if it's one that says anyone in the public can use, then go for it. To find out this info you would usually have to check with the proxy server's admin's website.

    What is a Wingate?
    AN Official definition I've heard from a few people is:

    "WinGate is a proxy server firewall software package that allows you to share a single (or multiple) Internet connections with an entire computer network. The Internet connection shared by WinGate can be of nearly any type, including dial up modem, ISDN, xDSL, cable modem, satellite connection, or even dedicated T1 circuits."

    Wingate is similar to a proxy server. It connects different computer through port 23 onto a server, which is called a wingate. In fact, it's just a telnet connection. The Wingate will let anyone on the network access the Internet or connect through it to other sites. Due to poorly configured wingates and Administrator's incompetence, there's a lot of wingates that will let anyone on the Internet connect through them, instead of limiting access to people from the local network. Opening the way for anything from an IP spoof on ICQ or irc to full scale abuse. Such wingates are called "Open Wingates" and usually last from anywhere from a few days to maybe a few months until an Administrator either discovers it or gets complaints about some "mysterious" users doing something they shouldn't be. Most likely in that case it's someone connecting over the Internet.

    The only benefit for administrators is the ability to put multiple users through the same connection. The problems with it clearly outweigh the benefits. If anyone is going to set up their own wingate, I'd suggest strongly that you know what you are doing and make sure that is configured securely so that only those that are meant to use it, are the ones using it. Another more secure WinGate-like software is SyGate.

    >From previous experience working with Wingates both as a Network Administrator and a "remote" user I can tell you that the logs on most wingates are cleared usually every 48 hours. Most businesses and ISP's (especially the big ones) just don't have the need or the resources to log every single thing that happens on their wingate servers.

    How do I find Wingates?
    Good question. The best way is word of mouth. Failing that, the 2nd best way is to use a wingate scanner. You can scan whole subnets for wingates. A note: IP's in third world countries, the Middle East (except Israel), Africa, and on the @home network all have one thing in common: They all have wingates that are poorly configured and there are usually a few open wingates on their networks. Try scanning them 1st and foremost. Through Unix, the best way is: trial and error. telnet to the wingate through port 23, then leave the user name and password blank and if you get in, you've found one. You might also want to try username and/or password as: wingate. The best windows (32 bit) scanner I have used is: wGateScan v2.2

    It is available on many different websites. I got it from this site, it has some other useful stuff on it too: http://www.hotmanscave.com/

    To use it, all you have to do is to enter a range of IP address or a hostname. It will telnet to each host in the range through port 23 and will send a message saying "wingate" or something. If the host accepts this message then bingo ! You've found one and it keeps a list of all working open wingates, which you can save to a file or delete as needed.

    Wingates with ICQ:
    To Configure ICQ to work with WinGate:
    Go to WinGate Setup Screen and click on the Proxies Tab
    Press ADD
    Select Type of Proxy: 'Mapped Link'
    Press Create
    Under the Settings Group check 'Enable Connections To Proxy On Port.' Put the number 3333 in this window.
    Set The Socket Type to: 'UDP'
    Make sure that 'Destroy Inactive Sessions after XXX seconds' is NOT Checked.
    Make sure that 'Enable Default Remote Host' is Checked and set to: icq.mirabilis.com Port: 4000
    For each remote machine:
    Press Add.
    In 'Connect Client IP' enter the IP of the remote machine
    In 'To Host' enter icq.mirabilis.com
    In 'Port' enter 4000
    Press OK
    Now press DONE.
    You will now be at the main WinGate setup screen.
    Make sure that there is a SOCKS4 Proxy Enabled on Port 1080
    Press SAVE
    Check it out at your remote machine
    Remote Machine Configuration
    If you still did not pass the ICQ Registration Wizard:
    At the Registration Wizard under Connection Type register as a LAN User.
    Choose 'I am behind a firewall or proxy.'
    Click Next for the next dialog.
    Choose either Socks4 or socks 5 server depending on the compatibility of the proxy server
    Do NOT mark the firewall sessions time out
    click Next for the next dialog.
    Enter the servers' IP address using socks port 1080.
    Click Next for the next to see if you have succeeded to register.
    If you fail to register, you will receive the a dialog telling you so.
    Try one or more of the following:
    Click Retry to try again using the same settings.
    Hit the Back button to change the firewall settings.
    Click Cancel to abort. Reconfigure your firewall settings and try again by running ICQ.exe.
    Additional Remote Machines:

    For any additional Remote Machines on your network, Do exactly the same procedure as specified in Remote Machine. Use EXACTLY the same numbers and setup. You only have to look up the IP address of the Host one time on any one of the remote machines in its HOSTS file.

    Wingates with IRC:
    To configure your IRC client to use a Wingate, simply tell it that you're behind a SOCKS4 or SOCKS5 (again, depending on the Wingate. Try both and see which one of them work) and enter the Wingate's IP. If you are asked for a username and a password, leave these fields blank. Since there are so many IRC clients out there, I won't explain further and let you explore your own client by yourself.

    What is a Socks Host?
    Socks host is pretty much almost the same thing as wingate except it connects through port 1080. In your settings for proxy server in your internet browser (explorer or Netscape) you should notice a setting for socks host. You can enter a socks host. If you have ever used mIRC for IRC, you'll notice a setting for firewall. In that setting leave the username and password blank, leave the port as 1080 and enter a wingate address in the Hostname, then click Use Socks firewall, and try either protocol: Socks4 or Socks5 (whichever works for you). Reconnect and you should notice that your IP address and identify will appear on IRC as if you are connecting through the same IP address as the socks host. Not all wingates will work as a socks host. Remember it has to be able to let you connect through port 1080 or else its no use in irc. Newer IRC daemons can however detect wingate/socks host connections. With the web, it's not useful. It may or may not hide your IP address depending the type of websites you are connecting to. For web anonymity stick to multiple Proxy servers.

    Bottom Line:
    Socks/Wingates and Proxies can hide your identity or make it harder to detect and log on the Internet, and it may even be legal to do so in 90% of cases but try not to over do it by thinking that "I'll never get caught" by going through multiple proxy servers, wingates, or socks hosts. Remember anyone can be traced back to their original IP address and their ISP. All it takes is a little co-operation with different Proxy server administrators, ISP's and a few law enforcement agencies working together.

    For more info on Proxies and a big list of Proxy servers, wingates, telnet, ftp, and socks hosts try: http://proxys4all.cgi.net/

    -note: not all are tested and some might have been shutdown by their administrators. Also the lists are not updated as often as most people would like.
    Another Wingate proxy tutorial: http://www.wingate.net/
    ICQ with wingate: http://www.visions.demon.nl/wingate/


    bye!
     
  14. GRO$$ Registered Senior Member

    Messages:
    304
    holy shit you must type fast....

    oh yea... i have an easier way

    i like to call it ABC's of hacking.

    A. Take hatchet, axe, or tomahawk.
    B. Swing at computer.
    C. Repeat

    Thats it! Your hacking!
     
  15.          Reign Mack Registered Senior Member

    Messages:
    58
    step 1) ctrl a
    step 2) ctrl c
    step 3) ctrl v
     
  16. Rick Valued Senior Member

    Messages:
    3,336
    Exactly.If you see all of my posts are from various sites.i have compiled the works of various authors for my own knowledge,i"d like to share.

    anyway,any inputs on the <i>contents?</i>



    bye!
     
  17.          Reign Mack Registered Senior Member

    Messages:
    58
    I think the moral of this storey is If you want to be a hacker Go out there and READ ...hacking is like kung fu, you will never become any good at it just by watching movies.

    Please Register or Log in to view the hidden image!

     
  18. Rick Valued Senior Member

    Messages:
    3,336
    I got this from Blacksun,i thought it may interest you guys a lil bit...

    DISCLAMER:
    -----------------------------------------------------------------------------------
    I AM NOT USING THIS FOR ANY MONETARY REASONS.I AM NOT THE AUTHOR OF THIS PIECE OF WORK WRITTEN,I HAVENT CONSULTED THE AUTHOR OF THIS ARTICLE FOR PUBLISHING THE STUFF ON SCIFORUMS,AS THIS IS FOR PURELY EDUCATIONAL USAGE.
    THANKS.
    -----------------------------------------------------------------------------------
    HACKER BEING
    on the meaning of being a hacker
    by Valerio "Elf Qrin" Capello (http://www.ElfQrin.com)
    Copyright (C) 1999 Valerio Capello
    First written: 23JAN2000
    v1.1eng 26MAR2000
    This is a translation from the original Italian version v1.5 r23JAN2000 (first written: 31AUG1999-09SEP1999)
    Supervisor for the English language: SirD.

    Latest version available from: http://www.ElfQrin.com/docs/BeingHacker.html
    Other language versions: Italian

    "But did you, in your three- piece psychology and 1950's
    technobrain, ever take a look behind the eyes of the hacker?
    Did you ever wonder what made him tick,
    what forces shaped him, what may have molded him?
    I am a hacker, enter my world..."
    ("The Conscience of a Hacker", The Mentor)


    "Fear them not therefore: for there is nothing covered, that
    shall not be revealed; and hid, that shall not be known"
    (Matthew 10:26)



    THE HACKER

    Another idiot has been locked up because of committing a senseless act with little or no thought to the consequences. Law enforcement needs to look good, the news becomes public domain and the press is unleashed, using attention grabbing headlines like: "Computer terrorist busted", or better, a "hacker".

    Not only is the term misused, but it is usually only understood to be a mere synonym for "computer pirate", which is not only limitive, but completely wrong. Few people, even those who would define themselves as such, really know what "being a hacker" means.

    The WWWebster Online Dictionary (http://www.m-w.com/), at the "hacker" entry says:

    Main Entry: hacker
    Pronunciation: 'ha-k&r
    Function: noun
    Date: 14th century
    1 : one that hacks
    2 : a person who is inexperienced or unskilled at a particular activity "a tennis hacker"
    3 : an expert at programming and solving problems with a computer
    4 : a person who illegally gains access to and sometimes tampers with information in a computer system

    Among the various meanings quoted above, (besides definition 1, which is obvious...), definition 4 is the one which generally corresponds to the idea of "the hacker" that the majority of people have, while definition 3, is the one which is actually closer to the real meaning of "hacker", even if it is still rather limiting.
    A dictionary rarely gives a definative answer, but it is always a good start.
    For a more precise definition we can consult a specific dictionary such as the Jargon File, the most prestigious dictionary of hacker terminology, "a comprehensive compendium of hacker slang illuminating many aspects of hackish tradition, folklore, and humor", begun by Raphael Finkel of the university of Stanford in 1975, and then passed in management to Don Woods of the MIT, up to see the light of the printed paper in 1983, with the title of "The Hacker's Dictionary" (Harper & Row CN 1082, ISBN 0-06-091082-8, also known in the scene as "Steele-1983").

    The on-line hacker Jargon File, version 2.9.10, 01 JUL 1992 (part of the Project Gutenberg), at the "hacker" entry says:

    :hacker: [originally, someone who makes furniture with an axe] n. 1. A person who enjoys exploring the details of programmable systems and how to stretch their capabilities, as opposed to most users, who prefer to learn only the minimum necessary.
    2. One who programs enthusiastically (even obsessively) or who enjoys programming rather than just theorizing about programming.
    3. A person capable of appreciating {hack value}.
    4. A person who is good at programming quickly.
    5. An expert at a particular program, or one who frequently does work using it or on it; as in `a UNIX hacker'. (Definitions 1 through 5 are correlated, and people who fit them congregate.)
    6. An expert or enthusiast of any kind. One might be an astronomy hacker, for example.
    7. One who enjoys the intellectual challenge of creatively overcoming or circumventing limitations.
    8. [deprecated] A malicious meddler who tries to discover sensitive information by poking around. Hence `password hacker', `network hacker'. See {cracker}.
    Since this is a specific dictionary, the definition of hacker here is closer to its original meaning, even if it is necessary to extrapolate it from the varied proposed meanings in order to obtain the closest and most faithfull interpretation.
    A hacker is a person that loves to study all things in depth (definition 1), especially the more apparently meaningless details, to discover hidden peculiarities, new features and weakness in them. For example, it is possible to hack a book, by using it to equalize the legs of a table, or to use the sharp edge of one of its pages to cut something. The main point being that it is used for more than it's conventional function of being read. But more than this, a hacker soon learns that the same techniques used for exploiting computer systems can be used to manipulate people. This is the so-called social hacking. With a little skilled psychology, the masters of "social hacking" can convince other people to do what they want (within limits of course, and depending on the abilities of the "social hacker"), in order to obtain the information they require. This may sound like an unusual and unatural practise, but once you take into account that this is performed quite regularly, in everyday life, by girlfriends, friends and teachers etc. to obtain what they want from others, it's not that strange, even if hackers do use a little more skill and technique.
    Another way of bringing hacking out from the computer's world, is the so-called vadding (the term is actually rarely used, but the activity is largely practiced) this consists of exploring places where the average person doesn't normally have access, such as basements, roofs of public buildings, maintenance tunnels, elevator wells and similar places. Sometimes, some of these activities born inside the hacker scene, grow and eventually separate, becoming new entities, like phreaking, the term applied to the world of "hacking" telephones and telephone systems, or the term carding, which is basically "techno-credit card fraud",.. very illegal and risky.
    In short, a hacker has the tendency to use his skills also beyond of the computer context, and anywhere tends to use the hacking techniques and to discover what is normally hidden to the common man.
    For a hacker, the ability to reason, harness his full brain capacity and maintain his mind at maximum efficiency levels, is most important.
    With a few exceptions, it is unusual that a hacker would smoke, use drugs, or drink excessively (however beer appears to be the preferred choice, when alcohol is drunk). Speaking of John Draper, (a.k.a "Captain Crunch", one of the most legendary phreaker/hackers, famous for discovering that by sending a tone of 2600Hz over the telephone lines of AT&T, it was possible to effect free calls), Steven Levy says: "Cigarettes made him violent": smoking next to him was extremely hazardous to your health...

    A hacker is certainly a programming maniac, (definition 2): once a technique has been discovered, it is necessary to write a program that exploits it.
    Hackers often spend many day's and night's in front of a computer, programming or experimenting with new techniques. After spending so many hours in front of a computer, a hacker gains a remarkable ability to analyze large amounts of data very quickly.
    The ability to program quickly, (definition 4) can be a characteristic of a hacker, but is not always necessarily so. As far as a hacker is concerned, it is faster to type on a keyboard, than it is to write things down, many hackers spend quite a lot of time reflecting over, or analyzing previously written code, while they are programming.
    Definition 5 is, in effect, a restrictive meaning of the word "hacker" since it limits it to a single field (as in UNIX), it can however be considered as a specialization.
    Actually in these cases, especially when it concerns true experts in a field, the terms wizard or guru are preferred. For example, the definition "UNIX wizard" in the United States is also recognized outside of the hacker environment and it can be included in a resume.

    Definition 3 may be considered apart: a person that qualifies for this definition is not neccasarily a real hacker, but a very experienced person with a good knowledge, who is not neccasarily able to develop hacker techniques. To make it clearer, think about the differences between a good author and someone that appreciates a good book.

    Definition 7, together with definition 1, are the ones that get closer to the real essence of the hacker. To study a system, to discover weaknesses, the peculiarities and hidden features of it, and then use them to go beyond its limits, with creativeness and imagination. This, in a certain way, brings us directly to definition 8. The person with these skills can use his knowledge to try to access information to which he doesn't have the right to access, and here the discourse gets complicated, because for a hacker there is no information which he does not have the right to access. We will get back to this point later, when we will speak about the "hacker ethic".

    Finally, although it has nothing to do with the character of the hacker, I would like to attract attention to definition 6; for a hacker, the term hacker is always positive: if he speaks of a "hacker of astronomy", he speaks of a true expert of that subject. Contrary to this, in everyday language, according to definition 2 of the WWWebster dictionary, a "hacker" in a certain field is a person that is not skilled in that specific field.

    After giving the definitions, the Jargon File provides more information on the meaning of the word "hacker":

    The term `hacker' also tends to connote membership in the global community [...]. It also implies that the person described is seen to subscribe to some version of the hacker ethic [...].
    It is better to be described as a hacker by others than to describe oneself that way. Hackers consider themselves something of an elite (a meritocracy based on ability), though one to which new members are gladly welcome. There is thus a certain ego satisfaction to be had in identifying yourself as a hacker (but if you claim to be one and are not, you'll quickly be labeled {bogus}). [...] [or most commonly, the most used term in these circumstances is "lamer", even if next versions of the Jargon File use this term in a slightly different context]

    But, perhaps more than anything else, curiosity and above average intelligence are the signatures of a true hacker. The hacker has an almost physical need of knowledge of any kind.
    The hacker is most certainly a voracious reader, even if his preference is only for scientific matters or science fiction, and generally one would find many shelves full of books in his room. But a hacker is not satisfied by the "ready made" knowledge, of the information that he finds in the books written for the average person, a hacker wants it all, and collects all possible information.
    Schools are institutions that are not able to furnish all the information that a hacker needs. The governments and all the public or private institutions have the tendency to furnish the least necessary information.
    About this point, Steven Levy in "Hackers, Heroes of the Computer Revolution" (written in 1984), affirms that the hackers "are possessed not merely by curiosity, but by a positive *lust to know.*"
    This idea is even clearer in these excerpts took from what is a considered "the hacker's manifesto": "The Conscience of to Hacker" (sometimes erroneously reported, in a nearly prophetic sense, as "Mentor's Last Words"), written by The Mentor on January 8th 1986, and published for the first time on the e-zine Phrack, Volume One, Issue 7, Phile 3.
    This text collects in a few paragraphs, a large part of the hacker philosophy, with touching results for most true hackers (even if it may be difficult to think of a hacker as a person that has a heart as well as a brain).

    [...]
    Mine is a world that begins with school... I'm smarter than most of the other kids, this crap they teach us bores me... Damn underachiever.

    [...]

    we've been spoon-fed baby food at school when we hungered for steak... the bits of meat that you did let slip through were pre-chewed and tasteless. We've been dominated by sadists, or ignored by the apathetic. The few that had something to teach found us willing pupils, but those few are like drops of water in the desert.

    [...]

    We explore... and you call us criminals. We seek after knowledge... and you call us criminals. We exist without skin color, without nationality, without religious bias... and you call us criminals. You build atomic bombs, you wage wars, you murder, cheat, and lie to us and try to make us believe it's for our own good, yet we're the criminals.

    Yes, I am a criminal. My crime is that of curiosity. My crime is that of judging people by what they say and think, not what they look like. My crime is that of outsmarting you, something that you will never forgive me for.

    [...]

    In these words, you will see the frustration of living in a defective world, that deprives the individuals that wish to rise above the mediocre, of the very information and resources they desire, to know what is kept hidden, and it condemns them hypocritically as criminals.
    But the desperate search of knowledge is only one of the characteristics of the hacker. Another sure one is the pursute of extreme perfection. An interesting article, is the one that narrates the history of the first hackers, and of how they developed "Spacewar!" (the first videogame in history, born as a demo for the TX-0, meant as a "killer application" for this computer, with all its features exploitable), is "The origin of Spacewar", written by J. M. Graetz, and published in the August, 1981 issue of Creative Computing magazine.


    One of the forces driving the dedicated hacker is the quest for elegance. It is not sufficient to write programs that work. They must also be "elegant," either in code or in function -- both, if possible. An elegant program does its job as fast as possible, or is as compact as possible, or is as clever as possible in taking advantage of the particular features of the machine in which it runs, and (finally) produces its results in an aesthetically pleasing form without compromising either the results or operation of other programs associated with it.
    But the elegance and the perfection of hackers is not always comprehensible to the average individual. A hacker can often be in ecstasy reading some code written by another hacker, admiring his ability and "tasting" his style, as if he was reading poetry.
    For example, normally to exchange the content of two variables (a and b, in this case), the statement most commonly used is this, which uses a third temporary variable:

    dummy = a : a = b : b = dummy
    The following method, instead, doesn't need the third variable, because it exploits a mathematical peculiarity of the boolean operator XOR:
    a = a XOR b : b = a XOR b : a = a XOR b
    Even if this system is at least three times slower than the first one because it requires the execution of three mathematical operations, (however it allows the saving of memory that the third variable would normally occupy), a hacker will surely admire the ingeniousness and the elegance of this method, to him it assumes the taste of a Japanese haiku.
    Talking about the perfectionism of the hackers, in "Hackers: Heroes of the Computer Revolution" written by Steven Levy in 1984, in the chapter 2 ("The Hacker Ethic"), we read:

    Hackers believe that essential lessons can be learned about the systems--about the world--from taking things apart, seeing how they work, and using this knowledge to create new and even more interesting things. They resent any person, physical barrier, or law that tries to keep them from doing this.
    This is especially true when a hacker wants to fix something that (from his point of view) is broken or needs improvement. Imperfect systems infuriate hackers, whose primal instinct is to debug them. This is one reason why hackers generally hate driving cars--the system of randomly programmed red lights and oddly laid out one-way streets causes delays which are so goddamned UNNECESSARY that the impulse is to rearrange signs, open up traffic-light control boxes . . .redesign the entire system.

    In a perfect hacker world, anyone pissed off enough to open up a control box near a traffic light and take it apart to make it work better should be perfectly welcome to make the attempt.

    It's just in the name of such principle that the Linux operating system and the Gnu C compiler have been developed, their code is open and available to be changed and modified by anyone.
    Lately, many important commercial software producers also started moving in this direction, as Netscape: Netscape Communicator 5, will, in fact be the first software, originally born as a "closed" commercial product, to be developed with this type of philosophy.
    A hacker is never satisfied with the default settings of a program or of the custom installations, he always has to open the configuration menu and set the options to get the maximum performance, and to make the product work as close as possible to his "way". A hacker must be able to use, to modify and to check all the possible features of a program.

    But after all, what motivates hackers? Why do they create programs that exploit advanced techniques and then distribute them free? And why do they freely distribute knowledge that was incredibly difficult to obtain?
    A good answer could be found in the site of the KIN (Klever Internet Nothings, http://www.klever.net), they are not exactly a hacker crew, but a group of people that write programs and release them freely on the Internet:

    What makes people write software and distribute it for free? Vanity, you said? Well, maybe.. But after all, what is this business all about? Is it all about money? Ask anyone - it's not. Most people I know in the industry will tell you that.
    Their idea is "just leave me alone and let me do what I love to do".
    In short, it's not about money. It's about feeling free to do what you want, and, just possibly, to find someone that appreciates your work.

    THE HACKER ETHIC

    The true hacker doesn't have morals, and he would never censor information or ideas of any kind. An initiative of the Italian priest Don Fortunato di Noto, (fortunad@sistemia.it,) who in January of 1998 formed the "Committee of resistance against the Pedophiles", and who asked for the help of the hacker community to unmask, capture and close the sites of the pedophiles on the Internet, failed miserably as it was only supported by self-acclaimed hackers without any skill.
    Besides, hackers are tolerant by nature, and rarely get angry, but they are irritated by people and tasks perceived to be wasting their time.
    There are however, some things that hackers can be intolerant of. One of these is when lies are told, to, or about them, you can say that hackers are imbeciles (it's an opinion, after all), but you can not say that they steal chickens. And yet, it would still be unusual that hackers would hack a site to remove the lies propogated about them. It would be more typical that they would create another site, refuting the lies against them.
    Hacking can be used like as a form of protest, breaking into and modifying the websites of very well known societies and government or military corporate entities, can be a way to make public certain injustices (especially attacks to the liberty of information or expression) or violations of human rights. The hacks, of the websites of the CIA (that became Central Stupidity Agency) and of the Department of Justice, are famous for being hacked with this intention in mind.
    In the article "Hacking for Human Rights?" by Arik Hesseldahl (ahess@reporters.net) published on the online magazine Wired (http://www.wired.com) dated 14.Jul.98 9:15am, the hacker Bondie Wong, (a dissident Chinese astrophysicist who lives in Canada, that temporarily disabled a Chinese satellite in 1997), a member of the famous hacker crew, Cult of the Dead Cow (which in the beginning of 1999 released the Back Orifice trojan) threatened to attack the computer networks of foreign companies that did business with China, causing them serious damages and huge financial losses.
    In an interview conducted by Oxblood Ruffin, a former United Nations consultant, and published on Wired, Blondie Wong says: "Human rights is an international issue, so I don't have a problem with businesses that profit from our suffering paying part of the bill".

    Contrary to the complete lack of moral judgement (but, above all, of moralism) of hackers, lies a deep ethical sense, that is something allmost "religious" in most hackers.
    About this point, we can go back to the Jargon File:

    :hacker ethic, the: n.
    1. The belief that information-sharing is a powerful positive good, and that it is an ethical duty of hackers to share their expertise by writing free software and facilitating access to information and to computing resources wherever possible.
    2. The belief that system-cracking for fun and exploration is ethically OK as long as the cracker commits no theft, vandalism, or breach of confidentiality.
    Both of these normative ethical principles are widely, but by no means universally) accepted among hackers. Most hackers subscribe to the hacker ethic in sense 1, and many act on it by writing and giving away free software. A few go further and assert that *all* information should be free and *any* proprietary control of it is bad [...]

    Sense 2 is more controversial: some people consider the act of cracking itself to be unethical [...]
    But this principle at least moderates the behavior of people who see themselves as `benign' crackers (see also {samurai}). On this view, it is one of the highest forms of hackerly courtesy to (a) break into a system, and then (b) explain to the sysop, preferably by email from a {superuser} account, exactly how it was done and how the hole can be plugged --- acting as an unpaid (and unsolicited) {tiger team} [The "tiger team" derives from the U.S. military jargon. These people are paid professionals who do hacker-type tricks, e.g., leave cardboard signs saying "bomb" in critical defense installations, hand-lettered notes saying "Your codebooks have been stolen" (they usually haven't been) inside safes, etc. Serious successes of tiger teams sometimes lead to early retirement for base commanders and security officers].

    [...]

    Breaking into a system is not seen by the hacker as a criminal action, but like a challenge. The idea is not to damage the "victim", but to find a way to penetrate its defenses. It's the intellectual challenge, the curiosity, the will to experiment and to explore, this is what moves the hacker, not the will to damage someone or something, and not even to obtain personal profit.
    In another writing of The Mentor, "A Novice's Guide to Hacking- 1989 edition", dated December 1988, the author opens the essay with a call to the ethics of the category, to which follows a list of "suggestions for guidelines to follow to ensure that not only you stay out of trouble, but you pursue your craft without damaging the computers you hack into or the companies who own them":

    As long as there have been computers, there have been hackers. In the 50's at the Massachusets Institute of Technology (MIT), students devoted much time and energy to ingenious exploration of the computers. Rules and the law were disregarded in their pursuit for the 'hack'. Just as they were enthralled with their pursuit of information, so are we. The thrill of the hack is not in breaking the law, it's in the pursuit and capture of knowledge.
    In a file titled "The Hotmail Hack" written by Digital Assassin of the "United Underground" (or "U2", for short), in which a weakness of the HotMail system is illustrated, through which it is possible to enter into the mailbox of another person, the author, at a certain point interrupts the explanation with these words:
    ....but before I tell you how to use that line, I'm going to side track for a little theory behind this hack. Because there's NO point in a hack, if you don't know how it works. That is the whole idea of hacking, to find out how systems work.
    These are clear examples of what the real intent of a hacker is when he breaks a system. It's very close to the idea of a child that opens a toy to see how it works. The difference is that the hacker tries not to destroy the toy (aside from the fact that the toy is not his own...).
    Anyway, let's see the specific definition of the "cracker", according to the Jargon File:

    :cracker: n. One who breaks security on a system. Coined ca. 1985 by hackers in defense against journalistic misuse of {hacker} (q.v., sense 8). An earlier attempt to establish `worm' in this sense around 1981--82 on USENET was largely a failure.
    Both these neologisms reflected a strong revulsion against the theft and vandalism perpetrated by cracking rings. While it is expected that any real hacker will have done some playful cracking and knows many of the basic techniques, anyone past {larval stage} is expected to have outgrown the desire to do so.

    Thus, there is far less overlap between hackerdom and crackerdom than the {mundane} [the term "mundane" is taken from the Sci-Fi fandom and identifies everything outside the world of the computer science, or the hacking] reader misled by sensationalistic journalism might expect. Crackers tend to gather in small, tight-knit, very secretive groups that have little overlap with the huge, open poly-culture this lexicon describes; though crackers often like to describe *themselves* as hackers, most true hackers consider them a separate and lower form of life.

    Ethical considerations aside, hackers figure that anyone who can't imagine a more interesting way to play with their computers than breaking into someone else's has to be pretty {losing} [on the other hand, they have the same consideration for the people who use the computer in an absolute conventional way, such as only to write documents or to play] [...]

    Furthermore, about the "cracking" itself, the Jargon File says:
    :cracking: n. The act of breaking into a computer system; what a {cracker} does. Contrary to widespread myth, this does not usually involve some mysterious leap of hackerly brilliance, but rather persistence and the dogged repetition of a handful of fairly well-known tricks that exploit common weaknesses in the security of target systems. Accordingly, most crackers are only mediocre hackers.
    However, This is a superficial and reductive vision. In fact, as it is easily imaginable, there exist people, that are as experienced with computers and as thirsty of knowledge, that however don't have any respect of the hacker ethic and don't hesitate to perform actions meant to damage computer systems or other people.
    They are the so-called Dark-side hackers. This term derives from George Lucas' "Star Wars". A Dark-side hacker, just like Darth Vader, is "seduced by the dark side of the Force". It has nothing to do with the common idea of "good" and "bad", but it's closer to the idea of "legal" and "chaotic" in Dungeons&Dragons: In substance, the dark-side hackers are accorded the same dignity and recognized as having the ability of a hacker, but their orientation makes them a dangerous element for the community.
    A more common definition, reserved for those that damage someone else's computer systems without drawing any benefit from it, (therefore for pure stupidity or evilness), it is that of Malicious hackers.
    More recent versions of the Jargon File (in which some most obsolete terms have been removed), as the version 4.0.0, 24 JUL 1996, makes clear, not only the distinction between hacker and cracker, but also between the entire hack scenes and other parallel realities, like piracy, and the "warez d00dz", who collect an impressive amount of software (games and applications, or better said "gamez" and "appz"), that they are never likely to use, and whose greatest pride is to get software, break its protections, and distribute it on their website before their rival crew, where possible, within the same day it was released ("0-day warez").

    One could think that the Jargon File speaks only in theory, and that it describes the hacker ethic in a fantastic and utopian way. This is not so, hackers really are attached to their principles. The following is a practical example concerning one of the most famous hacker crews, the LOD (Legions Of Doom, that takes its name from the group of baddies in the series of cartoons of Superman and his Superfriends), of which The Mentor was also a member during the years 1988-89 (the already cited author of "The conscience of a Hacker").

    In "The History of LOD/H", Revision #3 May 1990, written by Lex Luthor (founder of the crew, from the name of the baddie in the movie Superman I), and published on their e-zine "The LOD/H Technical Journal", Issue #4, released on May 20, 1990 (File 06 of 10), we can read:

    Of all 38 members, only one was forcefully ejected. It was found out that Terminal Man [member dof the LOD/H in 1985] destroyed data that was not related to covering his tracks. This has always been unacceptable to us, regardless of what the media and law enforcement tries to get you to think.
    Yet, not all agree upon the same principles, and there are some "grey areas": for example, taking possession of objects that allow you to access information, or pursuing a personal purpose, can be considered "ethical" by some. A specific example could be "grabbing": the theft of things like keys, magnetic cards, manuals or technical schemes, anyway this is a debatable activity, since a hacker prefers to copy rather to subtract, not only to not damage the "victim", but also to avoid leaving traces of his intrusion. A more acceptable and legal variant is "trashing", that consists in looking inside the garbage of the subject, searching for objects and/or useful information.
    But breaking into computer systems is only a small activity amongst the many things that hackers are involved in, and the aversion against the virtual vandal actions are a small part of the hacker ethic.
    The hacker ethic is something greater, almost mystic, and draws its origins from the first hackers, those that programmed the TX-0, using the first available computers in the big American universities like MIT or Stanford.
    From the already cited "Hackers, Heroes of the Computer Revolution" by Steven Levy:

    Something new was coalescing around the TX-0: a new way of life, with a philosophy, an ethic, and a dream.
    There was no one moment when it started to dawn on the TX-0 hackers that by devoting their technical abilities to computing with a devotion rarely seen outside of monasteries they were the vanguard of a daring symbiosis between man and machine. With a fervor like that of young hot-rodders fixated on souping up engines, they came to take their almost unique surroundings for granted, Even as the elements of a culture were forming, as legends began to accrue, as their mastery of programming started to surpass any previous recorded levels of skill, the dozen or so hackers were reluctant to acknowledge that their tiny society, on intimate terms with the TX-0, had been slowly and implicitly piecing together a body of concepts, beliefs, and mores.

    The precepts of this revolutionary Hacker Ethic were not so much debated and discussed as silently agreed upon. No manifestos were issued ["The Mentor"'s one, very polemic, was written only about twenty years later]. No missionaries tried to gather converts. The computer did the converting [...]

    Shortly, Steven Levy sums up the "hacker ethic" this way:
    Access to computers -- and anything which might teach you something about the way the world works -- should be unlimited and total. Always yield to the Hands-On imperative.
    All information should be free.

    Mistrust Authority. Promote Decentralization.

    Hackers should be judged by their hacking, not bogus criteria such as degrees, age, race, or position.

    You can create art and beauty on a computer.

    Computers can change your life for the better.

    LIKE ALADDIN'S LAMP, YOU COULD GET IT [THE COMPUTER] TO DO YOUR BIDDING.


    THE LAMER

    From "The Hacker Crackdown - Law and Disorder on the Electronic Frontier" by Bruce Sterling, Bantam Books, 1992. (ISBN 0-553-08058-X, paperback: ISBN 0-553-56370-X, released as free electronic text for non-commercial purposes)

    There are hackers today who fiercely and publicly resist any besmirching of the noble title of hacker. Naturally and understandably, they deeply resent the attack on their values implicit in using the word "hacker" as a synonym for computer-criminal.
    [...]

    The term "hacking" is used routinely today by almost all law enforcement officials with any professional interest in computer fraud and abuse. American police describe almost any crime committed with, by, through, or against a computer as hacking.

    If the differentiation between hacker, cracker and dark-side hacker can result a very tiny distinction for the ones who live outside of the computer scene, nobody, especially a journalist, should confuse a hacker with the poor idiot that was locked up for using, with no thought to the consequences, programs that he found somewhere. (even if using the term "hacker" does sell more newspapers... The difference between hackers and journalists is that the aforementioned have ethics, the latter, not even a sense of modesty... but this is often simply mere ignorance).
    Let's take as an example the following article published on the Italian newspaper "L'Unione Sarda" (http://www.unionesarda.it/), by Luigi Almiento (almiento@unionesarda.it).

    POLICE.

    The arrested hacker is a surveyor, aged 25

    Files were stolen from the computers of internet "navigators", with the aid of a virus
    spread on the Internet


    Many people from different national service providers, recently learned to their own detriment, that it is better not to stay and chat to strangers on the chat-lines of the Internet. This occured when a hacker aged 25, obtained the user names and passwords of their dial up accounts, while they were on-line.

    [...]

    "Harris", explains the lieutenant Saverio Spoto, commander of the Police Station [actually they are "Carabinieri", not the normal Police, because in Italy there are two different polices, don't ask why], « contacted his victims through Icq, a "talking place", offered by many Internet providers». During these "written talks", using an access key he acquired that gives false information, G. F. sent the Netbus virus to the computers of his victims. This allowed him to "navigate" the hard drives of the computers of these people while they were connected to the internet. Harris also had a site, which offered pornographic pictures, pirate-programs and files of every kind, and whenever someone connected to his address, they were immediately infected by the computer virus.

    [...]

    In a few words, lieutenant Spoto succeeds in showing his complete ignorance of the subject: he gives an abominable definition of ICQ, defines Netbus as a virus rather than a trojan (which means he doesn't have any idea of how it works), and still not being satisfied with this, attributes it with a contagiousness similar to the Ebola virus: to be infected simply by connecting to an Internet address sounds like something supernatural. Then, he shamelessy concludes with the invitation "If anyone has had contact with Harris, and thinks that their files may have been forced, they can come to us at the Police Station". If everyone at the Police Station are as experienced as he is, it would be preferable to keep the Harris' "virus" rather than allowing them to put their hands anywhere near your computer.
    Besides, these self-acclaimed hackers are almost never bust because of a police operation, (unless they caused a lot of trouble), but because they have the stupid habit of boasting of their actions in chatrooms or even in real life. Often in front of total strangers, that are often police officers or people close to the law enforcement environment, (such as the child or the girlfriend of a police officer).
    In fact, the conclusive part of the article regarding "Harris" says: "The investigators did not explain how, but only that they had succeeded in identifying the surveyor": obviously the law officers would like people to think that they identified the guilty person by means of some complicated technique, pursuing the information packets or something in this line, rather than admitting that they only had to make a few enquiries on IRC channels.

    The hacker is the one that develops the exploit, and eventually creates a program based on this expoit. People that blindly use these programs because they found them on the Internet, or even worse, because a friend passed them on to them, are merely lamers, that only have a vague idea of how to use the tool they have in their hands and they know nothing about computer systems, programming, or how to cover their tracks. Often these self-acclaimed hackers, self infect themselves with a virus or a trojan they just downloaded, due to their incapabilities.
    Putting these programs in the hands of the average person is like giving a loaded gun to a five year-old.

    The fact is, that up to the early '80s, computers were only intended for hackers, specialized personnel or students. Only later did they appear on the desks of offices and in houses. The first home computers replaced the primitive consoles of videogames like the Atari 2600, the Intellivision and the Colecovision (the revolution was lead by the Commodore 64 and the Sinclair ZX Spectrum), but still across the whole world there was a "computer culture" throughout the '80s, there were published magazines that taught programming (mainly BASIC, as well as Machine Code) and very advanced techniques worthy of the best hackers. Then during the '90s, Apple and Microsoft's dream started to come true, "a computer on every desk and in every home". The computer became a common appliance available to almost everybody, the general level of the magazines started to drop, and almost all were confined to publishing articles about the latest hardware and software, or advice on how to use commercial applications.
    This change in the computer world that made computers not only the sole domain of the hackers, but for everyone, has certainly had some positive general effects, but it proved to be a double edged sword, especially with the advent of the Internet. These days anyone can have powerful tools that inflict damage on other people, real "digital weapons", without having a clue about how they work or how they should be "handled". The average guy can get locked up just for perpetrating what he thought was a "cool" joke, even if it was in bad taste.

    All those lamers-wannabe-hackers should better satisfy their needs with APEX v1.00 r10/8/91, a nice program written by Ed T. Toton III (however the original idea is older) that simulates the connection to different US government and military computers (like those of NORAD, or of NASA), among other things it is also possible to pretend that you are the President of the United States of America, and enter the system that controls the nuclear weapons.
    With a bit of ability and practice, it is possible to convince some friends that you are really trying to force the US computer systems, and pass the time having good clean fun, without hurting anybody, risking a jail sentence and/or offending the hackers by trying to pretend to be what you are not.

    But besides this, outside of the "criminal" context, something that bothers hackers is the ever increasing mass of self-claimed computer "experts", that actually don't know much more than how to turn on a computer and launch a program, and they fill their mouthes with loads of technical words about which they know nothing.
    At this point, it is very interesting to read this text from the already quoted home page of the KIN:

    I remember [...] When writing software was closer to art and magic than to business and/or just coding. I miss that now. What happened after that? Well, tons of fast graduates appeared who could only do Basic or Clipper/DBase programming, who pretended to be the best. They could wear suites and had money and relatives... I called them nephews. How many times were you in the situation when you gave the best offer, and you simply feel you HAD to write this software - but in the end your client says something like: "I'm really sorry, but I just got a call from my wife and her nephew works for this company in Nebraska who are certified Basic engineers so we'll have to give the contract to them?" The nephews produced terrible software which led to terrible disappointments in the industry ('I've invested so much money in computers and it's not really working for me').
    [...] The Net gives you a chance to be first creative and then think about business. Let's use it now - before nephews will get their certified degrees....

    Sadly, a crowd of nephews are already working, with or without certified degrees, and armed with programs like Front Page or Publisher creating websites, filling their big mouths with words like FTP and client-server application, even if they don't know what they mean or what they are talking about.
    Luckily, the Net is large and, - at least for the moment, - it generates its own rules by itself. There is room for everyone.


    ADDED BY ZION:
    BYE!
     
  19. Vegeto Registered Member

    Messages:
    5
    Plz tell me

    Plz tell me this, this ass hole on icq keeps talkin shit to me and my girl, is there any way i can hack into his computer and fuck up his icq and not get cought? so he cannot do that any more ?!?!?

    Do please watch the language
    wet1
     
  20. CounslerCoffee Registered Senior Member

    Messages:
    4,997
    First of all watch the language. Second of all read and learn some networking, and programing languages. Like C++, thats a great start.

    ICQ has many security holes in it, so I would just be careful, it is very possible to be hacked, but I wouldnt take the guys threats seriously.

    Now, most white hats used to be hackers. Its a great way to get experience, but only by playing games, Im not for illegal stuff.

    /CounslerCoffee
     
  21. Vegeto Registered Member

    Messages:
    5
    hm.... is there any other way..easyer...hes not talking abouthacking me but hes talkin sh...crap to my girl...plz tell me if there is a way..
     
  22. chroot Crackpot killer Registered Senior Member

    Messages:
    2,350
    I believe ICQ has a feature to block users from communicating with you. Do that.

    - Warren
     
  23. Vegeto Registered Member

    Messages:
    5
    i did, he still talks to me somehow!!
     
Thread Status:
Not open for further replies.

Share This Page