# Workshop 2
## What you'll need today:
- Ghidra (get [here](https://github.com/NationalSecurityAgency/ghidra/releases)) (!Only linux machines)
- Jdk-21 is needed, if you have debian based linux:
``` bash
sudo apt install openjdk-21-jdk
```
- [PwnAdventure](##PwnAdventure) (get [here](https://www.pwnadventure.com/#Downloads))
- [Frida](##Frida) (get [here](https://frida.re/))
## PwnAdventure
### PwnAdventure client
``` bash
wget https://www.pwnadventure.com/PwnAdventure3_Linux.zip
unzip PwnAdventure3_Linux.zip
# Executable file is in PwnAdventure3/PwnAdventure3/Binaries/Linux/PwnAdventure3-Linux-Shipping
```
### Server connection setup
Substitute the files ```server.ini``` and ```server.crt``` with the following ones:
- server.ini => get [here](https://workshop.m0lecon.it)
- server.crt => get [here](https://workshop.m0lecon.it)
### Troubleshooting
#### Linux
The following error pops up when i try to run the game: ./PwnAdventure3-Linux-Shipping: error while loading shared libraries: libssl.so.1.0.0:
- Arch Linux
Run the following in a terminal:
``` shell
git clone https://aur.archlinux.org/openssl-1.0.git
cd openssl-1.0
makepkg -s
mv pkg/openssl-1.0/usr/lib/libcrypto.so.1.0.0 pkg/openssl-1.0/usr/lib/libssl.so.1.0.0 YOUR_PWNADVENTURE_INSTALLATION_FOLDER/PwnAdventure3/Binaries/Linux/
```
!!! Caution
If you get a public key error, add the missing PGP signature by running:
gpg --recv-key XXXXXXXXXXXXXXXX
- Ubuntu
Download libssl1.0.0_1.0.2g-1ubuntu4.20_YOUR_ARCHITECTURE.deb from this site.
Install the package by running:
``` bash
sudo dpkg -i libssl1.0.0_1.0.2g-1ubuntu4.20_YOUR_ARCHITECTURE.deb
```
- Ubuntu 64bit
``` bash
wget http://snapshot.debian.org/archive/debian/20170705T160707Z/pool/main/o/openssl/libssl1.0.0_1.0.2l-1~bpo8%2B1_amd64.deb
sudo dpkg -i libssl1.0.0.deb
```
If you need multiarch:
``` bash
wget http://snapshot.debian.org/archive/debian/20190501T215844Z/pool/main/g/glibc/multiarch-support_2.28-10_amd64.deb
sudo dpkg -i multiarch-support.de
```
#### The game lags/takes a long time to load in a Linux VM:
- Give the Virtual Machine more RAM/CPU cores.
- Increase the video memory in your VM settings (Basic Settings > Display > Screen).
- Enable ```3D Acceleration``` in your VM settings (Expert Settings > Display > Screen).
#### Mouse input does not work
- Disable mouse integration.
- Press RIGHT CTRL + C to enable full screen mode
#### Windows
Everything should work as expected :)
#### Hybrid
PwnAdventure **can't** run on virtual machines.
Therefore you can install Pwnadventure on Windows and use Linux vms for frida and ghidra tools.
- **Warning**
You have to access the file ```GameLogic.dll``` in your host machine from the vm. You can use the shared folder tool of your vm provider
#### macOS
!!! Warning
macOS is not supported.
# Ghidra
``` bash
wget https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_11.4.2_build/ghidra_11.4.2_PUBLIC_20250826.zip
unzip ghidra_11.4.2_PUBLIC_20250826.zip
# Executable file is ghidraRun
```
## Frida
``` shell
pip install frida-tools
```