Credits: 3

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 2025

Learning 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)