From 7b1f8936e65291ebb22fac60df747a47befacbd2 Mon Sep 17 00:00:00 2001
From: BarsTiger
Date: Thu, 12 Aug 2021 16:12:53 +0300
Subject: [PATCH] 1
---
OfficialProjects/CatMoneyX/CatMoneyX.py | 196 ++++++++++++++++++++++++
1 file changed, 196 insertions(+)
create mode 100644 OfficialProjects/CatMoneyX/CatMoneyX.py
diff --git a/OfficialProjects/CatMoneyX/CatMoneyX.py b/OfficialProjects/CatMoneyX/CatMoneyX.py
new file mode 100644
index 0000000..c23f7fb
--- /dev/null
+++ b/OfficialProjects/CatMoneyX/CatMoneyX.py
@@ -0,0 +1,196 @@
+import os
+import random
+import subprocess, sys, time, ctypes
+try:
+ import pymem
+except:
+ subprocess.check_call([sys.executable, "-m", "pip", "install", 'pymem'])
+ import pymem
+
+try:
+ import mem_edit
+except:
+ subprocess.check_call([sys.executable, "-m", "pip", "install", 'mem_edit'])
+ import mem_edit
+
+try:
+ import psutil
+except:
+ subprocess.check_call([sys.executable, "-m", "pip", "install", 'psutil'])
+ import psutil
+
+try:
+ from PyQt5 import QtCore, QtGui, QtWidgets
+except:
+ subprocess.check_call([sys.executable, "-m", "pip", "install", 'PyQt5'])
+ from PyQt5 import QtCore, QtGui, QtWidgets
+
+class Ui_MainWindow(object):
+ def setupUi(self, MainWindow):
+ MainWindow.setObjectName("MainWindow")
+ MainWindow.resize(200, 280)
+ MainWindow.setMinimumSize(QtCore.QSize(200, 280))
+ MainWindow.setMaximumSize(QtCore.QSize(200, 280))
+ MainWindow.setBaseSize(QtCore.QSize(0, 100))
+ self.centralwidget = QtWidgets.QWidget(MainWindow)
+ self.centralwidget.setMinimumSize(QtCore.QSize(0, 0))
+ self.centralwidget.setBaseSize(QtCore.QSize(0, 0))
+ self.centralwidget.setObjectName("centralwidget")
+ self.gridLayoutWidget = QtWidgets.QWidget(self.centralwidget)
+ self.gridLayoutWidget.setGeometry(QtCore.QRect(10, -10, 185, 284))
+ self.gridLayoutWidget.setObjectName("gridLayoutWidget")
+ self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget)
+ self.gridLayout.setContentsMargins(0, 0, 0, 0)
+ self.gridLayout.setObjectName("gridLayout")
+ self.verticalLayout_3 = QtWidgets.QVBoxLayout()
+ self.verticalLayout_3.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint)
+ self.verticalLayout_3.setSpacing(6)
+ self.verticalLayout_3.setObjectName("verticalLayout_3")
+ self.textBrowser = QtWidgets.QTextBrowser(self.gridLayoutWidget)
+ self.textBrowser.setMaximumSize(QtCore.QSize(16777215, 80))
+ self.textBrowser.setObjectName("textBrowser")
+ self.verticalLayout_3.addWidget(self.textBrowser)
+ self.horizontalLayout = QtWidgets.QHBoxLayout()
+ self.horizontalLayout.setObjectName("horizontalLayout")
+ self.verticalLayout = QtWidgets.QVBoxLayout()
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.firstscan = QtWidgets.QLineEdit(self.gridLayoutWidget)
+ self.firstscan.setObjectName("firstscan")
+ self.verticalLayout.addWidget(self.firstscan)
+ self.firstcheck = QtWidgets.QPushButton(self.gridLayoutWidget)
+ self.firstcheck.setObjectName("firstcheck")
+ self.verticalLayout.addWidget(self.firstcheck)
+ self.horizontalLayout.addLayout(self.verticalLayout)
+ self.verticalLayout_2 = QtWidgets.QVBoxLayout()
+ self.verticalLayout_2.setObjectName("verticalLayout_2")
+ self.secondscan = QtWidgets.QLineEdit(self.gridLayoutWidget)
+ self.secondscan.setObjectName("secondscan")
+ self.verticalLayout_2.addWidget(self.secondscan)
+ self.secondcheck = QtWidgets.QPushButton(self.gridLayoutWidget)
+ self.secondcheck.setObjectName("secondcheck")
+ self.verticalLayout_2.addWidget(self.secondcheck)
+ self.horizontalLayout.addLayout(self.verticalLayout_2)
+ self.verticalLayout_3.addLayout(self.horizontalLayout)
+ self.horizontalSlider = QtWidgets.QSlider(self.gridLayoutWidget)
+ self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
+ self.horizontalSlider.setObjectName("horizontalSlider")
+ self.verticalLayout_3.addWidget(self.horizontalSlider)
+ self.textEdit = QtWidgets.QTextEdit(self.gridLayoutWidget)
+ self.textEdit.setEnabled(True)
+ self.textEdit.setMinimumSize(QtCore.QSize(0, 0))
+ self.textEdit.setMaximumSize(QtCore.QSize(16777215, 30))
+ self.textEdit.setTextInteractionFlags(QtCore.Qt.TextSelectableByKeyboard|QtCore.Qt.TextSelectableByMouse)
+ self.textEdit.setObjectName("textEdit")
+ self.verticalLayout_3.addWidget(self.textEdit)
+ self.pushButton = QtWidgets.QPushButton(self.gridLayoutWidget)
+ self.pushButton.setObjectName("pushButton")
+ self.verticalLayout_3.addWidget(self.pushButton)
+ self.gridLayout.addLayout(self.verticalLayout_3, 0, 0, 1, 1)
+ self.label = QtWidgets.QLabel(self.gridLayoutWidget)
+ self.label.setMouseTracking(True)
+ self.label.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
+ self.label.setTextFormat(QtCore.Qt.RichText)
+ self.label.setScaledContents(False)
+ self.label.setIndent(0)
+ self.label.setObjectName("label")
+ self.gridLayout.addWidget(self.label, 0, 1, 1, 1)
+ MainWindow.setCentralWidget(self.centralwidget)
+ self.menubar = QtWidgets.QMenuBar(MainWindow)
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 200, 21))
+ self.menubar.setObjectName("menubar")
+ MainWindow.setMenuBar(self.menubar)
+ self.statusbar = QtWidgets.QStatusBar(MainWindow)
+ self.statusbar.setObjectName("statusbar")
+ MainWindow.setStatusBar(self.statusbar)
+
+ self.retranslateUi(MainWindow)
+ QtCore.QMetaObject.connectSlotsByName(MainWindow)
+
+ self.horizontalSlider.setValue(100)
+
+ def retranslateUi(self, MainWindow):
+ _translate = QtCore.QCoreApplication.translate
+ MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
+ self.textBrowser.setHtml(_translate("MainWindow", "\n"
+"\n"
+"CatMoneyX
\n"
+"Casino bet changer
\n"
+"by BarsTiger
\n"
+"simplified KotoGameScam
"))
+ self.firstscan.setText(_translate("MainWindow", "100"))
+ self.firstcheck.setText(_translate("MainWindow", "First check"))
+ self.secondscan.setText(_translate("MainWindow", "50"))
+ self.secondcheck.setText(_translate("MainWindow", "Second check"))
+ self.textEdit.setHtml(_translate("MainWindow", "\n"
+"\n"
+"1000000
"))
+ self.pushButton.setText(_translate("MainWindow", "Change bet"))
+ self.label.setText(_translate("MainWindow", "
C
a
t
M
o
n
e
y
X
"))
+
+
+app = QtWidgets.QApplication(sys.argv)
+MainWindow = QtWidgets.QMainWindow()
+ui = Ui_MainWindow()
+ui.setupUi(MainWindow)
+MainWindow.show()
+
+address = []
+straddress = []
+sortedAddresses = []
+wantToChangeAddresses = []
+procName = "GTA5.exe"
+wantedValue = 1000000
+
+def firstcsan():
+ global address, straddress
+ value = int(ui.firstscan.text())
+ print("I will check for " + str(value))
+ pid = mem_edit.Process.get_pid_by_name(procName)
+ with mem_edit.Process.open_process(pid) as p:
+ address = p.search_all_memory(ctypes.c_int(int(value)))
+ print('Found', len(address), 'addresses')
+ for i in address:
+ straddress.append(str(i))
+
+def secondscan():
+ global address, straddress
+ sortedAddresses.clear()
+ proc = pymem.Pymem(procName)
+ valueAfterChange = int(ui.secondscan.text())
+ print("I will leave only " + str(valueAfterChange))
+ for addressFromAll in address:
+ if proc.read_int(addressFromAll) == int(valueAfterChange):
+ sortedAddresses.append(addressFromAll)
+ print('Found after ThrowAwaySort:', len(sortedAddresses))
+ address.clear()
+ for i in sortedAddresses:
+ address.append(i)
+ straddress.clear()
+ for i in address:
+ straddress.append(str(i))
+
+def scam():
+ wantedValue = getfromslider()
+ print("Started scamming to " + str(wantedValue))
+ proc = pymem.Pymem(procName)
+ for wantToChangeAddress in wantToChangeAddresses:
+ proc.write_int(wantToChangeAddress, int(wantedValue))
+ print('Changed value in ' + str(wantToChangeAddress) + ' to ' + str(wantedValue))
+ print('Values of addresses ' + str(wantToChangeAddresses) + ' now are ' + str(wantedValue))
+
+def getfromslider():
+ global wantedValue
+ wantedValue = 10000 * ui.horizontalSlider.value()
+ ui.textEdit.setText(str(wantedValue))
+ return wantedValue
+
+ui.horizontalSlider.valueChanged.connect(getfromslider)
+ui.firstcheck.clicked.connect(firstcsan)
+ui.secondcheck.clicked.connect(secondscan)
+ui.pushButton.clicked.connect(scam)
+
+sys.exit(app.exec_())