Forums: Time To Learn New Programming Language, Which One? - Forums

Jump to content

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

Time To Learn New Programming Language, Which One? C, C++ or Assembly

#1 User is offline   ChRiiLLe 

  • Private
  • Icon
  • Group: Members
  • Posts: 9
  • Joined: 01-February 04

Posted 03 July 2005 - 01:22 AM

Okey, i've decided to learn a new programming language, i have done pretty much visual basic and asp but i wan't to learn C, C++ and Assembly.

So which one should i start with? What i want to do with those languages is to learn decompiling programs and change things in them (cracking) and write own patches and write own exploits.. I know i have to learn Assembly, but i think i need C or C++ also?

And which one should you prefer to start with? I know it will take long time to be good and learn to do what i want to do, but i really like programming and have time to spend on it :)
0

#2 User is offline   mulander 

  • Private
  • Icon
  • Group: Members
  • Posts: 18
  • Joined: 21-June 05

Posted 03 July 2005 - 01:27 AM

I am no expert on the subject, but in my humble opinion you should start from C + assembler.
Most of the people I know who program exploits recommend C over C++.
The knowledge of assembler is usefull in both exploits and cracking.
But I may be wrong, this is only just my opinion about the case, maybe someone else could give
You better arguments on those or the other languages.
0

#3 User is offline   DarkieD 

  • Private First Class
  • Icon
  • Group: Members
  • Posts: 106
  • Joined: 21-September 03

Posted 03 July 2005 - 01:39 AM

c++
0

#4 User is offline   gman24 

  • Specialist
  • Icon
  • Group: Specialist
  • Posts: 643
  • Joined: 21-October 03

Posted 03 July 2005 - 01:41 AM

Start with C, learning C++ and assembly is easier from there.
0

#5 User is offline   jead99 

  • Corporal
  • Icon
  • Group: Members
  • Posts: 179
  • Joined: 13-January 04

Posted 03 July 2005 - 08:35 AM

Start with C its a small language but very powerfull.
0

#6 User is offline   eGze 

  • Private
  • Icon
  • Group: Members
  • Posts: 3
  • Joined: 20-June 05

Posted 03 July 2005 - 03:50 PM

pascal > asm > c++
0

#7 User is offline   tibbar 

  • Master Sergeant
  • Icon
  • Group: Members
  • Posts: 1,423
  • Joined: 14-October 03

Posted 03 July 2005 - 04:37 PM

who on earth does pascal these days?
If you want to read more about my security research, visit Tibbar.org
0

#8 User is offline   belgther 

  • Master Sergeant
  • Icon
  • Group: Specialist
  • Posts: 650
  • Joined: 06-October 04

Posted 03 July 2005 - 11:29 PM

tibbar, on Jul 4 2005, 01:37 AM, said:

who on earth does pascal these days?


delphi programmers use the way of pascal scripting.
"The wisest one is the one who knows himself/herself." Quote of the life
belgther... aka... belgther
0

#9 User is offline   setthesun 

  • Master Sergeant
  • Icon
  • Group: Specialist
  • Posts: 574
  • Joined: 13-February 04

Posted 04 July 2005 - 01:45 AM

If you are going to reverse engineering you should start with assembler, learn registers, esi, esp etc :)

Also it's a good start to developing exploits then you can easily move yourself into C and C++.

But start with ASM, then learn to use IDA Pro

setthesun me = new setthesun();
0

#10 User is offline   ChRiiLLe 

  • Private
  • Icon
  • Group: Members
  • Posts: 9
  • Joined: 01-February 04

Posted 04 July 2005 - 03:16 AM

I think i start with C, found an old book about it at home :P
Just wondering now, if someone of you have any good site at internet with good explanations of C functions and stuff? or a more advanced guide, that i can use after i finnished the book?
0

#11 User is offline   Erliene 

  • Private First Class
  • Icon
  • Group: Members
  • Posts: 43
  • Joined: 29-March 04

Posted 04 July 2005 - 09:25 PM

Start with C you will be easier to learn C++, java and C assembly there is useful for cracking. But for exploit I suggest to learn Perl, bash scripting, and learn Linux Shell code.
0

#12 User is offline   eGze 

  • Private
  • Icon
  • Group: Members
  • Posts: 3
  • Joined: 20-June 05

Posted 05 July 2005 - 12:11 AM

read Iczelion win32asm tuts first and then learn c
0

#13 User is offline   AgentOrange 

  • Staff Sergeant
  • Icon
  • Group: Members
  • Posts: 284
  • Joined: 25-February 04

Posted 08 July 2005 - 01:27 AM

C and C++ are very similar but they have fundamental differences. C++ has to do with references to memory locations which is much easier to learn than C(it also has the power to be OOP, but we won't go there...). C++ will teach you a lot of what you need to know for C. C is the grand daddy of modern languages, so once you learn one C like language its not like you have to reinvent the wheal each time.

C is very powerful and it will allow you to learn about memory addresses and pointers. This understanding of memory is essential if you wish to learn assembler. You don't want to jump right into it, get the hang of the family of languages with C++. Java is like training wheals, it will teach you nothing about memory, and thats its purpose. It will not help you learn asm, but you should learn java (and ignore C#).

At my school you started out with QuickBasic, then you moved on to C++. Then you took C and ASM at the same time. I went from not being able to program a single line of code to knowing asm and being able to handle memory on a very low level.

Its harder to learn a new concept in programming than a new language. Its harder to understand how C handles memory than the actual syntax. But once you understand how C handles memory then you understand buffer overflows much better and it opens the door to assembler.
0

#14 User is offline   AnIHiL 

  • Private
  • Icon
  • Group: Members
  • Posts: 2
  • Joined: 02-July 05

Posted 08 July 2005 - 01:54 AM

I think you should try to learn C or Pascal (and than C) it's the easiest way. -> Write small and simple programs like open/close CD-ROM. -> Use debbugers and disassemblers (learn some ASM). -> Read something about shellcode.
0

#15 User is offline   belgther 

  • Master Sergeant
  • Icon
  • Group: Specialist
  • Posts: 650
  • Joined: 06-October 04

Posted 08 July 2005 - 03:04 AM

ChRiiLLe, on Jul 3 2005, 10:22 AM, said:

So which one should i start with? What i want to do with those languages is to learn decompiling programs and change things in them (cracking) and write own patches and write own exploits.. I know i have to learn Assembly, but i think i need C or C++ also?


Anyway, you have to learn Assembly. You already know that. Any cracker/reverse engineer SHOULD know assembly, crackers a bit less, since they are looking for the simplest solution. An average cracker's assembly is usually not more than MOV, XOR, ADD, NOP, CALL, JMP, RET, PUSH, POP, SUB and other basic commands. If you want to recover much from the source code, you also have to learn what becomes out of your codes. By C, it's a bit difficult, because every compiler has a different way of creating code. You may think that it's stupid, or weird, but that's the truth. So trying some basic C commands can be useful. But studying MSVCRT40.DLL also brings you the C knowledge, because most standard "pure C" commands are saved there. These are written in the include files like stdio.h. It's been categorized. Other things are just some calculations, or loops, or windows apis. And at the point where C code is not enough, ASM code comes. You open an ASM block, and start coding ASM in C. To find out how they really work, write a simple program, then compile it, and debug it with olly what it does in ASM. Because when you will want to crack delphi apps, or VB apps, you will have to learn their way of compiling, too. Also if your main aim is cracking, then you must know other languages, at least their compiling style.
"The wisest one is the one who knows himself/herself." Quote of the life
belgther... aka... belgther
0

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users

  • Share



Our Sponsors:


SwiftLayer Affiliate Web Hosting