- How long you been coding/hacking?
- 3 years / few months
Merry Christmas!
I was annoyed of using all that different libraries which are required to build up some python hacks (pygame, pymem, glfw, winapi stuff etc.) so I've decided to start this thingy. This Project is coded in Nim with a Python bridge. It's basically C Code which is callable from python. (Similar to a Cython compiled library). So it's pretty performant aswell.
It should support all python 3 versions. However I've used it with python 64bit. It could be that it's not importable with 32bit. Some feedback would be appreciated.
The library is able to read, write from/to a process, spawn a fullscreen overlay and supports almost all required drawings. Examples are on the github repo.
GitHub Repo: Sann0/PyMeow
I was annoyed of using all that different libraries which are required to build up some python hacks (pygame, pymem, glfw, winapi stuff etc.) so I've decided to start this thingy. This Project is coded in Nim with a Python bridge. It's basically C Code which is callable from python. (Similar to a Cython compiled library). So it's pretty performant aswell.
It should support all python 3 versions. However I've used it with python 64bit. It could be that it's not importable with 32bit. Some feedback would be appreciated.
The library is able to read, write from/to a process, spawn a fullscreen overlay and supports almost all required drawings. Examples are on the github repo.
GitHub Repo: Sann0/PyMeow
API:
-- Memory:
process_by_name(name: string) -> Process
wait_for_process(name: string) -> Process
close(Process) -> bool
read_string(Process, address: int) -> string
read_int(Process, address: int) -> int
read_ints(Process, address: int, size: int) -> int array
read_uint(Process, address: int) -> int
read_uints(Process, address: int, size: int) -> int array
read_int64(Process, address: int) -> int64
read_ints64(Process, address: int, size: int) -> int64 array
read_float(Process, address: int) -> float
read_floats(Process, address: int, size: int) -> float array
read_float64(Process, address: int) -> float64
read_floats64(Process, address: int, size: int) -> float64 array
read_byte(Process, address: int) -> byte
read_bytes(Process, address: int, size: int) -> byte array
read_vec2(Process, address: int) -> vec2
read_vec3(Process, address: int) -> vec3
read_bool(Process, address: int) -> bool
write_int(Process, address: int, data: int)
write_ints(Process, address: int, data: int array)
write_float(Process, address: int, data: float)
write_floats(Process, address: int, data: float array)
write_byte(Process, address: int, data: byte)
write_bytes(Process, address: int, data: byte array)
write_vec2(Process, address: int, data: Vec2)
write_vec3(Process, address: int, data: Vec3)
write_bool(Process, address: int, data: bool)
dma_addr(Process, baseAddr: int, offsets: array) -> int
aob_scan(Process, pattern: string, module: Process["modules"]["moduleName"]) -> int
nop_code(Process, address: int, length: int)
inject_dll(Process, dllPath: string)
page_protection(Process, address: int, newProtection: int = 0x40) -> int (old protection)
-- Overlay:
overlay_init(target: string = "Fullscreen", borderOffset: int = 25) -> Overlay
overlay_close(Overlay)
overlay_deinit()
overlay_loop(Overlay) -> bool
overlay_set_pos(Overlay, x, y: int)
-- Drawings:
font_init(height: int, fontName: string) -> Font
font_deinit(Font)
font_print(Font, x, y: float, text: string, color: rgb array)
box(x, y, width, height, lineWidth: float, color: rgb array)
alpha_box(x, y, width, height: float, color, outlineColor: rgb array, alpha: float)
line(x1, y1, x2, y2, lineWidth: float, color: rgb array)
dashed_line(x1, y1, x2, y2, lineWidth: float, color: rgb array, factor: int = 2, pattern: string = "11111110000", alpha: float = 0.5)
circle(x, y, radius: float, color: rgb array, filled: bool = true)
rad_circle(x, y, radius: float, value: int, color: rgb array)
triangle(x1, y1, x2, y2, x3, y3: float, color: rgb array, alpha: float)
-- Vectors:
vec2(x, y: float = 0) -> Vec2
vec2_add(a, b: Vec2) -> Vec2
vec2_del(a, b: Vec2) -> Vec2
vec2_mult(a, b: Vec2) -> Vec2
vec2_div(a, b: Vec2) -> Vec2
vec2_mag(a, b: Vec2) -> float
vec2_magSq(a, b: Vec2) -> float
vec2_distance(a, b: Vec2) -> float
vec2_closest(a: Vec2, b: Vec2 array) -> Vec2
vec3(x, y, z: float = 0) -> Vec3
vec3_add(a, b: Vec3) -> Vec3
vec3_sub(a, b: Vec3) -> Vec3
vec3_mult(a, b: Vec3) -> Vec3
vec3_div(a, b: Vec3) -> Vec3
vec3_mag(a, b: Vec3) -> float
vec3_magSq(a, b: Vec3) -> float
vec3_distance(a, b: Vec3) -> float
vec3_closest(a: Vec2, b: Vec3 array) -> Vec3
-- Misc
key_pressed(vKey: int) -> bool
rgb(color: string) -> float array
wts_ogl(Overlay, matrix: float array (16), pos: Vec3) -> Vec2
wts_dx(Overlay, matrix: float array (16), pos: Vec3) -> Vec2
set_foreground(title: string)
mouse_click()
mouse_move(overlay: Overlay, x, y: float)
Last edited: