Помощь в поиске адресов памяти

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,656
2,542
Lua:
function sampGetVariableFromConfigR1(name)
    return ffi.cast("int(__thiscall*)(uintptr_t, const char*)", sampGetBase() + 0x62250)(
        ffi.cast("uintptr_t*", sampGetBase() + 0x624C0)[0],
        name
    )
end

function sampGetVariableFromConfigR3(name)
    return ffi.cast("int(__thiscall*)(uintptr_t, const char*)", sampGetBase() + 0x656A0)(
        ffi.cast("uintptr_t*", sampGetBase() + 0x65910)[0],
        name
    )
end
 
  • Нравится
Реакции: 1NS

chapo

чопа сребдс // @moujeek
Автор темы
Модератор
8,967
11,749
Lua:
function sampGetVariableFromConfigR1(name)
    return ffi.cast("int(__thiscall*)(uintptr_t, const char*)", sampGetBase() + 0x62250)(
        ffi.cast("uintptr_t*", sampGetBase() + 0x624C0)[0],
        name
    )
end

function sampGetVariableFromConfigR3(name)
    return ffi.cast("int(__thiscall*)(uintptr_t, const char*)", sampGetBase() + 0x656A0)(
        ffi.cast("uintptr_t*", sampGetBase() + 0x65910)[0],
        name
    )
end
извиняюсь за тупой вопрос, но как это юзать?
пробовал так - крашит
Lua:
local ffi = require 'ffi'

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('getchat', function()
        local content = sampGetVariableFromConfigR1('m_nPageSize')
        sampAddChatMessage(type(content), -1)
    end)
    while true do
        wait(0)
    end
end

function sampGetVariableFromConfigR1(name)
    return ffi.cast("int(__thiscall*)(uintptr_t, const char*)", sampGetBase() + 0x62250)(
        ffi.cast("uintptr_t*", sampGetBase() + 0x624C0)[0],
        name
    )
end
 
  • Ха-ха
Реакции: scroll.

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,656
2,542
извиняюсь за тупой вопрос, но как это юзать?
пробовал так - крашит
Lua:
local ffi = require 'ffi'

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('getchat', function()
        local content = sampGetVariableFromConfigR1('m_nPageSize')
        sampAddChatMessage(type(content), -1)
    end)
    while true do
        wait(0)
    end
end

function sampGetVariableFromConfigR1(name)
    return ffi.cast("int(__thiscall*)(uintptr_t, const char*)", sampGetBase() + 0x62250)(
        ffi.cast("uintptr_t*", sampGetBase() + 0x624C0)[0],
        name
    )
end
sampGetVariableFromConfigR1('pagesize')
 

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,656
2,542
Lua:
function sampGetVariableFromConfigR1(name)
    return ffi.cast("int(__thiscall*)(uintptr_t, const char*)", sampGetBase() + 0x62250)(
        ffi.cast("uintptr_t*", sampGetBase() + 0x21A0E0)[0],
        name
    )
end

function sampGetVariableFromConfigR3(name)
    return ffi.cast("int(__thiscall*)(uintptr_t, const char*)", sampGetBase() + 0x656A0)(
        ffi.cast("uintptr_t*", sampGetBase() + 0x26E8C4)[0],
        name
    )
end
 

chapo

чопа сребдс // @moujeek
Автор темы
Модератор
8,967
11,749
Lua:
function sampGetVariableFromConfigR1(name)
    return ffi.cast("int(__thiscall*)(uintptr_t, const char*)", sampGetBase() + 0x62250)(
        ffi.cast("uintptr_t*", sampGetBase() + 0x21A0E0)[0],
        name
    )
end

function sampGetVariableFromConfigR3(name)
    return ffi.cast("int(__thiscall*)(uintptr_t, const char*)", sampGetBase() + 0x656A0)(
        ffi.cast("uintptr_t*", sampGetBase() + 0x26E8C4)[0],
        name
    )
end
спасибо, работает. осталось 2 вопроса
1. где можно просмотреть все что можно вытащить с помощью этой функи? например fontsize выводит -1 (блять я еблан у меня фонтсайз на -1 стоит)
2. как изменить значение? например pagesize
 

chapo

чопа сребдс // @moujeek
Автор темы
Модератор
8,967
11,749
всё, что записано в sa-mp.cfg
2. как изменить значение? например pagesize
попытался сделать сам, в итоге ничего не выходит
Lua:
--0x21A0E4, ::CChat,
--0x647B0, ::OnLostDevice,
--0x635D0, ::OnResetDevice,
--0x64600, ::Draw->call
--0x642E7, ::Render,
--0xB3D40, getChatFontName,
--0x64010, ::AddEntry,
--0xB87E7, ::Scroll->call DXUT__Scroll,
--0xB3C60, ::ScrollToBottom,
--0x63828, ::PageUp,
--0x637C0, ::PageDown,
--0x63700, CInput,
--0x63760, CInput::AddCommand,
--0x21A0E8, CConfig?,
--0x65AD0, CConfig?::SaveVariable,
--0x21A0E0, CConfig?::ReadVariable,
--0x624C0, CNetGame
--0x62250, 
--0x21A0F8, 
 

function sampSaveVariableToConfig(name, value)
    return ffi.cast("int(__thiscall*)(uintptr_t, const char*, int, int)", sampGetBase() + 0x624C0)(
        ffi.cast("uintptr_t*", sampGetBase() + 0x65AD0)[0],
        name,
        value
    )
    
    --inline void sampSaveVariableToConfig(const char* name, int value)
    --{
    --    reinterpret_cast<int(__thiscall*)(uintptr_t, const char*, int, int)>(sampGetBase() + SAMP_OFFSET[16])
    --}
    
end
 
Последнее редактирование: