Skip to content

DEF CON 34 talks are here: 354 talks, summarized and searchable.

Browse DEF CON 34

All Software is Open Source: An Introduction to Reverse Engineering

Dmitriy Beryoza

MalwareDay 2 Stream 252 minBeginnerOpen on YouTube ↗

Where

Day 2 Stream 2
BSides Las Vegas

Duration

52 min

Introduces reverse engineering concepts, legal considerations, tooling and a self-study path for analyzing closed-source software.

Summary

The talk opens by describing reverse engineering as working out how a device, system or program functions by examining it, a practice much older than software. It outlines modern uses such as vulnerability research, penetration testing, malware analysis and building compatible products. The speaker then covers the legal gray area, noting that license terms, statutes such as the DMCA, and the intent behind the work all matter, and separates activities into lower-risk and riskier categories.

The middle section covers technique. Analysts can start with data and network analysis, move on to disassembly and decompilation, and combine static analysis with dynamic debugging. A small C program shows how machine code maps back to source, and Java and .NET are presented as far easier to recover than native binaries. Tools including IDA Pro, Binary Ninja and radare-based frameworks are surveyed, followed by the obstacles analysts meet: compiler optimization, obfuscation, packing, encryption and anti-debugging.

The closing section offers a self-study path, starting with small programs written by the learner, then crackme challenges, then CTF competitions, with the Flare-On contest as the hardest rung. Practical advice includes targeting one specific goal rather than the whole program, using magic numbers and library calls as anchors, and documenting findings as you go. The speaker ends with examples of hard-coded or weakly encoded credentials and a vendor backdoor found in a binary, arguing that developers should not assume compiled code stays hidden.

Related talks