pachela Опубликовано 5 марта, 2018 Поделиться Опубликовано 5 марта, 2018 Собственно задача заключается в следующем: 1. Есть инструкция "movss [rcx+00000378],xmm0" которая располагается по статическому адресу. 2. Мне нужно по средством CE, желательно LUA, что бы можно было использовать в дальнейшем трейнере, прочитать содержимое регистра RCX. 3. К этому значению прибавить 378. 4. Значение RCX записать в переменную 1, значение со смещением записать в переменную 2. P.s. На C# это сложно реализовать? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 5 марта, 2018 Поделиться Опубликовано 5 марта, 2018 35 минут назад, pachela сказал: На C# это сложно реализовать? получение значения из регистра - да, получение значение регистра с помощью сигнатуры - нет. 35 минут назад, pachela сказал: Собственно задача заключается в следующем 1. ставишь бряк на инструкцию (debug_setBreakpoint:) 2. получаешь значение регистра(registernames) 3. складываешь 4. выводишь все есть в документации. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 6 марта, 2018 Поделиться Опубликовано 6 марта, 2018 Можно и без бряков обойтись - сделать код кейв, который будет сохранять содержимое регистра в какой-то статический адрес, а потом из этого адреса уже читать откуда угодно. Ссылка на комментарий Поделиться на другие сайты Поделиться
pachela Опубликовано 6 марта, 2018 Автор Поделиться Опубликовано 6 марта, 2018 Временно решил проблему в Lua Engine (нужно будет перенести в Lua или реализовать как то трейнер =)) вот таким вот кодом: Спойлер local addressCode = 'MyProcc.exe+D4BC13' debug_setBreakpoint(addressCode) print(RCX) s = string.format("%08X", RCX) print(s) debug_removeBreakpoint(addressCode) showMessage(s) writeToClipboard(s) А в Шарпе я беру с Буфера обмена, добавляю смещение и имею, то что хочу. Но это пока, что для развития, вообще нужно будет думать как это сделать в Шарпе. Подскажите еще вот что, как сделать форму трейнера или вообще трейнер, что бы при запуске не отображалось окно? Ну типа запустил, оно в фоне клацнуло и закрылось. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 6 марта, 2018 Поделиться Опубликовано 6 марта, 2018 3 часа назад, pachela сказал: как сделать форму трейнера или вообще трейнер, что бы при запуске не отображалось окно? Убираешь в главном файле создание формы и прописываешь нужный код. Ссылка на комментарий Поделиться на другие сайты Поделиться
srg91 Опубликовано 6 марта, 2018 Поделиться Опубликовано 6 марта, 2018 24 minutes ago, Xipho said: Убираешь в главном файле создание формы и прописываешь нужный код. Я дилетант в этом вопросе (да и проверить не где), но разве он тогда не открывает консольное окно при запуске приложения таким образом? Нет ли у C# форм параметра Visible, который можно было бы просто установить в False? Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 6 марта, 2018 Поделиться Опубликовано 6 марта, 2018 4 минуты назад, srg91 сказал: но разве он тогда не открывает консольное окно при запуске приложения таким образом? Нет. Для того, чтобы создавал консольное окно, нужно сменить тип приложения на консольный 5 минут назад, srg91 сказал: Нет ли у C# форм параметра Visible, который можно было бы просто установить в False? Есть, но зачем держать форму в памяти, если она все равно не нужна? К тому же, тогда для закрытия приложения нужно будет уничтожать форму. Лишние действия. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
pachela Опубликовано 6 марта, 2018 Автор Поделиться Опубликовано 6 марта, 2018 (изменено) Почему все время выдает вот такую вот ошибку? И вот что выдает еще, этого не выдавало... openProcess('myproc.exe') debugProcess(2) local addressCode = 'myproc.exe+D4BC13' debug_setBreakpoint(addressCode) print(RCX) s = string.format("%08X", RCX) print(s) debug_removeBreakpoint(addressCode) writeToClipboard(s) Ошибка:[string "openProcess('myproc.exe') ..."]:6: bad argument #2 to 'format' (number expected, got nil) Ошибка скрипта П.С. Я когда спрашивал про создание трейнера без формы, то имел ввиду в CE =). В шарпе это не проблема, проблема в шарпе отладку сделать, я этого еще не умею. Изменено 6 марта, 2018 пользователем pachela Ссылка на комментарий Поделиться на другие сайты Поделиться
pachela Опубликовано 6 марта, 2018 Автор Поделиться Опубликовано 6 марта, 2018 Так, почему была ошибка в OpenProcess, я понял. Просто почему то опечатался и ввел одинарные кавычки. это поправили и теперь код отчасти работает. Начало просто постоянно выдавать ошибку про время ожидания для присоединения отладчика. Если клацнуть НЕТ, то значение все равно напишет, НО игра через пару секунд вылетает... В игре античит защищает память от API. Может таким образом отладчик использует это самое API? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения