We may earn an affiliate commission when you visit our partners.
Paul Chin, PhD

If you are completely new to Cutter and want to get up and running fast then this course is for you. In this course, we will cover how to use Cutter for Windows and Linux. Cutter is an an advanced, GUI-based, free and open-source reverse-engineering platform designed to take the pain out of radare2. It's backend is running Rizin, a fork of the radare2 engine. Cutter is created by reverse engineers for reverse engineers. Cutter releases are fully integrated with native Ghidra decompiler.  Not only can Cutter disassemble a binary file, but it can also decompile it to C language. It also has a linear disassembly view, fully featured graph view as well as mini-graph for fast navigation. Cutter also features the ability to reverse debug which other debugger lacks. This feature allows you to not only step forwards, but you can also step backwards.   Cutter also has hexdumps and stack view which allows you to trace stack, register and inspect memory on the fly.  In addition to that, you can also patch the binary, by reversing jumps, modifying instructions and bytes. This course will teach you all of the above and more.

Read more

If you are completely new to Cutter and want to get up and running fast then this course is for you. In this course, we will cover how to use Cutter for Windows and Linux. Cutter is an an advanced, GUI-based, free and open-source reverse-engineering platform designed to take the pain out of radare2. It's backend is running Rizin, a fork of the radare2 engine. Cutter is created by reverse engineers for reverse engineers. Cutter releases are fully integrated with native Ghidra decompiler.  Not only can Cutter disassemble a binary file, but it can also decompile it to C language. It also has a linear disassembly view, fully featured graph view as well as mini-graph for fast navigation. Cutter also features the ability to reverse debug which other debugger lacks. This feature allows you to not only step forwards, but you can also step backwards.   Cutter also has hexdumps and stack view which allows you to trace stack, register and inspect memory on the fly.  In addition to that, you can also patch the binary, by reversing jumps, modifying instructions and bytes. This course will teach you all of the above and more.

Features of this course:

  1. Designed with beginners in mind.

  2. Simple windows and Linux Crackme's designed to learn reverse engineering legally

  3. Practical and hands-on

  4. Using free tools only

Suitable for:

  • Reverse Engineering and Malware Analysis Students

  • Anyone interested to learn to use Cutter for Reverse Engineering

  • Security researchers

Prerequisite:

  • Windows PC

  • Basic Assembly and C/C++ language would be helpful but not mandatory

  • Familiarity with basic Linux commands would be useful but not mandatory

  • Everything you need to know is covered in the course

Enroll now and I will see you inside.

Enroll now

What's inside

Learning objectives

  • Reverse engineering
  • Assembly language
  • Decompiling binary to c code
  • Register and memory analysis
  • Disassembling binary to assembly code
  • Reversing jumps
  • Using nops to disable instructions
  • Windows api
  • C/c++ functions
  • Static analysis
  • Dynamic debugging analysis
  • Setting breakpoints and stepping through code
  • Strings search
  • Graphical view analysis
  • Defining functions from assembly code
  • Solving crackmes
  • Reverse debugging (stepping backwards)
  • Stepping over and analyzing the stack, register and memory hexdumps
  • Patching and replacing jumps with nops
  • Patching using xor eax, eax
  • Gui-crackme: string search method, defining functions and windows api
  • Phishing for passwords and serial keys
  • Renaming variables for static analysis
  • Using the rizin console and the rax2 command
  • Linux crackme2: using the debuggee console
  • Stepping into function calls
  • And more...
  • Show more
  • Show less

Syllabus

Introduction
Downloading Cutter, installing and testing it

Downloading Cutter, installing and testing it

Introduction to the Cutter User Interface and Downloading Crackme's
Read more

Downloading Crackme's and some preliminary tips

Exploring Cutter's User Interface

Basic Static Analysis

Basic Static Analysis

Basic Dynamic Analysis and Stepping Over

Stepping Over and Analyzing the Stack and Hexdumps

Patching binaries: reversing jumps

Reversing jumps

Patching: Replacing jumps with NOPs

Patching: Replacing jumps with NOPs

Patching: xor eax, eax

