Saturday, July 21, 2012

Advanced Shellcoding Techniques

  ***********************************************
     *                                             *
     * Advanced Shellcoding Techniques - by Darawk *
     *                                             *
     ***********************************************

Introduction

This paper assumes a working knowledge of basic shellcoding techniques, and x86 assembly, I will not rehash these in this paper.  I hope to teach you some of the lesser known shellcoding techniques that I have picked up, which will allow you to write smaller and better shellcodes.  I do not claim to have invented any of these techniques, except for the one that uses the div instruction.



The multiplicity of mul

This technique was originally developed by Sorbo of darkircop.net.  The mul instruction may, on the surface, seem mundane, and it's purpose obvious.  However, when faced with the difficult challenge of shrinking your shellcode, it proves to be quite useful.  First some background information on the mul instruction itself.

mul performs an unsigned multiply of two integers.  It takes only one operand, the other is implicitly specified by the %eax register.  So, a  common mul instruction might look something like this:

movl $0x0a,%eax
mul $0x0a

This would multiply the value stored in %eax by the operand of mul, which in this case would be 10*10.  The result is then implicitly stored in EDX:EAX.  The result is stored over a span of two registers because it has the potential to be considerably larger than the previous value, possibly exceeding the capacity of a single register(this is also how floating points are stored in some cases, as an interesting sidenote).

So, now comes the ever-important question.  How can we use these attributes to our advantage when writing shellcode?  Well, let's think for a second, the instruction takes only one operand, therefore, since it is a very common instruction, it will generate only two bytes in our final shellcode.  It multiplies whatever is passed to it by the value stored in %eax, and stores the value in both %edx and %eax, completely overwriting the contents of both registers, regardless of whether it is necessary to do so, in order to store the result of the multiplication.  Let's put on our mathematician hats for a second, and consider this, what is the only possible result of a multiplication by 0?  The answer, as you may have guessed, is 0.  I think it's about time for some example code, so here it is:

xorl %ecx,%ecx
mul %ecx

What is this shellcode doing?  Well, it 0's out the %ecx register using the xor instruction, so we now know that %ecx is 0.  Then it does a mul %ecx, which as we just learned, multiplies it's operand by the value in %eax, and then proceeds to store the result of this multiplication in EDX:EAX.  So, regardless of %eax's previous contents, %eax must now be 0.  However that's not all, %edx is 0'd now too, because, even though no overflow occurs, it still overwrites the %edx register with the sign bit(left-most bit) of %eax.  Using this technique we can zero out three registers in only three bytes, whereas by any other method(that I know of) it would have taken at least six.


The div instruction

Div is very similar to mul, in that it takes only one operand and implicitly divides the operand by the value in %eax.  Also like, mul it stores the result of the divide in %eax.  Again, we will require the mathematical side of our brains to figure out how we can take advantage of this instruction.  But first, let's think about what is normally stored in the %eax register.  The %eax register holds the return value of functions and/or syscalls.  Most syscalls that are used in shellcoding will return -1(on failure) or a positive value of some kind, only rarely will they return 0(though it does occur).  So, if we know that after a syscall is performed, %eax will have a non-zero value, and that  the instruction divl %eax will divide %eax by itself, and then store the result in %eax, we can say that executing the divl %eax instruction after a syscall will put the value 1 into %eax.  So...how is this applicable to shellcoding? Well, their is another important thing that %eax is used for, and that is to pass the specific syscall that you would like to call to int $0x80.  It just so happens that the syscall that corresponds to the value 1 is exit().  Now for an example:

      
xorl %ebx,%ebx
mul %ebx
push %edx
pushl   $0x3268732f
pushl   $0x6e69622f
mov %esp, %ebx
push %edx
push %ebx
mov %esp,%ecx
movb $0xb, %al  #execve() syscall, doesn't return at all unless it fails, in which case it returns -1
int $0x80

divl %eax  # -1 / -1 = 1
int $0x80

