<I don't know if this is allowed in this forum or not therefore sorry if it isn't and say it and I'll delete this topic>

A friend of me told me he learnt assembly almost exclusively by reverse engeneering his own little c++ programs. This way he knew what his original programs did and saw by the output what would be the equivalent codes like.

What do you think of the idea?
Posted on 2003-12-23 20:15:20 by bRaNcO
bRaNcO,

I guess Some people can and have learnt asm this way but I don't see why anyone would want to inflict this kind of torture of themself when they're great tutorials available like the art of assembly language. :grin:

http://webster.cs.ucr.edu/AoA.html
Posted on 2003-12-23 20:27:33 by Odyssey
Branko,

In the past, many people came into assembler after messing around with cracking but it has always been mainstream programming and has its uses in high performance areas where a HLL is not fast enough.

It is in fact useful to disassemble your own code to see what a HLL is actually doing and you learn a lot by doing it but its more for writing better code yourself than any cracking technique.

There is vewry good reference material around for writing fast assembler, Intel manuals, Agner Fogs latest optimisation manual and of course a lot of the user code pasted in forums like this one helps as well.

Dosvidanya
http://www.asmcommunity.net/board/cryptmail.php?tauntspiders=in.your.face@nomail.for.you&id=2f46ed9f24413347f14439b64bdc03fd
Posted on 2003-12-23 20:40:26 by hutch--
set your compiler to generate asm.
Posted on 2003-12-24 00:16:17 by ENF
By the way, some compiler let you watch the lines and the asm code... also you need know what is the output of your compiler :), this will let you know the basic structures not needing open the debuher, but when you go for thinks like how the flags are affected and such things, where is the data and where is the stack, etc, you will need to move to a debuger and watch how is executed.

Nice day or night.
Posted on 2003-12-24 14:49:15 by rea

<I don't know if this is allowed in this forum or not therefore sorry if it isn't and say it and I'll delete this topic>

A friend of me told me he learnt assembly almost exclusively by reverse engeneering his own little c++ programs. This way he knew what his original programs did and saw by the output what would be the equivalent codes like.

What do you think of the idea?


this is how i learned asm too, by disassembleing my vb programs. it was much easer then reading any tuts in my opinion. manly cuz i knew vb at the time so i pretty much knew that the code was doing over time i learned how it did it.
Posted on 2003-12-24 16:43:43 by Qages
I never learned it that way instead I used a simpler processor (Zilog Z-80) and then moved onto x86, the transition was almost seamless, but some people have their own way of learning, if the way you specified works well for you, stick to it and all the power to you ! :alright:
Posted on 2003-12-24 17:28:05 by x86asm
Well,

For one entire year, i sat back, read and reread The 16-bit version of The Art of Assembly Language, tested and wrote dos progs, then eventually the next year moved on up to 32-bit and so forth. Mainly reading documentation and/or following tutorials I feel is the best way to learn something of this nature.

regards,
GuyonAsm.
Posted on 2003-12-24 21:05:23 by Guy on ASM
Thanks all by the answers but I have a one more question about it. Do exist out there any desassembler that will output the code to MASM? or they output to what?
Posted on 2003-12-28 11:24:17 by bRaNcO
You can try the disassembler dumppe located in the masm32\bin folder.
Posted on 2003-12-28 13:07:13 by Vortex
Thanks I'll try it out right now
Posted on 2003-12-28 13:27:18 by bRaNcO
hmm I'm using Negatory Assembly Studio 1.0, does it bring it with it? Doesn't seem to...which name does the deassembler exe has?
Posted on 2003-12-28 13:30:48 by bRaNcO
I have another question, any ideas why w32dasm doesn't decompile my hello world proggy? :rolleyes:
Posted on 2004-01-03 20:03:06 by bRaNcO
Because the program is compiled in nasm?
Posted on 2004-01-03 22:18:43 by roticv
Hm I didnt know that MSVC++ compiled its code in NASM :S
Anyways to what does w32dasm decompile? MASM?
Posted on 2004-01-03 22:21:49 by bRaNcO
I was just making an assumption. :grin: Actually, w32dasm has one bug as far as i know. If the section that contains the code does not have IMAGE_SCN_CNT_CODE set, it will not disassemble the section. I guess there is no section with IMAGE_SCN_CNT_CODE set, so therefore w32dasm did not disassemble properly.
Posted on 2004-01-03 22:35:15 by roticv
I didnt know that MSVC++ compiled its code in NASM :S


And that is true, the output is not in nasm style.

Is in masm, you should try other disasembler??? :)

If you whant to see the output, if i remember good, go to the: projects options->output options, I dont remember if is in code or where, and there you can find a list that say generated files or some like that, and you will find: asm, asm with C, opcodes with asm, etc... select one of them, and when you compile your hello world program (I think you are talking of one that you do in VC), go to the directory output (where the exe is), and search for a text file, with... I dont remember the extension, open it, and you will get (acord with your previous selection) asm with C commented ;)



-- -----------------------------------

By the way, what say Vortex: " disassembler dumppe located in the masm32\bin" that is the package called 'masm32' ;)


Have a nice day or night.
Posted on 2004-01-04 00:25:46 by rea
Thanks, did it with MSVC++
Posted on 2004-01-04 04:51:53 by bRaNcO