Skip to content

Commit 0769c6d

Browse files
Version 0.3
1 parent 3bc5897 commit 0769c6d

File tree

8 files changed

+857
-60
lines changed

8 files changed

+857
-60
lines changed

PyCheats.py

Lines changed: 340 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 120 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Android-Py-Cheats-Script
1+
PyCheats - An Ultimate Android Cheat Script
22
====
33
[![GitHub stars](https://img.shields.io/github/stars/Anonym0usWork1221/Android-Py-Cheats-Script.svg)](https://github.com/Anonym0usWork1221/Android-Py-Cheats-Script/stargazers)
44
[![GitHub forks](https://img.shields.io/github/forks/Anonym0usWork1221/Android-Py-Cheats-Script.svg)](https://github.com/Anonym0usWork1221/Android-Py-Cheats-Script/network/members)
@@ -8,30 +8,42 @@ Android-Py-Cheats-Script
88
[![GPT_LICENSE](https://img.shields.io/badge/license-MIT-yellow.svg)](https://opensource.org/licenses/)
99

1010
-----------
11-
12-
13-
**This is an example of using androidMemoryTool on android
14-
This script is generated for game pubg mobile.
15-
Can be use in Fortnite and other games for cheats**
11+
**This is an example of using androidMemoryTool on android**
1612

1713
If you find any bug or not working function you can contact me.
1814

19-
* date : 2022/12/29
20-
* Version : 0.2
15+
* date : 2023/10/13
16+
* Version : 0.3
2117
* author : Abdul Moez (abdulmoez123456789@gmail.com)
2218
* Study : UnderGraduate in GCU Lahore, Pakistan
23-
19+
2420
MIT License
2521

2622
Copyright (c) 2022 AbdulMoez
2723

28-
24+
## Introduction
25+
**_PyCheats_** is a Python-based Android game cheating tool designed to help you modify
26+
and manipulate game values for **Android games**. This tool allows you to bypass
27+
**anti-cheat** systems, **activate basic game cheats**, and perform various actions to
28+
gain an advantage in your favorite Android games. This documentation provides
29+
detailed information for both developers and simple users.
30+
31+
--------
32+
That's it! You can now use PyCheats to enhance your gaming experience and gain an advantage in your
33+
favorite Android games. Enjoy cheating responsibly!
34+
---------
35+
LOGS
36+
37+
-----------------------------------------MODIFICATION LOG--------------------------------------------------
38+
1. Introducing an enhanced group search system and a streamlined tool arrangement for improved efficiency.
39+
2. Replacing the outdated search system with a cutting-edge, advanced alternative.
40+
3. Version 0.3 offers compatibility with androidMemoryTool version 0.6.3 or higher.
41+
42+
------
2943
Requirements
3044
-----------
3145
* Python Version >= 3.7
3246
* Rooted Environment needed.
33-
* Modules used ``androidMemoryTool==0.4``, ``art==5.7``
34-
* ```python3 PyCheats.py```
3547

3648
Compatible
3749
-----------
@@ -50,60 +62,112 @@ Installation
5062

5163
Video Demonstration
5264
----------------------------------------
53-
5465
[![VideoDemonstration](https://img.youtube.com/vi/XgKjv0k_8pQ/0.jpg)](https://www.youtube.com/watch?v=XgKjv0k_8pQ)
5566

5667
Old Versions
5768
----------------------------------------
5869
**Old versions can be found in packages section**
5970

60-
Reference
61-
----------------------------------------
62-
* [AndroidMemoryTool](https://github.com/Anonym0usWork1221/android-memorytool)
6371

6472
OutPut Sample
6573
-----------
6674
<br>
6775
<p align="center">
68-
<img src="https://github.com/Anonym0usWork1221/Android-Py-Cheats-Script/blob/main/output_sample.png" title="proxy-list">
76+
<img src="readme_assets/output_sample.png" title="Android-Py-Cheats">
6977
</p>
70-
Supported Data Types
71-
-------------------
72-
73-
All data types are signed.
74-
75-
| **Range** | **Name** | **Type** |
76-
|---------------------------------------------------------|----------|------------------|
77-
| -2,147,483,648 to 2,147,483,647 | DWORD | signed int |
78-
| 3.4E +/- 38 (7 digits) | FLOAT | float |
79-
| 1.7E +/- 308 (15 digits) | DOUBLE | double |
80-
| -32,768 to 32,767 | WORD | signed short int |
81-
| -128 to 127 | BYTE | signed char |
82-
| -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 | QWORD | signed long long |
83-
| -2,147,483,648 to 2,147,483,647 | XOR | signed long |
84-
| Random | UTF_8 | Text |
85-
| Random | UTF_16LE | Text |
86-
87-
88-
Supported Map Ranges
89-
--------------------
90-
| **Script Name** | **Name** | **Description** |
91-
|-----------------|--------------|----------------------------------------|
92-
| ALL | Whole Memory | Whole Memory of current process (slow) |
93-
| C_ALLOC | C++ alloc | RAM c++ Allocated memory |
94-
| A_ANONYMOUS | Anonymous | Range with r-w access only |
95-
| CODE_APP | Code App | shared libs memory (dangerous) |
96-
| JAVA_HEAP | Java Heap | Java heap |
97-
| C_HEAP | C++ Heap | Heap memory of cpp |
98-
| C_DATA | C++ .data | .Data Memory |
99-
| C_BSS | C++ .bss | .bss section memory |
100-
| J_Java | Java | Java memory section |
101-
| STACK | Stack | Stack Memory |
102-
| ASHMEM | Ashmen | Ashmen Memory |
103-
| V_video | Video | Video memory range |
104-
| B_Bad | Bad | Bad Memory (dangerous) |
105-
| CODE_SYSTEM | Code system | Code system memory (dangerous) |
10678

79+
-----
80+
81+
## Simple User Documentation
82+
### Requirements
83+
As a simple user, **you don't need to install** the required packages manually.
84+
These packages are automatically installed when you run the PyCheats tool.
85+
86+
### Using PyCheats
87+
To use `PyCheats` as a simple user, follow these steps:
88+
1. Run the `PyCheats.py` script. This will start the PyCheats tool and display the
89+
controller menu.
90+
2. Use the controller menu to perform various actions, including logo bypass,
91+
lobby bypass, and activating basic cheats.
92+
3. Follow the on-screen instructions to interact with the `PyCheats tool`.
93+
94+
### Important Notes
95+
**Make sure to run the PyCheats** tool as a `superuser (root)` if required to access certain Android game memory.
96+
PyCheats may not work with all Android games and may require specific game package information.
97+
98+
### Version
99+
The current version of PyCheats support androidMemoryTool Version 0.6.3.
100+
Make sure to use this version when installing the tool.
101+
102+
-----
103+
## Developer Documentation
104+
### Requirements
105+
Before using PyCheats, make sure to install the required Python packages
106+
listed in the `requirements.txt` file. You can install these packages
107+
using the following command:
108+
```shell
109+
pip install -r requirements.txt
110+
```
111+
112+
### Main File: PyCheats.py
113+
The `PyCheats.py` file is the main script that controls the PyCheats tool.
114+
It includes classes and methods for interacting with Android games,
115+
bypassing **anti-cheat systems**, and **activating cheats**.
116+
117+
### Installation and Usage
118+
To use PyCheats, follow these steps:
119+
1. Create a Python virtual environment and install the required packages using the `requirements.txt` file.
120+
2. Run the `PyCheats.py` script. This will start the PyCheats tool and display the controller menu.
121+
3. Use the controller menu to perform various actions, including logo bypass, lobby bypass, and activating basic cheats.
122+
123+
### Classes and Methods
124+
The main classes and methods in `PyCheats.py` are as follows:
125+
* **_PyCheats_**: The main class that initializes the PyCheats tool and provides methods for various actions.
126+
* `__init__()`: Initialize the PyCheats object.
127+
* `__async__get_ticks()`: Asynchronously get information about the Android game and initialize instances.
128+
* `_initialize_instances()`: Initialize memory tool instances for various memory ranges and data types.
129+
* `logo_bypass()`: Perform a logo bypass to modify game values.
130+
* `lobby_bypass()`: Perform a lobby bypass to remove unnecessary files and modify game values.
131+
* `basic_cheats()`: Activate basic game cheats based on the specified cheat code.
132+
* `controller_menu()`: Display a controller menu to interact with the PyCheats tool.
133+
* `get_ticks()`: Start the PyCheats tool and enter the event loop to interact with the controller menu.
134+
135+
> Configuration: Ensure that the `requirements.txt` file includes the necessary packages.
136+
You can specify the desired package versions in this file.
137+
138+
### Utility Classes
139+
`PyCheats` also includes utility classes for various tasks.
140+
These utility classes are used within the main script.
141+
1. `RootUtils (root_utilities.py)`:
142+
This utility class handles root-related tasks and interactions with
143+
Android applications. It provides methods for checking if a game is running,
144+
acquiring root privileges, and removing files.
145+
* `is_game_running()`: Check if an Android game with the specified package name is currently running.
146+
* `is_rooted_acquired()`: Check if the script has acquired root privileges, and if not, attempt to acquire them.
147+
* `remove_file()`: Remove a file at the specified path if it exists.
148+
149+
2. `PPrints (pprints.py)`:
150+
This utility class is responsible for pretty-printing colored text messages in the terminal.
151+
It provides methods for displaying decorative headers and printing messages with different information
152+
types and text colors.
153+
* `decoration()`: Display a decorative header with the project name and author information.
154+
* `pprints()`: Pretty print a text message with optional formatting options.
155+
156+
3. `GameInformationHandler (gather_information.py)`:
157+
This class manages game information, allowing you to compare, retrieve, and update game package information.
158+
It is particularly useful for managing Android game package data.
159+
* `compare()`: Compare the current game package name with a stored one.
160+
* `get_data()`: Prompt the user to enter a game package name and store it in a JSON file.
161+
* `unpack_information()`: Retrieve the stored game package name.
162+
163+
4. `ReqInstaller (requirements_installer.py)`:
164+
This class manages the installation of required dependencies for the Python script. It checks for the availability
165+
of required packages and installs them if necessary.
166+
* `install_requirements()`: Installs required Python packages based on script's import availability
167+
and superuser status.
168+
169+
170+
107171
# Contributor
108172

109173
<a href = "https://github.com/Anonym0usWork1221/Android-Py-Cheats-Script/graphs/contributors">
@@ -114,16 +178,16 @@ Supported Map Ranges
114178
Assistance
115179
----------
116180
If you need assistance, you can ask for help on my mailing list:
117-
118181
* Email : abdulmoez123456789@gmail.com
119182

120183
I also created a Discord group:
121-
122184
* Server : https://discord.gg/RMNcqzmt9f
123185

124186

125187
Buy Me a coffee
126188
--------------
127189
If you want to support me you can buy me coffee.
128190

129-
BitCoin_addr: ``` 19vwfRXfthPY7f2aqDBpxQvZa6AJFKcdBS ```
191+
* Payoneer: ```abdulmoez123456789@gmail.com```
192+
* BitCoin_addr: ``` 19vwfRXfthPY7f2aqDBpxQvZa6AJFKcdBS ```
193+

process_info.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"game_pkg": ""}

requirements.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
androidMemoryTool==0.4
2-
commonmark==0.9.1
3-
Pygments==2.13.0
4-
art==5.7
1+
androidMemoryTool==0.6.3
2+
art==6.1
3+
psutil==5.9.5

utils/gather_information.py

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
"""
2+
/*
3+
* Date : 2023/10/13
4+
* Version : 0.3
5+
* Author : Abdul Moez
6+
* Email : abdulmoez123456789@gmail.com
7+
* Affiliation : Undergraduate at Government College University (GCU) Lahore, Pakistan
8+
* GitHub : https://github.com/Anonym0usWork1221/android-memorytool
9+
*
10+
*/
11+
"""
12+
13+
from utils.pprints import PPrints
14+
from json import loads, dump
15+
from os import path
16+
17+
18+
class GameInformationHandler(object):
19+
"""
20+
GameInformationHandler is a class for managing game information.
21+
This class allows you to compare, retrieve, and update game package information.
22+
It is particularly useful for managing Android game package data.
23+
Args:
24+
**kwargs: Additional keyword arguments for customization.
25+
Attributes:
26+
_pprints (PPrints): An instance of the PPrints class for pretty printing.
27+
Methods:
28+
compare() -> bool:
29+
Compare the current game package name with a stored one.
30+
get_data() -> None:
31+
Prompt the user to enter a game package name and store it in a JSON file.
32+
unpack_information() -> str:
33+
Retrieve the stored game package name.
34+
"""
35+
36+
def __init__(self, **kwargs) -> None:
37+
super().__init__(**kwargs)
38+
self._pprints = PPrints()
39+
40+
async def compare(self) -> bool:
41+
"""
42+
Compare the current game package name with a stored one.
43+
Returns:
44+
bool: True if the game package exists, False otherwise.
45+
"""
46+
47+
if not path.isfile("process_info.json"):
48+
return False
49+
50+
with open("process_info.json", 'r') as json_file:
51+
current_info = loads(json_file.read())
52+
53+
game_package_name = current_info["game_pkg"]
54+
55+
if not game_package_name:
56+
return False
57+
58+
elif path.exists(f"/storage/emulated/0/Android/data/{game_package_name}"):
59+
return True
60+
61+
else:
62+
await self._pprints.pprints(text="Package not found. Please type it again or press Ctrl+C to exit.",
63+
info_type=3)
64+
return False
65+
66+
async def get_data(self) -> None:
67+
"""
68+
Prompt the user to enter a game package name and store it in a JSON file.
69+
"""
70+
71+
while not (await self.compare()):
72+
try:
73+
await self._pprints.pprints(text="Enter package name: ", info_type=4, no_end=True, off_info=True)
74+
pkg_name = input()
75+
print()
76+
process_info = {"game_pkg": pkg_name}
77+
dump(process_info, open("process_info.json", "w"))
78+
except KeyboardInterrupt:
79+
break
80+
81+
async def upack_information(self) -> str:
82+
"""
83+
Retrieve the stored game package name.
84+
Returns:
85+
str: The stored game package name.
86+
"""
87+
88+
await self.get_data()
89+
with open("process_info.json", 'r') as json_file:
90+
current_info = loads(json_file.read())
91+
game_package_name = current_info["game_pkg"]
92+
93+
return game_package_name

0 commit comments

Comments
 (0)