Now, we have a 3 byte exit function, where as before it was 5 bytes.  However, there is a catch, what if a syscall does return 0?  Well in the odd situation in which that could happen, you could do many different things, like inc %eax, dec %eax, not %eax anything that will make %eax non-zero.  Some people say that exit's are not important in shellcode, because your code gets executed regardless of whether or not it exits cleanly.  They are right too, if you really need to save 3 bytes to fit your shellcode in somewhere, the exit() isn't worth keeping.  However, when your code does finish, it will try to execute whatever was after your last instruction, which will most likely produce a SIG ILL(illegal instruction) which is a rather odd error, and will be logged by the system.  So, an exit() simply adds an extra layer of stealth to your exploit, so that even if it fails or you can't wipe all the logs, at least this part of your presence will be clear.



Unlocking the power of leal

The leal instruction is an often neglected instruction in shellcode, even though it is quite useful.  Consider this short piece of shellcode.

xorl %ecx,%ecx
leal 0x10(%ecx),%eax

This will load the value 17 into eax, and clear all of the extraneous bits of eax.  This occurs because the leal instruction loads a variable of the type long into it's desitination operand.  In it's normal usage, this would load the address of a variable into a register, thus creating a pointer of sorts.  However, since ecx is 0'd and 0+17=17, we load the value 17 into eax instead of any kind of actual address.  In a normal shellcode we would do something like this, to accomplish the same thing:

xorl %eax,%eax
movb $0x10,%eax

I can hear you saying, but that shellcode is a byte shorter than the leal one, and you're quite right.  However, in a real shellcode you may already have to 0 out a register like ecx(or any other register), so the xorl instruction in the leal shellcode isn't counted.  Here's an example:

xorl    %eax,%eax
xorl    %ebx,%ebx
movb    $0x17,%al
int    $0x80
      
xorl %ebx,%ebx
leal 0x17(%ebx),%al
int $0x80

Both of these shellcodes call setuid(0), but one does it in 7 bytes while the other does it in 8.  Again, I hear you saying but that's only one byte it doesn't make that much of a difference, and you're right, here it doesn't make much of a difference(except for in shellcode-size pissing contests =p), but when applied to much larger shellcodes, which have many function calls and need to do things like this frequently, it can save quite a bit of space.



Conclusion

I hope you all learned something, and will go out and apply your knowledge to create smaller and better shellcodes.  If you know who invented  the leal technique, please tell me and I will credit him/her. 

250+ Tech books online

1
10 minute guide to lotus notes mail 4.5
http://www.parsian.net/set1252/pages/books.htm

2
10 minute guide to Microsoft exchange 5.0
http://www.parsian.net/set1252/pages/books.htm

3
10 minute guide to outlook 97
http://www.parsian.net/set1252/pages/books.htm

4
10 minute guide to schedule+ for windows 95
http://www.parsian.net/set1252/pages/books.htm

5
ActiveX programming unleashed
http://www.parsian.net/set1252/pages/books.htm

6
ActiveX programming unleashed
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

7
Advanced perl programming
http://www.hk8.org/old_web/

8
Advanced PL/SQL programming with packages
http://www.hk8.org/old_web/

9
Adventure in Prolog/AMZI
www.oopweb.com

10
Algorithms CMSC251/Mount, David
www.oopweb.com

11
Alison Balter's Mastering Access 95 development, premier ed.
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

12
Apache : The definitive guide, 3rd.ed.
http://www.hk8.org/old_web/

13
Beej's guide to network programming/Hall, Brain
www.oopweb.com

14
Beyond Linux from Scratch/BLFS Development Team
http://book.onairweb.net/computer/os/linux/Administration/Beyond_Linux_From_Scratch/

15
Borland C++ builder unleashed
http://www.parsian.net/set1252/pages/books.htm

16
Building an intranet with windows NT 4
http://www.parsian.net/set1252/pages/books.htm

17
Building an Intranet with Windows NT 4
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

18
Building expert systems in prolog/AMZI
www.oopweb.com

19
C programming language
http://book.onairweb.net/computer/pl/C/The_C_Programming_Language_by_K&R/

20
C Programming/Holmes, Steven
www.oopweb.com

21
C++ Annotations
www.oopweb.com

22
CGI developer's guide
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

23
CGI manual of style
http://www.parsian.net/set1252/pages/books.htm

24
CGI manual of style online
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

25
CGI programming
http://www.hk8.org/old_web/

26
CGI programming unleashed
http://www.parsian.net/set1252/pages/books.htm

27
CGI programming with Perl, 2nd.ed.
http://www.hk8.org/old_web/

28
Charlie Calvert's Borland C++ builder unleashed
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

29
Client/server computing, 2nd.ed.
http://www.parsian.net/set1252/pages/books.htm

30
Client-server computing, 2nd.ed.
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

31
Common LISP, the language/Steele, Guy
www.oopweb.com

32
Compilers and compiler generators : an introduction with C++/Terry, P.D.
www.oopweb.com

33
Complete idiot's guide to creating HTML webpage
http://www.parsian.net/set1252/pages/books.htm

34
Computer graphics CMSC 427/Mount, David
www.oopweb.com

35
Configuring and troubleshooting the windows NT/95 registry
http://www.parsian.net/set1252/pages/books.htm

36
Creating commercial websites
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

37
Creating web applets with Java
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

38
Crystal Reports.NET
http://www.crystalreportsbook.com/Chapters.asp

39
Curious about the internet
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

40
Curious about the internet?
http://www.parsian.net/set1252/pages/books.htm

41
Dan appleman's developing activeX components with Visual Basic 5
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

42
Dan appleman's developing activex components with Visual Basic 5.0
http://www.parsian.net/set1252/pages/books.htm

43
Data structures CMSC420/Mount, David
www.oopweb.com

44
Database developer's guide with visual basic 4, 2nd.ed.
http://www.parsian.net/set1252/pages/books.htm

45
Database developer's guide with Visual Basic 4, 2nd.ed.
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

46
Database developer's guide with Visual C++ 4, 2nd.ed.
http://www.parsian.net/set1252/pages/books.htm

47
Database developer's guide with Visual C++ 4, 2nd.ed.
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

48
Design and analysis of computer algorithms CMSC451/Mount, David
www.oopweb.com

49
Designing implementing Microsoft internet information server
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

50
Designing implementing Microsoft proxy server
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

51
Developing for netscape one
http://www.parsian.net/set1252/pages/books.htm

52
Developing intranet applications with java
http://www.parsian.net/set1252/pages/books.htm

53
Developing personal oracle 7 for windows 95 applications
http://www.parsian.net/set1252/pages/books.htm

54
Developing personal Oracle 7 for windows 95 applications
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

55
Developing professional java applets
http://www.parsian.net/set1252/pages/books.htm

56
Developing professional java applets
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

57
DNS and BIND
http://www.hk8.org/old_web/

58
Doing objects with VB.NET and C#
http://vbwire.com/nl?6814

59
EAI/BPM Evaluation Series: IBM WebSphere MQ Workflow v3.3.2 & EAI Suite by
> Middleware Technology Evaluation Series, Phong Tran & Jeffrey Gosper
http://www.cmis.csiro.au/mte/reports/BPM_IBMwebsphereMQ332.htm

60
Effective AWK programming
http://book.onairweb.net/computer/os/shell/Effective_AWK_Programming/

61
Enterprise javabeans, 2nd.ed.
http://www.hk8.org/old_web/

62
Exploring java
http://www.hk8.org/old_web/

63
GNOME/Sheets, John
www.oopweb.com

64
Graph theory/Prof. Even
www.oopweb.com

65
Hacking java
http://www.parsian.net/set1252/pages/books.htm

66
How intranets work
http://www.parsian.net/set1252/pages/books.htm

67
How intranets work
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

68
How to program visual basic 5.0
http://www.parsian.net/set1252/pages/books.htm

69
How to use HTML 3.2
http://www.parsian.net/set1252/pages/books.htm

70
Html : The definitive guide
http://www.hk8.org/old_web/

71
HTML 3.2 & CGI unleashed
http://www.parsian.net/set1252/pages/books.htm

72
HTML 3.2 and CGI professional reference edition unleashed
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

73
HTML by example
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

74
Internet firewall
http://www.hk8.org/old_web/

75
Intranets unleashed
http://www.parsian.net/set1252/pages/books.htm

76
Introduction to object-oriented programming using C++/Muller, Peter
www.oopweb.com

77
Introduction to programming using Java/Eck, David
www.oopweb.com

78
Introduction to socket programming
http://book.onairweb.net/computer/network/An_Introduction_to_Socket_Programming/

79
Java 1.1 unleashed
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

