| View previous topic :: View next topic |
| Author |
Message |
Stonehenge Master Cheater
Reputation: 0
Joined: 03 Oct 2008 Posts: 280 Location: Unknown Jumphole
|
Posted: Tue Oct 28, 2008 3:43 pm Post subject: Where to learn Assembly |
|
|
Does anyone know of any good places to start learning Assembly?
And how do I know what version is good for my/most processors? Windows XP, that is.
_________________
|
|
| Back to top |
|
 |
nog_lorp Grandmaster Cheater
Reputation: 0
Joined: 26 Feb 2006 Posts: 743
|
Posted: Tue Oct 28, 2008 4:08 pm Post subject: |
|
|
MASM, NASM, GCC (using GAS) are the mainly used assemblers as far as I know.
As for how to learn it, I think I'd recommend getting a book. Online resources are all either aimed towards being a reference to someone who is already experienced or are aimed towards cracking, which means knowing how to reverse engineer and understand certain opcodes but not actually program.
_________________
Mutilated lips give a kiss on the wrist of the worm-like tips of tentacles expanding in my mind
I'm fine accepting only fresh brine you can get another drop of this yeah you wish |
|
| Back to top |
|
 |
pkedpker Master Cheater
Reputation: 1
Joined: 11 Oct 2006 Posts: 412
|
Posted: Thu Oct 30, 2008 6:36 pm Post subject: |
|
|
best way to learn something as complicated as assembly is to watch videos of assembly used to crack programs.. I mean if u want to write assembly programs then get what nog_lorp said but if u want to use assembly for hackings then watching the videos is good enough..
http://www.google.com/search?q=lena151+torrent&btnG=Search
download any of those torrent links about lena151's tutorials
cracking real programs
http://www.mininova.org/tor/1843151
_________________
|
|
| Back to top |
|
 |
BirdsEye Advanced Cheater
Reputation: 0
Joined: 05 Apr 2008 Posts: 94
|
Posted: Thu Oct 30, 2008 7:05 pm Post subject: |
|
|
| I'd prefer FASM32. It can utilize Win32 API and if you learn it well enough, it would be a more efficient and faster alternative to C++.(There is a real big noticable difference in the size of executables between FASM and IDEs.)
|
|
| Back to top |
|
 |
Slugsnack Grandmaster Cheater Supreme
Reputation: 71
Joined: 24 Jan 2007 Posts: 1857
|
Posted: Thu Oct 30, 2008 7:14 pm Post subject: |
|
|
| iczelion's tutorials + art of assembly. probably gonna get flamed by some idiots for saying this, but i'd advise masm32. i think it's safe to say it's got the most documentation + active forums out of all the assemblers.
|
|
| Back to top |
|
 |
nog_lorp Grandmaster Cheater
Reputation: 0
Joined: 26 Feb 2006 Posts: 743
|
Posted: Thu Oct 30, 2008 9:54 pm Post subject: |
|
|
I think NASM is probably better because it is still being developed, and is widely used outside of Windows, but it uses ATT syntax so MASM is probably better for a Windows user.
_________________
Mutilated lips give a kiss on the wrist of the worm-like tips of tentacles expanding in my mind
I'm fine accepting only fresh brine you can get another drop of this yeah you wish |
|
| Back to top |
|
 |
hcavolsdsadgadsg I'm a spammer
Reputation: 26
Joined: 11 Jun 2007 Posts: 5801
|
Posted: Thu Oct 30, 2008 10:19 pm Post subject: |
|
|
| BirdsEye wrote: | | I'd prefer FASM32. It can utilize Win32 API and if you learn it well enough, it would be a more efficient and faster alternative to C++.(There is a real big noticable difference in the size of executables between FASM and IDEs.) |
If you don't use the CRT, it's pretty easy to shit out exe sizes that rival assemblers.
|
|
| Back to top |
|
 |
