+ Reply to Thread
Results 1 to 18 of 18
  1. Senior Member YuckTheFankees's Avatar
    Join Date
    Apr 2011
    Location
    United States of America
    Posts
    1,209

    Certifications
    A few..
    #1

    Default How did you learn Assembly?

    Over the past week I've been reading a couple of malware books and you definitely need to learn and understand assembly. These are the resources I have found already.

    * Security Tube
    * VTC assembly video
    * Paul Carter's free assembly guide

    For those who know assembly, what material did you use to learn it?
    Reply With Quote Quote  

  2. SS -->
  3. Senior Member
    Join Date
    Feb 2012
    Posts
    2,426
    #2
    I learned assembly using books on 6502 and VAX11 assembly a long time ago before the Internet. Not the easiest way but it worked for me. One way I would recommend to start - plus it can be a lot of fun, is to learn Redcode assembly using a Corewars MARS simulator. Its a game where you write a program that battles another program. Your program is basically a virus trying to gain control of the memory space and kill the opposing program. See http://en.wikipedia.org/wike/core_war for more info.
    Reply With Quote Quote  

  4. Senior Member YuckTheFankees's Avatar
    Join Date
    Apr 2011
    Location
    United States of America
    Posts
    1,209

    Certifications
    A few..
    #3
    Do you need to know C or C++ that well to understand ASM?
    Reply With Quote Quote  

  5. Senior Member
    Join Date
    Feb 2012
    Posts
    2,426
    #4
    Quote Originally Posted by YuckTheFankees View Post
    Do you need to know C or C++ that well to understand ASM?
    Understanding C can help. But object-oriented languages like C++ and Java will have concepts which will not apply. Similarly - high-level functional languages like Lisp, Haskell, and F # will not be relevant.
    Reply With Quote Quote  

  6. Certification Invigilator Forum Admin JDMurray's Avatar
    Join Date
    Jul 2003
    Location
    Surf City USA
    Posts
    10,597
    Blog Entries
    50

    Certifications
    GSEC, EnCE, CISSP, SSCP, CEH (ANSI), CASP, CCNA, CCENT, CWSP, CWNA, CWTS, Security+, Server+, Network+, A+, DHTI+, PDI+, MSIT InfoSec
    #5
    There are many good old (1980's-90's) books on Intel assembly language programming. I've managed to collect a lot of them over the decades. I assume they are also available in places like Scrib. No Starch Press has very good books on assembly, disassembly, debugging, and reverse engineering.

    Stay with assembly projects that teach how to work with the computer's hardware, file system, and processes in memory, and not so much about writing apps with GUIs. It might be best to start learning assembly language by first learning OllyDbg.

    And have a look at: Art of Assembly Language Programming and HLA by Randall Hyde


    Quote Originally Posted by YuckTheFankees View Post
    Do you need to know C or C++ that well to understand ASM?
    It's the other way around. Knowing assembly will help you understand what C/C++ are doing under the hood.
    Last edited by JDMurray; 03-14-2012 at 10:53 PM.
    Moderator of the InfoSec, CWNP, IT Jobs, Virtualization, Java, and Microsoft Developers forums at www.techexams.net
    --
    Blog: www.techexams.net/blogs/jdmurray
    LinkedIn: www.linkedin.com/in/jamesdmurray
    Twitter: www.twitter.com/jdmurray
    Reply With Quote Quote  

  7. Senior Member
    Join Date
    Feb 2012
    Posts
    2,426
    #6
    Quote Originally Posted by JDMurray View Post
    Oh wow - great link. Thanks - there was a copy of 6502 Assembly. Brings back memories. But makes me feel old.
    Reply With Quote Quote  

  8. Senior Member YuckTheFankees's Avatar
    Join Date
    Apr 2011
    Location
    United States of America
    Posts
    1,209

    Certifications
    A few..
    #7
    I've looked at Art of Assembly Language Programming and HLA by Randall Hyde multiple times on amazon but a lot the reviews say HLA is different from x86 assembly language, so I'm a little caution about buying the book. More than a few people were saying what he teaches doesn't really apply to x86 or the commands might be different?

    I've had the Practical Malware Analysis book for about a week now, and it's the main reason why I want to learn assembly in more depth. They have a section about assembly but it's confusing.

    I wanted to buy the IDA Pro book but I thought I should learn assembly more in depth before purchasing it. But could the book help with my assembly studies?

    I will definitely download Ollydbg and start working with it.
    Reply With Quote Quote  

  9. Senior Member cknapp78's Avatar
    Join Date
    Mar 2012
    Location
    Maryland
    Posts
    195
    #8
    Ugh....Assembly programming. I am having a bad flashback to my Programming courses 17 years ago....getting constipated just thinking about it.
    Reply With Quote Quote  

  10. Senior Member YuckTheFankees's Avatar
    Join Date
    Apr 2011
    Location
    United States of America
    Posts
    1,209

    Certifications
    A few..
    #9
    Quote Originally Posted by cknapp78 View Post
    Ugh....Assembly programming. I am having a bad flashback to my Programming courses 17 years ago....getting constipated just thinking about it.
    lol Awesome cknapp78!
    Reply With Quote Quote  

  11. Certification Invigilator Forum Admin JDMurray's Avatar
    Join Date
    Jul 2003
    Location
    Surf City USA
    Posts
    10,597
    Blog Entries
    50

    Certifications
    GSEC, EnCE, CISSP, SSCP, CEH (ANSI), CASP, CCNA, CCENT, CWSP, CWNA, CWTS, Security+, Server+, Network+, A+, DHTI+, PDI+, MSIT InfoSec
    #10
    Quote Originally Posted by YuckTheFankees View Post
    HLA is different from x86 assembly language
    You will come across the phrase "macro assembler" which is an assembler that includes a library of pre-written assembly routines (i.e., macros) that saves you time from writing code and speeds up your development. The problem is that these macros are usually not portable between different vendor's assemblers. High Level Assembly (HLA) is one of these macro systems.

    Two macro assemblers are Microsoft Macro Assembler (MASM) and Netwide Assembler (NASM).
    Moderator of the InfoSec, CWNP, IT Jobs, Virtualization, Java, and Microsoft Developers forums at www.techexams.net
    --
    Blog: www.techexams.net/blogs/jdmurray
    LinkedIn: www.linkedin.com/in/jamesdmurray
    Twitter: www.twitter.com/jdmurray
    Reply With Quote Quote  

  12. Senior Member YuckTheFankees's Avatar
    Join Date
    Apr 2011
    Location
    United States of America
    Posts
    1,209

    Certifications
    A few..
    #11
    Quote Originally Posted by JDMurray View Post
    You will come across the phrase "macro assembler" which is an assembler that includes a library of pre-written assembly routines (i.e., macros) that saves you time from writing code and speeds up your development. The problem is that these macros are usually not portable between different vendor's assemblers. High Level Assembly (HLA) is one of these macro systems.

    Two macro assemblers are Microsoft Macro Assembler (MASM) and Netwide Assembler (NASM).
    What are the pros and cons to learning HLA first?
    Reply With Quote Quote  

  13. Certification Invigilator Forum Admin JDMurray's Avatar
    Join Date
    Jul 2003
    Location
    Surf City USA
    Posts
    10,597
    Blog Entries
    50

    Certifications
    GSEC, EnCE, CISSP, SSCP, CEH (ANSI), CASP, CCNA, CCENT, CWSP, CWNA, CWTS, Security+, Server+, Network+, A+, DHTI+, PDI+, MSIT InfoSec
    #12
    HLA was specifically designed to help people learn assembly easier, so that's probably the pro. Once you are comfortable with HLA, you can then move on to learning assembly without the macros. The only con I can think of is if you need to learn pure assembly immediately, or if you need to learn an assembly language for other than the Intel x86 processor.

    If I found the need to get back into Intel assy programming (after a 20-year absence), I would give HLA a tumble first.
    Moderator of the InfoSec, CWNP, IT Jobs, Virtualization, Java, and Microsoft Developers forums at www.techexams.net
    --
    Blog: www.techexams.net/blogs/jdmurray
    LinkedIn: www.linkedin.com/in/jamesdmurray
    Twitter: www.twitter.com/jdmurray
    Reply With Quote Quote  

  14. Senior Member YuckTheFankees's Avatar
    Join Date
    Apr 2011
    Location
    United States of America
    Posts
    1,209

    Certifications
    A few..
    #13
    What would be your suggestion if I want to learn pure assembly immediately?
    Reply With Quote Quote  

  15. Senior Member AlexNguyen's Avatar
    Join Date
    Jun 2011
    Location
    Montreal, Canada
    Posts
    300

    Certifications
    CISSP, CISA, CSSA, C|EH, C|HFI, GCFE, GPEN, GAWN, VCP5, MCTS, MCITP, ITIL v3 Foundation
    #14
    Quote Originally Posted by paul78 View Post
    I learned assembly using books on 6502 and VAX11 assembly a long time ago before the Internet. Not the easiest way but it worked for me.
    Been there too. Done that.
    Reply With Quote Quote  

  16. Certification Invigilator Forum Admin JDMurray's Avatar
    Join Date
    Jul 2003
    Location
    Surf City USA
    Posts
    10,597
    Blog Entries
    50

    Certifications
    GSEC, EnCE, CISSP, SSCP, CEH (ANSI), CASP, CCNA, CCENT, CWSP, CWNA, CWTS, Security+, Server+, Network+, A+, DHTI+, PDI+, MSIT InfoSec
    #15
    Quote Originally Posted by YuckTheFankees View Post
    What would be your suggestion if I want to learn pure assembly immediately?
    Then don't use HLA or macro assemblers.
    Moderator of the InfoSec, CWNP, IT Jobs, Virtualization, Java, and Microsoft Developers forums at www.techexams.net
    --
    Blog: www.techexams.net/blogs/jdmurray
    LinkedIn: www.linkedin.com/in/jamesdmurray
    Twitter: www.twitter.com/jdmurray
    Reply With Quote Quote  

  17. Senior Member YuckTheFankees's Avatar
    Join Date
    Apr 2011
    Location
    United States of America
    Posts
    1,209

    Certifications
    A few..
    #16
    Will do, thank you. I didn't realize how many assembly videos are on youtube.
    Reply With Quote Quote  

  18. Senior Member ChooseLife's Avatar
    Join Date
    Feb 2011
    Location
    runlevel 3
    Posts
    926

    Certifications
    BCSc Network Security, VCP, MCSA:Sec, CCNA:Sec, GIAC GSEC, Sec+, ITIL-f
    #17
    Quote Originally Posted by YuckTheFankees View Post
    How did you learn Assembly?
    I was 15, young and stupid

    Seriously though, learning assembly was a great experience, and it helped better understand so many other areas of computing... High-level programming languages, specifically C started making much more sense... Improved understanding of OS architecture and interaction with hardware, application security (buffer overflows, shellcodes..), et cetera et cetera...

    As for the materials, I used a combination of old books for solid theory and recent ones for coverage of modern CPU's and their features.. Of course, with the pace technologies advance those "recent books" are completely irrelevant nowadays, but the general approach may still work.
    Reply With Quote Quote  

  19. Senior Member YuckTheFankees's Avatar
    Join Date
    Apr 2011
    Location
    United States of America
    Posts
    1,209

    Certifications
    A few..
    #18
    After using my google a little bit more, I've found some good resources.

    The Art of Assembly Language Programming (one of the best sites I have found)

    Dave4Slash's Channel - YouTube He has about 14 ish video's on assembly language. He might be a little hard to understand at times..but the videos will still help newbies.

    *** If you search assembly language on youtube, you'll find a lot more helpful videos.

    PC Assembly Language He has a `90 page tutorial about assembly

    Online software tutorials, training CDs, Photoshop Tutorials, Dreamweaver Tutorials, Apple Tutorials from vtc.com search assembly
    Reply With Quote Quote  

+ Reply to Thread

Social Networking & Bookmarks