We may earn an affiliate commission when you visit our partners.
Josh Stroschein

Reverse engineering binary code is a core skill for software security engineers, malware analysts and penetration testers. This course will teach you techniques for reversing binary code to identify program characteristics and behavior.

Read more

Reverse engineering binary code is a core skill for software security engineers, malware analysts and penetration testers. This course will teach you techniques for reversing binary code to identify program characteristics and behavior.

The ability to reverse engineer binary code is an essential skill for anyone responsible for software security or performing malware analysis, and it even plays a significant role in performing penetration tests and incident response. In this course, Getting Started with Reverse Engineering, you will gain the skills necessary to reverse engineer native code and determine program behavior. First, you will discover the basic elements of modern CPU architecture and the essentials of assembly language. Next, you will learn about native code, the portable executable file format and techniques to enrich your reverse engineering efforts. Finally, you will explore proficiency in the tools and techniques associated with performing static and dynamic reverse engineering to include IDA Pro and WinDbg. Throughout this course you will be able to follow along through comprehensive demonstrations and apply yourself through hands-on labs. By the end of this course, you will have the knowledge and skills necessary to reverse engineer native code binaries.

Enroll now

What's inside

Syllabus

Course Overview
Introduction
Assembly Basics
Working with Native Code
Read more
Using Debuggers
Practical Assembly
Reverse Engineering
Conclusion

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches techniques for reversing binary code to identify program characteristics and behavior
Suitable for those responsible for software security or performing malware analysis
Taught by Josh Stroschein, who is recognized for his work in reverse engineering
Develops knowledge and skills necessary to reverse engineer native code binaries
Uses a hands-on approach with comprehensive demonstrations and labs
Requires students to come in with some basic programming knowledge

Save this course

Save Getting Started with Reverse Engineering to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Getting Started with Reverse Engineering with these activities:
Review basic computer architecture
Build a foundational understanding of computer architecture to enhance comprehension of the course material.
Browse courses on Computer Architecture
Show steps
  • Study diagrams and explanations of basic computer architecture components, including the CPU, memory, and buses.
  • Review concepts of instruction sets, addressing modes, and memory management.
  • Explore online resources and tutorials to reinforce your understanding.
Read 'Assembly Language Step-by-Step' by Jeff Duntemann
Gain a comprehensive understanding of assembly language, a prerequisite for comprehending binary code.
Show steps
  • Read chapters 1-3 to grasp the fundamentals of assembly language.
  • Work through the exercises and examples provided in the book.
  • Review the concepts of data representation, addressing modes, and instruction formats.
Complete the 'Reverse Engineering for Beginners' tutorial series
Develop practical skills in reverse engineering by following a structured tutorial series.
Browse courses on Reverse Engineering
Show steps
  • Locate and access the 'Reverse Engineering for Beginners' tutorial series.
  • Follow the tutorials in sequence, completing the hands-on exercises.
  • Experiment with different tools and techniques for binary code analysis.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Analyze binary code using IDA Pro
Sharpen your binary code analysis skills by practicing with IDA Pro, a widely used tool in the industry.
Browse courses on IDA Pro
Show steps
  • Install IDA Pro and familiarize yourself with its interface.
  • Import and analyze sample binary files, identifying functions, data structures, and control flow.
  • Utilize IDA Pro's debugging capabilities to step through code and analyze program behavior.
Write a blog post summarizing key concepts of reverse engineering
Solidify your understanding by explaining reverse engineering concepts to an audience.
Show steps
  • Identify the core concepts of reverse engineering that you want to cover.
  • Research and gather information to support your explanations.
  • Write a draft of your blog post, ensuring clarity and conciseness.
  • Proofread and edit your blog post before publishing it.
Attend a local meetup or conference on reverse engineering
Expand your network and learn from industry professionals in the field of reverse engineering.
Browse courses on Reverse Engineering
Show steps
  • Identify and register for a relevant meetup or conference.
  • Attend the event and actively participate in discussions.
  • Connect with speakers and attendees to exchange knowledge and insights.
Contribute to open-source reverse engineering projects
Gain practical experience and contribute to the reverse engineering community by working on open-source projects.
Browse courses on Open Source
Show steps
  • Identify open-source reverse engineering projects that align with your interests.
  • Review the project documentation and contribute to issues or feature requests.
  • Collaborate with other contributors and maintainers to enhance the projects.