80
Java 1.1 unleashed, 2nd.ed.
http://www.parsian.net/set1252/pages/books.htm

81
Java 1.1 unleashed, 3rd.ed.
http://www.parsian.net/set1252/pages/books.htm

82
Java 114 documentation
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

83
Java AWT reference
http://www.hk8.org/old_web/

84
Java by example
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

85
Java developer's guide
http://www.parsian.net/set1252/pages/books.htm

86
Java developer's guide
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

87
Java developer's reference
http://www.parsian.net/set1252/pages/books.htm

88
Java developer's reference
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

89
Java Distributed computing
http://www.hk8.org/old_web/

90
Java enterprise
http://www.hk8.org/old_web/

91
Java enterprise in a nutshell
http://www.hk8.org/old_web/

92
Java foundation classes in a nutshell
http://www.hk8.org/old_web/

93
Java fundamental classes reference
http://www.hk8.org/old_web/

94
Java in a nutshell
http://www.hk8.org/old_web/

95
Java in a nutshell, 3rd.ed.
http://www.hk8.org/old_web/

96
Java language reference
http://www.hk8.org/old_web/

97
Java security
http://www.hk8.org/old_web/

98
Java servlet programming
http://www.hk8.org/old_web/

99
Java unleashed
http://www.parsian.net/set1252/pages/books.htm

100
Java unleashed
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

101
Java, 2nd.ed.
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

102
_JavaScript : the definitive guide
http://www.hk8.org/old_web/

103
_Javascript manual of style
http://www.parsian.net/set1252/pages/books.htm

104
_Javascript manual of style
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

105
Josh's GNU Linux Guide/Joshua
http://book.onairweb.net/computer/os/linux/Administration/Josh's_GNU_Linux_Guide/

106
Late night activex
http://www.parsian.net/set1252/pages/books.htm

107
Late night activeX
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

108
Laura lemay's 3D graphics in and VRML 2
http://www.parsian.net/set1252/pages/books.htm

109
Laura lemay's activex and _VBScript
http://www.parsian.net/set1252/pages/books.htm

110
Laura lemay's graphics and web page design
http://www.parsian.net/set1252/pages/books.htm

111
Laura lemay's guide to sizzling websites design
http://www.parsian.net/set1252/pages/books.htm

112
Laura lemay's _javascript 1.1
http://www.parsian.net/set1252/pages/books.htm

113
Laura lemay's web workshop activex and _VBScript
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

114
Laura lemay's web workshop Graphics web page design
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

115
Laura lemay's web workshop _javascript
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

116
Learning perl
http://www.hk8.org/old_web/

117
Learning perl on win32
http://www.hk8.org/old_web/

118
Learning the kornshell
http://www.hk8.org/old_web/

119
Learning unix
http://www.hk8.org/old_web/

120
Learning vi
http://www.hk8.org/old_web/

121
Linux from Scratch/Beekmans, Gerard
http://book.onairweb.net/computer/os/linux/Administration/Linux_From_Scratch/

122
Linux in a nutshell, 3rd.ed.
http://www.hk8.org/old_web/

123
Linux kernel/Rusling, David
www.oopweb.com

124
Linux network administrator's guide/Dawson, Terry
www.oopweb.com

125
Linux system administrator's survival guide
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

126
MAPI, SAPI and TAPI developer's guide
http://www.parsian.net/set1252/pages/books.htm

127
Mastering access 95 development
http://www.parsian.net/set1252/pages/books.htm

128
Microsoft access 97 quick reference
http://www.parsian.net/set1252/pages/books.htm

129
Microsoft access 97 quick reference
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

130
Microsoft backoffice 2 unleashed
http://www.parsian.net/set1252/pages/books.htm

131
Microsoft excel 97 quick reference
http://www.parsian.net/set1252/pages/books.htm

132
Microsoft excel 97 quick reference
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

133
Microsoft exchange server survival guide
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

134
Microsoft frontpage unleashed
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

135
Microsoft word 97 quick reference
http://www.parsian.net/set1252/pages/books.htm

136
Microsoft word 97 quick reference
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

137
Microsoft works 4.5 6-In-1
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

138
More than 100 full-text e-books
http://www.allfreetech.com/EBookCategory.asp

