What would be the easiest thing to imagine glosol, is to think of programming as one whole idea. Don't think of separate languages or compilers and such. I am going to put this in a very easy to understand base. Computers are machines, which of course means that they work with machine code. Well, machine language is almost impossible to work with because it is unorganized and such so they organized the machine code into assembly(asm). Assembly basically categorizes the code and organizes it so programmers can easily understand the code better. There are low level languages and High Level languages. This basically means that low level languages are broken down more than higher level languages. Assembly is a low level language. Assembly was still very hard to work with so a higher level language was made to be more easily understood. C# was then created. Then C++ was created as a better and more modified language compared to C#(for which i'm not going to talk about). The most important part is the compiler. For instance, when you program in C++, you type the C++ language code into a C++ compiler. What the compiler basically does is convert the C++ language you typed in, into Assembly language, and from there is converted into machine language for the computer to understand. Thats where Low and High level languages are explained. Sorry if this is confusing, but I just am trying to sum this up as basic as possible.
Edit: Damn, I typed a lot! D:
Actually C was created then C++ and finally C#. But the basics point your making is correct. Really all programming languages are the same. The more fluent you become in programming the more you will realize that one language depends upon another language.
PS: I'm planning to update this soon, I'm planning to add more of an approach to learning asm via reverse engineering since that seems most relevant to the idea of gamehacking.
Originally Posted by why06
Actually C was created then C++ and finally C#. But the basics point your making is correct. Really all programming languages are the same. The more fluent you become in programming the more you will realize that one language depends upon another language.
PS: I'm planning to update this soon, I'm planning to add more of an approach to learning asm via reverse engineering since that seems most relevant to the idea of gamehacking.
Yea, your right. I'm a bit rusty with my C and C#.
asm is a peice of piss, there is no point learning to much as its completely useless
other than for debugging and cracking programs, asm compilers pfft whos actually going to code in asm
Originally Posted by English
asm is a peice of piss, there is no point learning to much as its completely useless
other than for debugging and cracking programs, asm compilers pfft whos actually going to code in asm
Well its a good thing we are trying too do both here. Learning asm is the only way to reverse engineer programs that you don't have the source to, which to me seems pretty essentially in the hacking business, Sometimes I even see source in C++ that includes asm, its the most powerful language that can be compiled on the x86 processor in terms of what it can do.
Originally Posted by why06
Actually C was created then C++ and finally C#. But the basics point your making is correct. Really all programming languages are the same. The more fluent you become in programming the more you will realize that one language depends upon another language.
PS: I'm planning to update this soon, I'm planning to add more of an approach to learning asm via reverse engineering since that seems most relevant to the idea of gamehacking.
And also C was most definitely not the first programming language. I think the Honour Goes to Pascal/Fortran , or something along those lines? Well unless you are counting the Analytical engine.
Quick fact, the first coder was Ada Lovelace. She programmed for the analytical engine by Charles Babbage
Originally Posted by zeco
And also C was most definitely not the first programming language. I think the Honour Goes to Pascal/Fortran , or something along those lines? Well unless you are counting the Analytical engine.
Quick fact, the first coder was Ada Lovelace. She programmed for the analytical engine by Charles Babbage
Yes, I didn't mention Basic, Pascal, and all those other failure languages(joking >.>). I didn't feel like writing an essay on the history of programming which is irrelevant to the topic. I am just giving a basic explanation on how programming works.
I was going to say roughly the same thing, but you beat me to it.
Anyway now I ran across the book the art of asm language programming in my school's library, so I guess I'm kinda going to learn asm via HLA. it shouldn't be to hard to convert into pure asm that is seen in debuggers.
Well I found some new sites and so decided to update this post. I also focused the topic so that there is only material about ASM. That means all information concerning Reverse Engineering has been deleted. I might create another topic on Reverse Engineering. Finally I did a little editing and cleaned up my spelling, punctuation, and other grammar mistakes.
That's all I could manage for this update, but I am already planning the next one and have a few ideas buzzing around, but I'll give it some more thought before I do anything.
////////////////////////////ONLY COPY TEXT IN CODE BLOCKS////////////////////////////////////
Code:
Update: 09/30/09 11:00pm EST
Learn Assembly Code
I have noticed this forum has kind of been dying off, but it's a crucial part of hacking (decompiling programs in assembly language). So there are materials posted here for learning assembly. Since this thread is and should stay active simply contact whoever is currently running the thread to add something to it or point out errors. I took out the Reversing section because I felt it was really a seperate ordeal, and there could really be an entire thread/guide just for Reverse Engineering.
Tools/Guides/Tutorials:Compilers:
take your pick...
FASM[Download]Flat Assembler. This is a Compiler which come with a semi-IDE I think it is better then MASM32 because you don't have to compiler at command line so it is better for people used to programming in an IDE.
MASM [Download]
Microsoft Macro Assembler. I believe this is the most popular one.
WinAsm[Installation Insstructions]WinAsm Studio IDE. An IDE for the MASM and FASM compilers mentioned earlier.
Mentioned by: B1ackAnge1
HLAHigh Level Assembler. Not as popular as MASM, but feels more like a HLL and is the compiler used to teach ASM in "The Art of Assembly Language" by: Randy Hyde
Online Tuts, Books, & Guides:
This is where you stop loading and start learning...
ASM: The Book
This is a huge online book. It contains absolutely everything you need to know about Win32Asm.
Table of ASM Instructions[PDF]
This is an Extremely Valuable BIG list of all the x86 asm instructions.
ASM GameDev Tut/Walkthough
This is a six part guide showing how to create a game in ASM. It also introduces some of the basics of ASM. Recommended for people who like to learn through Trial & Error.
Assembly Language Reference
A huge reference for tons of ASM intructions compiled by Dr. ME (not recommended to learn by, but just to refer to)
Source Code:
It's nice to have something to look at...
ASM Source Code
This is a huge collection of source codes written in Win32 Asm language.
Books:Because you shouldn't have to learn everything onlineBooks on Assembly
Learn to speak computer...
The Art of ASM 1st ed. In the meantime there is an entire online edition of The Art of Assembly Programming. I have an ereader so I can download the whole pdf and read it as a book :)
The Art of ASM 2nd ed. Get ready! the Art of Assembly Programming 2nd edition is coming out this December. I suggest everyone to get it. I know I am! :D
Downloads:Get them right here on MPGHAoA.rar[1][2][3][4][5][6][7][8]
This is the entire AoA.pdf that I took the liberty of uploading unto MPGH. The advantage to downloading it here is that I took the time to organize all the .pdf's where they will come out of order if you download them on the author's site.
This list will be updated often. Since I learning ASM as I update this the information listed should be pretty relevant and up to date. Just ask and I will add any new links to this posts. However I also feel this Guide should go on even when I am no longer active on these forums or am dead xL ... So if anyone feels up to keeping the list updated long after I'm gone by all means do it. This a community project and five or so years from now these links may be incorrect.
Current Thread Manager:why06[Send me a PM]Post anything you would like to add in this thread and I will handle it. Or send me a pm.
Alot of info Why. I am always still reading. Keep it up...
Well Dave sort of went and fked the thing up, but thanks. Finally got it stickied, but the first page is all screwed. He wasn't supposed to copy the stuff above it D:
Oh, gratz its a sticky. Your life seems to fly by every time I take a little visit.
Question, which one of those tutorials do you personally recommend?
I'm reading the one on ASM: The Book.
Thanks. :P
Originally Posted by crushed
Question, which one of those tutorials do you personally recommend?
I'm reading the one on ASM: The Book.
Thanks. :P
I would recommend AOA. It leverages you knowledge of C++, Java, or any other HLL(high level language) to help you learn ASM. The only problem would be if you haven't yet learned a langauge yet. In which case I encourage you to learn C++ before you start on ASM. If you know another langauge other like C such or Java that's fine too.
Originally Posted by why06jz
I would recommend AOA. It leverages you knowledge of C++, Java, or any other HLL(high level language) to help you learn ASM. The only problem would be if you haven't yet learned a langauge yet. In which case I encourage you to learn C++ before you start on ASM. If you know another langauge other like C such or Java that's fine too.
I have not started on anything yet. :P
I was planning to learn in the order of ASM, C, then C++. I thought ASM would help in learning C++ but I guess it's the other way around? So I'm guessing you recommend C++ before ASM?