-- copyright@CSE_wkm
ads={
{address=0x7F138D991930},
{address=0x7F138D991978},
{address=0x7F138D991A08},
{address=0x7F138D991A50},
{address=0x7F138D991AB0},
{address=0x7F138D991BA0},
{address=0x7F138D991CCC}
}
--maxCount = 16
local magicNumber = {116, 116, 6007}
local text = magicNumber[2] ..";".. magicNumber[3]
gg.clearResults()
gg.setRanges(32)
gg.searchNumber(text, gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
local count = gg.getResultsCount()
local r = gg.getResults(count) -- load items
print(r)
local stepValue = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} -- quick search strstr
local i = 1
local j = 1
while i < #magicNumber -- get stepValue
do -- i, i+1=j
while magicNumber[i+j] == magicNumber[j] and j <= #magicNumber - i
do
if stepValue[i+j+1] == 0
then
stepValue[i+j+1] = i
print("stepValue:",i+j+1,i)
end
j = j + 1
end
if stepValue[j] == 0
then
i = j ==1 and i + j or i + j - 1
j = 1
else
i = i + stepValue[j]
j = j - stepValue[j]
end
end
local p = 0 -- pointer
local rp = 1 -- r pointer
local mp = 1 -- magicNumber pointer
local find = false
local location = -1
repeat -- strstr
if count < p + #magicNumber - 1
then
print("Not found magicNumber", magicNumber)
os.exit()
end
while magicNumber[mp] == r[rp].value
do
print("strstr eq:",mp, rp)
rp = rp + 1
mp = mp + 1
if mp > #magicNumber
then
location = p + 1 -- find strstr
print("Found magicNumber", location)
find = true
break
end
end
if stepValue[mp] == 0 -- dont have sub string
then
p = p + mp
rp = p + 1
mp = 1
else
p = p + stepValue[mp] -- the Longest sub string
rp = rp
mp = mp - stepValue[mp]
end
--print("p:",p, rp, mp)
--print("p:",p)
until( find )
--print(p)
offset = r[location + 1].address - ads[7].address
local t = {}
t[1] = {}
t[1].address = offset + ads[1].address -- some desired address
t[1].flags = gg.TYPE_DWORD
t[2] = {}
t[2].address = offset + ads[2].address -- another desired address
t[2].flags = gg.TYPE_DWORD
t[3] = {}
t[3].address = offset + ads[3].address -- another desired address
t[3].flags = gg.TYPE_DWORD
t = gg.getValues(t) -- refresh items values
print("original data:",t)
t[1].value = t[3].value
t[2].value = t[3].value
gg.setValues(t)
print("changed data:",t)
gg.toast("finish!")
gg修改器脚本,戰警蘭博,快速strstr
最新推荐文章于 2024-10-31 11:16:58 发布
6209

被折叠的 条评论
为什么被折叠?