Patching: xor eax, eax

Gui-Crackme: String search method, defining functions and windows API

Gui-Crackme: String search method, defining functions and windows API

Analyzing the windows API stack

Analyzing the windows API stack

Using xor eax, eax to set API parameter and also bypass jump

Using xor eax, eax to set API parameter and also bypass jump

Phishing for the serial key

Phishing for the serial key

Installing Cutter for Linux

Installing Cutter for Linux

Intro to Linux crackmes, changing themes and the esc button

Intro to Linux crackmes, changing themes and the esc button

Renaming variables to aid static analysis

Renaming variables to aid static analysis

Cutter's new Reverse debugging feature

Cutter's new Reverse debugging feature

Using the Rizin console and the rax2 command

Using the Rizin console and the rax2 command

Linux crackme2: Using the Debuggee Console

Linux crackme2: Using the Debuggee Console

Stepping into function calls

Stepping into function calls

Phising passwords by analyzing registers and hexdumps

Phishing passwords - part 1

Phishing passwords - part 2

Phishing passwords - part 3

Resources for further study

Bonus Lecture

Save this course

Save Reverse Engineering: Cutter for Beginners 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 Reverse Engineering: Cutter for Beginners with these activities:
Review Assembly Language Fundamentals
Reinforce your understanding of assembly language concepts, which are crucial for reverse engineering and understanding disassembled code in Cutter.
Browse courses on Assembly Language
Show steps
  • Review basic assembly instructions (MOV, ADD, SUB, JMP).
  • Understand registers and memory addressing modes.
  • Practice reading simple assembly code snippets.
Read 'Reverse Engineering for Beginners'
Gain a broader understanding of reverse engineering concepts and techniques, complementing the Cutter-specific skills learned in the course.
Show steps
  • Read the introductory chapters on assembly language and debugging.
  • Study the sections on different reverse engineering tools and techniques.
  • Review the examples of reverse engineering real-world applications.
Read 'Practical Reverse Engineering'
Expand your knowledge of reverse engineering principles and techniques beyond Cutter, providing a broader understanding of the field.
Show steps
  • Read the chapters on x86 and x64 assembly.
  • Study the sections on debugging and disassembly tools.
  • Review the examples of reverse engineering real-world applications.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Solve Crackmes with Cutter
Apply your Cutter skills to solve crackmes, reinforcing your understanding of reverse engineering techniques and improving your problem-solving abilities.
Show steps
  • Download crackmes from online resources (e.g., Crackmes.one).
  • Use Cutter to disassemble and analyze the crackme binary.
  • Identify the key logic and implement a solution to bypass the protection.
  • Document your approach and the steps you took to solve the crackme.
Write a Blog Post on a Cutter Feature
Deepen your understanding of a specific Cutter feature by researching it thoroughly and explaining it in a clear and concise manner.
Show steps
  • Choose a Cutter feature (e.g., reverse debugging, graph view).
  • Research the feature and its functionality.
  • Write a blog post explaining the feature and providing examples of its use.
  • Include screenshots and code snippets to illustrate your points.
Reverse Engineer a Simple Program
Solidify your understanding of reverse engineering principles by applying them to a real-world program, analyzing its functionality and identifying potential vulnerabilities.
Show steps
  • Choose a simple program to reverse engineer (e.g., a calculator or a text editor).
  • Use Cutter to disassemble and analyze the program's code.
  • Identify the program's key functions and data structures.
  • Document your findings and create a report summarizing your analysis.
Contribute to Cutter Documentation
Improve your understanding of Cutter by contributing to its documentation, helping other users learn and use the tool effectively.
Show steps
  • Identify areas in the Cutter documentation that need improvement.
  • Write clear and concise documentation for the chosen area.
  • Submit your documentation changes to the Cutter project.

Career center

