нопы кнопок

Fasz fiatal

Активный
Автор темы
267
53
Версия 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,469
917
Нопы кнопок?)
Тебе надо нопать события WM.

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

why ega

РП игрок
Модератор
2,541
2,233
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