PDA

View Full Version : Pointers



Eresemeth
10-01-2006, 10:56 AM
Good Evening People! :D

I've been reading through most of the threads on this site for a few days, and I'm very interested in all the stuff discussed here. I've just finished a book on C++ coding, getting up as far as the topics of templates and polymorphism. I also have basic knowledge of visual basic and Perl. I'm not here looking for direct answers or tutoring or anything, just wondering if anyone could point me in the right direction to learn more about exploits, cause they seem to be the general way to go in terms of cracking through systems and such. I've looked around on about *0 or so other sites, and have found hundreds of exploits and information regarding them but so far nothing on how to actually go about learning it myself. A google search brought me here in the end. So anyway yeah, any pointers or keywords in what I should go about learning to be able to start identifying exploitable flaws myself would be much appreciated!

Thanks! Have a good one -

Erez

Moonbat
10-01-2006, 11:14 AM
Since you speak of cracking systems, I would guess Windows, right?
Well, you should learn windows api, so you can easily interface with the system.

Eresemeth
10-01-2006, 11:16 AM
Generally yeah, windows. I have a dualboot with XP and Ubuntu though, but I'll use the windows one more often for this type of stuff. Thankyou heaps :D Windows API ay? I'll look into it.

Respect

SyntaXmasteR
10-01-2006, 12:57 PM
Remember back in the day when Nintendo (NES) came out. Some of the games... if you jumped, ducked, or attacked at the right time the game would freak out and "Glitch". Hacking/Cracking is much of the same except you can sometimes spot these potential "Glitches" by reading the source code. Other times you will accidentally make something happen.

The more you understand how different programs work and interact the more you will understand how to break and interfere with these things.

There is no * place to look up cracking or hacking because there is not * piece of software out there. If you Google for "Software Hacking" (software being a specific program), you can really see how engineers developed their programs over time to prevent exploits. One of the biggest and most often exploited programs is Aol Instant Messenger. Do a Google search on this. You will find thousands of results, most outdated.

Ezekiel
10-01-2006, 01:10 PM
Good Evening People! :D

I've been reading through most of the threads on this site for a few days, and I'm very interested in all the stuff discussed here. I've just finished a book on C++ coding, getting up as far as the topics of templates and polymorphism. I also have basic knowledge of visual basic and Perl. I'm not here looking for direct answers or tutoring or anything, just wondering if anyone could point me in the right direction to learn more about exploits, cause they seem to be the general way to go in terms of cracking through systems and such. I've looked around on about *0 or so other sites, and have found hundreds of exploits and information regarding them but so far nothing on how to actually go about learning it myself. A google search brought me here in the end. So anyway yeah, any pointers or keywords in what I should go about learning to be able to start identifying exploitable flaws myself would be much appreciated!

Thanks! Have a good one -

Erez

Finally a thread that's not RETARDED.

The first thing I want to do is recommend these three sites for learning:

General c++:

http://newdata.box.sk/bx/c/htm/ch0*.htm
http://www.cpp-home.com/
http://www.cplusplus.com/
http://www.cprogramming.com/tutorial.html
http://www.cppreference.com/

C++ Winsock:

http://www.hal-pc.org/~johnnie2/winsock.html
http://msdn.microsoft.com/library/de...th_winsock.asp
http://www.tangentsoft.net/wskfaq

C++ Win*2:

http://www.relisoft.com/Win*2
http://www.winprog.org/tutorial
http://www.functionx.com/win*2
http://msdn.microsoft.com/
http://www.codeguru.com/forum/showth...*#sdk_registry
http://www.codeproject.com/threads/winspy.asp
http://www.antionline.com/showthread...hreadid=2*785*

Assembly:

http://docs.mandragor.org/files/Programming_languages/Assembly/Assembly_Language_Tutor_en.html

And in particular this site, because I learned a lot from it:

http://newdata.box.sk/bx/c/htm/ch0*.htm

Also, get the windows help file because it's better than MSDN and MSDN online really sucks:

http://www.borland.com/devsupport/borlandcpp/patches/BC52HLP*.ZIP

Seriously people, if you are a C/C++ programmer get the help file. You can't program on windows without it.




My knowledge of exploits is limited so if anyone sees mistakes, correct me.

Exploits are usually possible due to unchecked input to a program. You can sometimes enter too much input to a program and it runs the input as code instead of doing what it would normally do with it (or usually, just crashes). This is a buffer overflow.

Say Program A is a console application which goes like this:

Enter your name into the database:

And it expects you to enter a relatively small name, which it will then copy to another buffer or whatever. If you decide to enter your name as:

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa

And the program doesn't check the size of the input, you could do many things from simply crashing it to executing that data you entered.

The situation where exploits usually apply is server programs taking input remotely over the network. Through input you give the application, you can manipulate it in any way you want to.

To find vulnerabilities which lead to dangerous exploits, you need to have these things:


Advanced C/C++ knowledge.
Assembly knowledge.
Win*2 API knowledge (or whatever OS you're attacking).


To find these vulnerabilities, you would usually disassemble the program and find instances where input is copied without being checked or filtered sufficiently.

This is why you can't simply be told how to find vulnerabilities - you just have to learn about how programs work then it becomes obvious. The first step is the learning.

If you want further information on buffer overflows, read this:

http://en.wikipedia.org/wiki/Buffer_overflow

Eresemeth
10-02-2006, 05:29 AM
Thankyou so much, you guys have been unimaginably helpful. Respect to all of you