Learners who complete Reverse Engineering: Cutter for Beginners will develop knowledge and skills that may be useful to these careers:
Reverse Engineer
A reverse engineer analyzes software or hardware to understand its design, functionality, and potential vulnerabilities. This course provides a solid foundation for this career. As a reverse engineer, you often work with disassembled code and debuggers to identify hidden features or security flaws. This course helps you use Cutter to disassemble binaries, decompile them to C code, and reverse debug. You'll learn to reverse jumps, patch binaries, and analyze memory hexdumps, skills directly applicable to the daily tasks of a reverse engineer. The course's focus on practical, hands-on exercises using free tools makes it an ideal starting point for aspiring reverse engineers.
Malware Analyst
Malware analysts examine malicious software to understand its behavior and develop methods for detection and removal. This course provides a strong foundation for this career. A malware analyst uses reverse engineering techniques to dissect malware samples, identify their functionalities, and characterize their impact. This course helps you use Cutter to analyze malware by disassembling code, examining control flow, and identifying malicious behaviors. The skills acquired in patching binaries and reversing jumps are directly applicable to understanding how malware operates. The course's hands-on approach using tools like Cutter makes it particularly relevant for aspiring malware analysts.
Security Researcher
Security researchers investigate software and hardware systems to discover vulnerabilities and improve overall security. As a security researcher, you're involved in reverse engineering to identify exploits and design defenses. This course is useful for aspiring security researchers. You will learn techniques for static and dynamic analysis, including disassembling binaries, decompiling code, and debugging. The course's emphasis on patching binaries, reversing jumps, and analyzing memory hexdumps provides practical skills necessary for vulnerability discovery and exploit development. Learning to use Cutter effectively will accelerate a security researcher's workflow.
Vulnerability Analyst
Vulnerability analysts identify weaknesses in software and systems that could be exploited by attackers. Vulnerability analysis often involves reverse engineering to understand how software works and where vulnerabilities exist. This course provides a practical introduction to the tools and techniques used in this field. The course helps you learn to use Cutter to disassemble code and examine program behavior. Hands-on experience in patching binaries, reversing jumps, and conducting memory analysis provides invaluable skills for identifying and confirming vulnerabilities. The course's emphasis on practical exercises makes it an excellent first step toward becoming a vulnerability analyst.
Exploit Developer
Exploit developers create code that takes advantage of vulnerabilities in software or systems. Exploit development relies heavily on reverse engineering to understand the target's behavior and identify exploitable flaws. This course can be useful preparation for this career. This course provides a practical introduction to reverse engineering tools like Cutter. You learn to reverse engineer binaries, analyze disassembled code, and identify potential vulnerabilities. The ability to patch binaries and reverse jumps, skills taught in the course, are essential for crafting effective exploits and understanding how to bypass security measures. This course helps build a fundamental skill set for junior exploit developers.
Computer Forensic Investigator
Computer forensic investigators analyze digital evidence to investigate cybercrimes. As a computer forensic investigator, you may need to reverse engineer malware or analyze suspicious files to understand their behavior. This course may be helpful for computer forensic investigators. Learning to use Cutter to disassemble binaries, analyze code, and identify patterns is useful in uncovering evidence and reconstructing events related to cybercrimes. You will also learn how to reverse engineer assembly code, which is quite applicable to the daily life of a forensics investigator.
Application Security Engineer
Application security engineers focus on ensuring the security of software applications throughout the development lifecycle. As an application security engineer, you will work with developers to identify and remediate vulnerabilities in their code. This course may be helpful to application security engineers. You will learn to use reverse engineering techniques to analyze compiled applications and identify potential security flaws. The skills developed in disassembling binaries, analyzing control flow, and identifying vulnerabilities can be directly applied to the task of securing applications.
Cybersecurity Analyst
Cybersecurity analysts protect computer systems and networks from threats. This role involves monitoring systems for suspicious activity, investigating security incidents, and implementing security measures. This course provides a foundation for a cybersecurity analyst. As part of their investigative work, cybersecurity analysts may need to reverse engineer malware or analyze suspicious files to understand their behavior. Learning to use Cutter to disassemble binaries, analyze code, and identify malicious patterns is useful in identifying and mitigating security threats.
Security Consultant
Security consultants advise organizations on how to improve their security posture, often performing security assessments and penetration testing. Security consulting may involve reverse engineering to evaluate the security of software or hardware systems. This course may be useful for those looking to become security consultants. You will learn to use Cutter to analyze binaries, identify vulnerabilities, and assess potential risks. The skills you will acquire, particularly related to static and dynamic analysis, are valuable when evaluating the security of custom applications or embedded systems. The course's practical examples of patching binaries and reversing jumps can help you better understand exploit techniques.
Incident Responder
Incident responders manage and contain security incidents, such as data breaches or malware infections. Incident response sometimes requires reverse engineering skills to analyze malware and understand the extent of an intrusion. This course may be valuable for aspiring incident responders. You will learn to use Cutter to reverse engineer malware samples, analyze code, and identify the attacker's methods and goals. The ability to patch binaries and reverse jumps can be useful for containing malware and preventing further damage. By taking this course, an incident responder can respond to incidents with confidence.
Penetration Tester
A penetration tester, sometimes called an ethical hacker, attempts to find and exploit vulnerabilities in computer systems. Penetration testing often utilizes reverse engineering techniques to understand how systems work and identify potential weaknesses. This course may be useful for aspiring penetration testers. The course's skills of disassembling binaries, analyzing code, and debugging are useful during the reverse engineering phase of a penetration test. Learning to use Cutter effectively can help a penetration tester quickly identify potential vulnerabilities and develop proof-of-concept exploits. The course's hands-on approach using tools like Cutter makes it relevant for penetration testing.
Firmware Engineer
Firmware engineers develop software that controls hardware devices, often working with embedded systems and low-level code. Firmware analysis often involves reverse engineering to understand the operation of existing firmware or to identify security vulnerabilities. This course may be useful for firmware engineers. You will learn to disassemble and analyze binary code, which is essential for understanding how firmware works. The techniques taught in patching binaries and reversing jumps are useful for modifying existing firmware or developing custom firmware solutions. Learning to use Cutter for reverse engineering will assist in disassembling binary code.
Software Developer
Software developers design, write, and test code for applications and systems. While not always a primary focus, reverse engineering skills can be useful for debugging, understanding legacy code, or analyzing third-party libraries. This course may be useful for software developers. You will learn to use Cutter to analyze code, identify potential issues, and understand the behavior of unfamiliar software components. The ability to disassemble and decompile code can be helpful for debugging complex problems, understanding how third-party libraries work, or reverse engineering legacy systems that lack proper documentation.
IT Security Specialist
IT security specialists are responsible for the overall security of an organization's information technology infrastructure. While reverse engineering may not be a daily task, understanding basic reverse engineering principles can be helpful for identifying and mitigating security risks. This course may be useful for IT security specialists. You will gain a better understanding of how attackers analyze systems and exploit vulnerabilities. The knowledge gained can inform security decisions and help improve an organization's overall security posture. IT security specialists can get ahead by applying techniques taught in this course.
System Administrator
System administrators are responsible for maintaining and managing computer systems and servers. While not directly related, an understanding of reverse engineering can be useful for troubleshooting and diagnosing system problems. This course may be useful for system administrators. By learning to disassemble and analyze code, you can gain a deeper understanding of how systems work and identify potential issues. System administrators are often tasked with security updates and malware removal. This course helps to ensure that these tasks are carried out safely and effectively.

Reading list

We've selected two 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 Reverse Engineering: Cutter for Beginners.
Provides a comprehensive guide to reverse engineering techniques, covering x86, x64, and ARM architectures. It delves into Windows kernel reversing and various reversing tools, including debuggers and disassemblers. The book also explores code obfuscation techniques and how to overcome them. It serves as a valuable reference for understanding the underlying principles and practical applications of reverse engineering, complementing the Cutter-specific skills learned in the course.
Comprehensive introduction to reverse engineering, covering a wide range of topics from basic assembly language to advanced techniques. It provides a solid foundation for understanding the concepts and tools used in reverse engineering. While the course focuses on Cutter, this book offers a broader perspective and deeper dive into the underlying principles, making it a valuable resource for beginners.

Share

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

Similar courses

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser