---
## Knowledge is a Map
Invest some time and explore deeper on foot.
That's how you get to know the back alleys.
---
# Ghidra -- an Overview
---

---
## Watch Out for Low Hanging Fruits
---
* Data Segment
* Names of Functions
* Conditions & Comparisons
* Strings: Usernames, Passwords
* URLs, IP & Port Numbers
**Do not try to understand the whole code at once, it will only drive you mad.**
---
### Data Segments
A look into the read only data segment
---
### Name of Functions

---
### Conditions & Comparisions
Input is compared to a hard coded string
---
### Function Graph
Take a look at the flow graph of functions
---
### Strings
Strings can not only be located in data but also in other code segments, sometimes obfuscated
---
### Strings

---
### Binary Patching
Bypass any undesireable condition via a `NOP` instruction.
NOP, export your patched binary
---
### Do It Yourselves!
* [Download Ghidra](https://ghidra-sre.org/)
* [Download binaries at crackmes.one](https://crackmes.one)
* [Find more binaries on hackthebox](https://hackthebox.eu)
* [Or Find even more on tryhackme](https://tryhackme.com)
* Download firmware of your favorite IoT appliances
---
## A Word On Binary Obfuscation
Software Obfuscation was born in 1984 at the [International Obfuscated C Code Contest](https://ioccc.org/)
---
### What Exactly might be Obfuscated in Your Code?
c++filt
_ZNSt7__cxx1114collate_bynameIcEC2ERKNS_12basic_stringIcSt11char_traitsIcESaIcEEEm
std::__cxx11::collate_byname::collate_byname(std::__cxx11::basic_string, std::allocator > const&, unsigned long)
---
### Deobfuscation Tools
* DotNet
* [de4dot Deobfuscator and Unpacker](https://github.com/de4dot/de4dot)
* [dnSpy Debugger and Assembly Editor](https://github.com/dnSpy/dnSpy)
* [ILSpy Decompiler instead of Ghidra](https://github.com/icsharpcode/ILSpy)
---
# The End