Career center

Learners who complete Getting Started with Reverse Engineering will develop knowledge and skills that may be useful to these careers:
Software Security Engineer
As a Software Security Engineer, you will need to master reversing binary code to identify program characteristics and behavior. By learning the fundamentals of assembly language and native code, you will be able to proactively protect software systems against internal and external threats.
Malware Analyst
As a Malware Analyst, you will be able to use the skills from this course to detect, analyze, and respond to malware threats. You will be responsible for identifying and analyzing malicious code, and developing countermeasures to protect systems from malware attacks.
Penetration Tester
As a Penetration Tester, you will be able to use this course to gain the skills necessary to identify and exploit vulnerabilities in software systems. You will be responsible for testing the security of systems and networks, and reporting vulnerabilities to the appropriate authorities.
Computer Forensics Analyst
As a Computer Forensics Analyst, you will be able to use your skills in reverse engineering binary code to investigate computer crimes. You will be responsible for recovering and analyzing digital evidence, and providing expert testimony in court.
Incident Responder
As an Incident Responder, you will use the skills from this course to handle security incidents and breaches. You will be responsible for assessing the situation, containing the damage, and recovering the system to a secure state.
Cybersecurity Analyst
As a Cybersecurity Analyst, you may use the skills from this course to analyze and respond to cybersecurity threats. You will be responsible for monitoring security systems, detecting threats, and taking action to mitigate risks.
Security Consultant
As a Security Consultant, you may use the skills from this course to advise clients on how to secure their systems and networks. You will be responsible for assessing security risks, developing security plans, and implementing security measures.
Software Developer
As a Software Developer, you may use the skills from this course to develop secure software applications. You will be responsible for designing, developing, and testing software that is free from vulnerabilities.
Systems Administrator
As a Systems Administrator, you may use the skills from this course to manage and maintain computer systems and networks. You will be responsible for ensuring that systems are secure and running smoothly.
Network Engineer
As a Network Engineer, you may use the skills from this course to design, implement, and maintain computer networks. You will be responsible for ensuring that networks are secure and reliable.
Database Administrator
As a Database Administrator, you may use the skills from this course to manage and maintain databases. You will be responsible for ensuring that databases are secure and accessible.
Information Security Manager
As an Information Security Manager, you may use the skills from this course to oversee and manage the security of an organization's information systems. You will be responsible for developing and implementing security policies, and ensuring that the organization is compliant with security regulations.
Chief Information Security Officer
As a Chief Information Security Officer (CISO), you may use the skills from this course to lead and manage the security of an organization's information systems. You will be responsible for developing and implementing security policies, and ensuring that the organization is compliant with security regulations.
Security Architect
As a Security Architect, you may use the skills from this course to design and implement security solutions for an organization. You will be responsible for developing and implementing security policies, and ensuring that the organization is compliant with security regulations.
IT Auditor
As an IT Auditor, you may use the skills from this course to assess and report on the security of an organization's information systems. You will be responsible for identifying and mitigating security risks, and ensuring that the organization is compliant with security regulations.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Getting Started with Reverse Engineering.
Provides a comprehensive overview of reverse engineering, with a focus on the practical aspects of the field.
Classic introduction to assembly language, a prerequisite for understanding reverse engineering.
Provides a good overview of systems programming in Unix/Linux, which prerequisite for reverse engineering.
Is an introduction to using IDA Pro, a popular tool for reverse engineering.
Provides a good overview of ARM assembly language, which popular target for reverse engineering.
Save
Provides a good overview of MIPS assembly language, which is another popular target for reverse engineering.
Good introduction to assembly language, which will be helpful for understanding many of the code samples used in this course.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Getting Started with Reverse Engineering.
Analyzing Malware for .NET and Java Binaries
Most relevant
IDA Pro Concepts and Basic Functionality
Most relevant
Specialized Attacks: Hardware Product Testing
Most relevant
Assembly Language Programming for Reverse Engineering
Most relevant
x64 Assembly Language and Reverse Engineering Practicals
Most relevant
Defeating Anti-reverse Engineering and Anti-debugging...
Malware Analysis and Introduction to Assembly Language
Ghidra Concepts and Basic Functionality
Malware Analysis and Assembly Language Introduction
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser