KO
|
EN
gitlite — search
Search
#python
#java
#python3
#arduino
#golang
#machine-learning
#rust
#html
#flask
#javascript
#seismology
#nodejs
ips.py
★ 10
Open GitHub ↗
A Python library for handling IPS patches
Download README (.md)
Explore Similar Repositories
Hachiko
:
Simple tool for creating pitch timeline
Spring-Boot-RESTFul-APIs
:
Spring Boot RESTFul APIs Course Repository
scrape-yt
:
Simple lib to scrape information from youtube such as search results, video information, related videos, playlist information and up next video
f_service
:
Simpler, safer and more composable operations
more_todo
:
A todo app to learn Moor.
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
ips.py
?
Download (.md)
# ips.py A Python library for handling IPS patches. I wanted to create this as there was no suitable library for how I wanted to manipulate IPS patches, which at the time was just changing the offsets in the records. Since then I have wanted to extend it for my own needs, and for the potential needs of others. The logic for creating patches from two file objects is taken from [flips](https://github.com/Alcaro/Flips/), which creates very good, small patches. ### How to use To import the library, do ```py import ips ``` To get a `Patch` object from an IPS file, do ```py with open("path/to/patch.ips", "rb") as f: p = ips.Patch.load(f) ``` If you already have the bytes of the IPS file, you can do ```py with open("path/to/patch.ips", "rb") as f: cont = f.read() ... p = ips.Patch.load(cont) ``` To apply a `Patch` object, do ```py with open("path/to/original/file.bin", "rb") as old, open("path/to/new/file.bin", "wb") as new: p.apply(old, new) ``` If you don't want to necessarily write it to a new file, you can do ```py import io new = io.BytesIO() with open("path/to/original/file.bin", "rb") as old: p.apply(old, new) ``` To create a `Patch` object from two file objects, do ```py with open("path/to/original/file.bin", "rb") as old, open("path/to/new/file.bin", "rb") as new: p = ips.Patch.create(old, new) ``` To pack a `Patch` object into a `bytes` object, do ```py bytes(p) ``` To add a record to a `Patch` object, use the `add_record` method. To get a list of records in a `Patch` object, use the `records` attribute. To get whether a `Patch` object is using the IPS32 format, which allows for offsets up to 4 GiB, check the `ips32` attribute.