нопы кнопок

Fasz fiatal

Известный
Автор темы
325
66
Версия MoonLoader
Другое
дайте адреса ф4, ф5 и ф8 для R3
 
Решение
Lua:
local memory = require("memory")



function main()
    local SAMPHandle = getModuleHandle("samp.dll")
    if SAMPHandle == 0 then return end


    -- F4
    memory.write(SAMPHandle + 0x79A1, 0x74, 1, true)
    memory.write(SAMPHandle + 0x79AE, 0x75, 1, true)
    -- F5
    memory.write(SAMPHandle + 0x75234, 0x61, 1, true)
    -- F8
    memory.fill(SAMPHandle + 0x60C5B, 0x90, 10, true)
end
Небольшой манул по этом коду (писал в 4 ночи, мог где-то ошибиться)
jz и jnz две противоположные инструкции, если jz - 0x74 (jump if zero) делает переход, если в ZF стоит 0, то jnz - 0x75 (jump if not zero) делает обратное. Таким образом мы просто меняем команды на противоположные
1711579339822.png

1711579702904.png
Инструкция jz переносит...

Vintik

Через тернии к звёздам
Проверенный
1,564
1,042
Нопы кнопок?)
Тебе надо нопать события WM.

Вот коды клавиш (wparam):
А вот события (msg):
1711542694283.png
Вообще какая задача стоит?
 

whyega52

Eblang головного мозга
Модератор
2,865
2,840
Lua:
local memory = require("memory")



function main()
    local SAMPHandle = getModuleHandle("samp.dll")
    if SAMPHandle == 0 then return end


    -- F4
    memory.write(SAMPHandle + 0x79A1, 0x74, 1, true)
    memory.write(SAMPHandle + 0x79AE, 0x75, 1, true)
    -- F5
    memory.write(SAMPHandle + 0x75234, 0x61, 1, true)
    -- F8
    memory.fill(SAMPHandle + 0x60C5B, 0x90, 10, true)
end
Небольшой манул по этом коду (писал в 4 ночи, мог где-то ошибиться)
jz и jnz две противоположные инструкции, если jz - 0x74 (jump if zero) делает переход, если в ZF стоит 0, то jnz - 0x75 (jump if not zero) делает обратное. Таким образом мы просто меняем команды на противоположные
1711579339822.png

1711579702904.png
Инструкция jz переносит исполнение кода на указанное количество байт в случае, если значение флага ZF (он устанавливается командой cmp: если g_Scoreboard не равен 0, ему устанавливается значение 1) равно 0. В оригинальном сампе там стоит 1D, это обозначает, что если Scoreboard не открыт, он перенесет нас к дальнейшему коду, а точнее к проверке на нажатии клавиши F5. Мы же меняем значение 1D на более большое, которое перекидывает нас не на проверку клавиши, а на дальнейший код)
1711577463049.png

1711577482017.png
0x90 - опкод nop'а (no operation), таким образом мы просто затираем инструкцию, которая изменяет значение переменной, отвечающей за скриншот
1711579792976.png

1711579802542.png