Я уже немного разобрался в NeoCompiler. Может пригодится желающим освоить Neo Sign 0f Misery
Пример Зума под RF Online:
; Переменные:
; 0 Массив хендлов искомого окна [DWORDARRAY]
; 1 Размер массива хендлов искомого окна [DWORD]
; 2 Хендл окна [DWORD]
; 3-5 Резерв
; 6-10, 21 Нажатие клавиш [DWORD]
; 11-17 Переменные для операций с памятью.
; 18-20 Переменные для операций с файлом конфигурации Res.cfg
GALLOC 22 .
MBOX 'Для завершения работы RF Zoom нажмите Ctrl-Left Win-Q' 'RF Zoom' 64 .
^start
CALL ^cfg_read_file
^key_main_1
Sleep 200
IS_KEYS_PRESSED 10 $11 $5B . ; Проверяем нажатие клавиши Ctrl-LWin-
BRANCH 10 0 ^key_main_1 .
^key_read_or_exit
IS_KEYS_PRESSED 7 $11 $5B $61 . ; Проверяем нажатие клавиши Ctrl-LWin-Num1
IS_KEYS_PRESSED 8 $11 $5B $67 . ; Проверяем нажатие клавиши Ctrl-LWin-Num7
IS_KEYS_PRESSED 9 $11 $5B $68 . ; Проверяем нажатие клавиши Ctrl-LWin-Num8
IS_KEYS_PRESSED 21 $11 $5B $62 . ; Проверяем нажатие клавиши Ctrl-LWin-Num2
IS_KEYS_PRESSED 6 $11 $5B $51 . ; Проверяем нажатие клавиши Ctrl-LWin-Q
BRANCH 7 1 ^mem_read .
BRANCH 8 1 ^mem_write_In .
BRANCH 9 1 ^mem_write_Out .
BRANCH 21 1 ^start .
BRANCH 6 0 ^key_main_1 .
MBOX 'Завершить работу?' 'RF Zoom' 36 $ 6 ; Запрос подтверждения
BRANCH 6 7 ^start .
eos $ ; Завершение работы RF Zoom
^wnd_search ; Проверка существования процесса
WND_FIND 0 'D3D Window' 1 'RF Online' 1 9 1
LENGTH 0 1
BRANCH 1 0 ^wnd_no_find .
READ_DA 0 0 2
RETURN
^wnd_no_find
MBOX 'Процесс не найден! ' 'RF Zoom' 16 .
DROP_RET .
JUMP ^key_read_or_exit
^mem_read ; Получение информации о процессе, данных из памяти
CALL ^wnd_search
WND_GET_PROC_TH 2 13 14
PROCESS_OPEN 13 15 .
MEM_READ_D 15 @20 12
CLOSE_OBJECT 15
I_TO_STR 2 11 0 16
I_TO_STR 13 16 0 16
I_TO_STR 12 17 0 16
JOIN_B 11 'Win Handle: ' @11 !0D 0A! 'ID Stream: ' @16 !0D 0A! 'Mem Data: ' @17 .
MBOX @11 'RF Zoom: Info' 64 .
JUMP ^key_read_or_exit
^mem_write_In ; Приближение камеры Ctrl-LWin-Num7
CALL ^wnd_search
WND_GET_PROC_TH 2 13 14
PROCESS_OPEN 13 15 .
MEM_READ_D 15 @20 12
SUB 12 $AF000 .
MEM_WRITE_D 15 @20 @12
CLOSE_OBJECT 15
JUMP ^key_read_or_exit
^mem_write_Out ; Отдаление камеры Ctrl-LWin-Num8
CALL ^wnd_search
WND_GET_PROC_TH 2 13 14
PROCESS_OPEN 13 15 .
MEM_READ_D 15 @20 12
ADD 12 $AF000 .
MEM_WRITE_D 15 @20 @12
CLOSE_OBJECT 15
JUMP ^key_read_or_exit
^cfg_read_file ; Чтение данных из файла конфигурации Res.cfg
IS_FILE_EXISTS 'Res.cfg' 18
BRANCH 18 1 ^cfg_File_find .
MBOX 'Отсутствует файл конфигурации' 'RF Zoom' 16 .
DROP_RET .
JUMP ^key_read_or_exit
^cfg_File_find .
FILE_OPEN 'Res.cfg' 19 3 1 1 $80000000
FILE_SET_POS 19 +0 0
FILE_READ_B 19 20 8
CLOSE_OBJECT 19
STR_TO_I 20 $ 16
RETURN
Надо просто создать текстовый файлик Res.txt и сменить расширение на .cfg (по приколу :) ) и чтобы он лежал вместе с скомпиленым екзешником.
Конфиг файл создан для удобства подгонки адреса, дабы не мучаться от очередного обновления клиента, Изменять адреса в коде, компилить. Артмани запустил, нашел что нужно, отредактировал Res.cfg в блокноте и все.
В этом файле в HEX формате нужный относительный адресок в процессе.
В RF-Utilities перестал работать Zoom под Up5 на русоффе, поэтому пришлось калякнуть сей Зумер.
ЗЫ:Sergion, вернись, народ стонет без RF-Utilities.