Added documentation
This commit is contained in:
@@ -1,4 +1,75 @@
|
||||
# opcodediff
|
||||
|
||||
A set of tools for matching opcodes across different versions of the FFXIV
|
||||
binary.
|
||||
binary.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
1. Ensure you have python >= 3.7 installed.
|
||||
|
||||
1. Set up a python venv:
|
||||
```sh
|
||||
python -m venv /path/to/venv/dir
|
||||
```
|
||||
|
||||
1. Activate the venv
|
||||
|
||||
Linux:
|
||||
```sh
|
||||
source venv/bin/activate # csh or fish variants available as well
|
||||
```
|
||||
|
||||
Windows:
|
||||
```
|
||||
venv\Scripts\activate
|
||||
```
|
||||
|
||||
1. Install dependencies
|
||||
|
||||
```sh
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
1. Ensure you have [radare](https://github.com/radareorg/radare2) somewhere on
|
||||
your path
|
||||
|
||||
1. For `traces-diff.py`, an NVIDIA GPU and CUDA support are highly recommended,
|
||||
but not required. It might just take twice as long to train.
|
||||
|
||||
## Usage
|
||||
|
||||
Pass `--help` to any of the scripts for usage.
|
||||
|
||||
### Workflow for minor patches
|
||||
|
||||
Example:
|
||||
```sh
|
||||
python minor_patch_diff.py ffxiv_dx11.6.30.exe ffxiv_dx11.6.30h.exe > 6.30h.diff.json
|
||||
```
|
||||
|
||||
Post-diff processing:
|
||||
```sh
|
||||
python generate_opcodes_file.py 6.30h 6.30h.diff.json Ipcs.6.30h.h
|
||||
# TODO: Need a script to resolve opcodes for handlers with multiple opcodes
|
||||
python generate_act_format.py Ipcs.6.30h.h
|
||||
```
|
||||
|
||||
### Workflow for major patches
|
||||
|
||||
We'll need to generate "traces" as signatures for every packet handler.
|
||||
|
||||
Example:
|
||||
```sh
|
||||
python generate_deep_traces.py ffxiv_dx11.6.28h.exe 6.28h-traces
|
||||
python generate_deep_traces.py ffxiv_dx11.6.30.exe 6.30-traces
|
||||
python traces_diff.py 6.28h-traces 6.30-traces 6.30.diff.json
|
||||
```
|
||||
|
||||
Post-diff processing:
|
||||
```sh
|
||||
python generate_opcodes_file.py 6.30h 6.30h.diff.json Ipcs.6.30h.h
|
||||
# TODO: Need a script to resolve opcodes for handlers with multiple opcodes
|
||||
python generate_act_format.py Ipcs.6.30h.h
|
||||
```
|
||||
|
||||
###
|
||||
Reference in New Issue
Block a user