mirror of
https://github.com/fdiskyou/Zines.git
synced 2025-03-09 00:00:00 +01:00
215 lines
11 KiB
Text
215 lines
11 KiB
Text
---[ Phrack Magazine Volume 8, Issue 52 January 26, 1998, article 01 of 20
|
|
|
|
|
|
-------------------------[ P H R A C K 5 2 I N D E X
|
|
|
|
|
|
--------[ Choose your own $PATH adventure
|
|
|
|
|
|
|
|
Whew. You would be quite surprised at the evil wheels I had to set in
|
|
motion in order to get this issue out. According to Newton, a Phrack Issue
|
|
remains at rest or continues to move in a straight line with a uniform
|
|
velocity if there is no unbalanced force acting on it. This issue was at rest.
|
|
Its velocity was constant. And there were few forces acting on it. Anyhow,
|
|
after many machinations it's here. Enjoy.
|
|
|
|
I have a gripe. Something upon which I'd like dwell for a spell. Let's
|
|
talk about coding aesthetic (from the C programming standpoint). Now, this is
|
|
not a harangue about effective coding or efficient coding, I'll save those for
|
|
some other time (perhaps for the time when I feel I can write effective and
|
|
efficient code proficiently enough to vituperate to those who do not). I
|
|
want to touch down on a few topics of visual appeal, which are overlooked so
|
|
often.
|
|
|
|
The five major areas I will cover are indentation, brace placement,
|
|
use of whitespace, commenting, as well as variable and function nomenclature.
|
|
I suppose I should also mention that coding style is a personal preference
|
|
type of thing. There are all kinds of schools of thought out there, and all
|
|
kinds of methodologies on how to write pretty code. In the grand scheme of
|
|
things, none are really any more correct than any others, except mine.
|
|
|
|
C is, for the most part, a format free programming language. Code can be
|
|
written with all manner of whitespace, tabs, and newlines. The compiler
|
|
certainly doesn't care. The machine doesn't care. This can be a double
|
|
edged sword. There is quite a bit of room for artistic interpretation. And
|
|
just like in real life, there is a lot of crappy art out there.
|
|
|
|
Indenting your code is a must. Please, do this. Indentation is here for
|
|
one simple reason: to clearly and unequivocally define blocks of control.
|
|
However, 8 space tabstops are overkill. Unless you are using a 2 point font on
|
|
a 13" screen, 4 spaces should easily define your control blocks. This allows
|
|
you to maintain clarity on an 80 column screen while nesting blocks of control
|
|
much deeper then you would with 8 space tab stops. 2 space tabstop advocates
|
|
should be shot. However, don't let typography take over your code (ala ink
|
|
obscuring the intent). If you have 7 million levels of indentation, perhaps
|
|
you should rethink your approach to tackling the problem...
|
|
|
|
Bracing has a simple solution. The most effective use of bracing is in
|
|
placing them on newlines so that they neatly enclose the area of control. This
|
|
is especially important with nested levels of control. I know this generates
|
|
empty lines. Oh well. They're free. Blocks of control become easily visible
|
|
and it is easy to isolate one from another. This goes for functions as well
|
|
as conditionals and loop structures. I know I go against K&R here. Oh well.
|
|
|
|
In the pursuit of clear, readable code, whitespace is your friend. Single
|
|
space all keywords and all variables and constants separated by commas. It's
|
|
a simple thing to do to drastically improve readability. When you have a
|
|
series of assignments, one after another, it's a nice touch to line them up on
|
|
the closest relative 4 space boundary. And please, no spaces between structure
|
|
pointer operators and structure contents.
|
|
|
|
Commenting is a delicate matter. Descriptive, concise, well written code
|
|
shouldn't really need commenting, or at least very much of it. But this isn't
|
|
a rant about descriptive, concise, well written code. If you feel the need
|
|
to comment your code, follow a few simple rules:
|
|
- Keep the comment block as small as possible.
|
|
- Don't tab out your comment frames to line up with each other. That's
|
|
just plain fucking annoying. If you're doing that, you have too many
|
|
comments anyway.
|
|
- Commenting datatype declarations rather then the functions that
|
|
manipulate them is usually more helpful.
|
|
- If you must comment, keep your style as consistent as possible. If the
|
|
commenting detracts from the readibilty of your code, you've just ponied
|
|
up any clarification you might have achieved with the commenting.
|
|
|
|
The major exception to these rules are file headers. The beginning of
|
|
source and header files should always have some descriptive information,
|
|
including: file name, author, purpose, modification dates, etc... These
|
|
comment blocks should always have a simple vertical line of unobtrusive
|
|
astricks, framed with the required forward slashes. People using C++ style
|
|
commenting in C programs should be drawn and quartered.
|
|
|
|
The other exception to this rule is when you are writing code specifically
|
|
for the benefit of others. If the code is intended to be a learning tool,
|
|
copious commenting is allowable.
|
|
|
|
Variable and function nomenclature should have connotation as to what their
|
|
purpose in life is. As short as possible while still preserving some sort of
|
|
identity. Descriptive names are wonderful, but don't go overboard. Generally,
|
|
a condensed one or two word descriptor (possiblely connected via an underscore)
|
|
will work fine. And please, no mixed case. The only time uppercase characters
|
|
should appear in C code are in symbolic constants and macros (and possibly
|
|
strings and comments).
|
|
|
|
|
|
This tirade is the result of my experiences in reading and writing C code.
|
|
In my travels as a stalwart mediocre programmer, I have progressed through many
|
|
levels of maturity in my programming style. Much of my old code exhibits many
|
|
of the very things eschewed as anathema in this jeremiad. Well, what can I
|
|
say? I believe that I have grown. I am at home with the me. This is me
|
|
breathing. (Tell me what movie that's from, and I will give you a Phrack
|
|
Donut.)
|
|
|
|
|
|
Enjoy the magazine. It is by and for the hacking community. Period.
|
|
|
|
|
|
-- Editor in Chief ----------------[ route
|
|
-- Director of Public Operations --[ dangergirl
|
|
-- Phrack World News --------------[ disorder
|
|
-- Werdsmith ----------------------[ loadammo
|
|
-------- Elite --------------------> asriel
|
|
-- Santa vs. Jesus ----------------[ ISS vs. SNI
|
|
-- Festively Plump ----------------[ Cartman
|
|
-- Extra Special Thanks -----------[ No one.
|
|
-- Official Phrack CD -------------[ FLA/Flavour of the Weak
|
|
-- Official Phrack Drink ----------[ `The C Kilborn` (2.9 parts ketel one,
|
|
-----------------------------------| .1 parts tonic)
|
|
-- Shout Outs and Thank Yous ------[ Lords of Acid, cantor, Yggdrasil,
|
|
-----------------------------------| snokerash, Voyager, TNO, Jeff Thompson,
|
|
-----------------------------------| angstrom, redragon, Rob Pike, halflife
|
|
-- B.A. Baracus Phrack Fracas -----[ loadammo vs. Death Veggie
|
|
-- Original flip.c author (props) -[ datagram
|
|
-- Gas Face Given (drops) ---------[ solo, klepto
|
|
|
|
Phrack Magazine V. 8, #52, January 26, 1998. ISSN 1068-1035
|
|
Contents Copyright (c) 1998 Phrack Magazine. All Rights Reserved. Nothing
|
|
may be reproduced in whole or in part without written permission from the
|
|
editor in chief. Phrack Magazine is made available quarterly to the public,
|
|
free of charge. Go nuts people.
|
|
|
|
|
|
Subscription requests, articles, comments, whatever should be directed to:
|
|
|
|
phrackedit@phrack.com
|
|
|
|
Submissions to the above email address may be encrypted with the following key:
|
|
|
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
Version: 2.6.2
|
|
|
|
mQENAzMgU6YAAAEH/1/Kc1KrcUIyL5RBEVeD82JM9skWn60HBzy25FvR6QRYF8uW
|
|
ibPDuf3ecgGezQHM0/bDuQfxeOXDihqXQNZzXf02RuS/Au0yiILKqGGfqxxP88/O
|
|
vgEDrxu4vKpHBMYTE/Gh6u8QtcqfPYkrfFzJADzPEnPI7zw7ACAnXM5F+8+elt2j
|
|
0njg68iA8ms7W5f0AOcRXEXfCznxVTk470JAIsx76+2aPs9mpIFOB2f8u7xPKg+W
|
|
DDJ2wTS1vXzPsmsGJt1UypmitKBQYvJrrsLtTQ9FRavflvCpCWKiwCGIngIKt3yG
|
|
/v/uQb3qagZ3kiYr3nUJ+ULklSwej+lrReIdqYEABRG0GjxwaHJhY2tlZGl0QGlu
|
|
Zm9uZXh1cy5jb20+tA9QaHJhY2sgTWFnYXppbmU=
|
|
=1iyt
|
|
-----END PGP PUBLIC KEY BLOCK-----
|
|
|
|
As always, ENCRYPTED SUBSCRIPTION REQUESTS WILL BE IGNORED. Phrack goes out
|
|
plaintext. You certainly can subscribe in plaintext.
|
|
|
|
phrack:~# head -20 /usr/include/std-disclaimer.h
|
|
/*
|
|
* All information in Phrack Magazine is, to the best of the ability of the
|
|
* editors and contributors, truthful and accurate. When possible, all facts
|
|
* are checked, all code is compiled. However, we are not omniscient (hell,
|
|
* we don't even get paid). It is entirely possible something contained
|
|
* within this publication is incorrect in some way. If this is the case,
|
|
* please drop us some email so that we can correct it in a future issue.
|
|
*
|
|
*
|
|
* Also, keep in mind that Phrack Magazine accepts no responsibility for the
|
|
* entirely stupid (or illegal) things people may do with the information
|
|
* contained here-in. Phrack is a compendium of knowledge, wisdom, wit, and
|
|
* sass. We neither advocate, condone nor participate in any sort of illicit
|
|
* behavior. But we will sit back and watch.
|
|
*
|
|
*
|
|
* Lastly, it bears mentioning that the opinions that may be expressed in the
|
|
* article of Phrack Magazine are intellectual property of their authors.
|
|
* These opinions do not necessarily represent those of the Phrack Staff.
|
|
*/
|
|
|
|
-------------------------[ T A B L E O F C O N T E N T S
|
|
|
|
1 Introduction Phrack Staff 12K
|
|
2 Phrack Loopback Phrack Staff 60K
|
|
3 Line Noise various 79K
|
|
4 Phrack Prophile on o0 Phrack Staff 07K
|
|
5 Everything a hacker needs to know about getting busted Agent Steal 72K
|
|
6 Hardening the Linux Kernel daemon9 42K
|
|
7 The Linux pingd daemon9 17K
|
|
8 Steganography Thumbprinting anonymous 35K
|
|
9 On the Morality of Phreaking Phrack Staff 19K
|
|
10 A Quick NT Interrogation Probe twitch 18K
|
|
11 Subscriber Loop Carrier voyager 48K
|
|
12 Voice Response Systems voyager 18K
|
|
13 Pay Per View (you don't have to) cavalier 19K
|
|
14 The International Crime Syndicate Association D. Demming 20K
|
|
15 Digital Certificates Yggdrasil 14K
|
|
16 Piercing Firewalls bishnu 31K
|
|
17 Protected mode programming and O/S development mythrandir 76K
|
|
18 Weakening the Linux Kernel plaguez 27K
|
|
19 Phrack World News Disorder 64K
|
|
20 extract.c Phrack Staff 08K
|
|
|
|
687K
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
When Sen. Bob Kerrey (D-Neb.) was asked to define encryption, the results
|
|
were horrific. "Well, I mean, to answer your question, I mean, encryption is
|
|
-- the political equivalent of encryption is you ask me a question, I give you
|
|
an answer and you don't understand it," he managed. "I mean, I intentionally
|
|
garble the answer frequently. I intentionally garble the response so that you
|
|
can't understand what I'm saying. And that's -- you notice that I've got the
|
|
ability to do that."
|
|
|
|
-----------------------------------------------------------------------------
|
|
|
|
----[ EOF
|