CELua[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Поиск по формуле

    Запланировано Прикреплена Закрыта Перенесена Приёмы
    фишкиидеяscan memoryce lua
    1 Сообщения 1 Posters 33 Просмотры 1 Watching
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • MasterGHM Не в сети
      MasterGH Администраторы
      отредактировано

      В таблице поиска есть колонки ссылающиеся на название Lua перменных: "value" и "previousvalue"
      fb6eb5fd-f132-42d3-82e5-da0af262ffde-изображение.png
      35e15012-0c36-4ec5-8a54-7e3ad82a878e-изображение.png

      Сравнивать текущее и предыдущие значения вместе или по отдельности, в том числе на разных вкладках CE
      0be17f93-8b99-49f6-9aae-151493b4a764-изображение.png

      Примеры:

      value == 65
      value == 0x65 (или поставить галку hex)
      value ~= 65 (или поставить галку not)
      

      Можно и такое сравнение сделать после поиска неизвестного используя математические функции:

      math.abs(value - previousvalue) < 10
      

      Можно делать различные комбинации:

      and (логическое И).
      or (логическое ИЛИ).
      not (логическое НЕ).
      
      \+ (сложение);
      \- (вычитание);
      * (умножение);
      / (деление);
      ^ (возведение в степень);
      % (остаток от деления).
      
      == (равно);
      ~= (не равно);
      < (меньше);
      > (больше);
      <= (меньше или равно);
      >= (больше или равно).
      

      Можно написать функцию xor

      function BitXOR(a,b)--Bitwise xor
          local p,c=1,0
          while a>0 and b>0 do
              local ra,rb=a%2,b%2
              if ra~=rb then c=c+p end
              a,b,p=(a-ra)/2,(b-rb)/2,p*2
          end
          if a<b then a=b end
          while a>0 do
              local ra=a%2
              if ra>0 then c=c+p end
              a,p=(a-ra)/2,p*2
          end
          return c
      end
      

      А потом применяем даже отдельные функции как в этом примере

      "value > 0 and BitXOR(value, 100) "
      

      b7e4f839-065d-4d99-8099-fdd6f71a21cf-изображение.png

      А может быть я хочу только 100 первых результатов

      function BitXOR(a,b)--Bitwise xor
          local p,c=1,0
          while a>0 and b>0 do
              local ra,rb=a%2,b%2
              if ra~=rb then c=c+p end
              a,b,p=(a-ra)/2,(b-rb)/2,p*2
          end
          if a<b then a=b end
          while a>0 do
              local ra=a%2
              if ra>0 then c=c+p end
              a,p=(a-ra)/2,p*2
          end
          return c
      end
      
      valueCount = 0
      function CheckCount100()
         valueCount = valueCount + 1
         return valueCount <= 100
      end
      
      CheckCount100() and value > 0 and BitXOR(value, 50)
      

      71a9da57-7807-45a0-8eb0-0584fdea3a17-изображение.png

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

      getAddressSafe('['..value..']')~=nil
      

      2f4e2e22-6f5a-4dcd-8757-85d8ad2744a4-изображение.png

      Или наоборот не являются указателями

      getAddressSafe('['..value..']')==nil
      

      ae76b77f-9eca-4dc1-b175-2f590d9ac3f9-изображение.png

      Еще можно попробовать добавить 50 красных и 50 синих указателей в таблицу CE, но это уже задание кому интересно.

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

      Можно попробовать указать условие, что значение адреса должно находиться в X структуре или в её вероятных указателях.

      Или попробовать оставить только одинаковые значения адресов, т.е. повторяющихся более 1 раза.

      Или попробовать искать только те адреса, к которым применимы сразу несколько условий чтобы не кликать их постоянно:

      (изменилось) И (больше 0) И (меньше 10000)
      (не изменилось) И (больше 0) И (меньше 10000)
      
      1 ответ Последний ответ Ответить Цитировать 0

      • 1 / 1
      • Первое сообщение
        Последнее сообщение
      Powered by NodeBB | Contributors
      СeLua[RU] 2025©