Week 5

Agenda

  • Traces
  • Obfuscation
  • Self-modification

Traces

Ltrace

Library Trace -

Allows us to see the libc calls in the order they are called, as well as arguments to each call

Opening

Malloc

Output

Return values

Strace

System trace -

Similar to ltrace, shows all system calls made by the process in the order they occur and arguments to them.

What is all of this?

What about these?

Syscalls that set up the running process

Syscalls from our process

Ptrace

How does strace and ltrace work?

What can ptrace do?

And a lot more!

Obfuscation

Why Obfuscation?

  • Hide intent
  • Avoid detection
  • Cause pain to Reverse Engineers
  • Obfuscating is fun!

How can we obfuscate?

  • Write compilers that do weird stuff
  • Abuse Language Syntax
  • Write VMs for esoteric languages (really fun actually)

Lets look through MOO

See Week_5/Lecture

Is Obfuscation effective?

Self Modification

Why Self-modification?

  • Avoid detection
  • Make static analysis much much harder
  • Slower
  • Hard to write
  • Hard to read
  • Better than Obfuscation when avoiding detection

Pros/Cons

What might a binary need to self modify?

  • Write access to Executable segments/sections
  • Stub code for modification
  • Packers

 

Is Self-modification effective?

Week 5

By Drake P

Week 5

Obfuscation, Self-Modification, Traces

  • 143