139
Ms backoffice administrator's survival guide
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

140
Ms backoffice unleashed
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

141
Mysql and msql
http://www.hk8.org/old_web/

142
Netscape plug-ins developer's kit
http://www.parsian.net/set1252/pages/books.htm

143
Official gamelan java directory
http://www.parsian.net/set1252/pages/books.htm

144
Oracle built-in packages
http://www.hk8.org/old_web/

145
Oracle PL/SQL built-in pocket reference
http://www.hk8.org/old_web/

146
Oracle PL/SQL language pocket reference
http://www.hk8.org/old_web/

147
Oracle PL/SQL programming guide to Oracle 8 features
http://www.hk8.org/old_web/

148
Oracle PL/SQL programming, 2nd.ed.
http://www.hk8.org/old_web/

149
Oracle unleashed
http://www.parsian.net/set1252/pages/books.htm

150
Oracle unleashed
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

151
Oracle web applications PL/SQL developer's introduction
http://www.hk8.org/old_web/

152
Patterns of enterprise application architecture/Fowler, Martin
http://www.awprofessional.com/catalog/product.asp?product_id={574D77DF-6ED2-BC5-A6A8-02E59CA7482D}

153
PC week : the intranet advantage
http://www.parsian.net/set1252/pages/books.htm

154
Perl 5 by example
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

155
Perl 5 quick reference
http://www.parsian.net/set1252/pages/books.htm

156
Perl 5 unleashed
http://www.parsian.net/set1252/pages/books.htm

157
Perl 5.0 CGI web pages
http://www.parsian.net/set1252/pages/books.htm

158
Perl cookbook
http://www.hk8.org/old_web/

159
Perl for system administration
http://www.hk8.org/old_web/

160
Perl in a nutshell
http://www.hk8.org/old_web/

161
Perl quick reference
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

162
Peter norton's complete guide to windows NT 4 workstations
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

163
Presenting activex
http://www.parsian.net/set1252/pages/books.htm

164
Presenting activex
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

165
Presenting javabeans
http://www.parsian.net/set1252/pages/books.htm

166
Presenting javabeans
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

167
Programming perl
http://www.hk8.org/old_web/

168
Programming perl, 3rd.ed.
http://www.hk8.org/old_web/

169
Programming the Perl DBI
http://www.hk8.org/old_web/

170
Red hat linux unleashed
http://www.parsian.net/set1252/pages/books.htm

171
Running a perfect intranet
http://www.parsian.net/set1252/pages/books.htm

172
Running Linux, 3rd.ed.
http://www.hk8.org/old_web/

173
Sams teach yourself java 1.1 in 24 hours/
http://book.onairweb.net/computer/sams/Sams_Teach_Yourself_Java_1.1_Programming_in_24_Hours

174
Sams Teach yourself java in 21 days/Lemay, Laura
http://book.onairweb.net/computer/sams/Sams_Teach_Yourself_Java_in_21_Days/

175
Sams teach yourself linux in 24 hours/Ball, Bill
http://book.onairweb.net/computer/sams/Sams_Teach_Yourself_Linux_in_24%20Hours/

176
Sams teach yourself shell programming in 24 hours
http://book.onairweb.net/computer/sams/Sams_Teach_Yourself_Shell_Programming_in_24_Hours/

177
Sams teach yourself TCP/IP in 14 days
http://book.onairweb.net/computer/sams/Sams_Teach_Yourself_TCP-IP_in_14_Days(SE)/

178
Sed and awk
http://www.hk8.org/old_web/

179
Sendmail
http://www.hk8.org/old_web/

180
Sendmail desktop reference
http://www.hk8.org/old_web/

181
Slackware linux unleashed
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

182
Special edition using java, 2nd.ed.
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

183
Special edition using _javascript
http://www.parsian.net/set1252/pages/books.htm

184
Special edition using _javascript
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

185
Special edition using _Jscript
http://www.parsian.net/set1252/pages/books.htm

186
Special edition using lotus notes and domino 4.5
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

187
Special edition using Microsoft SQL server 6.5, 2nd.ed.
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

188
Special edition using Microsoft visual Interdev
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

189
Special edition using perl 5 for web programming
http://www.parsian.net/set1252/pages/books.htm

