View Full Version : What do I have to learn
ShizoFraen
September 7th, 2005, 09:56
I would like to be able to code cracks or Keygens and the only thing I know that one must be able to Code. What kind of Programming language do I have to learn to be able to code own cracks. I suppose i'm the biggest n00b in this Forum but i'm only SiXTeeN. If somebody could give me some advice i would be very fucking happy.
Sorry for my English i'm from Germany

.
Admiral
September 7th, 2005, 10:42
Hi Shiz.
Eventually, you'll need to learn assembly language. That's the main qualification needed for 'cracking'. If you're logical-minded (or certainly if you're familiar with other languages), it won't take too long to be able to follow a piece of assembly code. Keep a decent opcode reference nearby at all times to look up the less common instructions. If you're persistent then you'll develop a good understanding of how the processor does its thing. Once you're happy with that, get an idea how the Win32 API works (I assume you're talking about reversing Windows applications) and you'll be well on your way.
You can know a hell of a lot about assembly language and all the APIs you like, but unless you know how programs (and compilers) go about turning human ideas into code, you'll never be a reverser. This is probably why you've been told you need to learn to code (a high-level language): The best way to develop this instinct is to spend some time programming. Pick any API-driven language you like (C++ is the most popular, but you'll get by knowing only VB, Java, Python, Delphi among others). If you can learn it to a decent level, reversing will come naturally to you with a few weeks of practice.
Getting into programming just because you want to be a cracker is bad motivation and is comparable to climbing a mountain just so you can go skiing. You'll probably have most success taking the route most of us did to get here: Get a few languages under your belt before you even touch a disassembler. Learning to code is no mean feat but if you think you can hack it I recommend getting hold of a decent C++ IDE and writing some windows applications. Buy any old 'C++ in 24 hours' book, learn the syntax. Once you're happy there, try to get your head around the Windows message pump. If you get this far, you'll probably find that you want to learn more and that the learning gets easier.
When you get to the point where you see someone elses executable and think you know how it's doing what it's doing, you're probably ready to see how deep the rabbit-hole goes. Get hold of a debugger, a disassembler, lots of tutorials and try your hand at reversing. However, I warn you that this will be at least a few months (of hardish work) away. If you have the patience and dedication, we'll see you in the future.
Godspeed, young one

ShizoFraen
September 7th, 2005, 15:16
I'm going to start taking evening courses in C++ or C# (is that enough).
Sorry if it seemed that I only want to learn coding to crack (i wanted to learn it since i programmed traffic lights in school). If you have any links with Tuts and other stuff I'd be happy if youcould send them to me (Shizo.Fraen@gmx.de) or post them here.
LLXX
September 7th, 2005, 23:21
Many Reversers know C and other high-level languages, but not for the exclusive purpose of writing programs with those languages. Instead, you learn a high-level language, become familiar with its standard library functions, its syntax, and most importantly, how that code will look when disassembled. In other words, learning what the compiler does. This way, since most programs these days are (unfortunately, due to efficiency and size problems) written in a HLL, you will be able to see in a disassembled program the various constructs that were originally used in the source code, due to the pattern they create.
I learned this the hard way. I started out learning Asm, wrote a few programs with it (this was back in the old DOS days...), debugged my own programs, then decided I'd like to learn more, and figured reversing would be a good way to. Unfortunately, all the programs I tried to reverse were written in either C or Pascal, and the excessively "florid" Asm code which is produced by these languages greatly confused me. However, after learning a bit of Pascal and C (writing short programs, compiling, then disassembling) I soon figured out how a typical compiler generates its code, making it easier to interpret the raw Asm.
For simple Cracking, i.e. changing the program's flow, basic knowledge of Asm is all that's required. More advanced Reversing, like Packer, Encryption, extending program capabilities, will require a much larger amount of knowledge.
ShizoFraen
September 8th, 2005, 09:34
Pascal is no use anymore or ? As far as I know (i don't know allot) Pascal is n00b coding language. Would it be any use to me ?
bilbo
September 8th, 2005, 09:55
Quote:
Sorry if it seemed that I only want to learn coding to crack (i wanted to learn it since i programmed traffic lights in school). |
Now I agree a lot better with you... I think that someone who wants to learn programming just to crack is like someone who wants to learn driving a car just to crash against someone else car!
Quote:
If you have any links with Tuts and other stuff I'd be happy if youcould send them to me (Shizo.Fraen@gmx.de) or post them here |
For C++ try http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html, it is a very good book and it is free!
Quote:
Pascal is no use anymore or? |
Don't forget that Borland Delphi is Pascal (with inline assembly too, if you like it), a sort of Visual Pascal, a powerful environment to build nice-looking applications.
Best regards, bilbo
ShizoFraen
September 8th, 2005, 11:43
Quote:
[Originally Posted by bilbo]Now I agree a lot better with you... I think that someone who wants to learn programming just to crack is like someone who wants to learn driving a car just to crash against someone else car!
Don't forget that Borland Delphi is Pascal (with inline assembly too, if you like it), a sort of Visual Pascal, a powerful environment to build nice-looking applications.
|
1.
2.Sorry, like i said i'm a n00b
TBone
September 8th, 2005, 14:35
Someone already beat me to mentioning Thinking in C++. It's a good start for learning C++, but it doesn't get deep into C beyond what's required to do things the C++ way. As far as that goes, there are lots of other references for C (and C++), many of which can probably be found floating about in the ether near at hand.
If you want to do things on the cheap, I'd suggest taking a look at Code::Blocks. It's a free IDE for C/C++ in Windows, which optionally comes with MINGW. MINGW is a free windows port of the GCC compiler and binutils, the libc++ libraries, and a set of public domain windows headers. MINGW links with MSVCRT, so you can use it for producing closed-source code if you'd like. Other options might be Eclipse with C/C++ development plugin (can't think of the name of it right now) and either MINGW or Cygwin, or Dev-C++, another Windows IDE with MINGW. Development of the Dev-C++ project seems to have stalled, though, so I'm not sure if anyone plans on actively developing it anymore.
There's really nothing wrong with Pascal. In some respects, it's syntax is probably superior to that of either C or C++. That probably explains the popularity of Delphi lately. But it's reputation is as a teaching language, so prior to the advent of Delphi, it really wasn't used much in commercial development. You'll probably come across a fair number of Delphi apps these days, so it's worth looking into (which reminds me that I need to learn some Delphi some day

)
But just as a matter of personal opinion, I think that C is to programming what greek mythology and the Bible are to western literature. Whether or not you think that it's the best language, C's historical influence on the entire field of programming is indisputable. Love it or hate it, it's too important to ignore.
ShizoFraen
September 14th, 2005, 10:44
Would it be clever to buy a C++ for Dummies Book.
Yes, i am serious!
Yes
or
No

ShizoFraen
September 16th, 2005, 06:04
Would it be WiSE to learn VB.NET.
Aimless
September 16th, 2005, 06:39
I think you are on the wrong tangent. You have asked a question:
"I want to walk. Whose hands should I use?"
Its really irrelavent. Because you want to walk, you use feet, not hands.
Similarly, since you want to code keygens/cracks, you can really use ANY language. That right. ANY language. Its unimportant really. Heck, you can even do some simple keygens using scripts (Perl, python, vbs, js) and there are YET MANY MORE ways of coding your own...
Most crackers CODE in C++/C/Assembly because that's what they know best. You may be surprised to find that your coding has nothing to do with cracking an application.
If you're feeling particularly nasty, you might want to code your keygen using IIS as web-server, SQL Server 2000 as the backend and a combination of ASP and HTML (Warning!!! For strict maschoists only!!)
Have Phun
Admiral
September 16th, 2005, 08:17
While Aimless's point is true, you'll find you can kill more birds with fewer stones if you learn to crack at the same time as learning to code. So picking the 'right' language is reasonably important but not worth losing sleep over.
I'm sure most posts in this thread have suggested that yes, getting 'C++ For Dummies' will indeed get you off on the right foot. Just about any other (probably cheaper) (e-)book on C++ will do about the same.
However, a note of caution: If you're learning to think like Kernel32 then you may want to avoid .NET. The .NET framework encapsulates a lot of the API work well away from the user, so you'll end up learning less useful RE than you would if you chose C++, C, ASM etc.
Anyway. Stop getting us to make the decisions for you and get learning.
ShizoFraen
September 16th, 2005, 09:55
Will do, this was the last question I had. And man don't be Hard on me I'm a fucking n00b that doesnt know SHiT. But I have to say thanxx to everybody who took time to write in this Thread.
I have to go now learn so stuff.
SiGiNT
September 16th, 2005, 12:15
I totally agree with staying away from .net everybody calls VB Bloat code but .net is 10X worse and from the couple of apps I've looked at it's way to easy to "crack" - so what you'll likely be seeing is extensive use of packers with .net apps - really unattractive as they are slow enough without the packing in the way.
SiGiNT
esther
September 16th, 2005, 12:51
If you want to learn c++ buy Robert Lafore Object Oriented Programming in C++ instead of c++ for dummies
TQN
September 16th, 2005, 13:32
How about "Thinking in C++", a very good book and free, or "The C++ Programming Language" of Bjarne Stroustrup, the creator of C++.
Peres
September 17th, 2005, 03:11
Quote:
[Originally Posted by ShizoFraen]I would like to be able to code cracks or Keygens and the only thing I know that one must be able to Code. What kind of Programming language do I have to learn to be able to code own cracks. I suppose i'm the biggest n00b in this Forum but i'm only SiXTeeN. |
Don't get me wrong ShizoFraen: the first and only thing you should learn to crack when you're sixteen are girls. Better leave software reversing to when you WILL BE old, fat and bald.
Love
Peres
TQN
September 17th, 2005, 10:07
I don't think so ! Why do I must leave RE when I were old ? Many reverser are old and they have many experiences, and they leave because they think it is enough for them.
SiGiNT
September 17th, 2005, 11:38
Well, I fit 2 out of the 3 and I'm still around! (with hair), My advice would be to learn as much as you can while you're young and your capacity is very high, as you age you, of course can still learn, but it takes a little longer for it to sink in. Of course that could be a result of the lat 60's and early 70's.
SiGiNT
Powered by vBulletin® Version 4.2.2 Copyright © 2018 vBulletin Solutions, Inc. All rights reserved.