HCR2 - VIP 1.64.4 - v7 - V8.lua
HCR2 - VIP 1.64.4 - v7 - V8.lua
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