Перейти к содержанию

[CE] Lua - Неизвестный косяк со скриптом


pachela

Рекомендуемые сообщения

  В 08.02.2017 в 18:42, pachela сказал:

Поиск сразу заканчивается и ничего не находит.

Показать  

pachela, я перечитал топик и результат пока нулевой. Думаю, что всё дело в нерабочей сигнатуре:

 

  В 06.02.2017 в 19:42, Garik66 сказал:

И второе - ты уверен в своей сигнатуре?

Показать  

 

  В 08.02.2017 в 03:11, Garik66 сказал:

Если твоя сигнатура рабочая,

Показать  

 

Поэтому в начале докажи, что сигнатура у тебя рабочая - ну например запиши видео, как она у тебя находится. (лично я твою сигнатуру у себя не нашёл).

Ссылка на комментарий
Поделиться на другие сайты

  В 10.02.2017 в 07:48, Garik66 сказал:

pachela, я перечитал топик и результат пока нулевой. Думаю, что всё дело в нерабочей сигнатуре:

 

 

 

Поэтому в начале докажи, что сигнатура у тебя рабочая - ну например запиши видео, как она у тебя находится. (лично я твою сигнатуру у себя не нашёл).

Показать  

Кхм. Что за бред? Я первый кто заинтересован в работоспособности скрипта. Косяк вот в чем: С включенным СЕ трейнер работает, а когда конвертируешь в ЕХЕ - нет. Это все вина неправильной сигнатуры? Или все же это вина защиты процесса, который СЕ обходит путем инструментов ядра?

Ссылка на комментарий
Поделиться на другие сайты

проверил у себя с стандартным блокнотом в виндовс такая же проблема с процессом " notepad.exe " в самом се ищет сигнатуру " 3F 00 00 00 00 00 00 E0 " но после компиляции в exe пишет сигнатура не найдена

проверял на играх все работает нормально

Ссылка на комментарий
Поделиться на другие сайты

  В 10.02.2017 в 11:53, horror113 сказал:

в самом се ищет сигнатуру " 3F 00 00 00 00 00 00 E0 "

Показать  

у меня по этой сигнатуре СЕ находит 109 адресов, правда У меня старая версия блокнота v5.8.7 (с руссификатором - английским не владею:wacko:). 

  Показать контент

для блокнота виндос 10 нашлось 56 адресов:

  Показать контент

может в этом всё дело?

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Разобрался. Просто нужно было включить инструменты ядра. Т.к. я не знал как это делается, потому тупняки и были.

Итоговый скрипт имеет следующий вид

 

  Показать контент

Теперь работает нормально. Естественно мне не нравится концовка, с цикличной перезаписью. Это все топорщина. Сейчас буду запиливать сигнатуру на инструкцию.

 

P.s. Не знаю. правильно ли я сделал форматирование поста или нет. Тут с тегами черт ногу сломает.

Ссылка на комментарий
Поделиться на другие сайты

Как правильно в Lua обьеденить 2 АА скрипта с АОБ сканом в один скрипт? Для наглядности вот кусок моего кода, сделанный не грамотно конечно, но рабочий:

  Показать контент

Опять таки, тут 2 раза АОБскан находит сигнатуру и пишет в переменную. Могу ли я сделать уникальную переменную на весь свой трейнер, что бы потом использовать ее? Ну к примеру, у меня есть еще одна кнопка, где снова таки приходится использовать подобный код, дабы вернуть измененную инструкцию. Приложение огромезное, и АОБскан зависает на немалую минуту. Но зачем же сканировать постоянно одно и то же, если мы уже проводим сканирование и записываем в переменную?

Ссылка на комментарий
Поделиться на другие сайты

Спасибо Garik66, подсказал, объяснил. Продолжим дальше. Интересует теперь 2 вопроса:

1. Как узнать по средством Lua в какие адреса пишет инструкция? Вот в чем проблема, отладчик я подключить не могу, стоит защита и обойти ее у меня не получается. Вот я и думаю, сможет ли Lua каким то образом узнать значения регистра, высчитать адреса в которые идет запись и записать их в переменные?

2. Интересуют подробности работы с потоками. Т.к. везде одни и те же примеры, толком не пойму. А именно:

  Показать контент
Ссылка на комментарий
Поделиться на другие сайты

Может кто подсказать как реализуется, а то, что то у меня не получается.

Сначала при помощи AOBscaner мы находим адрес. Записываем его в переменную. Теперь мне нужно отталкиваясь от этого адреса найти новые адреса. Ну т.е. добавить смещение. Я пытался так

someVAlue = "address + 4"

Пробовал разные вариации. И с одинарной кавычкой и с квадратными скобками и т.п. Но результат один: В нужный мне адрес запись не происходит! Запись в АА не предлагать, я это умею делать, но мне нужно произвести либо writeInteger, а в АА я этого не умею делать. Либо пересчитывать значение с Интеджера в байты, а это мне кажется задачка посложнее, чем задать смещение уже имеющемуся адресу.

Ссылка на комментарий
Поделиться на другие сайты

  В 20.02.2017 в 10:30, pachela сказал:

Может кто подсказать как реализуется, а то, что то у меня не получается.

Сначала при помощи AOBscaner мы находим адрес. Записываем его в переменную. Теперь мне нужно отталкиваясь от этого адреса найти новые адреса. Ну т.е. добавить смещение. Я пытался так

someVAlue = "address + 4"

Пробовал разные вариации. И с одинарной кавычкой и с квадратными скобками и т.п. Но результат один: В нужный мне адрес запись не происходит! Запись в АА не предлагать, я это умею делать, но мне нужно произвести либо writeInteger, а в АА я этого не умею делать. Либо пересчитывать значение с Интеджера в байты, а это мне кажется задачка посложнее, чем задать смещение уже имеющемуся адресу.

Показать  

 

Адрес в памяти, даже если и выглядит как страшные "0x12345678" - по сути число.

Если ты делаешь это через LUA то просто возьми и прибавь к нему смещение без кавычек:

offset = 4
someAddress = mainAddress + offset

Запись в память по этому адресу:

writeInteger(someAddress, 666)

 

Изменено пользователем srg91
Ссылка на комментарий
Поделиться на другие сайты

  В 20.02.2017 в 10:43, srg91 сказал:

 

Адрес в памяти, даже если и выглядит как страшные "0x12345678" - по сути число.

Если ты делаешь это через LUA то просто возьми и прибавь к нему смещение без кавычек:

offset = 4
someAddress = mainAddress + offset

Запись в память по этому адресу:

writeInteger(someAddress, 666)

 

Показать  

Так тоже пробовал. И ничего не получается. И ошибку выдает, типа нельзя использовать в арифметическом уравнении нулевое значение. А происходит это все, я предполагаю, из-за того, что адрес найден и зарегистрирован в АА, а я его пытаюсь использовать в LUA.

  Показать контент

Или я ошибаюсь?

Ссылка на комментарий
Поделиться на другие сайты

Смотри, ты регистрируешь этот адрес как символ, после чего можешь узнать его адрес через функцию getAddress:

Попробуй сделать так:

function potokF(senderThread)
autoAssemble([[
aobscan(address3,90 5F 01 00 50 C3 00 01 00 50 C3 00 00)
registersymbol(address3)
]])
offset = 4
someAddress = getAddress('address3') + offset
end

function CEButton6Click(sender)
writeInteger(someAddress, 50)
end

 

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

  В 20.02.2017 в 15:03, pachela сказал:

 А происходит это все, я предполагаю, из-за того, что адрес найден и зарегистрирован в АА, а я его пытаюсь использовать в LUA.

Показать  

Предположение не верно, просто где-то ошибаешься,

Вот посмотри вчера записывал видео.

Ссылка на комментарий
Поделиться на другие сайты

  В 20.02.2017 в 15:12, srg91 сказал:

Смотри, ты регистрируешь этот адрес как символ, после чего можешь узнать его адрес через функцию getAddress:

Попробуй сделать так:

function potokF(senderThread)
autoAssemble([[
aobscan(address3,90 5F 01 00 50 C3 00 01 00 50 C3 00 00)
registersymbol(address3)
]])
offset = 4
someAddress = getAddress('address3') + offset
end

function CEButton6Click(sender)
writeInteger(someAddress, 50)
end

 

Показать  

Вот с getAddress все работает замечательно. Для себя решил не делать лишние переменные типа offset, а сразу в присвоении переменной "someAddress" прибавлять нужное число. Не знаю, возможно это чем то чревато, но у меня работает. Теперь стал другой вопрос: В АА, в АОБскан нужно теперь вписать вместо адреса переменную, но переменной присваивается значение в LUA и когда я пишу 

  Показать контент

Естественно ничего не происходит... Может мне после присваивания переменной значения нужно как то регистрировать эту переменную? Ну как это делается в АА, registersymbol

Ссылка на комментарий
Поделиться на другие сайты

Очень интересный вопрос:

Можно ли готовый ЛУА скрипт из СЕ, использовать вне СЕ? Ну т.е. взять LUA и переписать начисто в него весь скрипт и скомпилировать не в СЕ, а в LUA?

Ссылка на комментарий
Поделиться на другие сайты

  В 26.02.2017 в 07:31, pachela сказал:

Очень интересный вопрос:

Показать  

pachela, как я понял, тебя сейчас больше интересует - защита своего трейнера, так что создай новый топик и копай уже в этом направлении. 

На форуме этот вопрос  поднимался неоднократно и многие ребята в этом продвинулись.

Ссылка на комментарий
Поделиться на другие сайты

  В 26.02.2017 в 08:17, Garik66 сказал:

pachela, как я понял, тебя сейчас больше интересует - защита своего трейнера, так что создай новый топик и копай уже в этом направлении. 

На форуме этот вопрос  поднимался неоднократно и многие ребята в этом продвинулись.

Показать  

Ты прав от части. Но так как я любознателен, меня интересует не только защита, а еще и возможность использовать инструменты СЕ в других языках. Так как я уже немного понял суть LUA, будет логично, начать разбираться именно с этого языка. Пока что меня не интересуют развернутые возможности, меня интересует краткий ответ, которого я не нашел в гугле, можно ли инструменты СЕ использовать в сторонних языках? Главное меня интересует это использование режима ядра, драйвера СЕ.

Просто: Да\НЕТ и линк на почитать.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Всплыла новая проблема, реализовал я вот такую вот функцию:

  Показать контент

Как мне записать в переменную значение четвертого байта? Просто раньше эта сигнатура не менялась и я все время выключал функцию заменяя NOP'ами, а включал тупо вернув значение байт. Теперь 4 байт каждый запуск приложения изменяется, так вот и вопрос, как записать в переменную либо значение 4 байта, либо значение последовательно какогото количества байт?

П.с. На ногах уже больше 30 часов, мысли заплетаются, если не понятен вопрос, завтра уточню.

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.