0% found this document useful (0 votes)
65 views3 pages

HCR2 - VIP 1.64.4 - v7 - V8.lua

The document contains a script for a game hack that unlocks VIP features in a game by modifying memory values based on the architecture (ARM7 or ARM8). It includes functions to search for specific numbers in memory, set new values, and prompt the user for input regarding the duration of the VIP access. The script runs in a loop, displaying a menu for the user to choose to unlock VIP or exit.

Uploaded by

hhsys5133
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views3 pages

HCR2 - VIP 1.64.4 - v7 - V8.lua

The document contains a script for a game hack that unlocks VIP features in a game by modifying memory values based on the architecture (ARM7 or ARM8). It includes functions to search for specific numbers in memory, set new values, and prompt the user for input regarding the duration of the VIP access. The script runs in a loop, displaying a menu for the user to choose to unlock VIP or exit.

Uploaded by

hhsys5133
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

lib_size = 0

lib_index = ""

BASEADDR = gg.getRangesList("libcocos2dcpp.so")[1].start
arch = gg.getTargetInfo()

armEditTable = {
ARM8 = {
offsetone = 0x9B39BC,
offsettwo = 0x7208CC,
value = "C0035FD6r"
},
ARM7 = {
offsetone = 0x36BE32,
offsettwo = 0x813894,
value = "70470000r"
}
}
offsetsTable = {
ARM8 = {
One = 0x68,
Two = 0x3A0,
Three = 0x10,
Four = 0x30,
Five = 0x3EA
},
ARM7 = {
One = 0x44,
Two = 0x2A4,
Three = 0x8,
Four = 0x28,
Five = 0x2DA
}
}
pointerType = gg.TYPE_DWORD
if arch.x64 then
armEditTable = armEditTable["ARM8"]
offsetsTable = offsetsTable["ARM8"]
pointerType = gg.TYPE_QWORD
else
armEditTable = armEditTable["ARM7"]
offsetsTable = offsetsTable["ARM7"]
pointerType = gg.TYPE_DWORD
end

function unlockVIP()
gg.clearResults()
gg.setRanges(gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS | gg.REGION_OTHER)
if gg.getTargetInfo().x64 == true then

gg.searchNumber('1,852,796,198;2,037,147,764;1,651,864,415;1,601,138,271;1,936,549,
223::17', gg.TYPE_DWORD)
else

gg.searchNumber('1,953,394,541;1,601,793,128;1,600,288,115;1,734,307,694;7,564,645:
:17', gg.TYPE_DWORD)
resultsearch = gg.getResults(1)
gg.clearResults()
gg.searchNumber('33;19;' .. tostring(resultsearch[1].address) .. "::9",
gg.TYPE_DWORD)
end
newLocation = gg.getResults(1)[1].address
gg.clearResults()
local expireTimeStamp = os.time(os.date("!*t"))
local length = 31536000 * math.random(8, 13)
local lengthMenu = gg.prompt({"Number of days to give. (cancel for unlimited)
[1;30]"}, {7}, {"number"})
if lengthMenu ~= nil then
length = 86400 * tonumber(lengthMenu[1])
end
local armEdit = {{
address = armEditTable.offsetone + BASEADDR,
flags = gg.TYPE_DWORD,
value = armEditTable.value
}, {
address = armEditTable.offsettwo + BASEADDR,
flags = gg.TYPE_DWORD,
value = armEditTable.value
}}
gg.setValues(armEdit)

gg.clearResults()
gg.setRanges(gg.REGION_C_ALLOC | gg.REGION_ANONYMOUS | gg.REGION_OTHER)
gg.searchNumber("1;1;65,792;0;1472367388~1772367388::21", gg.TYPE_DWORD)
gg.refineNumber("65792", gg.TYPE_DWORD)
local result = gg.getResults(1)
local getFirstPointer = {{
address = result[1].address + offsetsTable.One,
flags = pointerType
}}
getFirstPointer = gg.getValues(getFirstPointer)
local byteEdit = {{
address = getFirstPointer[1].address + offsetsTable.Five,
flags = gg.TYPE_BYTE,
value = "1h"
}}
gg.setValues(byteEdit)
local getSecondPointer = {{
address = getFirstPointer[1].value + offsetsTable.Two,
flags = pointerType
}}
getSecondPointer = gg.getValues(getSecondPointer)
local groupEditStart = getSecondPointer[1].value + offsetsTable.Three
local groupEditOne = {{
address = groupEditStart,
flags = gg.TYPE_DWORD,
value = 130559
}, {
address = groupEditStart + 4,
flags = gg.TYPE_DWORD,
value = 81
}, {
address = groupEditStart + 8,
flags = gg.TYPE_DWORD,
value = expireTimeStamp + length
}, {
address = groupEditStart + 12,
flags = gg.TYPE_DWORD,
value = 6
}, {
address = groupEditStart + 16,
flags = gg.TYPE_DWORD,
value = expireTimeStamp
}, {
address = groupEditStart + 20,
flags = gg.TYPE_DWORD,
value = expireTimeStamp
}, {
address = groupEditStart + 24,
flags = gg.TYPE_DWORD,
value = expireTimeStamp
}, {
address = groupEditStart + 28,
flags = gg.TYPE_DWORD,
value = 65793
}}
groupEditOne = gg.setValues(groupEditOne)
local pointerToChangeAddress = getSecondPointer[1].value + offsetsTable.Four
local setPointer = {{
address = pointerToChangeAddress,
flags = pointerType,
value = newLocation
}}
setPointer = gg.setValues(setPointer)
gg.alert("✅ VIP Is Unlocked ✅\nNow open a free/video chest.")
end

function home()
local menu = gg.choice({"🔓 Unlock VIP", "❌ Exit"}, nil, "HCR 2 VIP Hack by
NoFear and BadCase and a little bit by Rei")
if menu ~= nil then
if menu == 1 then
local ready = gg.choice({"✅ Yes I Am Ready", "❌ No I Am Not Ready"},
nil,
"Go to the shops Chests tab and have a free/video chest ready to
open or you will lose your first VIP chest.")
if ready ~= nil then
if ready == 1 then
unlockVIP()
end
end
end
if menu == 2 then
os.exit()
end
end
end

while true do
if gg.isVisible() then
gg.setVisible(false)
home()
end
gg.sleep(100)
end

You might also like