View previous topic :: View next topic |
Author |
Message |
lolAnonymous Expert Cheater Reputation: 1
Joined: 19 Jul 2015 Posts: 154
|
Posted: Thu Jul 20, 2017 2:41 pm Post subject: Learning Assembly |
|
|
Hey guys I am learning assembly language because I am interested in hacking I think... well the question is "Am I really learning assembly language?" because the instructor show me that
use .model first then .stack .data etc... and ; for comment... but the assembly I saw in cheat engine is totally different... in CE I used // for comment and no .model , .stack etc...
What am I really learning?
Thanks
|
|
Back to top |
|
|
FreeER Grandmaster Cheater Supreme Reputation: 53
Joined: 09 Aug 2013 Posts: 1091
|
Posted: Fri Jul 21, 2017 9:33 am Post subject: |
|
|
.model, .stack, .data etc. are macros (commands to the assembler itself basically) and labels for the different sections where you store things when creating an entire program in an assembler while CE's assembly is not meant to be assembled as a program but to be _injected_ into an already running program so it doesn't need all the setup that's necessary when creating a full program.
The mov, lea, sub, add, dec, instructions, how functions are called, register names and sizes, etc. would all apply however (though CE uses Intel syntax (based on the NASM assembler I believe) whereas some assemblers, especially unix/linux-based, would use AT&T syntax).
|
|
Back to top |
|
|
STN I post too much Reputation: 42
Joined: 09 Nov 2005 Posts: 2672
|
Posted: Fri Jul 21, 2017 10:34 am Post subject: |
|
|
Yes that's assembly.
You need to learn to use an assembler to make your program. Which one have you chosen? (masm,tasm,nassm etc)
_________________
|
|
Back to top |
|
|
lolAnonymous Expert Cheater Reputation: 1
Joined: 19 Jul 2015 Posts: 154
|
Posted: Fri Jul 21, 2017 10:48 am Post subject: |
|
|
Thanks for the answers FreeER and STN...
STN I don't know much about assembler.. I have just started... btw I use Masm...I know this because I write masm in command box of DOSBox...
|
|
Back to top |
|
|
atom0s Moderator Reputation: 198
Joined: 25 Jan 2006 Posts: 8517 Location: 127.0.0.1
|
Posted: Fri Jul 21, 2017 8:58 pm Post subject: |
|
|
Things are going to be a little different because of a few factors. Cheat Engine is not meant to be a full-on ASM compiler and program creation system. (Can you do it? Sure, but it's not worth the effort in non-standard IDE etc.) Cheat Engine takes what you write in its auto assembler and translates it to byte code to be injected into a target process. Because of that, it uses its own interpreter and assembler engine to convert what you write to the proper bytes. CE also defines custom function calls/macros and other features unique to itself as a means to be more helpful towards game hacking and such. (Things like alloc / dealloc, registersymbol / unregistersymbol, createthread, etc.) CE's auto assembler also has custom tags to mix internal features together such as using Lua and ASM together via the {$LUA} and {$ASM} tags.
The main definition stuff you write when making a program in a traditional ASM app is going to be different because you are making an actual application rather than chunks of modifications to be written to another program.
It's still good to learn what you are doing to get a full understanding of MASM, as you said you are using. CE's auto assembler is very similar to MASM's syntax for nearly everything with the exception for the custom stuff CE has added to its own interpreter.
_________________
- Retired. |
|
Back to top |
|
|
lolAnonymous Expert Cheater Reputation: 1
Joined: 19 Jul 2015 Posts: 154
|
Posted: Sat Jul 22, 2017 9:20 am Post subject: |
|
|
Thanks atom0s for your reply...
This reply solved my confusions about the CE Auto Assembler... I know I am not wasting my time... CE auto assembler's important part is modifying the original code which is Assembly... And I think I saw someone's post in which he mentioned the "Lenas Reversing" which is also a reason for learning Assembly...
Conclusion : Assembly is worth learning for me.
and I also have a question... Where we use Assembly ? I mean where do we use it to create real applications?... like Cheat Engine,Download managers, etc...
Thanks again for your reply.
|
|
Back to top |
|
|
FreeER Grandmaster Cheater Supreme Reputation: 53
Joined: 09 Aug 2013 Posts: 1091
|
Posted: Sat Jul 22, 2017 10:22 am Post subject: |
|
|
lolAnonymous wrote: | Where we use Assembly ? I mean where do we use it to create real applications? | In an assembler (nasm,masm, etc.), some compilers also allow inline assembly but when they don't you should be able to find the settings for linking your program and add your assembled object file into the mix there (checkout What's a Creel? on youtube).
Generally, most people do not use assembly at all anymore, of the ones that do most are probably people using it for reverse engineering or shellcode (hacking) reasons, followed by people who use it for performance reasons and those who use a tiny bit of the knowledge (though not necessarily writing code) for debugging their programs, and then there's us hacking on games, and then there's the relatively few people who still choose to use assembly to create programs even with the higher level languages like C/C++ with optimizing compilers that can usually write code of a comparable speed when the programmer has some idea of what they're doing. Though that does ignore any other kinds of assembly that's more likely to be used on mobile devices, micro-controllers, etc.
|
|
Back to top |
|
|
lolAnonymous Expert Cheater Reputation: 1
Joined: 19 Jul 2015 Posts: 154
|
Posted: Sat Jul 22, 2017 10:50 am Post subject: |
|
|
Thanks for the answer FreeER...
Now I know why we use assembly...
well if some have any tutorial on advance Assembly programming, post it here...
Thanks
|
|
Back to top |
|
|
atom0s Moderator Reputation: 198
Joined: 25 Jan 2006 Posts: 8517 Location: 127.0.0.1
|
Posted: Sun Jul 23, 2017 2:05 pm Post subject: |
|
|
Coding in pure assembly is pretty much not a thing anymore due to how advanced higher level languages and their compilers/linkers have become to create very optimized code. However, in some cases, some specific libraries still use a mix of a set coding language plus pure ASM to get the best result in speed/performance out of certain functions. Such as C++, many of its included language libraries use a mix of pure C, C++, and ASM to generate well-optimized code.
The last major thing I can think of that was coded in pure assembly was Roller Coaster Tycoon. (Yes, the entire first version of the game was coded in pure asm.)
As for tutorials, Iczelion's tutorials are very well known and respected for various aspects of coding in ASM:
https://win32assembly.programminghorizon.com/tutorials.html
_________________
- Retired. |
|
Back to top |
|
|
lolAnonymous Expert Cheater Reputation: 1
Joined: 19 Jul 2015 Posts: 154
|
Posted: Mon Jul 24, 2017 1:47 am Post subject: |
|
|
Thanks for the info and link atom0s...
|
|
Back to top |
|
|
Dr.Disrespect Grandmaster Cheater Reputation: 3
Joined: 17 Feb 2016 Posts: 526
|
Posted: Mon Jul 24, 2017 12:43 pm Post subject: |
|
|
Thanks for the info atom0s, especially the tutorial.
_________________
**************
A simple example is better then ten links. |
|
Back to top |
|
|
|