Credits: 3
This course focuses on software reverse engineering and low-level system analysis. Students will learn to analyze program execution, memory, and cryptography, using x86 assembly and reverse-engineering tools. The course also covers hardware attacks, fuzzing, symbolic execution, and defensive techniques, taught through lectures and hands-on labs. The goal is to build practical security analysis skills.
Description
Prerequisites: ENEE244, ENEE245, and ENEE350 or permission of the instructor.This course focuses on software reverse engineering and low-level system analysis. Students will learn to analyze program execution, memory, and cryptography, using x86 assembly and reverse-engineering tools. The course also covers hardware attacks, fuzzing, symbolic execution, and defensive techniques, taught through lectures and hands-on labs. The goal is to build practical security analysis skills.
Semesters Offered
Fall 2017, Fall 2018, Fall 2019, Fall 2020, Fall 2021, Fall 2022, Fall 2023, Fall 2024, Fall 2025Learning Objectives
- Understand security vulnerabilities in hardware design, physical tamper and side channel attacks to systems.
- Learn the fundamentals and practical techniques to design secure and trusted digital systems.
- Get familiar with hardware security primitives.
- Master techniques for writing and analyzing x86 assembly code.
- Develop reverse engineering skills with IDA Pro.
- Practice secure programming.
- Use Wireshark for protocol and packet analysis.
Topics Covered
- Verilog Syntax and Structure
- Verilog Structural and Gate-Level Modeling
- Simulation Environment for Schematics and Verilog Models
- Adder Circuits: Full-Adder Components, Ripple-Carry and Carry-Lookahead Structures
- Encoders, Decoders, and Seven-Segment Displays
- Asynchronous and Synchronous Counters
- Verilog Modeling with Level-Sensitive and Edge-Sensitive Behaviors
- Digital Data Representation and Conversions
- Sequence Analyzers and Finite State Machine Design
- Combinational and Sequential Multiplier Circuits
- Digital Calculator Implementation
- First-In First-Out (FIFO) Buffer Design
- Error Detection and Correction Codes
Learning Outcomes
- Ability to apply knowledge of math, science, and engineering (Significant)
- Ability to design/conduct experiments & analyze/interpret data (Significant)
- Ability to design a system, component, or process to meet needs (Significant)
- Ability to function on a multi-disciplinary team (Moderate)
- Ability to identify, formulate, and solve engineering problems (Significant)
- Understanding of professional and ethical responsibilities (Significant)
- Ability to communicate effectively (Moderate)
- Recognition of need for and ability to engage in life-long learning (Moderate)
- Knowledge of contemporary issues (Significant)
- Techniques, skills, and modern engineering tools necessary for practice (Significant)