190
Special edition using perl for web programming
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

191
Special edition using Visual Basic 4
http://www.parsian.net/set1252/pages/books.htm

192
TCP/IP
http://www.hk8.org/old_web/

193
Teach yourself activex programming in 21 days
http://www.parsian.net/set1252/pages/books.htm

194
Teach yourself C++ in 21 days
http://www.parsian.net/set1252/pages/books.htm

195
Teach yourself C++ in 21 days
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

196
Teach yourself CGI programming with Perl 5 in a week
http://www.parsian.net/set1252/pages/books.htm

197
Teach yourself database programming with VB5 in 21 days, 2nd.ed.
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

198
Teach yourself database programming with visual basic 5 in 21 days
http://www.parsian.net/set1252/pages/books.htm

199
Teach yourself HTML 3.2 in 24 hours
http://www.parsian.net/set1252/pages/books.htm

200
Teach yourself HTML 3.2 in 24 hours
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

201
Teach yourself internet game programming with java in 21 days
http://www.parsian.net/set1252/pages/books.htm

202
Teach yourself java 1.1 programming in 24 hours
http://www.parsian.net/set1252/pages/books.htm

203
Teach yourself jave in café in 21 days
http://www.parsian.net/set1252/pages/books.tm

204
Teach yourself Microsoft visual Interdev in 21 days
http://www.parsian.net/set1252/pages/books.htm

205
Teach yourself Microsoft visual Interdev in 21 days
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

206
Teach yourself oracle 8 in 21 days
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

207
Teach yourself perl 5 in 21 days
http://www.parsian.net/set1252/pages/books.htm

208
Teach yourself perl 5 in 21 days, 2nd.ed.
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

209
Teach yourself SQL in 21 days
http://www.parsian.net/set1252/pages/books.htm

210
Teach yourself SQL in 21 days, 2nd.ed.
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

211
Teach yourself TCP/IP in 14 days
http://www.parsian.net/set1252/pages/books.htm

212
Teach yourself TCP/IP in 14 days, 2nd.ed.
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

213
Teach yourself the Internet in 24 hours
http://www.parsian.net/set1252/pages/books.htm

214
Teach yourself the internet in 24 hours
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

215
Teach yourself _VBScript in 21 days
http://www.parsian.net/set1252/pages/books.htm

216
Teach yourself _VBScript in 21 days
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

217
Teach yourself visual basic 5 in 24 hours
http://www.parsian.net/set1252/pages/books.htm

218
Teach yourself Visual Basic 5 in 24 hours
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

219
Teach yourself Visual J++ in 21 days
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

220
Teach yourself web publishing with HTML 3.2 in 14 days
http://www.parsian.net/set1252/pages/books.htm

221
Teach yourself web publishing with HTML in 14 days
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

222
Thinking in C++
http://www.mindview.net/Books

223
Thinking in C++/Eckel, Bruce - Vol.I, 2nd.ed.
www.oopweb.com

224
Thinking in C++/Eckel, Bruce - Vol.II, 2nd.ed.
www.oopweb.com

225
Thinking in Enterprise Java
http://www.mindview.net/Books

226
Thinking in Java, 2nd.ed.
www.oopweb.com

227
Thinking in Java, 3rd.ed. (pdf)
http://www.mindview.net/Books

228
Tricks of the internet gurus
http://www.parsian.net/set1252/pages/books.htm

229
Tricks of the java programming gurus
http://www.parsian.net/set1252/pages/books.htm

230
Unix and internet security
http://www.hk8.org/old_web/

231
Unix hints and hacks/Waingrow, Kirk
http://book.onairweb.net/computer/os/unix/Administration/UNIX_Hints_&_Hacks/19270001..htm

232
Unix in a nutshell
http://www.hk8.org/old_web/

233
Unix kornshell quick reference
http://book.onairweb.net/computer/os/shell/Unix_KornShell_Quick_Reference/kornShell.html

234
Unix power tools
http://www.hk8.org/old_web/

235
Unix shell guide
http://book.onairweb.net/computer/os/shell/The_UNIX_Shell_Guide/

236
Unix unleashed
http://www.parsian.net/set1252/pages/books.htm

237
Unix unleashed
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

238
Unix unleashed Internet Ed./Burk, Robin
http://book.onairweb.net/computer/os/unix/Administration/UNIX_Unleashed(Internet_Edition)/fm.htm

239
Unix unleashed, System administrator's Edition
http://book.onairweb.net/computer/os/unix/Administration/UNIX_Unleashed_System_Administrator's_Edition/toc.htm

240
Unix Unleashed/Sams Publication
http://book.onairweb.net/computer/os/unix/Administration/UNIX_Unleashed/

241
Upgrading PCs illustrated
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

242
Using windows NT workstation 4.0
http://www.parsian.net/set1252/pages/books.htm

243
_VBScript unleashed
http://www.parsian.net/set1252/pages/books.htm

244
_Vbscript unleashed
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

245
Visual basic 4 in 12 easy lessons
http://www.parsian.net/set1252/pages/books.htm

246
Visual basic 4 unleashed
http://www.parsian.net/set1252/pages/books.htm

247
Visual Basic 5 night school
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

248
Visual basic programming in 12 easy lessons
http://www.parsian.net/set1252/pages/books.htm

249
Visual Basic programming in 12 easy lessons
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

250
Visual C++ 4 unleashed
http://www.parsian.net/set1252/pages/books.htm

251
Visual C++ programming in 12 easy lessons
http://www.parsian.net/set1252/pages/books.htm

252
Web database developer's guide with visual basic 5
http://www.parsian.net/set1252/pages/books.htm

253
Web database developer's guide with visual basic 5
http://www.emu.edu.tr/english/facilitiesservices/computercenter/bookslib/

254
Web programming desktop reference 6-in-1
http://www.parsian.net/set1252/pages/books.htm

Friday, July 20, 2012

10 Security Enhancements

10 Fast and Free Security Enhancements
PC magazine.

Before you spend a time on security, there are many precautions you can take that will protect you against the most common threats.

1. Check Windows Update and Office Update regularly (_http://office.microsoft.com/productupdates); have your Office CD ready. Windows Me, 2000, and XP users can configure automatic updates. Click on the Automatic Updates tab in the System control panel and choose the appropriate options.

2. Install a personal firewall. Both SyGate (_www.sygate.com) and ZoneAlarm (_www.zonelabs.com) offer free versions.


3. Install a free spyware blocker. Our Editors' Choice ("Spyware," April 22) was SpyBot Search & Destroy (_http://security.kolla.de). SpyBot is also paranoid and ruthless in hunting out tracking cookies.

4. Block pop-up spam messages in Windows NT, 2000, or XP by disabling the Windows Messenger service (this is unrelated to the instant messaging program). Open Control Panel | Administrative Tools | Services and you'll see Messenger. Right-click and go to Properties. Set Start-up Type to Disabled and press the Stop button. Bye-bye, spam pop-ups! Any good firewall will also stop them.

5. Use strong passwords and change them periodically. Passwords should have at least seven characters; use letters and numbers and have at least one symbol. A decent example would be f8izKro@l. This will make it much harder for anyone to gain access to your accounts.

6. If you're using Outlook or Outlook Express, use the current version or one with the Outlook Security Update installed. The update and current versions patch numerous vulnerabilities.

7. Buy antivirus software and keep it up to date. If you're not willing to pay, try Grisoft AVG Free Edition (Grisoft Inc., w*w.grisoft.com). And doublecheck your AV with the free, online-only scanners available at w*w.pandasoftware.com/activescan and _http://housecall.trendmicro.com.

8. If you have a wireless network, turn on the security features: Use MAC filtering, turn off SSID broadcast, and even use WEP with the biggest key you can get. For more, check out our wireless section or see the expanded coverage in Your Unwired World in our next issue.

9. Join a respectable e-mail security list, such as the one found at our own Security Supersite at _http://security.ziffdavis.com, so that you learn about emerging threats quickly and can take proper precautions.

10. Be skeptical of things on the Internet. Don't assume that e-mail "From:" a particular person is actually from that person until you have further reason to believe it's that person. Don't assume that an attachment is what it says it is. Don't give out your password to anyone, even if that person claims to be from "support."

Wednesday, July 18, 2012

bit torrent tutorials

Bit Torrent Tutorials

The first things you need to know about using Bit Torrent:
-- Bit Torrent is aimed at broadband users (or any connection better than dialup).
-- Sharing is highly appreciated, and sharing is what keeps bit torrent alive.
-- A bit torrent file (*.torrent) contains information about the piece structure of the download (more on this later)
-- The method of downloading is not your conventional type of download. Since downloads do not come in as one
big chunk, you are able to download from many people at once, increasing your download speeds. There may be
100 "pieces" to a file, or 20,000+ pieces, all depending on what you're downloading. Pieces are usually small (under 200kb)
-- The speeds are based upon people sharing as they download, and seeders. Seeders are people who constantly
share in order to keep torrents alive. Usually seeders are on fast connections (10mb or higher).

In this tutorial, I will be describing it all using a bit torrent client called Azureus. This client is used to decode the .torrent files into a useable format to download from other peers. From here on out, I will refer to Bit Torrent as BT.

Which BT client you use, is purely up to you. I have tried them all, and my personal favorite is Azureus for many reasons. A big problem with most BT clients out there, is that they are extremely CPU intensive, usually using 100% of your cpu power during the whole process. This is the number one reason I use Azureus. Another, is a recently released plug-in that enables you to browse all current files listed on suprnova.org (the #1 source for torrent downloads).

Before you use the plug-in, take a look at /http://www.suprnova.org, and browse the files. Hold your mouse over the links, and you'll notice every file ends in .torrent. This is the BT file extension. Usually, .torrent files are very small, under 200kb. They contain a wealth of information about the file you want to download. A .torrent file can contain just 1 single file, or a a directory full of files and more directories. But regardless, every download is split up into hundreds or thousands of pieces. The pieces make it much easier to download at higher speeds. Back to suprnova.org. Look at the columns:

Added | Name | Filesize | Seeds | DLs (and a few more which aren't very useful.)

I'll break this down.
Added: Self explanitory, its the date the torrent was added.
Name: Also self explanitory.
Filesize: Duh
Seeds: This is how many people are strictly UPLOADING, or sharing. These people are the ones that keep .torrent files alive. By "alive", I mean, if there's no one sharing the .torrent file, no one can download.
DLs: This is how many people currently downloading that particular torrent. They also help keep the torrent alive as they share while they download.

It's always best to download using a torrent that has a decent amount of seeders and downloaders, this way you can be assured there's a good chance your download will finish. The more the better.

Now that you should understand how torrent files work, and how to use them, on to Azureus!
First, get JAVA! You need this to run Azureus, as java is what powers it. Get Java here: /http://java.sun.com/j2se/1.4.2/download.html
Next, get Azureus at: /http://azureus.sourceforge.net
Next, get the Suprnovalister plugin from /http://s93732957.onlinehome.us/storage/suprnovalister.jar

Install Java JRE before you do ANYTHING.

Install Azureus, and then in the installation folder, create 2 more folders. ./Plugins/suprnovalister (For example, if you installed Azureus to C:\PROGRAM FILES\AZUREUS, create C:\PROGRAM FILES\AZUREUS\PLUGINS\SUPRNOVALISTER). Next, put the suprnovalister.jar file that you downloaded, in that folder.

Load up Azureus, and if you want, go through the settings and personalize it.

The tab labeled "My Torrents" is the section of Azureus you need the most often. That lists all your transfers, uploads and downloads. It shows every bit of information you could possibly want to know about torrents you download.

In the menu bar, go to View > Plugins > Suprnova Lister. This will open up a new tab in Azureus. Click on "Update Mirror". This will get a mirror site of suprnova.org containing all current torrent files available. Once a mirror is grabbed, choose a category from the drop-down box to the left and click "Update". Wah-lah, all the available downloads appear in the main chart above. Just double click a download you want, and bang its starting to download. Open the "My Torrents" tab again to view and make sure your download started.

After your download has finished, be nice, and leave the torrent transferring. So people can get pieces of the file from you, just as you got pieces from other people.

Alternatively, if you don't want to use the plugin... you can just head to suprnova.org and download files to any folder. Then go to File > Open > .torrent File in Azureus.

This should about wrap it up for the Bit Torrent Tutorial. If you guys think of anything I should add, or whatnot, just let me know and I'll check into it.

one million serial keys!

This summary is not available. Please click here to view the post.