Slugsnack Grandmaster Cheater Supreme
Reputation: 71
Joined: 24 Jan 2007 Posts: 1857
|
Posted: Fri Oct 31, 2008 4:16 am Post subject: |
|
|
| yeah that's true, i forgot to mention masm32 can pretty much only be used on windows. mind you, once you learn the 'syntax'/opcodes it's not TOO hard to switch assemblers.
|
|
| Back to top |
|
 |
BirdsEye Advanced Cheater
Reputation: 0
Joined: 05 Apr 2008 Posts: 94
|
Posted: Fri Oct 31, 2008 4:02 pm Post subject: |
|
|
| slovach wrote: | | BirdsEye wrote: | | I'd prefer FASM32. It can utilize Win32 API and if you learn it well enough, it would be a more efficient and faster alternative to C++.(There is a real big noticable difference in the size of executables between FASM and IDEs.) |
If you don't use the CRT, it's pretty easy to shit out exe sizes that rival assemblers. |
What is CRT? I hear that term alot.
|
|
| Back to top |
|
 |
sponge I'm a spammer
Reputation: 1
Joined: 07 Nov 2006 Posts: 6009
|
Posted: Fri Oct 31, 2008 5:55 pm Post subject: |
|
|
C runtime library
_________________
|
|
| Back to top |
|
 |
BirdsEye Advanced Cheater
Reputation: 0
Joined: 05 Apr 2008 Posts: 94
|
Posted: Sat Nov 01, 2008 1:47 pm Post subject: |
|
|
| sponge wrote: | | C runtime library |
Like what? And how do you not 'link' to CRT and why does it bloat file size?
|
|
| Back to top |
|
 |
pkedpker Master Cheater
Reputation: 1
Joined: 11 Oct 2006 Posts: 412
|
Posted: Sat Nov 01, 2008 9:02 pm Post subject: |
|
|
yah i guess it means C runtime library.
I always thought it ment Common Runtime Library..
but whatever lol yes if you change the linker's arguments to change entry point from CrtMainStartup to main aka main(). Your exe file will drop by 13 KB.. and will load faster as well..
Now you see it's CRTMainStartup
the CRT means (C RunTime)
BUT .. it was calling CRTMainStartup for a reason.. and thats for the use of the keyword static if you never use the keyword static in your programs you should change it to main() it will be much better otherwise if you use static don't change it.. it might cause problems
in microsoft VC++ you could use this simple line to change entrypoint
| Code: |
#pragma comment (linker, "/ENTRY:main")
|
but it doesn't have to be main it could be anything you want.. it could be /ENTRY:hack
and your program will startup from
int hack() {
blah blah
return 0;
}
_________________
|
|
| Back to top |
|
 |
hcavolsdsadgadsg I'm a spammer
Reputation: 26
Joined: 11 Jun 2007 Posts: 5801
|
Posted: Sat Nov 01, 2008 11:53 pm Post subject: |
|
|
The easiest way is to make your own entry point, the linker is going to expect either mainCRTStartup or WinMainCRTStartup, so just use that.
Then you can carefully merge your sections if you're feeling really spunky.
One of my projects ends up as a meager 1.5kb as a bare window.
|
|
| Back to top |
|
 |
Slugsnack Grandmaster Cheater Supreme
Reputation: 71
Joined: 24 Jan 2007 Posts: 1857
|
Posted: Mon Nov 03, 2008 12:41 pm Post subject: |
|
|
| or you could cheat and have it dynamically link it :p
|
|
| Back to top |
|
 |
nog_lorp Grandmaster Cheater
Reputation: 0
Joined: 26 Feb 2006 Posts: 743
|
Posted: Mon Nov 03, 2008 1:03 pm Post subject: |
|
|
pked, you are thinking of the CLR - Microsoft's Common Language Runtime which implements the .NET VM.
_________________
Mutilated lips give a kiss on the wrist of the worm-like tips of tentacles expanding in my mind
I'm fine accepting only fresh brine you can get another drop of this yeah you wish |
|
| Back to top |
|
 |
|