[!] =-= !b4b0!b4b0!b4b0!b4b0!b4b0!b4b0!b4b0!b4b0!b4b0!b4b0!b4b0!b4b0! =-= [!] [ The Resurrection of Vice ] [ B 4 B 0 ] oooooooooooooooooo. .8888888' `8888888. 8888888 8888888 8888888 8888888 88888888 88888888 .oooooooo. . .oooooooo. .ooooooo. d88' `88b .8 db d88' `88b d88' .888b S$$$$$Ss. 888 .88p .d8 88 888 .88p 888 .8'888 `'$$s. 888 888 .d8' 88 888 888 888 .8' 888 $$$ 888 `88b .d8888888 888 `88b 888.8' 888 .$$$' 888. .88P 88 888 .88P 8888' 888 .s$$$' `Y8bood88P 88 `Y8bood88P `Y8bod8Y' `s. sS$$$' `$$$$$' 88888888 88888888 .s$$$'`$s. 8888888 8888888 .s$$$$$' `$$s. 8888888 8888888 .s$$$$$$' `$$$s. `8888888. .8888888' .$$$$$$' `$$$s. `ooooooooooooooooooo' $$$$$$' B 4 B 0 `$$$$. [ eight is great ] `$$$$$s. .s$$$$$ `$$$$s. .sS$$$$$' "I believe the only positive recourse `$$$$$$$$$$$$$$$' is through the means of justice, the `$$$$$$$$$$' means of liberation; the means of B4B0." - Noam Chompsky www.b4b0.org [ yes, the "HEH" in all caps was started by B4B0 ] (c) 1999, B4B0 Worldwide Enterprises, LLC B - 4 - B - 0 - B - 4 - B - 0 - B - 4 - B - 0 - B - 4 - B - 0 - B - 4 - B - 0 A long time ago, in a galaxy far, far away... 8-=-=-=-=-=-=-=-=-=-=-=-=-8 | B 4 B 0 Eight: | | Th3 Qu3st f0r N3w K0d3Z | 8-=-=-=-=-=-=-=-=-=-=-=-=-8 "She's dead, j1mmy." - m1st4h cl34n .$@$@$@$. - B 4 B 0 - =-= $@ Cast: @$ =-= - B 4 B 0 - '$@$@$@$' tEEp .......................................................... as El Juevo c0mp4ct ..................................................... as Fast Benny phFh4Ck3r ................................................ as Henry Winkler phEEckZ .................................... as the California Dreamin' kid gRE-0p ................................................. as Honcho Overload thE MiLk ........................................... as Five Finger Freddie kuR4cK .................................................. as Nathan Johnson aH-lEHck ............................................ as Destruction Oliver sEEgn4l .................................................... as Udo Jergens jEEmEE ...................................................... as 'the Fist' g4rEE-n00 ...................................................... as himself smIEleH .................................................. as Onion Greenie pAH-bEhL .................................................... as Mace Windu hIE-bRIhD ............................................. as Ringo Castranoga m1st4h cl34n ......................................... 4s 31337 u3b3rm3nsch .$@$@$@$@$@$. - B 4 B 0 - =-= $@ Written by: @$ =-= - B 4 B 0 - '$@$@$@$@$@$' B4B0 Staff Likk3r fluffy coffee bunny pr0phet elaich cain fred_ schemerz nawk tGb various .$@$@$@$@$@$@$@$. - B 4 B 0 - =-= $@ Directed by: @$ =-= - B 4 B 0 - '$@$@$@$@$@$@$@$' mistah clean, th3 B4B0 fuX1n supr3m3 [ on the cover: logo by kkr and fuzebox, assembled by m1st4h cl34n ] [ other artwork done by: kkr, MiLk-MaN, and m1st4h cl34n ] B - 4 - B - 0 - B - 4 - B - 0 - B - 4 - B - 0 - B - 4 - B - 0 - B - 4 - B - 0 ~!@#~!@#~!@#~!@#~!@#! ! Table of Elements ! 8 B4B0 Eight 8 ~!#@~!@#~!@#~!@#~!@#! [ 1] B Introduction ............................................ m1st4h cl34n [ 2] 4 The Liberation of Normalcy .............................. m1st4h cl34n [ 3] B Bitslice DES .................................................. smiler [ 4] 0 LibTCL Stuff .................................................. Likk3r [ 5] B Introduction to MC/ServiceGuard (Part One)........................ tip [ 6] 4 The Daily Task at Hand ........................... fluffy coffee bunny [ 7] B Internet Explorer / Realm ....................................... nawk [ 8] 0 Operating Companies of the US ................................. hybrid [ 9] B Rolling Deep ..................................................... tgb [10] 4 The Physics of Handrails ....................................... jorge [11] B An Introduction to Smartlink(tm) 3175 APSS .................... elaich [12] 0 Programming with Files and Directories .......................... ph1x [13] B Gaining Access to the Virgin Baptist System .................. pr0phet [14] 4 To Foil Spoofing ............................................ schemerz [15] B 5ESS-2OOO Compact Exchange Units .............................. hybrid [16] 0 Parallel Port Hardware Interfacing .............................. alec [17] B NT General Overview ......................................... MiLk-MaN [18] 4 Conclusion .............................................. m1st4h cl34n ~!@#~!@#~!@#~!@#~!@ ! Attached Juarez ! 'juarez' directory ~!@#~!@#~!@#~!@#~!@ [ 1] B Arabian Name Translator (fn.c) ............................... comp4ct [ 2] 4 B4B0-Craq (b4b0-craq.tgz) ........................................ rsh [ 3] B LKM Stuff (lkm.tgz) ........................................... smiler [ 4] 0 Messaging System (hhp-ms.c) ...................................... tGb [ 5] B HEH File Fucker (wraith.c) ..................................... fred_ [ 6] 4 FreeBSD 3.0 Character Driver (fbsdchar.tgz) ..................... cain [ 7] B B4B0 Chiq of the Month Photo Spread (jennicide.zip) ........ jennicide [ 8] 0 Secret 0-day mp3 (0-day.mp3) ............................ k0d3 r3l4y3r x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x "For one cannot possibly understand the task at hand, without the full flavor of B4B0." - Phillip K. Dick x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@# ! Introduction ! m1st4h cl34n ~!@#~!@#~!@#~!@# ^^^^^^^^^ $$$$$$$$$ /--------------------------------\ $$$$$$$$$ | g1b00r m3 d4t B4B0 sh1zz!@#!@# | | ^ ^ | 0-d4y3 \--------------------\ /--------/ ( -0-^-0- ) <-- k0d3 \ | u | k1d ` | <=> | \_____/ normalcy. the everyday lullness of life never seems to have had its way with the most of the lot; yet most seem content with it. the end of the ways of the truth are burdened upon the ordinary soul. how does one overcome this? how can one look to the sky and exclaim, 'free me from my burdened life! i want to taste the impeccable taste of liberation! i want to live life to its fullest!' however, these cries of help remain unanswered. it is with the implementation of 'Ultimate B4B0' that one can attain a higher spiritual sense of being. Ultimate B4B0 is the way. freedoms gathered from the broad regions of the earth come forward to kiss the poor man's feet. and yet there is a whirling dervish of implication that freedoms lie unburied within the soul. the simple answer is to let these out. it is with Ultimate B4B0, that this is acheived. your fucking editor, m1st4h cl34n - B4B0: Where you always save more money. - Move over bacon, now there's something B4B0ier! - Blue bars, white stars, it's the Dukes of B4B0 inside that car... - Five eight eight, two three hundred ... bah b0h! - Can anything stop ... the B4B0-mal! - Domo arigato, mister bah-bah-b0h... - With your amazing B4B0-kit, you could be raking in tens of thousands of dollars every week! - B4B0: Enjoy the ride. - There's nuthin nuthing, like a B4B0-muffin... - Monster B4B0's ... this Sunday, Sunday, Sunday, Sunday ... - B4B0 spark plugz ... what a rush! - B4B0: What luxury should be. - B4B0: I hope your speed over the rival. - B4B0: Always fresh, never frozen. - Pray to the gods of B4B0 for your victory. - B4B0 Joe: He's a real American hero. Greets (no particular order): ----------------------------- steve albini, the jesus lizard, hybrid, everyone at 9x, everyone at dope.org and Apocalypse 2000 BBS (ie, fringe, silo, lineman, trainrek, angrinon, et al), everyone in chicago, jennicide, chiXy, patpoker, miah, the whole uddf crew, everyone at rhino9, samjay, assem, qytpo, ohday, st0ner, fuzebox, phlypside, module, #tamarac, mr. and mrs. harney, headflux, rash, guidob, gob, elaich, gb, dap, elaich, airport man, csoft, semloh eitak, touch and go records, the fireside bowl, the chicago indie rock scene, Phrack, BoW, H4G1S, Persiadic, vect0rx, rach, pr0phet, fred, schemerz, NoU, Radiohead, Burning Airlines and pr0p4h-m3th0d for editting issue four. Fuck Yous (no particular order): -------------------------------- Andre Klophus (eggdrop kiddie) MTV - for putting out the Ostre, GA N-2621 and shittiest shit in +47 950 48606 'original' programming The Usual (no particular order): -------------------------------- B4B0's Official Spokesperson for Issue 8: Paul Reubens B4B0's Correction for Issue 6: so1o is now known as fzx or forenzix, or Chris McNab; he runs ns2.co.uk; he's also known for the recent www.senate.gov stuff; I'm sure you know this stuff already. B4B0's Cool Website of the Month: http://www.dope.org B4B0's Chiq of the Month: jennicide (she gibb0rz m1st4h cl43n m4d st1ff13z) B4B0's Drink of the Month: Crown and Coke B4B0's Official Car of the Month: 4th Generation Z: 300zx Twin Turbo (90-96) B4B0's Movie of the Month: Blue Velvet (directed by David Lynch) B4B0's Official Songs of the Month: ANYTHING by Xerobot (fucked up Wisconsin band) ANYTHING by Zeni Geva (fucked up Japanese band) Mr. Roboto by Styx B4B0's Albums of the Month: Six Finger Satellite - Severe Exposure (Sub Pop) Brainiac - Bonsai Superstar (Grass Records) The Jesus Lizard - Goat (Touch and Go) B4B0 Comment of the Month: Our nads are not only toasty warm and dangle perilessly from the cold, but they are also quite mallable. Would your eager hands feel? B4B0 Stupid Shit of the Month: Snowboarding and snowboarding-referencing TV commercials. Official Idiot of the Month: Neo (from uddf.net) Email us: letters<at>b4b0.org x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x !B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0 !B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0 !B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B4B0!B x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~! ! The Liberation of Normalcy ! m1st4h cl34n ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~! Article Six: Liberation of Normalcy The dead ringers of stalled time reign supreme in the ears of the countless masses hushed in soothing solitude. How does it end like this ... life with- out the fervor of embellishment? If you do refer to Article One: Ultimate B4B0, you will find stated, "The liberation of the fallacy known as normalcy is not only limited to one cause ... comprised of many individuals designed to help the resurrection of vice." It is with this Resurrection of Vice that all is possible. It is not merely another term for the all-endearing, "Ultimate B4B0," rather the appraisal of the senses into depths never before explored. The Resurrection of Vice is the freedom that will surround you and free you of your shackles. It is with the Essence of B4B0, the "Golden Calf" which makes the im- possible possible. A sight to behold, the "Golden Calf" not only holds the entrails of the residual embellishment of life, but represents the fine line between religion and empowerment. The power of the Essence of B4B0 truly is a force to be reckoned with; teenage girls quiver with bent knees merely at the mention of its name. Grown men have been known to cause "disco dump" overhearing its name. And it is with the devout study of B4B0's theology that makes everything in life easier to understand. Ultimate B4B0 makes this possible. The Resurrection of Vice makes this possible. The Essence of B4B0 (the "Golden Calf") makes this possible. It is up to the practitioner of B4B0, on how far does the liberation of normalcy goes. - m1st4h cl43n x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x _____________________________ | I dr1nk M1Lk s0 sh0u1d you | __________ |---------------------------- \ MiLk / / ------------- / (.) (.) / O / ( ) / \ / /\ 0 /\ / --- \ |__ b4b0_| | || || | | || || | @ ----- @ | | | | | | | | | | | | @@@@@@@ Slide 1 x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@# ! Bitslice DES ! smiler ~!@#~!@#~!@#~!@# The Data Encryption Standard (DES) has been a worldwide standard for 20 years. Although it is showing signs of old age, it has held up remarkably well against years of cryptanalysis. Recently two cryptanalysis techniques - Differential and Linear Cryptanalysis - have emerged that can greatly lower the complexity of an attack on DES. However they are generally regarded to be impractical against full 16-round DES, requiring 2^47 chosen plaintexts or 2^55 known plaintexts. Most of the time you will only know one plaintext block (and the cyphertext block it corresponds to). So at the moment the best way to discover the key is by brute force. The keyspace is sufficiently small (2^56) for a brute force attack to be viable. This of course means you will need at least one block of plaintext. The NSA is believed to have hardware implementations of DES that can brute force the entire key-space in as little as a day. Probably less. However because of the huge expense, most people will most probably only be able to get hold of a software implementation of DES. These are of course much slower. Nearly every single operation in DES involves swapping individual bits between 64-bit words - your average 32-bits microprocessor is not particularly good at this. A simple minded implementation would take ~200 cycles to complete just one expansion permutation, where as in hardware it would take something closer to 5 clock cycles. And even with amazingly cunning optimisations (see Eric Young's DES lib) a software implementation is always going to be a fair bit slower. Until recently Eric Young's DES implementation was the fastest around, until somebody came up with Bitslice DES. But everybody still uses Eric Young's library because Bitslice is only suitable for a brute force key search. Before I dive straight in to bitslice DES, I'll explain very briefly the workings of DES. In DES, a block is 64 bits long. The right half of the plaintext block is combined with a 48-bit subkey extracted from the actual key to give a 48-bit output. This passes through an "S-box substitution", consisting of 8 S-boxes, each of which take a 6-bit input and give a 4-bit output. Hence a 48-bit input block goes to a 32-bit output block. Traditionally each of these S-boxes are thought of as table lookup operations. Each entry in the box is a 4-bit number. 2 of the input bits determine the row, the other 4 determine the column. This, with a few other operations constitutes one round of DES. In full DES there are 16 rounds. If you want more information on DES and cryptography in general, I would suggest buying Bruce Schneier's "Applied Cryptography", although there a few cryptography pages scattered around the web. If you just want a simple, fast(ish) implementation of DES, then Eric Young's SSLeay is probably your best bet, it can be found at ftp.psy.uq.oz.au/pub/Crypto/SSL. In software it is the S-Boxes that are the bottleneck in terms of speed. So most software implementations simply represent each S-box as a table of 64 values (referenced by the 6 input bits). Software implementations also make optimisations to speed up the other operations like the Expansion, Key, Initial and Final permutations. But however fast these are, they are still just souped up versions of the original DES implementation. Bitslice takes a new approach. Instead of encrypting one block at a time, Bitslice DES can encrypt 32 blocks in parallel (or 64 blocks, depending on the size of the processor word). This isn't quite as fast as it sounds, as each operation is done one bit at a time. Various tradeoffs mean that on a 64-bit processor, the bitslice implementation is from 1.5 to 3 times faster than the fastest DES libraries. Bitslice on a 32-bit processor is usually marginally slower than the fastest normal DES encryption program. It is kind of difficult to explain in words how the plaintext blocks are arranged, so I've come up with a couple of diagrams to illustrate it. Think of a processor word as going across. So normally, each block is stored in its own word. But in bitslice, each block goes vertically downwards, with corresponding bits from different blocks being stored in the same word. Note this is how both the plaintext blocks, and the key blocks are arranged. -----[ Ordinary Software Implementations: ------------ | 0 --- 63 | Block 0 ------------ . . ------------ | 0 --- 63 | Block 63 ------------ -----[ Bitslice Implementation: ------- |00|00| ... ------- |01|01| ... ------- . . . . ------- |63|63| ... ------- The advantage with the bitslice implementation is that each individual bit(for all blocks at the same time) can be accessed quickly in software, so all the expansion,p-box and compression permutations are considerably faster, not least because they are done 64 times in parallel. If for instance you XOR 2 words together, then you effectively are performing XOR 64 times in parallel, albeit 1 bit at a time. So with this method everything becomes much simpler and faster. The main bottleneck again is the S-boxes. The lookup tables needed to perform an S-box substitution would be enormous(2^376 bytes) and would make bitslice unviable. So instead of thinking of S-Boxes as lookup tables, they are thought of as digital circuits, such that given the 6 input bits, they will give the 4 output bits specified by the S-Box. This digital circuit can be composed solely of AND, OR and NOT gates (its a law of boolean algebra). Optimisations can be made so that it is composed of NAND, NOR, XOR and XNOR gates. Note that in x86 assembly there aren't any distinct instructions for NAND, NOR, XNOR, so you have to chain an ordinary gate with a NOT gate. However, other less crappy architectures do have these gates, and bitslice can be optimised for these. People have suggested using Karnaugh Maps (a method for constructing a digital circuit from a table of values) for this but, for a 6 bit input, Karnaugh Maps are quite difficult to do. So I prefer to use normal boolean algebra. I won't go too deeply into this but I'll just show you how you can make a digital circuit if you only have 3 input bits and 1 output bit. Ph33r the ascii notation. A.B = A AND B A + B = A OR B A^B = A XOR B _ A = NOT A Here are some useful identities, check the truth tables if you want... _ _ _______ A.B = (A + B) _ _ _____ A + B = (A.B) _ _ A.B + A.B = A ^ B _ _ _______ A.B + A.B = (A ^ B) _______ _______ A.B + (A + B) = (A ^ B) A.B + B = B _ A + A = 1 Take as an example this table of values: A | B | C | Q | --------------- 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | One way (and I must stress this is only one way) to make a digital circuit, is to take all the combinations that give an output of 1 and form AND gates for each combination: _ _ _ _ _ _ _ _ A.B.C + A.B.C + A.B.C + A.B.C + A.B.C = Q _ _ _ _ _ _ B.C(A + A) + B.C(A + A) + B.(A.C) = Q _ _ _______ B.C + B.C + B.(A + C) = Q _______ _______ (B ^ C) + B.(A + C) = Q Note that if I had used a Karnaugh Map I would have ended up with more gates, because there is no method for using XOR gates with a Karnaugh Map. This has never really been a problem, I guess, because XOR gates are more expensive in simple digital circuits, but in software all the gates have an equal weighting. So that gives a final equation with only 6 gates (count them) even if we aren't allowed NOR or XNOR gates. Of course in this case there were 5 True output bits, so it would probably have been best to make an equation that represented the False output bits, and NOT the whole thing. If you want that represents 6 input bits, you can simple chain them together. For instance if D, E and F represented the last 3 bits you could say that: _ _ _ _ _ _ _ D.E.F(Q1) + D.E.F(Q2) + D.E.F(Q3) + .... + D.E.F(Q8) Where Qn is the gate circuit you've calculated based on that particular subset of values. You can then simplify as you wish. Remember that if you have many repeated expressions, you can store the results in memory and use them again. To get a four bit output, the best way that I know of is to just do the process four times over, although there will be plenty of redundancy between the four circuits. And then once you've got one S-box, there's still another 7 to go, HEH, so its a lot of work. The aim as you might have guessed is to get the gate count as low as possible, as this would obviously make bitslice even faster. A simple(ish) gate circuit will still contain 150 gates, but it can lowered to somewhere between 50 and 60 (a record held by a Matthew Kwan). The topic is still, as far as I know, wide open - nobody knows for sure what the fastest combination of gates is (and I doubt nobody will). Also if you do find a combination with less gates, there are still issues to deal with like the fact that x86 logic instructions only take 2 operands (unlike sparc and alpha asm). Meaning that the output is put into one of the input registers, so we can not naively transpose a digital circuit onto assembly code. And there is also the fact that there are a limited number of registers, so which values do we hold in the registers, and which values do we hold in the stack ? Bear in mind that in 486 asm it takes from 2 to 3 times longer to perform a logic operation if one of the operands is a pointer to memory, depending on which is the first operand. And in 386 asm it is even worse, taking 3 to 4 times longer. So there is always room for improvement, over even the smallest gate circuit. If you want a real live implementation of bitslice DES, there is one at www.darkside.com.au/bitslice, or you can always check out John the Ripper which also has a bitslice implementation (derived from Matthew Kwan's code I believe). Thanks to Matthew Kwan for helping me with this concept. -smiler@tasam.com -----BEGIN PGP PUBLIC KEY BLOCK----- Version: 2.6.3i mQBNAzdMEXQAAAECAOtu5IXHjmAHETRPYdt+pjUxE/F7W0VPTW7e9cehjzdKPI8d EHbl1Tct7rgIRganQQFGDHAapg0YuK9fHpZIcf0ABRG0GXNtaWxlciA8c21pbGVy QHRhc2FtLmNvbT6JAFUDBRA3TBF0uK9fHpZIcf0BAa/hAgCJWL0nSLN6H9//Ok3Y n57F5oPDO42b+J13+Qds/hqori3CD0kSn8nRIkYBJ8ONcQ8t1M12zuFsaapLbFhv zOD1 =IEeP -----END PGP PUBLIC KEY BLOCK----- x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x "The simple vision could not have been more simpler. How could I have gone so far in life without B4B0?" - William S. Burroughs x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@# ! LibTCL Stuff ! Likk3r ~!@#~!@#~!@#~!@# When Dr. Ousterhout wrote the Tcl language, he built the interpreter as a library. This means that you can use Tcl to script your programs really fucking easily! The Library: struct Tcl_Interp - This is the data structure used by the library to represent an interpreter. All functions will use it in some way. Tcl_Interp *Tcl_CreateInterp() - This function sets an interpreter up so that it is ready for evaluation. int Tcl_EvalFile(Tcl_Interp *X, char *NAME) - Uses X as the interpreter in which to run the commands found in the file whose address is contained in NAME, runs the commands and returns either TCL_OK, or TCL_ERROR. int Tcl_VarEval(Tcl_Interp *X, char *INST1, char *INST2..(char*)0) - Creates a script comprised of the commands found in INST1,2,3,etc. until it reaches the null pointer, runs the script, and again, returns either TCL_OK or TCL_ERROR. interp->result - This member of the structure holds a message regarding the result of running the script, it will give you the details o any errors if TCL_ERROR is returned by one of the int functions. void Tcl_CreateCommand(Tcl_Interp *X, char *NAME, Tcl_CmdProc *CMD, ClientData ARGS, Tcl_CmdDeleteProc *DEL) -This function, while inside of X, allows you to call the C function named in CMD through scripts using the new tcl command NAME, ARGS will be the arguments to the function, and DEL will be called if you delete the function from X. int Tcl_DeleteCommand(Tcl_Interp *X, char *NAME) - deletes command NAME from interpreter X Incase none of that made sense, here is a bit of code that uses all but interp->result and Tcl_VarEval. ghay.c: #include <stdio.h> #include <tcl.h> /* ghay.c by Likk3r */ int ghay(ClientData poop, Tcl_Interp *ghay, int argc, char *argv[]){ if(argc==2){ printf(argv[1]); } return TCL_OK; } int main(int argc, char *argv[]){ int rumncoke; Tcl_Interp *b4b0; if(argc>=2){ b4b0=Tcl_CreateInterp(); Tcl_CreateCommand(b4b0,"ghay",ghay,(ClientData)0,(Tcl_CmdDeleteProg*)0); rumncoke=Tcl_EvalFile(b4b0, argv[1]); } return 0; } A little bit of Tcl testing it out: #!/root/ghay foreach thing {b4b0 is the shit} { ghay $thing ghay "\n" } If everything is compiled, and the script is executable, you should see this: #./test.tcl b4b0 is the shit # x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ^^^^^^ !!!!!! 3y3 th1nk th3r3'z ju5t t00 mUcH sh1zzz!!! ' @ @) 3y3'm g01nG t0 l00z my m1nd!@#$!@#$! ({ >) \ O) <------ th3 n3w w4v3 0f r3dl1n3 k1dz ` ' Slide 2 x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@~!@#~!@#~!@ ! Introduction to MC/Serviceguard (Part One) ! tip ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@~!@#$!@#$!@ With the advent of "high availibility," uptime is the critical word. How can one maintain uptime with a network interface goes bad? How about disk failure? How about CPU failure? How about software failure? Enter MC/Serviceguard, for HP9000/s800's. What MC/Serviceguard does is cluster a networked group of HPs (called nodes) running applications/volume groups (called packages). These nodes will detect if one of them fails (networking, CPU, etc). Of course you can do simply NIC failover on a single box as well. Typically, the nodes are on two or more networks, in case of failure on one network. A "heartbeat" signal is sent on one (or more) of these networks to insure that connectivity is operational. A backup heartbeat may be configured on an RS232 serial line as well (and can also be used to reduce load on your network). Here is a visual on the network configuration: -------------- --------------- | node A | | node B | | | | | | 1 H S F | | F S H 1 | -------------- --------------- | | | |---- failover ---| | | | | | --------- serial -------- | | | -------- heartbeat lan -------- | ------------ primary lan ------------ Note: primary lan fails over to failover, in case of failure on any of the network cards on primary lan. You may also have an additional card for additional networks (and have a failure card associated with each one). The heartbeat lan is a private vlan associated with the nodes for the heartbeat only, although you may have this on your primary lan (or serial). You may use 10/100BT or FDDI. The heartbeat detects connectivity between the machines. In terms of disk failure, nodes may be connected to disks (packages) via SCSI (single ended or fast/wide) (max: 4 nodes) or fiber-channel (ie, on an EMC frame) (max: 16 nodes, which is the maximum for MC/Serviceguard). Typically packages are setup so that the nodes share them. Here is a visual layout on the package configuration: --------------- --------------- | node A | | node B | | | | | | root disk |-- pkg A --- pkg B mirror --| root disk | | root mirror | | root mirror | | |-- pkg A mirror --- pkg B --| | --------------- --------------- Now in the above example, nodes A and B contain their own root disks and root mirrors. Package A and B and their mirrors are on both nodes. Package A is run normally on node A and package B is run normally on node B. In the event of a failure on node A, node B assumes the responsibilities of both packages A and B. Obviously in the event of a hardware or software failure of package A, MC/Serviceguard may switch to the mirror. Of course with the above examples, you are not limited to two nodes. As said before, maximum node availability is limited by use of SCSI or fiberchannel. An ideal setup would involve use of a private vlan and serial line for heartbeat, with a primary and failover NIC for each network. That's it for Part One. It's rather short, but is groundwork for Part Two, which will go into software components and monitors. x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x "There are things known and unknown; however what lies distinctly true is the way of B4B0." - Henry Rollins x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@#~!@#~!@#~! ! The Daily Task at Hand ! fluffy coffee bunny ~!@#~!@#~!@#~!@#~!@#~!@#~! ^ ^ /-------------------------------------\ : : : : / !B4B0! is my reason to live!@#!@#!@# | : : : : /_________________________________________/ ' ^ ` / : @ @ : =-=-= o =-=-= <---- d4t c0d3 k1d, fluffy coffee bunny `\__0__/' / \ i went to the coffee shop the other day, and ordered a vanilla hazelnut latte. there's nothing like a particular breeze in the sunny afternoon, how the wind ruffles your fur and sparkles in the rippling water. this particul- ar afternoon was a perculiar one, if any. basically two furry kids came into the shop, smoking their cigarettes and laughing. there were talking about how there was nothing in common between rabbits and squirrels. suddenly, this huge squirrel walked in. he ordered a amaretto cappucino and sat beside me. "hear the story about wood owl?" he asked me. "no," i replied, as i sipped my latte. he smiled grimly, and shook my hand. "i'm fluffy squirrel," he exclaimed. "what a coincidence. i'm fluffy c. bunny," i answered back. in a twitch of the eye, he started banging his head on the counter. "i want to have a pissy fit about the whole world, wrapped in onion skins, with a twist of lemon!" he screamed at the top of his lungs. i smiled bitterly and cried Mozart. the two kids observed us, and started hopping up and down as fast as they could, eventually hitting their heads on the ceiling. wood owl came into the shop, busting in with air of importance. "i've got belgathytic news!" he screamed. two the kids started bouncing into each other. "psychopathic duty!" screamed fluffy squirrel as he started jumping up and down. i couldn't help but to laugh madly; uncontrollably as i coughed up last night's carrot stew dinner. the room heaved with an old, tired screak. the clerk shouted, "there's no more time for meal time! i can't help it! help the proxy sucker one less hurt left but hurt less indeed!" i didn't look back. i left the store feeling a little better and knowledgable. oh golly. x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x MM!: XMMMMX!X!" ?M!X?MMSX!M?~ !!!!!X!MM?X!tXMXMMM5$$XXM$5 ?!!!\WRMM!!HM~: ~!MMXMMM!X!!!!!!!!X!XXMMM!MX! `t?MMRB$M$$$ H!!:MRM!XMMM!" XXMMMMM!!!H!!~!!!!!!M!MMMMM?X ' 8XMMR$MR$$ !~XMM!HM8MMMX.:!XNMMMMMM!!!@XX.!!X!XXMMMMMMMMM:'kMMXMMMBXM$ :!!!8$$$RMM!!!!$$$$MMMMMXM!X!!XX!!!MX!XMMMM8M$M:M$@M!!?MMXM ~!t$$$$$MM!!!t$$$$$RMMMMMMX!X!!!!!X?MMMMMM$$$$BMR$$$MX!MMMX XMMM$RMMM!\!?#"$$$$$$$$BMMMMB4B0!!!XM@MMMM8$R #8MRB$$MMX!MM MMXMMMM!~:!'. `!RB$$$$B$WMMMMMMMMMMMM@R8M$$$E<.`HMM$$$$$X!! XXX!X!~xMX!` .<M$$8$$$$$$$R8NR$@MMMM$$$B$$$$$:':~XMM$$$$$M! M!!!XWB5RM:xH\M$$$$$8$$RR$RMMMMMMMMR$$$R$$$$$M XMMM8$$$M8M ?XW$$$8M?!M!X$$$$$$$$MMMMMM!X!-!!!MMRM5M$$$$$$MH$$MXM$M@MMM $$$$$RM!!!X$$$$$$$$$$MMM%%!!!!!<!!?MMMR$$$$$$$$RM$N$M?MSX!M R$RMMM!!!M$$$$$$$$$$BMMMX!!!!~!!!!!MMR$$$$$$$$B8MM$$$$?MMXS ?MMM!!`<~~"$$$$$$$$$$MMMX!!!!!!!!!!MM8$$$$$$$$$$8MR$$$$M?MM Slide 3 x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~ ! Internet Explorer / Realm ! nawk ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~ After some testing on virtual servers with Microsoft's IIS/4.0, I learned that they had made some changes to it. It turns out they had made it more compliant to RFC2617... or did they? From the onset of diagnostics, it looks as though they didn't. Here is the problem. When set the virtual server with WWW-Authenticate with clear-text, its realm uses the IP address of the server. The only way to change this is to use Microsoft's IIS Resource Kit's Meta database editor. This can be fine for most companies, but most E-Commerce have their web servers behind firewalls with local directors. So what ends up happening is anyone can get the internal IP address of the server, then knowing the internal network segment. From there you can do many things to get into the network. I had spoken with Microsoft about this problem. They had told me that many people had complained about it, but it is due to using RFC standards. That's funny, because other web servers are not subject to this. To see if a server is subject to this, all is needed to do is: Example: telnet webserver.com 80 HEAD / Reply: HTTP/1.0 403 Access Forbidden Server: Microsoft-IIS/4.0 Content-Type: text/html Content-Length: 172 Date: SAT, 12 JUN 1999 17:17:20 GMT Connection: close If it was a virtual server with password with clear-text, the realm= would have their IP address. The 401 (Unauthorized) response message is used by an origin server to challenge the authorization of a user agent. This response MUST include a WWW-Authenticate header field containing at least one challenge applicable to the requested resource. The 407 (Proxy Authentication Required) response message is used by a proxy to challenge the authorization of a client and MUST include a Proxy- Authenticate header field containing at least one challenge applicable to the proxy for the requested resource. challenge = auth-scheme 1*SP 1#auth-param Note: User agents will need to take special care in parsing the WWW- Authenticate or Proxy-Authenticate header field value if it contains more than one challenge, or if more than one WWW-Authenticate header field is provided, since the contents of a challenge may itself contain a comma-separated list of authentication parameters. The authentication parameter realm is defined for all authentication schemes: realm = "realm" "=" realm-value realm-value = quoted-string The realm directive (case-insensitive) is required for all authentication schemes that issue a challenge. The realm value (case-sensitive), in combination with the canonical root URL (the absolute URL for the server whose abs_path is empty; see section 5.1.2 of [2]) of the server being accessed, defines the protection space. These realms allow the protected resources on a server to be partitioned into a set of protection spaces, each with its own authentication scheme and/or authorization database. The realm value is a string, generally assigned by the origin server, which may have additional semantics specific to the authentication scheme. Note that there may be multiple challenges with the same auth-scheme but different realms. The protection space determines the domain over which credentials can be automatically applied. If a prior request has been authorized, the same credentials MAY be reused for all other requests within that protection space for a period of time determined by the authentication scheme, parameters, and/or user preference. Unless otherwise defined by the authentication scheme, a single protection space cannot extend outside the scope of its server. So you see Microsoft’s IIS/4.0 is not so RFC compliant. x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x on #B4B0 Fri Jun 11 1999, sometime in the evening: <angieb> <- virgin x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~ ! Operating Companies of the US ! hybrid ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~ The US phone network is split into different areas that are controled by RBOCs (Regional Bell Operating Comapnies). For example, if you live in Texas, your RBOC will be SouthWestern Bell. These LECs (Local Excahnge Carriers) and IXCs (Inter eXchange Carriers divide America into different call handeling sections. Here is a list of all of the RBOCs for different areas: Regional Bell Operating Companies (RBOCs) NYNEX - Covering New York and New England, Bell Atlantic - Covering the Mid Atlantic states, Bell South - Operating in the South Eastern states, Ameritech - Covering the Midwest, U.S. West - Covers the mountain states and northwest, Pacific Telesis - Operating in California and Nevada, and Southwestern Bell - Covers Texas and southern states west of the Mississippi. The Regional Bell Companies were set up as part of the Modified Final Judgment implemented in January 1984. Recent legislation has significantly altered how these regional bell companies can do business and what communications services they provide. As a result, some companies like Bell Atlantic, Ameritech, Pacific Telesis, Bell South and NYNEX have been aggressive in pursuing new business areas. They are now able to more freely compete than ever before. This means what we identify here today is likely to be changed tomorrow. For example, a merger between Bell Atlantic Mobile and NYNEX Mobile was completed on July 1, 1995 and resulted in the formation of a new company, Bell Atlantic NYNEX Mobile. RBOC 1998 Targeted Percent of Lines Using Digital Transmission NYNEX ....................................... 97.4 Pacific Telesis ............................. 94.8 Bell Atlantic ............................... 93.3 Bell South .................................. 92.1 Ameritech ................................... 89.9 US West ..................................... 68.4 Southwestern Bell ........................... 66.6 RBOCs and Area of Coverage RBOC -- Original Local Exchange Carriers Local Access and Transport Areas (LATAs) ---------------------------------------- Local Access and Transport Areas (LATAs) were established after divestiture to permit telephone companies to charge subscribers for access to local or regional exchanges and to the interexchange toll telephone network for sending and receiving intra-LATA and interstate calls. Local Access and Transport Areas (LATAs) are geographic areas generally smaller than a state that follow telephone boundaries (not state boundaries). They identify define areas within which the telephone companies offer exchange and exchange access services (local calling, private lines, etc.) to subscribers. Local Exchange Carriers (LECs) ------------------------------ Telephone subscribers are provided basic telephone network access by physical connection from customer premises to a local central office. This connection is a dialed up connection or a dedicated trunk connection, like a leased T1 (1.544 Mbps) channel. For dial-up connections, after the phone is dialed, the subscriber accesses a variety of telephone services and call handling features provided by the Local Exchange Carrier (LEC). These telephone services and functions were for connections in the LEC's Local Access and Transport Area. For dedicated trunk lines the local segment set up and maintained by LECs at each end, while the inter-LATA portion of the circuit is established and maintained by an Inter-eXchange Carrier (IXC). LECs were set up as part of the 1984 Divestiture decision. However, the separate company designations are fading today. Recently, Bell Atlantic renamed its LECs to just Bell Atlantic. The Inter-eXchange Carriers (IXCs) ---------------------------------- Calls to locations outside the LATA require the LEC to pass the call to a designated Inter-eXchange Carrier's (IXC) point of presence (POP). The IXC transports the call to a LEC at the destination LATA. Basically Inter- eXchange Carriers transport calls from LATA to LATA. Since the breakup of AT&T in 1984, Inter-eXchange Carriers have been required to interface with local telephone companies via points of presence. These are serving offices set up in each LATA. The POP is the point to which the local telephone company connects its customers for long distance dial-up and leased-line communications between LATAs. Inter-eXchange Carriers are AT&T, MCI, Sprint, and others. Telephone Network Segments Competitive Access Providers (CAPs)and Competitive Local Exchange Carriers (CLECs) ------- Competitive Access Providers (CAPs) provide fiber optic and microwave communications links that connect to Inter-eXchange Carriers (IXCs). These links compete with Local Exchange Carriers' (LECs') networks in the top 25 metropolitan areas nationwide as well as in many smaller metropolitan areas. Many metropolitan networks were formed during cable television's years of prosperity. Now CAPs compete with CATV service providers. Recent FCC rulings help CAPs quickly become viable competitors to LECs. If a CAP is providing local dial tone then it is often labeled a Competitive Local Exchange Carrier (CLEC). Metropolitan networks first appeared with the spread of cable television. Although, these networks were limited television signal distribution from satellite downlinks to residential communities, the early cable systems became the prototypes of Metropolitan Area Networks (MANs). In the early 1980s satellite uplink operators built teleports and local access networks to offer direct private satellite transmission services to large organizations. While 1984 breakup of AT&T increased competition in the long distance and communications markets, it left the local connectivity market monopoly essentially intact. However, entrepreneurs began to offer long distance service using teleport satellite circuits combined with private local access networks to their customers premises. Cable television companies also deployed fiber for high-traffic routes and explored using fiber for connections to subscriber premises. The spread of such metropolitan local access networks eroded the LEC monopoly over local loop connectivity to subscribers. Further, CAPs demanded access to LECs' operations centers and central offices (COs). CAPs exerted extensive pressure on the FCC to achieve these goals. LECs strongly resisted this encroachment on their business base. Today LECs are forced to allow CAPs to co-locate with their physical facilities. This is expanding to allow CAPs to directly connect with LEC central offices in some areas providing alternative access to the LECs' local switch. Competitive Access Providers (CAPs) have more than 27 individual networks supporting users with heavy data traffic. These CAP networks offer customers up to 100 Mbps transmission speed and redundant routing for point-to-point transmission at lower prices. Further, CAPs generally have more fiber optic transmission experience and deliver higher quality transmission facilities and circuits than do the LECs. Other Common Carriers --------------------- Other Common Carriers (OCC) are Specialized Common Carriers (SCCs) offering unique communications services, domestic and international record carriers supporting international communications, and domestic satellite carriers providing satellite communications services authorized by the Federal Communications Commission (FCC). MCI, Sprint, and other carriers are sometimes referred to as Other CommonCarriers. Services Piggybacked on Private Networks ---------------------------------------- A private network is a network built and operated by a private organization or corporation for their specific benefit. Often the private network facilities have excess capacity. The private network organization in an effort to reduce its costs permits other organizations to use the excess capacity of private network facilities. Special multiplexers typically connect one or more voice, data, fax, or video channels to shared common channels leading to the private network backbone. This multiplexer equipment differs in price, support, and features offered. A feature is voice compression technique which determines the number simultaneous voice calls supported and the voice quality of each call. In selecting such multiplexers look beyond claims of impressively high capacity for simultaneous voice calls. Telephone Network with Competitive Access Providers --------------------------------------------------- Common Carrier Services Common carriers are organizations providing regulated telephone, telegraph, telex, and data communications services. Voice Grade Channels and Circuits Voice grade channels and circuits are designed to carry voice frequencies in the audio frequency speech transmission range of 300 to 3,400 Hz. Voice grade channels provide a bandwidth of about 3 KHz. This effectively limits the amount of information they can carry. Voice grade channels can be dial-up lines or leased lines. Dial-up lines use two wires (a single pass windows) while leased lines are four (4) wire service. A leased line is sometimes referred to as a private line or a dedicated line. The 500, 700, 800, and 900 Number Services ------------------------------------------ There are several services available to businesses beyond basic dial-up services. The services described here 700, 800, and 900 services have been used differently by businesses during their relatively short lifetimes. Basically these services use voice grade channels but bill for them at special rates. 500 and 700 Services A single number telephone service for mobile individuals is provided using the 500 and 700 numbers. Telephone service providers offer nationwide "follow-me" phone numbers for mobile customers. The service uses both the 700 and a newly activated 500 access code. Unlike geographic area codes such as 415, 213 or 916, the 500 and 700 codes cover the entire country like the 800 and 888 area codes. A 500 or 700 number service lets customers be reached at any location and on any equipment. Instead of different numbers for business, cellular, fax and home phones, now one number can be called to reach you on any type phone, anywhere in the country. The 10-digit 500 and 700 service numbers (500-XXX-XXXX, 700-XXX-XXXX) represent an individual customer. 800 Service The 800 services are among the most famous carrier service. The 800 service and WATS services were introduced by AT&T in the '60s. WATS charges bulk rates for directly dialed station-to-station calls over the public switched telephone network. WATS provides switched, voice-grade channels for transmission of either voice or data. The 800 service provided today is a toll-free, inbound service for callers dialing an 800 number. Today because of the high use of 800 numbers, AT&T advertises both 888 and 800 numbers for 800 number services. An 800 number may be local, regional, national, or international in coverage and it can be assigned to any local access phone line. 900 Service pr0n The 900 service charges the callers not the number being called. Today's 900 service applications make revenue. Callers dial a 900 number and select information that is sent immediately to their fax. TV surveys are routinely performed via 900 services. Technical support lines for PC products use 900 services rather than toll-free or local exchange numbers combined with credit card accounts. Dial-Up Telephone Services -------------------------- North American Numbering Plan (NANP) The North American Numbering Plan (NANP) was originally designed by AT&T back in 1947. It is the system for assigning area codes, telephone numbers, and other important network codes throughout the U.S. and 17 other countries. The system covers the World Zone 1 calling area including the United States, Canada, Bermuda, and most of the Caribbean. After divestiture in 1984, Bellcore (Bell Communications Research) took over NANP administration, and not so surprisingly controversy over a conflict of interest began. The argument is that basically Bellcore, owned by the Regional Bell Operating Companies (RBOCs), favors both the RBOCs and AT&T with special numbering assignments. This controversy heightened with the exhaustion of area codes. All area codes were designated as having a 0 or a 1 as their middle number. Today because of the proliferation of cellular phones and additional home phone lines for fax and data communications, several metropolitan areas have had to use additional area codes. Washington, D.C. now has 703, 301 and the newer 410 area codes. As a result the Federal Communications Commission (FCC) intervened in October of 1992. The involvement of the FCC caused Bellcore to withdraw as administrator of the NANP in August of 1993. Bellcore agreed to remain on as plan administrator for 12 to 18 months permitting the FCC to select a new administrator. Today Bellcore is still the administrator of the NANP. Area Code Exhaustion -------------------- The phenomenal growth of telecommunications over the last 20 years is reason for the current area code shortage. High growth areas include: 1.) Cellular phones, 2.) Fax machines, 3.) Portable beepers, 4.) Multiple number services, 5.) Direct Inward Dialing DID numbers, 6.) Pay-per-view applications, and 7.) Special ringing features. These and many other applications consume large blocks of seven-digit numbers. Consequently, there are not enough seven-digit numbers to keep up with the demand. Current NAPA Numbering ---------------------- NAPA geographic area codes are three-digit numbers formatted N(0 or1)X with N any digit 2 through 9, then either 0 or 1, and X any digit 0 through 9. The area code is followed by a seven-digit subscriber number. The subscriber number previously a NNX-XXXX format is now a NXX-XXXX allowing the use of 0 or 1 as the second digit. The N(0 or 1)X format has a maximum of 8 2 10 or 160 combinations. As the demand for area codes in North America grew, Bellcore proposed an integrated numbering plan for World Zone 1, essentially North American and the Caribbean. The new plan went into effect in January 1995 and changed the numbering system from an N(0 or 1)X-NXX-XXXX format to an NXX-NXX-XXXX format. This change increased the quantity of available ten digit phone numbers from about 1 billion to 6 billion. [ Area Code Information is available from... ] [ http://www.bellcore.com/NANP/newarea.html. ] [ ] [ The FCC web site is... ] [ http://www.fcc.gov/Bureaus/Common_Carrier/Factsheets/areacode.txt. ] Shoutz: [D4RKCYDE] [9X] [MeD] [Substance] [downtime] [lowtek] [digiphreq] [tgb] [w1rep4ir] [psyclone] [zOmba] [bodie] [microwire] [lewphole] [siezer] [pbxphreak] [B4B0] [tip] [kraise] [xio] [dgtlfokus] [SupernOdeSn1perz] "find me on the pstn bitch" http://DTMF.org/hybrid x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x @@@ "b4b0 m4k3z m3 fUqN w3t!@#$!#$@" @. .@ @\=/@ .- -. <----- sUM k0d3 b1tch hUnGrY f0r d4 b4b0 ju4r3z /(.|.)\ \ ).( / '( v )` <----- the3 mSt3R10uS h0l3!!! \|/ (|) '-` Slide 4 x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@# ! Rolling Deep ! tgb ~!@#~!@#~!@#~!@# With all the dangers and precarious situations the modern hax0r can find himself in on the streets, the ninties have brought forth the need to "roll deep." The whole rationale behind the concept of rolling deep lies in the age old adage. "Strength in numbers," or something along those lines, although rolling deep by no means requires a large group or backup posse. The term rolling deep stems directly from the world of hardcore hip hop and gangsta rap, and is often used in conjunction with phrases like, "Ya best proteck ya neck," "bakdafukup," or other equally street-smart phrases that manage to incorporate both defensivness and threat. In any case, the implications are easily identifiable and the prmoise of quick retaliation looms in the fore- ground; rolling deep is a means of letting people know that you are not to be fucked with. The perils of being caught slippin' in this day and age are just too great. I know the value of rolling deep and have integrated it into my daily routine, rolling deep for such mundane tasks as getting a late- night snack from the fridge, buying a new sweater, or making a important phone call home. Hopefully some of the following tips, examples, and observations will acquaint you with the ways of rolling deep as fuck, 'cause it's too dangerous to be caught shallow. 1. Put on the hardest clothes you can find (consult the latest number one video on Rap City) and practice scowling in the mirror for a few hours. The scowl is on the most integral aspects of rolling deep and must be perfected, although allowances can be made for the Flava-Flav type joker in every group. Take a deep breath and tell yourself you are hard until you believe it. 2. Pretend you are in a rap video, running down the street in slow motion or backing up the MC. Visualize yourself as an actual member of a video posse. 3. Practice the "What the fuck?!" arm gesture (both arms open, palms spread outward) until it becomes an automatic response to any question, especially if from a parent, cop, boss, or teacher. 4. Grow some sort of "hard" facial hair. 5. Wear a very unhip pair of sunglasses--not bullshit Oakley or Arnet, but something like cop glasses or oversized mom-style glaasses. Basically anything you can snag out of a lost-and-found-bin will do. 6. Look around a lot, like you expecting static from any direction. 7. Cultivate a fake limp or strut and walk extremely slowly. 8. Refer to people only as "bitches" or "fools." Learn to integrate the following words or phrases into your everyday speech, regardless of their meaning in your life: gat, nine, blast in the face, bitchslap, gangstalean, etc. You are now ready to assemble the crew and synchronize the eight-step rolling deep program. Usually a larger group will signify a deeper roll, but this is not always the case. Certain people will never attain the ability to roll deep, no matter how much backup they have. Conversely, some motherfuckers roll deep when hanging out on solo tip. Some of the deepest rollers are the strong, silent types who can handles themselves in any situation. Consider the following list of some people who roll deep and some who don't quite make it. Deep As Fuck: Wu-Tang, the Warriors (from that old '70s movie), this dude I once saw lounging in a designer sweatsuit and shades, Slayer. Wading Pool: Hammer, New Kids On The Block, Blackstreet, any fast food employee or manager, rock star snowboarders, bitch-ass rollerbladers. Of course those you new to the ways of rolling deep should never try to bust a flex on someone with experience. First things first, you should go in gradually, the way one would enter a pool of freezing water. You should initially roll deep only on inanimate objects such as street signs, a jammed or locked door, or a soda machine that shorted your coin. From that point you should work your way up to blind people or alley cats, but only when you feel comfortable. Progression will naturally lead you to flexin' on old ladies and infants. Get confident, live your lyrics, and work your way up to speed. Eventually you'll be able to walk the streets with pride and conviction that can only come with the knowledge that your are rolling deep. --tgb x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x "Forgive me B4B0, for I have sinned! My body is yours to take!" - Katie Holmes x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@#~!#@~!#@~!@# ! The Physics of Handrails ! jorge ~!@#~!@#~!@#~!@#~!#@~!#@~!@# .-. /~ `. \ .---. `\/`.-~'~. (.~ `. < h4ndr4ilz ch4nged muH l1fe!@ I x O ) | __ / `\ U .` `~` Intro As I have not been skating for a very long time, I cannot understand everything, but however I do realize a generation of youth have passed up some of the coolest old tricks. Instead of doing nose slides, tail slides, or railslides, they insist on just doing kick flips, heel flips and minor grinds. "Bring back the old school style!" a friend once said to me. And so I shall. Handrails. Fun for the whole family. Dangerous indeed, but yet nothing is more thrilling than the feeling of eliteness when you can conquere the rail. It's hard, I'll give you that, and it's a painful proccess, i know this from personal experience. But don't doubt yourself. Just sum up what courage you have, and go for it. First Things First Some prerequisites of handrail boardsliding is: 1. You must be crazy. 2. You must have mad courage. 3. Be sensible. 4. Ollie must be at least *half* of the rails heigth. 5. Requirement 4 only counts if your doing boardslides on the handrail. 6. Feel the force. When trying for the handrail, for the first time, I recommend that you try it on a handrail thats only about 4-6 feet long. Those eight footers aren't the same, even if they are the same heigth. Because its only 4 feet long you can perfect your technique before trying it on an 8-16 foot rail. Also you won't be able to come off as easy on a short rail but its good practice, take my word for it. * NOTE * If your one of those kids who builds there own skate parks in their back yards, a good 6 foot rail will do nicely. build it at a slight incline so you can get a feel for what its like in real life. (sorry im a street skater. i have no preference for home built stuff and vert style. well that and i'm poor.) Ollie high, and use your jedi skate skills to propel you. Look below. ________ -------.`\ `\`\ <--- Unless your ollies are super high, this is -------. `\`\ probably the point you want to hit. |__ `\`\ | :`| | | Hitting it from an angle is key. Don't try and hit the very top of the rail because many people try and they also get concussions. (ouch). By ollieing at an angle from the end of the step to the curb, your ollie heigth stays the same, while the rail heigth slowly declines giving you the oppurtunity to railslide it. Now We're Having Fun As you've made it on to the rail, you scream "what do i do now??" Well All you have to do, is this: 1. Make sure both feet are on the mounting hardware. 2. Push your weight forward. 3. Adjust yourself to where you won't get hurt. 4. Don't try anything outrageously stupid. Example below. (handrail view 1. Looking up at it) back of rail | | .--0---| |---0--. As you ollie onto it, your board must | | | | | | be leveled out like so. `--0---| |---0--' | | Keep your feet straight and your weight | | frontwards. | | end of rail End of the Line So you want to come off? By now you should have either fallen off or landed on your skull. But there is an easier way! 1. As you start to come up to the end of the rail you'll need to be ready seeing as you only have less than a second to come off. 2. Don't try ollie'ing off the rail because unless your doing a grind, you're going to destroy those genitals you cherish so much. 3. As you come off, shift all the weight the way you want to come off (frontside or backside). 4. When your off shift your weight towards the front a little to adjust to the speed change. Diagrams listed below. .-. \ \ /` / maintain your balance and patience for the end. `\`\ /` if you overanticipate the ending of the rail, bad /` `\`\ things can happen. `../` `\`\ : : | | | | \ \ .-. as you get closer to the end, get ready to shift `\`\ /` / off quick, you won't have much time so a perfect `\`\ /' surgical maneuver is needed. /` `\`\ `../` : : | | | | \ \ `\`\ `\`\ .'\ `\`\\ `\ shift off quickly, and land your board putting : :`\ `\ your weight slightly forward to ease the velocity | | `-' of your landing. | | Once you have landed, most people will reguard you as "fucking crazy" but hey *you* are the one who can do handrails. *You* have the balls and know how to do this somewhat elite technique which has surpassed a generation of skaters who reguard skaters who do this crazy. Show them whats what. Finish Well I hope I'll write more articles on this, because I love to skate. It's what I do when I'm bored. It's better than school and your board doesn't complain like a woman either. Try this. Be brave. Find where you lie at most in *your* style of skating. Be free. (special thanks to Thoai Tran for bringing out the beauty of skating in us all. Thank you.) x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x <KKR> .ad888888888888bo. <KKR> .ad8888' `8888bo. <KKR> .a888'. 8 .a b o. 8 `888o. <KKR> .a88' . \8 988 4 88B 8 \. `88o. r0cK m3 l1k3 4y <KKR> -g8' `-\ 8 988 b 88B 8-'. / `8n- hurr1c4n3!!!! <KKR> 'Y88. '`- 8 `88 0 88' 8 \ \-.88P' <KKR> `Y888.-/ 8 `' ! '' 8 '.888P' <KKR> `Y88888. .88888P' <KKR> `YB8888888888888P' Slide 5 x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@#~!@#~!@#~!#@~!@#~!@#~!@#~!@#~! ! An introduction to Smartlink(tm) 3175 APSS ! elaich ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~! This text is an introduction to the smartlink(tm) 3175 automatic protection switching system by westell technologies. Introduction: SmartLink(tm)! The Westell 3175 Automatic Protection switching system(APSS), also know as SmartLink(tm), is a fully automatic protection switching system for up to 20 DS1 circuits per shelf. If any one of the circuits become defective, the system will automatically switch the defective customer's T1/DS1 (hi-Cap) circuit to something called a "hot spare" protected circuit (T1/DS1-Hi-Cap) to provide the gimp uninterrupted service. The SmartLink(tm) system is designed for use with traditional repeatered T1, HDSL, fiber circuits, and digital radio applications. The Local Loop: The local loop is missing two things the rest of the Network has which are: 1) Redundancy, and 2) NMA Access. Which looks something like this... (dont flame my pic.)... ) )) NMA ())))) .. . / )) . . . / \ ) . . . / \ . . . CELL / . . . . SITE----><---X^X---><----CO-----//-----CO | '. | | . | |. . |. //------CO-----// ' ' ------------------------------------------------------------ Features: A fully automatic protection system that will bring reundancy and NMA accesibility to the local loop. Perfect for unmanned location. Will protect from 1 to 8 lines with a signal protection span. E2A/X.25 NMA interfaces. Switch the costomer to a "good" facility before he knows there is a problem. Constantly monitors each line for the following troubles: >Loss of T1 signal. >Error rate by calculating its own CRC. Will switch to protection in less than 10ms. Self healing: >When the problem is cleared, the switch will revert back to the original span. >Will not oscillate, 2 hour lock and 2/24 hour lock. Intelligent: >Will provide alarming. >Will report thru NMA. ------------------------------------------------------------ Configuration front view: Central office shelf: ___________________________________________________ __| |L|L|L|L|P|L|L|L|L|P|L|L|L|L|P|L|L|L|L|P|L|L|L|L| |__ |()| |I|I|I|I|CII|I|I|I|C|I|I|I|I|C|I|I|I|I|C|I|I|I|I|O|()| | | |N|N|N|N|U|N|N|N|N|U|N|N|N|N|U|N|N|N|N|U|N|N|N|N|S| | | |P|E|E|E|E| |E|E|E|E| |E|E|E|E| |E|E|E|E| |E|E|E|E| | | | |C| | | | |/| | | | |/| | | | |/| | | | |/| | | | |C| | | |U|C|C|C|C| |C|C|C|C| |C|C|C|C| |C|C|C|C| |C|C|C|C|A| | | | |A|A|A|A|E|A|A|A|A|E|A|A|A|A|E|A|A|A|A|E|A|A|A|A|R| | |()| |R|R|R|R|X|R|R|R|R|X|R|R|R|R|X|R|R|R|R|X|R|R|R|R|D|()| '--| |D|D|D|D|P|D|D|D|D|P|D|D|D|D|P|D|D|D|D|P|D|D|D|D| |--' '---------------------------------------------------' ------------------------------------------------------------ System configuration: Model/Description/CLEI-CODE: _Model_ _Description_ _CLEI-CODE_ A90-3175-01 Alarm interface card...................T1LIX001AA A90-3175-10 Test access Card.......................T1LAESEBAA A90-3175-40 Protection control Unit................T1LIYY01AA A90-3175-41 Line interface Card....................T1LI1Z01AA A90-3175-42 Line enterface card w/PRE-EQ...........T1LIZZ01AA A90-3175-43 Protection control unit w/PRE-EQ.......T1LI54B1AA A90-3175-45 Expansion Card.........................T1LI2001AA A90-31AP23 Central office shelf...................T1MSGN07MA A90-31AP404 Four position remote mounting shelf....T1MSHL07MA A90-31AP408 Eight position remote mounting shelf...T1MSHN07MA ------------------------------------------------------------ That's it for the introduction of the Smartlink(tm) 3175 APSS... Next will be a more advanced text including some of the few topics: Central office installation. Remote installation. Circuit turn-up and testing procedure. Alarm indication. Remote site wiring diagram. ------------------------------------------------------------ http://hhp.hemp.net x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x My left nad is twirling at a slightly higher rate than the other. This is all for you, the reader. x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~! ! Programming with Files and Directories ! ph1x ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~! This article, is going to cover the basics in coding with files and directories. We are going to learn about how to obtain the stats/attributes on files, who the files are owned by, the permission bits etc etc. After I go through some basic stuff, we will write our own version of "ls" with much room for improvement.. Every single bit of information about a file, except the name of it is found inside a structure called an i-node. There are several ways to go about getting this information. You can use the three following system calls: stat() | prototype-> int stat(const char *path, struct stat *st); lstat() | prototype-> int lstat(const char *path, struct stat *st); fstat() | prototype-> int fstat(int fd, struct stat *st); I would have to say that "stat" is the most commonly used syscall of the three. It basically just gets info about a file whose name is given by path and it places the data into a variable pointed to by st, which is of type struct stat. There is only one difference between lstat and stat, and that is when the pathname is to a symbolic link. stat would return information about the file to wherever the link happens to point to. lstat actually returns info about the link itself. Then we have fstat. It takes a fd to an open file and reads info about the file. All of these syscalls, require "sys/types.h" and "sys/stat.h". THE FOLLOWING: ------------------------------ st_dev st_gid st_ino st_ctime st_mode st_mtime st_nlink st_atime st_uid st_size st_rdev st_blksize st_blocks; -------------------------------- Are all members of type struct stat. I have taken the time to define all of these elements, as many of them are important to know. st_uid: The user ID of the user owning the file. st_gid: The group ID of the group owning the file. st_dev: This is the major and minor device numbers of a device on which the i-node associated with this file (and therefore the file iteself) are stored. st_ino: The i-node number of a file. st_mode: A set of bits encoding the files type and access permissions. Im sure we all know how to read these bits. st_nlink: The number of linkes associated with a file. If a file has just been created, it has the value of '1'. This value is is incremented by 1 for ever hard link that is made to da file. st_rdev: If the file is a character-special or block-special device then this field contains the major and the minor dev numbers of the file. Unlike st_dev which has the major and minor dev numbers of the device on which the file is stored.) st_size: The size of the file, in bytes. st_atime: The last time the file was accessed for reading, or if the file is an executable. The last time that it was executed. st_mtime: The last time a file was written to (modified). st_ctime: The last time the i-node was changed. st_blksize: A hint to programs about the best buffer size to use for i/o operations on this file. st_blocks: The total number of physical blocks that are actually allocated on the disk for this file. Lets go back to the st_mode member of struct stat. This is very important, because it encodes both the files type AND its permission bits. These file statistics can be read by using quite a few different constants that have been defined in our friendly header file <sys/stat.h> S_IFMT: This constant extracts the file type bits from the st_mode word. S_IFREG: Regular file S_IFDIR: Directory S_IFCHR: Character-special device file S_IFBLK: Block-special device file S_IFLNK: Symbolic link S_IFIFO: FIFO file S_IFSOCK: unix domain socket Now,there have also been a newier defined set of macros on posix-compliant systems, that you can ALSO use to determine the type of a file..... S_ISREG: If true, the file is a regular file. S_ISDIR: If true, the file is a directory. S_ISCHR: If true, the file is a character special device file. S_ISBLK: If true, the file is a block special device file. S_ISLNK: If true, the file is a symbolic link. S_ISFIFO: If true, the file is a FIFO type file. S_ISSOCK: If true, the file is a unix domain socket. The following constants, will give you information about a files ownership, permission values etc. When you AND the constants with st_mode and the value is non-zero. S_ISUID: The file has the set-user-id-on-execution bit set. S_ISGUID: The file has the set-group-id-on-execution bit set. S_ISVTX: The file has the "sticky bit" set. S_IREAD: This will determine if the owner of a file has read perms. S_IRUSR: The owner has read perms for the file. S_IRGRP: The group owner has read perms for the file. S_IROTH: Everyone has read perms for the file. S_IWRITE: You can determine if the owner of the file has write perms. S_IWUSR: The owner has write perms for the file. S_IWGRP: The group owner has write perms for the file. S_IWOTH: Everyone has write perms for the file. S_IEXEC: The owner has execute perms for the file. S_IXUSR: The owner has execute perms for the file. S_IXGRP: The group owner has exec perms for the file. S_IXOTH: Everyone has execute perms for the file. OK!@#$ THIS ABSOLUTELY HUGE LIST OF CONSTANTS MIGHT HAVE YOU BOGGLED. What exactly am I suppose to do with them? YOU ASK! Well we are going to write a little program that uses "lstat" to obtain and print info about each file that is named on the command line. In this particular program, we are going to use the older defined constants, and not the newer ones for posix compliant systems. ---------------------------example1.c------------------------------ /* gcc example1.c -o example1 usage: example1 <filename> */ #include <stdio.h> #include <sys/stat.h> #include <sys/types.h> #include <sys/mkdev.h> char *typeoffile(mode_t); /* need mode_t to use st_mode */ char *permoffile(mode_t); void outputstatinfo(char *, struct stat *); int main(argc, char **argv) { char *filename; struct stat st; // for all of the files on the command line... while(--argc) { filename = *++argv; // get infoz about the file if(lstat(filename, &st) < 0) { perror(filename); printf("\n"); continue; } // print out the information we gathered from file outputstatinfo(filename, &st); printf("\n"); } exit(0); } void outputstatinfo(char *filename, struct stat *st) { printf("File Name: %s\n", filename); printf("File Type: %s\n", typeoffile(st->st_mode)); // if the file is NOT a device, print its size and best i/o unit. // other wise print its major and minor device numbers. if(((st->st_mode & S_IFMT) != S_IFCHR) && ((st_.st_mode & S_IFMT) != S_IFBLK)) { printf("File Size: %d bytes, %d blocks\n", st->st_size, st->st_blocks); printf("Optimum I/O Unit: %d bytes\n", st->st_blksize); } else { printf("Device Numbers: Major: %u Minor: %u\n", major(st->st_rdev), minor(st->st_rdev)); } // print the perm bits in "ls" style format, and in octal. printf("Permission Bits: %s(%04o)\n", permoffile(st->st_mode), st->st_mode & 07777); printf("Inode Number: %u\n", st->st_ino); printf("Owner Userid: %d\n", st->st_uid); printf("Owner Group-id: %d\n", st->st_gid); printf("Link count: %d\n", st->st_nlink); // Now were gonna use st_dev to print the major and minor // device numbers of the file system that contains the // file were viewing. printf("File system device: Major: %u Minor: %u\n", major(st->st_dev), minor(st->st_dev)); /* * Were now going to print the access, modiciation, and * change times. The ctime() function converts the time * to a human readable format just so you know. */ printf("Last access: %s", ctime(&st->st_atime)); printf("Last mod: %s", ctime(&st->st_mtime)); printf("Last i-node change: %s", ctime(&st->st_ctime)); } // the typeoffile function returns the letter that indicates // the file type. char * typeoffile(mode_t mode) { switch(mode & S_IFMT) { case S_IFREG: return("regular file"); case S_IFDIR: return("directory"); case S_IFCHR: return("character-special device"); case S_IFBLK: return("block-special device); case S_IFLNK: return("symbolic link"); case S_IFIFO: return("fifo"); case S_IFSOCK: return("unix domain socket"); } return("HEH ?"); } /* OK LAST BUT NOT LEAST OUR "permoffile()" function. */ char * permoffile(mode_t mode) { int i; char *p; static char perms[10]; p = perms; strcpy(perms, "---------"); /* * Being the bits are three sets of three bits: * User - read/write/exec, group - read/write/exec * other - read/write/exec. Will deal with each set * of three bits in a pass through the loop. */ for(i=0;i<3;i++) { if(mode &(S_IREAD>>i*3)) *p='r'; p++; if(mode &(S_IWRITE>>i*3)) *p='w'; p++; if(mode &(S_IEXEC>>i*3)) *p='x' p++; } // now if((mode & S_ISUID) != 0) perms[2] = 's'; if((mode & S_ISGID) != 0) perms[5] = 's'; if((mode & S_ISVTX) != 0) perms[8] = 't'; return(perms); } ---------------------------END---------------------------------------- WORKING WITH DIRECTORIES.... Getting the current working directory.... Use the getcwd() function. Synopsis - #include <unistd.h> char *getcwd(char *buf, size_t size); This gets the pathname of the current working directory, and places it into the character string that is pointed to by *buf. Who's size os given by "size". Changing the Current Working Directory Use the chdir() function. Synopsis - #include <unistd.h> int chdir(const char *path); As you probably know, many different proggies need to be able to read directories. 'ls' for example, needs this so that it can get the contents of a dir. Check out the following.... Functions. #include <dirent.h> // need diz DIR *opendir(const char *path); struct dirent *readdir(DIR *dp); long telldir(DIR *dp); void seekdir(DIR *dp, long pos); void rewinddir(DIR *dp); int closedir(DIR *dp); The opendir() opens a directory named in 'path' for reading... it then returns a directory stream pointer called DIR *. closedir() will close the directory stream that is reffered to by *dp. readdir() returns the next directory entry from the stream dp. The info is returned as a pointer to type struct dirent. struct dirent { ino_t d_ino; off_t d_off; unsigned short d_reclen; char *d_name; }; The d_ino member of the structure contains i-node number of the entry, d_off has the offset of the record in the directory file. d_reclen has the length of the directory entry record, and d_name contains the name of the entry. When readdir() gets the end of the directory file, it returns NULL. telldir() returns the current file offset in the dir file. seekdir() sets the current offset to the value specified by "pos" Ok, your obviously going to have trouble comprehending all of these functions and there purposes without working with them and knowing exactly how to use them. Lets write our own version of "ls". The following is an EXTREMELY simple version ls, that prints no file attributes/stats and prints all files in one color. ----------------------------ls-1.c----------------------------------- #include <stdio.h> #include <stdlib.h> #include <string.h> #include <dirent.h> #include <errno.h> #include <unistd.h> #include <limits.h> #include <sys/stat.h> #ifndef PATHMAX #define PATHMAX 255 #endif #define MAX 18 /*global*/ char cwd[PATHMAX + 1]; char color[MAX + 1]; char green[] = "\e[0;1;32;40m"; void list(char *dir); void gcwd(void); void arglist(char *dir); void main(int argc, char *argv[]) { DIR *dirp; struct dirent *direntp; if(argc !=2) { gcwd(); } else if(argc == 2) { printf("Listing contents of %s\n", argv[1]); strcpy(color, green); sleep(1); arglist(argv[1]); } } void list(char *dir) { DIR *dirp; struct dirent *direntp; if((dirp=opendir(cwd)) == NULL) { fprintf(stderr, "Could not open %s directory: %s\n", cwd, strerror(errno)); exit(1); } while((direntp=readdir(dirp)) != NULL) printf("%s %s ", direntp->d_name, color); printf("\n"); closedir(dirp); exit(0); } void gcwd(void) { if(getcwd(cwd, PATHMAX) == NULL) { perror("Couldnt get directory"); exit(1); } printf("Listing contents of %s\n", cwd); sleep(1); list(cwd); } void arglist(char *dir) { DIR *dirp; struct dirent *direntp; if((dirp=opendir(dir)) == NULL) { fprintf(stderr, "Could not open %s directory: %s\n", dir, strerror(errno)); exit(1); } while((direntp=readdir(dirp)) != NULL) printf("%s %s ", direntp->d_name, color); printf("\n"); closedir(dirp); exit(0); } --------------------------------END------------------------------------------- Get the idea of some of these functions now? There is obviously much room to improve on this stupid little version Of ls. So I'm going to let you improve it by yourself. Use what you Learned to make it get file attributes. That's it. I hope you got something from this article. ph1x@b4b0.org x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x eightisgreateightisgreateightisgreateightisgreateightisgreateightisgreateight isgreateightisgreateightisgreateightisgreateightisgreateightisgreateightisgre ateightisgreateightisgreateightisgreateightisgreateightisgreateightisgreateig htisgreateightisgreateightisgreateightisgreateightisgreateightisgreateightisg x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~! ! Gaining Access to the Virgin Baptist Female System ! pr0phet ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~! -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- Gaining access to the Virgin Baptist Female System by pr0phet -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- -/- #include "baptistfucking.h" //hi Ho0ke! Tell mom Im on b4b0! void main() { peemp *pr0phet; pr0phet.sees(stuck_up_baptist_hoe); pr0phet.movesin(stealth) pr0phet.tempts(narcotics); babptisthoe.givesin = TRUE; pr0phet.shares(WEED | bo0ze); baptisthoe.setState(dazed | drunk | confused) pr0phet.setState(abo0sing | hump0ring | sc0ring) pr0phet.exit(baptist_hoes_dorm); pr0phet.wins = TRUE; } Overview. In this text we'll discuss the vulnerabilities in the Virgin Baptist Female System, (VBFM for short). After spending 2 years within a Baptist Compound (they call it college) with plenty of console access to VBFM's, I've gained the experience and learned the many exploits possible in the VBMF. Gaining Access. The easier of the tasks, gaining entry to the VBFM can be obtained within a week or less with the proper patience and tools. The typical VBFM has an invisible defense mechanism installed (A "Snob" Firewall" if you will) by their Mother/Father units. This defense isn't at all unsimiliar to the Death Star's force field, except rather than holding back the rebellion, it holds back common net trash like yourself. It used to be believed wanna_be_pimp.c would exploit this wall, but with the newer VBFM's you'll need charm.c, narcotics.c and alkyhol.c. charm.c can be run remotely (say from accross the lunchroom) but you'll need a trusted connection before you can use the latter 2. 99% of the time, because of the naivety of the VBFM, one of these 3, or a combination will get you console to the VBFM. (if not j0o need skillz lewser) Interior Sekurity. Once you've taken down the "Snob" Firewall" and obtained console, you will need to get your way into /usr/panties. Generally narcotics.c and alkyhol.c have worn the system down enough to gain access to this dir, but with some of the heavily guarded system's peempTekneeks.c will be needed do the trick. Now that you've gotten into /usr/panties, the system is yours to abuse. Remember, be generous and let your friends use the backdoor in the system. Dont forget to clean up. export HIST_FILE > /dev/null (hide JIZZ_REMAINS on /virgins/chin). No you fucking moron, I'm not serious, it's 2 am, I'm drinking and doing tabs, the only thing dumber than me writing this is you spending the time reading it. - pr0phet x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x () || || || __________|| |___________|\ Need a pimp? Don't hesitate to call. |1800SEXB4B0| | |___________| | | 1 2 3 | | We assure 99% success for young budding | 4 5 6 | | whores. | 7 8 9 | | | * 0 # | | | | | Discreet training available. | B4B0 TELE | | |___________|_/ / / / . . . / / . . . / Discount rates for qualifying individuals. / . . . / /___________/ Slide 6 x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@#~!@# ! To Foil Spoofing ! schemerz ~!@#~!@#~!@#~!@#~!@# A few ideas to implement means to disway spoofing of most types. DISCLAIMER: Hi, I thought most of this up during cigarette breaks or that brief 30 minute come down from smoking grass. These ideas are my own as far as I know, but if I infringed on anyone else's intellectual property please let me know. I am more than happy to admit that I am not the first person to come up with ideas as such. The ideas shown here are all vaporware as of right now. Jorge and tip have been reaming me up the ass for articles, so I wrote one. Don't have time to code, ain't all that great a coder anywayz (will remedy). But hey, if anyone wants to code them, lemme know and I'll see how I can help. Of course I won't mind my name on your warez, but hey, I'm doing this for karma's sake anyway. Spoofing is the broad term given to the act of disguising one self on a network. Most types of spoofing are well known, ip-spoofing or blind spoofing, reverse and forward dns spoofing, and of course MAC address spoofing are among the most common. This paper is not about how to implement these means of forging oneself to aid in acts of system penetration. Rather, it is a discussion pertaining to diswaying the acts of spoofing, so as a system administrator one would be allowed to sleep soundly at night. A brief description on the problem(s) at hand. Ip-spoofing stems from the problem that a person given sufficient priviledges on any box can create a raw packet, and fill in the specific headers of at his/her discretion. The packet will be forwarded from hop to hop towards its final destination and do whatever the author of the packet wants it to do, limited only by the services used on the target box. What can one do with ip-spoofing: One of the most common usages of ip-spoofing is Denial of Serivce attacks. Although trivial to construct raw ip packets, there remains little one can do if one is surmounted with this attack. A report to cert and one's service provider (more than likely they will be the ones calling you), then getting the juristication to read router logs hop by hop to decipher where the packet is coming from, is simply unacceptably inefficient and time consuming. (yeah yeah write a fucking perl script right? When this attack spans several ASs, you write the fucking perl script and decipher all these logs bitch). Aside from DoS attempts, ip-spoofing can be used for a number of other attacks. Reverse DNS spoofing mandates that one forges a packet that is entered into the victim's dns server's cache. This allows then for attacks such as rsh/rcp and etc compromises. (Some sysadmins still use .rhost. Why? I dunno. Maybe they believe in their firewalls, which does not defrag packets before analyzing packets and forwarding them. Who knows >:) ). Another example is tcp hijacking. There are many papers into this topic, so I will not divulge another 20 odd pages explaining how it works. The idea, however, remains constant. Most IP routing schemes have no authentication mechanism implemented widely that checks the authenticity of a packet before forwarding it. IP is not sessioned, hence it cannot check the true source of the packet either. Relying on higher layers of the protocol however can remedy this to a certain degree. How does one then stop an ip spoofing attack from ever materializing? Curing the problem from the source (where it should be anywayz): Before a box forwards a packet, ie in the state of a gateway, there should be some mechanism that allows a check for the integrity of the packet itself. If one is running a gateway on a lan, a simple check on a packet filter will suffice. It is neither of great cost nor consequence to implement. If the gateway is a linux/*bsd box, a simple ipchains/ipfw rule appended to the forward section will suffice. If the gateway is not a box that allows this configuration, an additional box placed in between the gateway and its next router will also suffice. The only ramification to that is the increase on hop count, which if one has to use rip. RIP has a limit of 15 hops, and will run into problems if one's lan is over 15 hops from any point A to point B. (if it gets that big, you shouldn't be running rip anyway) This means stops just about any form of ip spoofing, if the gateway is secure. Curing the problem from the victim's end. If the problem is stemming from one's own AS, using the TTL field in the ip packet is a reliable means to check for the validity of the packet. If one has GOT to use rsh and etc services, a daemon that incorporates the functions of tcpd should also check the number of hops a packet has travelled. (If you are about to rag on me about dynamic ip routing, stfu. I'll get to that in a minute.) Simply put, if one controls an AS, one is entitled to the entire network layout of that AS. One should realise that there is a FINITE amount of permutations of which a packet can go through before reaching its destinations. In other words, one can map the TTL value with a different number of allowed values. The chances of the attacker getting past that is slim, unless he knows the allowed hop count already. As a protection mechanism that only protects a certain PORT on ONE box, there is no reason one should ever allow other people to see these boxes in the first place. Packet filtering should be used for that, as this is a means to foil the spoofer only after the packet filter has failed to do it's bidding. (ie, if someone scans you, rsh etc ports should not show up on their logs. If they don't know it's there, generally they aren't gonna bother with this means of attack). Foiling this means of protection, however, is generally quite simple. A traceroute with loose source routing turned on with the soon-to-be spoofed address will tell the attacker the number of hops from spoofed address to victim. Hence, this is not a sure fire way of foiling a spoofer, since it can be foiled quite easily. Using this means to foil reverse dns spoofing however, is even harder. With the volatile nature of the internet, routers go down on a per minute basis. Hence, inter-AS and intra-AS hop count changes dramatically, and as a system administrator on a little class C there is very little information for him/her to authenticate reverse dns replies. Using a static value for the above measure simply will not fly. Using a dynamic authentication however, will. By pinging the supposed dns server when it replies to a reverse request from the victim's dns server, one will get a sufficiently new value to authenticate. If the real dns server does not reply to pings, simply refuse to add the entries to the dns cache. It is sufficient to presume that the spoofed dns server is under a denial of service attack. Foiling MAC address spoofing. MAC addy spoofing is harder than ip spoofing, since it needs a network card driver that allows one to change the mac address of the network card. Linux polls the MAC address from the ethernet card when initalized. Once it is polled it is stored in a kernel buffer, which does not normally allow changing unless one rolls his own lkm for the network card. It is however possible to write to the eeprom of the network card and change the MAC address there. The sequence of events should follow suit as such: a) root box. b) write to crontab to do the following. 1) ifconfig eth1 down 2) rmmod ethernetmodule 3) write to the ethernet card eeprom address using raw memory polling from the bus. You're root, so you can pull this off. Change kernel source if needed, but you can do it. Whatever you can make a dos box do, you can do it with linux by weakening the kernel source and compiling a new one. Just add the lilo and reboot sequence somewhere in your crontab. 4) insmod ethernetmodule 5) ifconfig eth1 newipofspoofedbox If the perpetrator is planning to attack a router, on the same subnet as the controlling terminal (why sysadmins do not have a permanent connection to the serial port of the router remains a mystery, but the fact is, relying on packet integrity is foolish) will get him/her around the MAC address authentication procedures. Once that step is done, one can essentially update/change/flush router tables, such as bgp. If this is on the same subnet, using any part of the packet to authenticate is impossible. One cannot ask the "real" box if it sent this packet either, because tcp/ip has features that will not allow a connection to initiate if there is not a socket bound to a port on the destination machine. Since the spoofed box has the same mac address as the real box, one will never be able to establish any form of connection, much less poll information. (This is of course if everything on that subnet is running on the same piece of wire.) Now how would one get around that? No one said anything about not talking in non-tcp/ip protocols to query the real box :) Ipx/appletalk both run on ethernet, and can be used to query sniffer logs on the real box and see if it sent that packet. Since the other boxes do not support these network protocols, it will simply not respond. Once the box that had it's mac address spoofed realises that it's subnet has been attacked, it can then shut down the compromised box. The steps follow: 1) write to the firewall rules to deny all tcp packets to ssh/rsh/rlogin 2) turn on a sniffer to catch sequence numbers 3) send mail to admin, shut down compromised box using ssh/rsh/rlogin. 4) resume full service 5) turn off all remote administration capabilites for the evening on all boxes on it's subnet for the evening. The admin of course will have great fun peering over the logs of the attacked box, realizing the point of attack because the attacker has had no warning of a shutdown. Hence all his activity is readily intact for next morning. In conclusion, TCP/IPv4 has no means of authentication at the 3/4 layer. Most of this has to be done on the application layer where it is much more difficult, and a heck of a lot slower. However, there are ways around this problem. All suggestions welcomed. schemerz@usa.net x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x "My intentions were always one of the innocence of life; from my times as a boy scout. But all that has been lost. Now I have found B4B0." - David Lynch x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@# ! 5ESS-2000 Compact Exchange Units ! hybrid ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@# o Introduction o Types of compact exchanges o CDX exchange o VCDX exchange o Conclusion Introduction ------------ This is a very compact file, designed to be an intorduction, or primer to 5ESS local compact digital exchange units. I am wrtting this off the top of my head, so don't expect it to be very complex in technical nature. For starters I'll explain a little about the new 5ESS switches and there functions. We've all heard of the millenium bug, and it's supposid ability to take out massive networks etc. Well Lucent technologys, Bellcore (now telecord communications or somthing), aswell as lata exchange carrier providers such as MCI, AT&T, Sprint, and all the RBOC's such as SWBell, etc, all got a bit paranoid and decided to enhance to current 5ESS switching configurations to a new architecture they feel would be compatable with the millenium software and network problems. The new 5ESS-2OOO switches are all basically the same as conventional 5ESS switches, except the software parts, such as the administration control software platforms, and global title translation software etc, have been upgraded to be Y2K compatable. As well as this, the new 5ESS switches have been modified (based upon conventional 5ESS) to be easily upgraded in the future with new modules for future telecommunications developments. In other words, the new digital switches are very very very souped-up versions of 5ESS, infact, I would concider them to be one of the most versatile switches around. Now the deal with these new digital switching systems is that they can handle more and more lines, more network traffic, aswell as a very upgraded ability for general system capacity. They have also been upgraded with new security features to stop people like me from gaining access to the local administration part which is accessable via x25, the PSTN, and the net (on a 'secret' IP range).. I'm not going to go into that at the moment, thats another file.. Anyways, as I was saying, the new 5ESS-2OOO digital exchanges are like souped up 5ESS switches. Before there where people bitching about how they can get 'traced' messing around on the phone network because 5ESS logs shit. Well, I got news for you, 99.9% of all worldwide switching mechanisms, electro-mechanical, or digital derived, ALL log stuff, and always have done. It's just with these new 5ESS-2OOO digital exchanges, its more obvious if you are messing around. Lets say for example you where scanning over 400 numbers a night via your land line.. Normaly a 5ESS, DMS, TXE etc would just log your line usuage, calling patterns etc into a subscriber log in one of the switches sub-system parts. You would only usually get discovered if one of the field technitions, glanced at the data for you line usuage. Thats ok, because we all no that exchange field operators are lame and lazy, but what about this new 5ESS- 2OOO line loging equipment? - welp, I have bad news for you. If you scan in continuous, or repetitive cycles over your subscriber loop, the chances are, you're gonna get your haxoring ass taken to court by your RBOC, or whatever provider you are with. The reason for this is that 5ESS-2OOO digital switches continously monitor the activity, and network usuage of over 100,000 lines similtaniously. Instead of loging line status etc into a dormant log file in a sub-system, if one of the local switches notices that somthings up, a field adminstrator is notified imediatly, probably by the means of a status bar on an uplinked terminal. The new switches have been modified to be very stringent on system capacity and usuage patterns, and will notify any field office engineer of the slightest problem. The new 5ESS- 2OOO switches are basically like UK monologs, in other words, they record everything about your line, all digits dialed, even after terminating destination point, they even log the time intervals between each tone you dial/emit. Basically they are the big-bro of the phone system so start getting paranoid. (I know for a fact, that it is possible to log onto one of the local exchange units and turn line logging OFF, and even make your line appear to be non-existant). Anhow, I think I've probably made a few people a little paranoid now, on with the rest of the file. Types of local compact digital exchanges ---------------------------------------- Werd, well now its time for the focus of the file. I'm not writting a mad big file on the entire 5ESS-2OOO network because it would take _ages_, so I'm going to focus on local compact excahnges designed for the rurual community such as college campuses and areas with not many subscribers, like suberban areas of towns. There are 2 main types of compact 5ESS-2OOO local switch, the CDX (Compact Digital eXchange), and the VCDX (Very Compact Digital eXchange). Both these new units are designed to be very echonimacal for the money raking telcos. The idea is that these switches are being placed in new suberban housing developments, and are being integrated into the PSTN as we speak. The CDX digital exchange for example is designed to be very snall, handeling small local phone networks, it can however be upgraed with the implementation of modules, kind of like plug'n'play, until the switch becomes a fully fledged 5ESS-2OOO unit if required in the future. Lets take a look at these local networks in more detail. The CDX digital exchange ------------------------ The CDX (Compact Digital eXchange) is a small sized siwtch configuration, which is capable of providing the same services to subscribers the same as a conventional 5ESS switch would. Unlike the older rural exchange units, these new switches are capable of handeling more advanced telecommunications services like wideband data transmission, and video data etc. The switch is housed in a cabinet that is 6 foot high, 29.9 inches wide, and 23.6 inches deep. The switch is desinged to be a stand alone unit and as I said before, very capable of handeling current/future telecommunications developments and serverices such as POTS lines (Plain Old Telephone Service), equal access services, ISDN (Integrated Services Digital Network), CENTREX services such as call waiting, hold, etc etc. The system is also designed to be fully compatable with the Signaling System 7 telephony protocol which has been implemented over the majourity of the international PSTN. The switch can handle from 100 subscriber loops, upto 15,000 local access lines or 15,000 remote access lines. CDX operates on the same software as the conventional 5ESS-2OOO switch, and also has the same call routing architecture (physical). ______________________ Admin Console AM: Adminstration Module | | ______ CM2: Communications Module | | | | CM2C: " Compact | 3B21D |-------| | MSDT: SLC-2OOO Multi - | | |______| Services Remote |______________________| Module | | | _________________ | | | _______|_______ | SM or |--| | | | SM-2OOO |--| | CM2C |-----------| |--| (upto 6 RSM |_______________| | |--| outputs) | | |--| / |_________________| / | / | _______|_______ ______|______ _________ | | | | | | | ORM | | |--------| local | |_______________| |_____________| |_________| | | | | ORM: Remote Module RSM: Remote Switching Module SLC: Subscriber Loop Carrier SM: Switching Module The VCDX digital exchange ------------------------- VCDX stands for (VERY Compact Digital eXchange), and when I say compact, I mean compact. It is the smallest of all 5ESS-2OOO switch configurations but is still very capable of providing the same services as its bigger bro, the CDX switch. This switch is used by CATV, CAPS, small towns, and government facilitys. The switch is also capable of providing Central Office services such as the usual call waiting, and ISDN. The intersting thing about this switch is that it supports Carrier Identification Code (CIC) expansion and is compatable with changing NPA's in the Interchangable Numbering Plan Area, as required by reglatory bodys such as the FCC. The VCDX switch can support various configurations using a single 5ESS Switching Module (SM) to handle the call processing. The SM is controlled by a sophisticated UNIX software-based workstation which provides administrative and maintenance capabilities. A mimimum configuration of 2 cabinets that are 6 foot high x 29.9 inches wide x 23.6 inches deep in size is necessary and thus it fits in a small space. If left in standard mode, the VCDX can handle upto 1,500 lines. If the SM-2OOO unit is impemented as a module, the switch can handle as many as 14,000 lines. _____________ _______ | | | | | workstation |----------------| modem | |_____________| |_______| | | | __________|___________ _____________ | |--| | | | |--| | local dist |-------------| SM or SM-2OOO |--| |_____________| | |--| | | | | | |______________________|--| (to local distrobution plant. then to subscriber loops.) Conclusion ---------- Welp, thats it for this short file/article. Hope you enjoyed it. As you can see the 5ESS lcoal unit range is very complex, and is a massive improvement on previous local switching networks. Just be carefull about the subscriber loop monitoring modules. If you'd like more info on 5ESS-2OOO switching, I have put some decent information up on my website for your enjoyment and viewing pleasure. Goto http://www.dtmf.org/hybrid and check it out, you'll also be able to find the other 30+ files I've written in the past on there aswell, so go there now@! thats an order, heh. Anyways, thats it, peace. [http://darkcyde.system7.org] [http://dtmf.org/hybrid] [http://system7.org] [http://phunc.com] [http://ninex.com] [http://b4b0.org] shouts to [9x] [b4b0] [D4RKCYDE] [subz] [gr1p] [t1p] [ph1x] [downt1me] [euk] [lowtek] [digiphreq] [zomba] [force] [psyclone] [pbxphreak] [gb] [ch1ckie] [knight] [siezer] [oeb] [barby] [jasun] [pvbbs] [nino] what file would be complete without fuckyouz? [rich] [bosplaya] [skimmy] hybrid@dtmf.org #darkcyde efnet x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x "B4B0 made my penis grow by 60%!" - The suburban youth of America x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~! ! Parallel Port Hardware Interfacing ! alec ~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~!@#~! by alec [alecIB@hotmail.com] This article is going to attempt to explain the methods necessary to control and to read from specific pins on a PC parallel port. It is assumed that the reader has knowledge of the linux operating system, the C programming language, and basic electronic concepts. The advantages to being able to control and read external devices via a relatively simple device such as the parallel port are numerous. Any circuit that needs a fairly complex control interface, without the overhead of custom hardware such as an FPGA (Field Programmable Gate Array), stands to benefit from such an arrangement. For instance, oscillation can easily be controlled by the output pin of a parallel port connected to the base lead of a switching transistor. To generate this in a stand-alone environment, without the help of a computer, a capacitor and resistor as well as a driving IC like the 555 timer would be needed. Other than hardware development, practical applications for the security-minded person are very numerous. A simple example would be the connection of an external sensor, such as a reed switch, to a computer. Software is also run to monitor the status of the reed switch. If it becomes triggered, (i.e. if a door is opened), than the program monitoring can take certain action, such as encryption of critical files, or even the erasure of sensitive data. A conventional SPST switch is also very plausible, mounted in a convenient place in case of emergency. The PC parallel port consists of 25 pins, only 16 of which are used in these examples. Bi-directional communication and unconventional modes are not covered (SPP, EPP, etc.), as many older motherboards/BIOS's do not support them. If one was to look at the end of the cable that hooked in to a printer, the pins would be arranged in the following format... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 25 24 23 22 21 20 1: Input 7 (NOT Strobe) 10: Input 1 (Acknowledge) 2: Data 0 11: Input 0 (Not Busy) 3: Data 1 12: Input 2 (Paper End) 4: Data 2 13: Input 3 (Select) 5: Data 3 14: Input 6 (Auto Feed) 6: Data 4 15: Error 7: Data 5 16: Input 4 (NOT Init) 8: Data 6 17: Input 5 (Select Input) 9: Data 7 18-25: Unused Note: Most printer cables will not use a DB25 connector, so an adapter or DB25 cable is needed. Pins 'Data 0' through 'Data 7' are used for output to the external circuit. (They *can* be used for input, but this isn't recommended. :] ) The other pins, (Acknowledge, Select, etc.) are normally used for printer feedback, but we will be using them for sending input from the external circuit. There are some obstacles, however. First of all, the input pins are all normally high. This needs be fixed in software with inversion, but the problem also needs to be dealt with in hardware. For instance, even if the programmer inverts the inputs, he still needs to consider the fact that in reality the input pins are still all high. This means for the circuit to set a pin to high, as visible to the software in question, the pin needs to be grounded out. This is accomplished through the use of NPN switching transistors with their emitter connected to their respective input pin, and the collector connected to ground. The base of the transistor becomes the new point of input, and we no longer need to worry about the confusing inversion, as that no longer will be an issue to the design of the external circuit. For our example circuit, we will simply add a SPST switch to the base of one the input inversion transistors. If enough light shines on it, the resistance is lowered to a point where the transistor reaches breakdown voltage. When the occurs, current flows into the parallel port grounding out the specific pin, which appears to the software as the pin becoming 'high'. Input pin__ \ / NPN|-----/ --------- +5V / SPST Ground(-) - Note: Ground is not a specific pin on the DB25 connector...it is the metal surrounding the connector. If you are stripping the wire into a solderless breadboard, ground is the only wire uninsulated in the printer cable. Also, if you are connecting a 5 volt power supply for prototyping, remember to connect the power supply's ground (-) terminal to the parallel port ground. Obviously, the software is also easy to modify. A suggested application would be setting up an SPST switch to automatically encrypt anything sensitive on your hard drive, just in case you wake in the morning with some feds in your room. If one was really daring, one could try to read data off a Brinks alarm system master control panel. There are screw terminals that are high or low depending on the status of the various zones in the alarm system. The Brinks terminals are well labeled, and I myself have written some basic software to monitor the various zones in my home. However, it would be quite elite to perhaps construct such a monitor with a JDK or GTK X interface, with a window showing the various zones of the location being monitored. Incidentally, this software will probably be released in b4b0-9 if someone else doesn't write it first. The source code included is only intended to demonstrate the basics...complicated applications suggested are intended to be built on the framework laid out in this article. The included code uses the ioperm(), outb(), and inb() functions to read and set pins on the parallel port. The I/O is through the base address of the port, which is usually 0x378 or 0x278, depending on whether you use lpt1 or lpt2. Output pins are accessed through BASE, or simply 0x378. Input pins are accessed through BASE+1 and BASE+2, or 0x379 and 0x37a. It should be noted that BASE+1 denotes the first 5 pins of the parallel port input, and BASE+2 denotes the last 3 pins. The I/O through BASE is much simpler, because all 8 output pins are directly accessible. There is also no inversion to deal with through output, while software inversion is vital when dealing with input pins. I realize that this is a confusing topic, and questions are welcome to be addressed to alecIB@hotmail.com. I'll try to answer them in a more straightforward format if this article is too puzzling. Props to b4b0 for being so 'leet, smiler for 0wning me at coding, rc for 0wning me at just about everything, and anyone else who 0wns me. -alec /*cut-here----------------input.c----------------cut-here*/ /* parallel port input demonstration program * by alec [alecIB@hotmail.com] * * Shows the 8 bit status of the parallel port input pins. * gcc -O2 -o input input.c */ #include <stdio.h> #include <unistd.h> #include <asm/io.h> #define BASE 0x378 void print_binary(int b) { printf("\n"); if(b & 0x80) printf("1"); else printf("0"); if(b & 0x40) printf("1"); else printf("0"); if(b & 0x20) printf("1"); else printf("0"); if(b & 0x10) printf("1"); else printf("0"); if(b & 0x08) printf("1"); else printf("0"); if(b & 0x04) printf("1"); else printf("0"); if(b & 0x02) printf("1"); else printf("0"); if(b & 0x01) printf("1"); else printf("0"); } int main() { int input1 = 0; int input2 = 0; int result = 0; /* check permissions */ if( ioperm(BASE,3,1)) { printf("Error! (permissions)\n"); } /* set the output pins to 0 */ outb(0,BASE); while(1) { input1 = inb(BASE+1); /* pins 0 - 4 */ input2 = inb(BASE+2); /* pins 5 - 7 */ result = 0; /* needs to be 0 every loop */ /* now because of the retarded design of the parallel port, some pins will already be hardware inverted. They all need to be uniform, so we fix that here. We obtain the xor value (ie 0x78, 0x0c) by checking what input1 or input2's value is when nothing is attached to the parallel port. */ input1 ^= 0x78; input2 ^= 0x0c; /* now both input1 and input2 are correctly zero'ed. We still kept the value of any connected pins. Now we combine input1 and input2 into result by bitwise adding (ORing) them together. */ result |= input1; result |= input2; /* result now contains the proper 8 bit representation of the status of the pins at input0 - input7 */ print_binary(result); } } /*end-cutting----------------input.c----------------end-cutting*/ /*cut-here----------------output.c----------------cut-here*/ /* parallel port output demonstration program * by alec [alecIB@hotmail.com] * * Changes the output pins of the parallel port. * gcc -O2 -o output output.c */ #include <stdio.h> #include <unistd.h> #include <asm/io.h> #define BASE 0x378 unsigned char bits[] = { 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80 }; void print_binary(int b) { printf("\n"); if(b & 0x80) printf("1"); else printf("0"); if(b & 0x40) printf("1"); else printf("0"); if(b & 0x20) printf("1"); else printf("0"); if(b & 0x10) printf("1"); else printf("0"); if(b & 0x08) printf("1"); else printf("0"); if(b & 0x04) printf("1"); else printf("0"); if(b & 0x02) printf("1"); else printf("0"); if(b & 0x01) printf("1"); else printf("0"); } int main(int argc, char **argv) { unsigned int pin; unsigned int value; unsigned int status = 0; if(argc!=3) { printf("\nUsage: ./output <pin> <value>"); printf("\n\t<pin>: 0 - 7"); printf("\n\t<value>: 0 or 1"); printf("\n"); exit(-1); } pin = atoi(argv[1]); value = atoi(argv[2]); printf("\nvalue: %d",value); /* permissions */ if( ioperm(BASE,3,1)) { printf("Error! (permissions)\n"); } /* read the current output status */ status = inb(BASE); /* set the output pins to what the user wants */ if(value==1) status |= bits[pin]; if(value==0) if(status & bits[pin]) /* if the selected pin is high... */ status ^= bits[pin]; /* set it to low. */ outb(status, BASE); /* send the output to the port */ return 0; } /*end-cutting----------------output.c----------------end-cutting*/ x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x <tip> i'm gonna invite some random female sluts here. <kzbpc> gotta reckon w/the hoez. christy: No such nick/channel katie: No such nick/channel >>> Inviting Nikki to #channel <tip> >>> Inviting Nikki to #channel <tip> HEH! >>> Inviting LiSa to #channel <tip> >>> Inviting LiSa to #channel <kzbpc> >>> Inviting Girly to #channel uiu mell0n [unknown@tmodem43.network-one.com] has joined #channel <eckis> heh! <tip> HEH! <kzbpc> whoa <kzbpc> i didn't even invite that hoe <eckis> mell0n <eckis> will you fuck kzbpc? <kzbpc> hEH. <mell0n> yes sir <eckis> ahah <tip> kzbpc: HEH! <kzbpc> u siq fuq. x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~!@#~!@#~!@ ! NT General Overview ! MiLk-MaN ~!@#~!@#~!@#~!@#~!@#~!@ Windows NT Architecture Overview Window NT was designed to be modular operating system. Each part independent of the other, by still working together to accomplish specific system task. Windows NT uses objects which is a combination of data and functions used to represent a service that can be shared by other processes. These objects can be of different types, and attributes. The NT environment is divided up into two sections User mode, and Kernel mode as shown in the appendix. User mode also called the nonprivileged mode is where the user applications and environmental subsystems are executed. To access system resources the user mode applications must make a call to the executive services. User mode also houses some important sub systems. Environmental Subsystems ------------------------ NT has a limited ability to run applications for other operating systems. such as OS/2, and POSIX. Win32 subsystem: --------------- Supports Windows NT/95/98 applications. Win 3.x subsystem: ----------------- Supports the 16 bit windows system applications. DOS subsystem: ------------- Supports DOS applications with the Virtual Dos Machine (VDM). POSIX subsystem: --------------- Supports POSIX.1 with limited functionality. OS/2 subsystems: --------------- Supports OS/2 but as with POSIX subsystem is limited. Security Subsystem ------------------ This system handles the logon process and in conjunction with security reference monitor (SRM), monitors, and verifies users on the system. KERNEL MODE ----------- Kernel Mode also called the privileged processor mode, has execution priority over user mode processes. The kernel mode is mad up of there parts know as Executive Services. NT Executive ------------ All services that are part of NT Executive provide an interface between the kernel and the environmental subsystems in user mode. Object Manager: -------------- The Object Manager provides retention, naming, security, tracking allocating, and removing of objects. Security Reference Monitor: ------------------------- The Security Reference Monitor as stated earlier in this article handles the logon process and security protected subsystem in users mode. Process Manager: _______________ The Process Manager creates, and deletes processes also tracks process and thread objects. Local Procedure Call Facility: ----------------------------- The Local Procedure Call Facility provides a relationship between applications and environmental subsystems. Virtual Memory Manager: ---------------------- The Virtual Memory Manager maps virtual addresses to physical pages in memory and checks efficiency. I/O Manager: ----------- The I/O Manager handles the input and output of the system upon request and determines which driver should be used and sends a request to it. Kernel ------ The Kernel is the brains of operating system. The kernel is responsible for scheduling all systems activities or threads for optimal performance. Hardware Abstraction Layer: -------------------------- The Hardware Abstraction Layer (HAL) is used to mask the differences between the different types of hardware in the machine and make the hardware more transparent to the operating system. Appendix: -------------------------------------------------------------------- | USER MODE | | | | Logon Process (Environmental Subsystems) | | | OS/2-----Win32---POSIX | | Security Subsystem | | | | | | | | | Win 3.x | DOS | | | | | | | | | | | | | | | | | | | | | | | | | | ----------------|--------------------------|----|----|---|---|------- ----------------|--------------------------|----|----|---|---|------- | KERNEL MODE | | | | | | | | ------------------------------------------------------------------ | | | I/O | | Object| |Security | | Local | |Virtual ||Process || | | Manager | |Manager| |Reference| | Procedure | |Memory ||Manager || | | | ------- |Monitor | | Call | |Manager | --------|| | | | --------- | Facility | -------- || | |_________|________________________________________________________|| | | ____________________|___________________________________ | | | | || | | | Kernel || | | -------------------------------------------------------- | | ____|_________________________|___________________________________ | | | || | | Hardware Abstraction Layer || | ------------------------------------------------------------------ | |_____________________________________________________________________| | Hardware Platform I hope you found this article some what informative and educational. If you have any comments about the article please send them to milkman@b4b0.org. Until next time, Moo. Shoutouts: B4b0, Darkcyde, tip, jorge, samj, chrak, hybrid, XrainX, Fuzz, ^PaNd0rA^, doc20, dap, JD`, eckis, socketd, falon, NOP, nawk, Jennifer Lopez(damn she's fine), and all the hotties wit bodies MiLk-MaN www.b4b0.org/~milkman milkman@b4b0.org bOw to my TEET-FU! x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x t00t!! ~~~~~~~~~ _ "1'v3 c0m3 t0 bR1nG d4 ju3r3z!" ____________| |____ | 0-d4y | | O | <----- 0-d4y3 k0d3z dr1v3r, kuR4cK | | |_|__|___@ _| __B4B0 __ | |# |__ |_ <---- th3 b4b0 0-d4y tRuq, |__/ \___/ \_|_|____/ \__| bR1nG1nG 0-d4y t0 th3 \__/ \__/ \__/ m4ss3s!!@#!@# Slide 7 x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x ~!@#~!@#~!@#~! ! Conclusion ! m1st4h cl34n ~!@#~!@#~!@#~! Article One: Ultimate B4B0 Ultimate B4B0 is defined as the solution, rather forerunner, to the pre-existing notion of each facet of everyday life. Whereas the mundane individual would cry out, "B4B0 is ultimate!"; the request is left unanswered, powerless and angst-felt. Words that people can live by run throughout the outlets of culture, seemingly lost in the drechery of the lost cause for liberation. The cries of teenage girls, "Help me B4B0, I need the power to overcome the lechery; to become at one with the B4B0 Asthetic!" remain unanswered. Opponents of B4B0 foolishly avoid the issue of ultimacy, rather trying to attack B4B0 with empty accusations. "Sexual improperty," and "scandalous dervishness" rage throughout their voices. B4B0 chooses to gesticulate the middle finger and pantomime masterbation, speaking harshly, "Irreverency runs supreme in the idiot lots of the likes as yours. Rather than packaging the essence of ordinary life, we live the asthetics that is defined as, 'Ultimate B4B0.' We shall not be discounted." To understand "Ultimate B4B0," one must delve into the sinful sounds only the the inner ear may hear. The liberation from normalcy starts with the proclamation of the destruction of overbearing drama that weighs heavily upon the soul, dangling like brass tassles on the swollen nipple. How far are you willing to go? Is the banality of life transcendant upon the viscerals of day to day duties? To better understand the intent and asthetic of "Ultimate B4B0," one must study the writings and philosophy of its membership. Ultimate B4B0 preaches the doctrine, "The substandard presence of the ordinary, the supine, the meager portions of what makes up anything substantial in the world today is nothing. Our method is simple; it is no more difficult than its epoch, yet empowering the essence of the syntax and ideological implications of splendor and asthetics." The asthetic of B4B0 lies within its brotherhood. Death to liberals.. In so-called "individuality," the youth of America are only following a trend. They are being led like CATTLES TO WATER. No bit of thought placed within their virtue. Yes, here you have it. The NEW YOUTH OF AMERICA: 1) Biologically speaking, less than 01% of the population SHOULD be homo- sexual, yet recent surveys show this rate has high as one in ten. The surpising high jump is in younger people. With the fashionably 'hip' gay 90's, a large portion of the youth of America are finding it to be 'cool' to declare homosexuality. Some guy is taking it up the ass right now willingly, yet he isn't even gay. Real smart youth. 2) The Manson youth of America wears make up and proclaims against the vir- tues bestowed upon them by their loving parents. Of course, the claim "I'm doing this because I want to express my individuality" is made. However, this is furthest from the truth; if it wasn't the media and/or his dim-witted trend-following friends, would he be following the trend as well? No. Real smart youth. 3) It's fashionably 'hip' to declare 'I'll only vote Democrat.' Of course the mindset is that 'Democrats are liberals,' and 'Republications are conservative.' The furthest thing from the truth. KNOW WHAT REPUBLICAN MEANS. KNOW WHAT DEMOCRAT MEANS. The STUPID youth of America doesn't realize that the current Administration promotes loss of freedoms, giving them to the hands of the Government. The STUPID youth of America doesn't realize the Democrats PROMOTE higher taxes. Both of these aforementioned issues go AGAINST what this country was founded on. And that's just the tip of the iceberg. Real smart youth. 4) With the fucking STUPID youth of America today, where does our future lie? Obviously morals and respect have been lost over the past 50 years, now to a new low. Where does the future lie? WAKE UP. A Resurrection of Virtues must be done. A Resurrection of the VALUES that our country was founded upon. With the current laws, taking away our freedoms, with the current government, taking away ONE THIRD OR MORE OF OUR INCOME, what is an individual left to do? America in the 1700's didn't have it THIS BAD. What was reason of the Boston Tea Party? A tax increase that is absolutely NOTHING compared to today's standards. The only solution is another revolt. The only solution is to destroy our current government and establish new ideals. New ideals that refer back to WHAT OUR GOVERNMENT WAS FOUNDED UPON IN THE FIRST PLACE. Thus, the gospel sound of the men of B4B0 bring you: The 13 Point Program to Destroy America. Coming in issue 09. x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x - x $&#bs. .d$#' `^$#. #$'` $#. #$ $# #$ .%$ I%. .s%s.#$P Db. I `%' `$#b. `,. * b 4 b 0 O `$s. `$#@s. .s%. $ .s$P`'&. % .s#$' `$#%' .s$P' `$b. `. .s#$' .$$P' .d$' `s. `$#s. .s#`. .s$P' .d$' /`~"^ `$#s' I$ `. $$$$: .d$$b. /' .$# \ $$$$ `$$$$@s.: ^s. I `$$$b. `'~ .S$'s: | `$$$$s. `$s. ` : `$$$$$s. .aP' `%. `. `$$$$$Ss.M7P ^I % .s$' s $s. $s .' %s. `.. .' .s$' B4B0: The coolest ezine in the world. You can pick up B4B0 ezine at these finer places: http://www.b4b0.org http://www.morehouse.org/hin/uberzines.htm http://www.genocide2600.com/~tattooman/b4b0 http://telehack.net/pub/zines/b4b0 http://archives.projectgamma.com/zines http://www.hackpalace.com/e-zines/general/b4b0 Apocalypse 2000 BBS (private) (28.8k bps) Be a part of the Resurrection of Vice! Submit articles to: submissions<at>b4b0.org Our boys will shine tonight. [!] =-= !b4b0!b4b0!b4b0!b4b0!b4b0!b4b0!b4b0!b4b0!b4b0!b4b0!b4b0!b4b0! =-= [!]