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

MasterGH

Ветераны
  • Постов

    2 999
  • Зарегистрирован

  • Победитель дней

    129

Комментарии блога, опубликованные MasterGH

  1. Если с Вашей стороны будет статья или видео о том, как применяется этот плагин (успешно или не успешно)  для CE 7.2, то возможно будет и выше обнова. А так просто обновлять под циферки CE, честно говоря пока не вижу. У меня этих CE разных версий штук пять установлено. Все никак не почищу

    И давайте писать на новом форуме по возможности

  2. Я в прошлом посте чуть опечатался. Исправил.

     

    Верно. С "or" будет работать как с таким выражением

     

    ( (v1 && v2 && v3) || (v4 && v5) )

    (левая часть) || (правая часть)

     

    Левая часть перестанет проверяться при первом false иначе пройдет до OR и прыгнет на успех в 6C1DD6.

    Левая часть, если встретит false, то перескочит на проверку правой части.

    Правая часть должна пройти все проверки до успеха в адрес 6C1DD6 иначе выход.

     

     

     

    • Плюс 1
  3. >> В качестве аргумента выступает все выражение до следующего слева/справа опреатора

    Нет-нет. В данном случае так не может быть, потому что нет скобок. Все идет последовательно как в дизассемблере.

     

    С учетом таблицы приоритетов операторов в C++ "&&" выше || и с учетом твоего дизассемблерного  исходника в выражении (v1 && v2 && v3 || v4 && v5) идет последовательно


    Сначала так

    v1 && v2 — это истина.

     

    Затем идет

    истина && V3 — это истина. 

     

    Затем программа видит Or  и дальше не пойдет, потому что от OR слева равно true (или не false). Так написано в официальной документации (что если слева от Or идет true, то дальше не идет) и так и видно по дизассемблерному исходнику на 

    00FC2638  jne         __$EncStackInitStart+5Ah (0FC2646h)  

     

    Вот еще пример

    На плюсах ошибка "int Z = X + (A == B) ? 1 : 2" 

     

    Т.е. программист хотел так "int Z = X + (A == B ? 1 : 2)", а сработает это вот так "int Z = (X + (A == B)) ? 1 : 2;". Похоже про то, что ты написал — все выражение слева.

     

    Почему выражение целиком оборачивается слева? Наверно, потому что тернарный оператор этот "?:" имеет меньший приоритет чем + и == стоящих слева. Вот компилятор и посчитал собрать всю левую часть, как в скобки сам. Но, не уверен, что это так. В общем надо смотреть дизассебмлер.

  4. Ну, что прошла трансляция. 

     

    Исходники плагина Offset hunter (beta): скачать (репозиторий)

     

    Offset hunter — это специальная программа для определения смещений в структурах. Осуществляет мониторинг/фильтрацию записи и чтения по смещениям.Не знаю как вам, а мне было очень интересно смотреть за результатом работы этого плагина, когда он собирает и показывает данные о структуре. Очень подробно я разбирал этот плагин в этом видео.

    Плагин бесплатен, можно использовать в любых целях.

     

    Чтобы плагин заработал для другого процесса игры можете попробовать:

    Спойлер

    1. Копируете папку CE 7.2 специально для работы с этим плагином.
    2. Скачиваете исходники в папку autorun.
    3. Копируете и переименовываете таблицу gta3.CT в autorun в ту, которую нужно. 
    4. Открываете Вашу таблицу в CE и все лишнее удаляем из таблицы -> выбрать все, удалить (del)
    5. Открываете вручную другой процесс с игрой и запускаете offset hunter, который должен работать.

    После того, когда Вы сгенерировали/построили структуру в  Dessect Data/Structures и прописали названия смещений, то можете её экспортировать в Вашу другую таблицу.

    Самостоятельная версия Offset hunter появится после того, как в CE будут исправлены зависания, смещения будут показываться без ошибок и плагин будет протестирован на других играх.

     

    В Offset hunter планируется: 

    Спойлер

    1. работа со смещениями, которые себя не проявляли или были отфильтрованы (возможность включать их в структуру и обозначать)
    2. идентификация дополнительных base address (это значит, что в структуре есть другие начала структур или её размер захватывает другие структуры)
    3. работа со множеством структур одновременно в том числе вложенные
    4. удобство при работе с интерфейсом: переходы по инструкциям и т.п.

     

    О выходе новой версии Offset Hunter сообщу в этом блоге.

     

    Вы можете попробовать версию этого плагина при работе со структурами и показать это или сообщить как получилось.

     

    Основные два направления для работы с плагином:

    1.  Это получить все смещения (чтение/запись) и их расструктуризовать через кнопку создать структуру.
      Здесь вы получите аналог dessect data. В нем крутить характеристики можно, но осторожно. Лучше, если создадите еще одну структуру (через кнопку), на которой смещения были бы только на чтение и в них можно крутить single параметры.
       
    2.  Целенаправленный поиск смещений по счетчикам прерывания только "на запись" или "на запись/чтение"
      Например, вы так найдете изменяющиеся характеристики игрока, помимо известных при определенных действиях в игре. Что у меня получилось найти. Смещение выносливости, смещения прыжка, координат, здоровье, патроны. Даже скелетные смещения, которые отвечают за локальные позиции костей модели. Это только gta3, где характеристики лежали в структуре игрока, а их там скудное количество. Они скорее всего, лежат по другим структурам,

    Известные проблемы: бывают жесткие зависания CE и игры (считай вылет), портятся файлы сохранений, некоторые смещения определяются неверно и при работе плагина тормозит игра.

     

     

  5.     -- По имени записи
        local memrec_unical_description = 'Читы'
        if not getAddressList().getMemoryRecordByDescription(memrec_unical_description).Active then
          print("Таблица не подходит для версии этой игры")
        end
        -- По id записи (смотреть id записи текстовым редактором)
        local memrec_id = 2
        if not getAddressList().getMemoryRecordByID(memrec_id).Active then
          print("Таблица не подходит для версии этой игры")
        end

     

  6. Спойлер

    @Garik66 ок. Я в курсе. Да, там нужно писать уникальную метку.

     

    2 часа назад, Xipho сказал:

    Если честно, я не совсем понимаю смысл этих видео. 
    1. Все эти моменты уже были рассмотрены в цикле "Взлом игр от А до Я" на основном канале

    Можно взять книжку с полки на 1200 листов или курс от "А до Я". А можно взять книжку с рецептами  на 100 страниц и сделать трейнер.

     

    2 часа назад, Xipho сказал:

    2. Демонстрация действий без подробных объяснений, почему делается именно так, а не иначе, на мой взгляд, не имеет смысла, поскольку ничему не учит, а лишь демонстрирует один и только один частный способ.

     Это где один и только один частный способ? Каждый способ универсален.

    1. Заморозка значения. На все игры. Универсально.

    2. Нопинг и генерация трейнера. На все игры. Универсально.

    3. Запись максимального значения. На все игры. Универсально.

     

    Способы объясняются поверхностно. Остальное повторить как на видео. А вот потом, если надо уже углубляйся в справки, которые я опубликовал под видео. 

    Если не выходит, я говорю,  пишите вопросы. Есть молодые, которые возьмут гаджет, откроют софт и не понимая уже все сделают, молча и без объяснений. Просто показать как и что. Вот и пробую пойти по такому пути.

     

    p.s. Просят иду и гидру. Возможно и binaryninja. А я думаю, зачем? Такие монстры дизассамблеры подходят для написания своего API для читов на каком-нибудь C++ (не будешь же писать на асме читы с этим SDK) и это  много времени займет. А в CE отредактировать инструкций в пару кликов и все готово.

     

  7. Цитата

    Для добавления иконок на общую картину была написана еще одна вспомогательная программа на шарпе, которая грузит общую карту, а потом по координатам ставит маленькую иконку 16х16 по координатам из массива
    (Скрин выше)

     

    Не нашел кода, который рисует 16x16 иконки. Может я проглядел.

     

    Я думаю, можно взять код, который рисует стрелочку... и после него сделать цикл с его участием, т.е.  им же иконки ресурсов нарисовать.

    Спойлер

    Тут поможет исходник клиента PW, и метод который рисует стрелочку игрока на карте
    Df1E0zc.png

     

    Куски по 1024x1024 разбиваются,  скорее всего,  из-за dds -формата, большой текстуры и оптимизации. Возможно, поддержка старых видео карт, на которых большие текстуры не залезут.

     

    p.s. Картинки не залиты на форум. Будет очень жаль, если пропадут со временем.

  8. 58 минут назад, srg91 сказал:

    cp866

    Точно, с ней виден русский текст. Интересно, я не знал

     

    58 минут назад, srg91 сказал:

    Нужно привести его к виду обычного bat-скрипта для Windows

    И в этом прав...

    Удалил эту строку

    #!/bin/sh

    и логи без ошибок прошли

     

    Спойлер


    C:\Users\Andrew\AppData\Local\Temp\AirtestIDE\tool>echo "aject private.mp3..."
    "aject private.mp3..."

    C:\Users\Andrew\AppData\Local\Temp\AirtestIDE\tool>aapt a KivyIns-debug.apk  assets/private.mp3
     'assets/private.mp3'...

    C:\Users\Andrew\AppData\Local\Temp\AirtestIDE\tool>aapt a KivyIns-debug.apk  assets/script_registry.txt
     'assets/script_registry.txt'...

    C:\Users\Andrew\AppData\Local\Temp\AirtestIDE\tool>echo "resign new apk..."
    "resign new apk..."

    C:\Users\Andrew\AppData\Local\Temp\AirtestIDE\tool>jarsigner -verbose -sigalg SHA1withDSA -digestalg SHA1 -keystore firebase_keystore -storepass 5485726 KivyIns-debug.apk firebase_key
       adding: META-INF/MANIFEST.MF
       adding: META-INF/FIREBASE.SF
       adding: META-INF/FIREBASE.DSA
      signing: AndroidManifest.xml
      signing: LICENSE-junit.txt
      signing: classes.dex
      signing: junit/runner/logo.gif
      signing: junit/runner/smalllogo.gif
      signing: lib/armeabi-v7a/libSDL2.so
      signing: lib/armeabi-v7a/libSDL2_image.so
      signing: lib/armeabi-v7a/libSDL2_mixer.so
      signing: lib/armeabi-v7a/libSDL2_ttf.so
      signing: lib/armeabi-v7a/libmain.so
      signing: lib/armeabi-v7a/libpython2.7.so
      signing: res/anim/abc_fade_in.xml
      signing: res/anim/abc_fade_out.xml
      signing: res/anim/abc_slide_in_bottom.xml
      signing: res/anim/abc_slide_in_top.xml
      signing: res/anim/abc_slide_out_bottom.xml
      signing: res/anim/abc_slide_out_top.xml
      signing: res/color/abc_background_cache_hint_selector_material_dark.xml
      signing: res/color/abc_background_cache_hint_selector_material_light.xml
      signing: res/color/abc_primary_text_disable_only_material_dark.xml
      signing: res/color/abc_primary_text_disable_only_material_light.xml
      signing: res/color/abc_primary_text_material_dark.xml
      signing: res/color/abc_primary_text_material_light.xml
      signing: res/color/abc_search_url_text.xml
      signing: res/color/abc_secondary_text_material_dark.xml
      signing: res/color/abc_secondary_text_material_light.xml
      signing: res/drawable-hdpi-v4/abc_ab_share_pack_holo_dark.9.png
      signing: res/drawable-hdpi-v4/abc_ab_share_pack_holo_light.9.png
      signing: res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_000.png
      signing: res/drawable-hdpi-v4/abc_btn_check_to_on_mtrl_015.png
      signing: res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_000.png
      signing: res/drawable-hdpi-v4/abc_btn_radio_to_on_mtrl_015.png
      signing: res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png
      signing: res/drawable-hdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png
      signing: res/drawable-hdpi-v4/abc_cab_background_top_mtrl_alpha.9.png
      signing: res/drawable-hdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png
      signing: res/drawable-hdpi-v4/abc_ic_clear_mtrl_alpha.png
      signing: res/drawable-hdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png
      signing: res/drawable-hdpi-v4/abc_ic_go_search_api_mtrl_alpha.png
      signing: res/drawable-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png
      signing: res/drawable-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png
      signing: res/drawable-hdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png
      signing: res/drawable-hdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png
      signing: res/drawable-hdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png
      signing: res/drawable-hdpi-v4/abc_ic_menu_share_mtrl_alpha.png
      signing: res/drawable-hdpi-v4/abc_ic_search_api_mtrl_alpha.png
      signing: res/drawable-hdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png
      signing: res/drawable-hdpi-v4/abc_list_divider_mtrl_alpha.9.png
      signing: res/drawable-hdpi-v4/abc_list_focused_holo.9.png
      signing: res/drawable-hdpi-v4/abc_list_longpressed_holo.9.png
      signing: res/drawable-hdpi-v4/abc_list_pressed_holo_dark.9.png
      signing: res/drawable-hdpi-v4/abc_list_pressed_holo_light.9.png
      signing: res/drawable-hdpi-v4/abc_list_selector_disabled_holo_dark.9.png
      signing: res/drawable-hdpi-v4/abc_list_selector_disabled_holo_light.9.png
      signing: res/drawable-hdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png
      signing: res/drawable-hdpi-v4/abc_popup_background_mtrl_mult.9.png
      signing: res/drawable-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png
      signing: res/drawable-hdpi-v4/abc_switch_track_mtrl_alpha.9.png
      signing: res/drawable-hdpi-v4/abc_tab_indicator_mtrl_alpha.9.png
      signing: res/drawable-hdpi-v4/abc_textfield_activated_mtrl_alpha.9.png
      signing: res/drawable-hdpi-v4/abc_textfield_default_mtrl_alpha.9.png
      signing: res/drawable-hdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png
      signing: res/drawable-hdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png
      signing: res/drawable-hdpi-v4/ic_launcher.png
      signing: res/drawable-ldrtl-hdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png
      signing: res/drawable-ldrtl-hdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png
      signing: res/drawable-ldrtl-hdpi-v4/abc_ic_menu_cut_mtrl_alpha.png
      signing: res/drawable-ldrtl-hdpi-v4/abc_spinner_mtrl_am_alpha.9.png
      signing: res/drawable-ldrtl-mdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png
      signing: res/drawable-ldrtl-mdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png
      signing: res/drawable-ldrtl-mdpi-v4/abc_ic_menu_cut_mtrl_alpha.png
      signing: res/drawable-ldrtl-mdpi-v4/abc_spinner_mtrl_am_alpha.9.png
      signing: res/drawable-ldrtl-xhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png
      signing: res/drawable-ldrtl-xhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png
      signing: res/drawable-ldrtl-xhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png
      signing: res/drawable-ldrtl-xhdpi-v4/abc_spinner_mtrl_am_alpha.9.png
      signing: res/drawable-ldrtl-xxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png
      signing: res/drawable-ldrtl-xxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png
      signing: res/drawable-ldrtl-xxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png
      signing: res/drawable-ldrtl-xxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png
      signing: res/drawable-ldrtl-xxxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png
      signing: res/drawable-ldrtl-xxxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png
      signing: res/drawable-ldrtl-xxxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png
      signing: res/drawable-ldrtl-xxxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png
      signing: res/drawable-mdpi-v4/abc_ab_share_pack_holo_dark.9.png
      signing: res/drawable-mdpi-v4/abc_ab_share_pack_holo_light.9.png
      signing: res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_000.png
      signing: res/drawable-mdpi-v4/abc_btn_check_to_on_mtrl_015.png
      signing: res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_000.png
      signing: res/drawable-mdpi-v4/abc_btn_radio_to_on_mtrl_015.png
      signing: res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png
      signing: res/drawable-mdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png
      signing: res/drawable-mdpi-v4/abc_cab_background_top_mtrl_alpha.9.png
      signing: res/drawable-mdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png
      signing: res/drawable-mdpi-v4/abc_ic_clear_mtrl_alpha.png
      signing: res/drawable-mdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png
      signing: res/drawable-mdpi-v4/abc_ic_go_search_api_mtrl_alpha.png
      signing: res/drawable-mdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png
      signing: res/drawable-mdpi-v4/abc_ic_menu_cut_mtrl_alpha.png
      signing: res/drawable-mdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png
      signing: res/drawable-mdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png
      signing: res/drawable-mdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png
      signing: res/drawable-mdpi-v4/abc_ic_menu_share_mtrl_alpha.png
      signing: res/drawable-mdpi-v4/abc_ic_search_api_mtrl_alpha.png
      signing: res/drawable-mdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png
      signing: res/drawable-mdpi-v4/abc_list_divider_mtrl_alpha.9.png
      signing: res/drawable-mdpi-v4/abc_list_focused_holo.9.png
      signing: res/drawable-mdpi-v4/abc_list_longpressed_holo.9.png
      signing: res/drawable-mdpi-v4/abc_list_pressed_holo_dark.9.png
      signing: res/drawable-mdpi-v4/abc_list_pressed_holo_light.9.png
      signing: res/drawable-mdpi-v4/abc_list_selector_disabled_holo_dark.9.png
      signing: res/drawable-mdpi-v4/abc_list_selector_disabled_holo_light.9.png
      signing: res/drawable-mdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png
      signing: res/drawable-mdpi-v4/abc_popup_background_mtrl_mult.9.png
      signing: res/drawable-mdpi-v4/abc_spinner_mtrl_am_alpha.9.png
      signing: res/drawable-mdpi-v4/abc_switch_track_mtrl_alpha.9.png
      signing: res/drawable-mdpi-v4/abc_tab_indicator_mtrl_alpha.9.png
      signing: res/drawable-mdpi-v4/abc_textfield_activated_mtrl_alpha.9.png
      signing: res/drawable-mdpi-v4/abc_textfield_default_mtrl_alpha.9.png
      signing: res/drawable-mdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png
      signing: res/drawable-mdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png
      signing: res/drawable-mdpi-v4/ic_launcher.png
      signing: res/drawable-v21/abc_cab_background_top_material.xml
      signing: res/drawable-xhdpi-v4/abc_ab_share_pack_holo_dark.9.png
      signing: res/drawable-xhdpi-v4/abc_ab_share_pack_holo_light.9.png
      signing: res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_000.png
      signing: res/drawable-xhdpi-v4/abc_btn_check_to_on_mtrl_015.png
      signing: res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_000.png
      signing: res/drawable-xhdpi-v4/abc_btn_radio_to_on_mtrl_015.png
      signing: res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png
      signing: res/drawable-xhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png
      signing: res/drawable-xhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png
      signing: res/drawable-xhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png
      signing: res/drawable-xhdpi-v4/abc_ic_clear_mtrl_alpha.png
      signing: res/drawable-xhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png
      signing: res/drawable-xhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png
      signing: res/drawable-xhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png
      signing: res/drawable-xhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png
      signing: res/drawable-xhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png
      signing: res/drawable-xhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png
      signing: res/drawable-xhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png
      signing: res/drawable-xhdpi-v4/abc_ic_menu_share_mtrl_alpha.png
      signing: res/drawable-xhdpi-v4/abc_ic_search_api_mtrl_alpha.png
      signing: res/drawable-xhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png
      signing: res/drawable-xhdpi-v4/abc_list_divider_mtrl_alpha.9.png
      signing: res/drawable-xhdpi-v4/abc_list_focused_holo.9.png
      signing: res/drawable-xhdpi-v4/abc_list_longpressed_holo.9.png
      signing: res/drawable-xhdpi-v4/abc_list_pressed_holo_dark.9.png
      signing: res/drawable-xhdpi-v4/abc_list_pressed_holo_light.9.png
      signing: res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_dark.9.png
      signing: res/drawable-xhdpi-v4/abc_list_selector_disabled_holo_light.9.png
      signing: res/drawable-xhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png
      signing: res/drawable-xhdpi-v4/abc_popup_background_mtrl_mult.9.png
      signing: res/drawable-xhdpi-v4/abc_spinner_mtrl_am_alpha.9.png
      signing: res/drawable-xhdpi-v4/abc_switch_track_mtrl_alpha.9.png
      signing: res/drawable-xhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png
      signing: res/drawable-xhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png
      signing: res/drawable-xhdpi-v4/abc_textfield_default_mtrl_alpha.9.png
      signing: res/drawable-xhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png
      signing: res/drawable-xhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png
      signing: res/drawable-xhdpi-v4/ic_launcher.png
      signing: res/drawable-xxhdpi-v4/abc_ab_share_pack_holo_dark.9.png
      signing: res/drawable-xxhdpi-v4/abc_ab_share_pack_holo_light.9.png
      signing: res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_000.png
      signing: res/drawable-xxhdpi-v4/abc_btn_check_to_on_mtrl_015.png
      signing: res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png
      signing: res/drawable-xxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png
      signing: res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png
      signing: res/drawable-xxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png
      signing: res/drawable-xxhdpi-v4/abc_cab_background_top_mtrl_alpha.9.png
      signing: res/drawable-xxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png
      signing: res/drawable-xxhdpi-v4/abc_ic_clear_mtrl_alpha.png
      signing: res/drawable-xxhdpi-v4/abc_ic_commit_search_api_mtrl_alpha.png
      signing: res/drawable-xxhdpi-v4/abc_ic_go_search_api_mtrl_alpha.png
      signing: res/drawable-xxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png
      signing: res/drawable-xxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png
      signing: res/drawable-xxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png
      signing: res/drawable-xxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png
      signing: res/drawable-xxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png
      signing: res/drawable-xxhdpi-v4/abc_ic_menu_share_mtrl_alpha.png
      signing: res/drawable-xxhdpi-v4/abc_ic_search_api_mtrl_alpha.png
      signing: res/drawable-xxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png
      signing: res/drawable-xxhdpi-v4/abc_list_divider_mtrl_alpha.9.png
      signing: res/drawable-xxhdpi-v4/abc_list_focused_holo.9.png
      signing: res/drawable-xxhdpi-v4/abc_list_longpressed_holo.9.png
      signing: res/drawable-xxhdpi-v4/abc_list_pressed_holo_dark.9.png
      signing: res/drawable-xxhdpi-v4/abc_list_pressed_holo_light.9.png
      signing: res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_dark.9.png
      signing: res/drawable-xxhdpi-v4/abc_list_selector_disabled_holo_light.9.png
      signing: res/drawable-xxhdpi-v4/abc_menu_hardkey_panel_mtrl_mult.9.png
      signing: res/drawable-xxhdpi-v4/abc_popup_background_mtrl_mult.9.png
      signing: res/drawable-xxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png
      signing: res/drawable-xxhdpi-v4/abc_switch_track_mtrl_alpha.9.png
      signing: res/drawable-xxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png
      signing: res/drawable-xxhdpi-v4/abc_textfield_activated_mtrl_alpha.9.png
      signing: res/drawable-xxhdpi-v4/abc_textfield_default_mtrl_alpha.9.png
      signing: res/drawable-xxhdpi-v4/abc_textfield_search_activated_mtrl_alpha.9.png
      signing: res/drawable-xxhdpi-v4/abc_textfield_search_default_mtrl_alpha.9.png
      signing: res/drawable-xxhdpi-v4/ic_launcher.png
      signing: res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_000.png
      signing: res/drawable-xxxhdpi-v4/abc_btn_check_to_on_mtrl_015.png
      signing: res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_000.png
      signing: res/drawable-xxxhdpi-v4/abc_btn_radio_to_on_mtrl_015.png
      signing: res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00001.9.png
      signing: res/drawable-xxxhdpi-v4/abc_btn_switch_to_on_mtrl_00012.9.png
      signing: res/drawable-xxxhdpi-v4/abc_ic_ab_back_mtrl_am_alpha.png
      signing: res/drawable-xxxhdpi-v4/abc_ic_clear_mtrl_alpha.png
      signing: res/drawable-xxxhdpi-v4/abc_ic_menu_copy_mtrl_am_alpha.png
      signing: res/drawable-xxxhdpi-v4/abc_ic_menu_cut_mtrl_alpha.png
      signing: res/drawable-xxxhdpi-v4/abc_ic_menu_moreoverflow_mtrl_alpha.png
      signing: res/drawable-xxxhdpi-v4/abc_ic_menu_paste_mtrl_am_alpha.png
      signing: res/drawable-xxxhdpi-v4/abc_ic_menu_selectall_mtrl_alpha.png
      signing: res/drawable-xxxhdpi-v4/abc_ic_search_api_mtrl_alpha.png
      signing: res/drawable-xxxhdpi-v4/abc_ic_voice_search_api_mtrl_alpha.png
      signing: res/drawable-xxxhdpi-v4/abc_spinner_mtrl_am_alpha.9.png
      signing: res/drawable-xxxhdpi-v4/abc_switch_track_mtrl_alpha.9.png
      signing: res/drawable-xxxhdpi-v4/abc_tab_indicator_mtrl_alpha.9.png
      signing: res/drawable/abc_btn_check_material.xml
      signing: res/drawable/abc_btn_radio_material.xml
      signing: res/drawable/abc_cab_background_internal_bg.xml
      signing: res/drawable/abc_cab_background_top_material.xml
      signing: res/drawable/abc_edit_text_material.xml
      signing: res/drawable/abc_item_background_holo_dark.xml
      signing: res/drawable/abc_item_background_holo_light.xml
      signing: res/drawable/abc_list_selector_background_transition_holo_dark.xml
      signing: res/drawable/abc_list_selector_background_transition_holo_light.xml
      signing: res/drawable/abc_list_selector_holo_dark.xml
      signing: res/drawable/abc_list_selector_holo_light.xml
      signing: res/drawable/abc_switch_thumb_material.xml
      signing: res/drawable/abc_tab_indicator_material.xml
      signing: res/drawable/abc_textfield_search_material.xml
      signing: res/drawable/icon.png
      signing: res/drawable/presplash.jpg
      signing: res/layout-v11/abc_screen_content_include.xml
      signing: res/layout-v21/abc_screen_toolbar.xml
      signing: res/layout/abc_action_bar_title_item.xml
      signing: res/layout/abc_action_bar_up_container.xml
      signing: res/layout/abc_action_bar_view_list_nav_layout.xml
      signing: res/layout/abc_action_menu_item_layout.xml
      signing: res/layout/abc_action_menu_layout.xml
      signing: res/layout/abc_action_mode_bar.xml
      signing: res/layout/abc_action_mode_close_item_material.xml
      signing: res/layout/abc_activity_chooser_view.xml
      signing: res/layout/abc_activity_chooser_view_include.xml
      signing: res/layout/abc_activity_chooser_view_list_item.xml
      signing: res/layout/abc_expanded_menu_layout.xml
      signing: res/layout/abc_list_menu_item_checkbox.xml
      signing: res/layout/abc_list_menu_item_icon.xml
      signing: res/layout/abc_list_menu_item_layout.xml
      signing: res/layout/abc_list_menu_item_radio.xml
      signing: res/layout/abc_popup_menu_item_layout.xml
      signing: res/layout/abc_screen_simple.xml
      signing: res/layout/abc_screen_simple_overlay_action_mode.xml
      signing: res/layout/abc_screen_toolbar.xml
      signing: res/layout/abc_search_dropdown_item_icons_2line.xml
      signing: res/layout/abc_search_view.xml
      signing: res/layout/abc_simple_dropdown_hint.xml
      signing: res/layout/chooser_item.xml
      signing: res/layout/main.xml
      signing: res/layout/project_chooser.xml
      signing: res/layout/project_empty.xml
      signing: res/layout/support_simple_spinner_dropdown_item.xml
      signing: res/mipmap-hdpi-v4/ic_launcher.png
      signing: res/mipmap-mdpi-v4/ic_launcher.png
      signing: res/mipmap-xhdpi-v4/ic_launcher.png
      signing: res/mipmap-xxhdpi-v4/ic_launcher.png
      signing: res/mipmap-xxxhdpi-v4/ic_launcher.png
      signing: resources.arsc
      signing: assets/private.mp3
      signing: assets/script_registry.txt
    jar signed.

    Warning:
    No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (2045-06-17) or after any future revocation date.

    C:\Users\Andrew\AppData\Local\Temp\AirtestIDE\tool>exit 0  

     

     

    Я тренировался на Unity3D/unitydemo.air. 

    Эта апк собрана на Юнити. Её переместил в папку с проектом air (хотя она там и есть, это я другую удалил). Потом вызываю Firbase сборку и переподписываю.

    Собирается без ошибок, но апк на локальном смартфоне скрывается. При повторном запуске показывает ошибку, а по идее должен запуститься тестовый скрипт unitydemo.py

     

    Идея то в том, что тестовые скрипты игр запускатся в firebase на удаленных физических устройствах в службе Test Lab и там в течении например 15 минут идет тестирование с графиками, видео, логами. Похоже на известную SikuliX

     

    p.s. сменил должность на рукводителя отдела тестирования :) Повысили ЗП, больше не разработчик игр. Руковожу немного, да ботов редко пишу. Пожалуй я рад этому. У меня много данных аналитики, куча сервисов... Общаюсь больше с людьми, по верхам отделов и с разработчиками. Много задач завожу по функциональным багам. По железу и багам всегда ко мне.... Бывает и нудная работа в виде даже ручного тестирования игр (когда наш человек в отпуске), отчетности...  Общаюсь с тестировщиками ручного тестирования. Два удаленных, один наш... Меньше стал уставать, мозги отдыхают... Такие дела

    • Плюс 2
  9. Скорее всего, обновление будет на этой неделе.

    1) Опкоды с перезаписываемыми регистрами типа mov eax.[eax] будут пока просто пропускаться (в следующих версиях плагина не будут) и соответственно будут пропускаться смещения, на которых опкоды только с перезаписываемыми регистрами;

    2) Будет такая штука, как выбор лучшего опкода из всех, что проскочили на точке останова. Например, float приоритетный тип вместо dword, т.е. когда есть опкоды двух типов вернет flost, т.е. vtSingle. Также и из-за пункта1 здесь же исключаются опкоды с перезаписываемыми регистрами типа mov eax.[eax] ;

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

    • Плюс 2
  10. В принципе понятно куда копать. Надо алгоритм сканера переделать на такой, чтобы встав в любое место структуры, т.е. на любой байт, правильно получить смещение в структуре. Для этого надо просчитать то, что в квадратных скобках опкхода. Если это не возможно, потому что регистр перезаписываются, значит ставим не аппаратный бряк на инструкцию и он работает постоянно в холостую записывая нужные регистры перед тем как сработает аппаратный бряк на адресе структуры. Когда случилось, то снимем все бряки, определяем правильно смещение. Ну, а там дальше смотреть...

    • Плюс 2
  11. Тестирую я радостный на gta3 плагин. Нашел кучу интересных адресов настроек. И силу прыжка, и скоростей Velocity, и id земли на которой стоим и id глобального события (если его переключить, то ты либо в полете, либо арестован либо еще что-то). И тут я увидел что капитально на многих адресах поехали смещения в структуре. В пределах 1-4 байт.

     

    И как я понял дело в скорости срабатывания адресов и таймера ожидания перехода аппаратного бряка на следующий байт в структуре до её размера.

     

    Представим себе 4-х байтовое значение

     

    Начало структуры:

      +00: xx xx xx xx

      +04: xx xx xx xx

     

    1. На первом байте не успели сработать инструкции.

    2. На втором байте не успели сработать инструкции.

    3. На третьем байте наконец сработали и увидели опкод.Опкод распарсили. Получили размер в 4 байта

    4. На третьем байте  на два байта смещение +00 убежало вперед в смещение +02.

     

    Примерно такая картина

     

    Начало структуры:

      +02: [xx xx] xx xx

      .... и там много что поехало, а некоторые смещения не поехали

     

    Окей. Я могу быстро вычислить адрес в скобках [eax+смещение] и даже всякие repe повторы обработать, но как только вот такая штука попадается mov eax, [eax+смещение] или вот такая mov eax, [eax*4+смещение], то eax уже успеет  перезаписаться,  ведь на данных стоит аппаратный бряк, а он работает после выполнения инструкции.

     

    1) На смещении нужно постоять и подождать других инструкций и если N времени таких нет, то надо мне подумать, как быть дальше.

    2) В принципе я могу и не ждать снять аппартный бряк с адреса в структуре и поставить не аппаратный бряк уже на инструкцию и получить eax до инструкции., а не после как при аппаратном.

     

    И тут еще один нюанс, на [eax+смещение], не тот адрес, а какой-то соседний или вообще дальний. Похоже надо оставлять оба бряка и аппаратный на смещении структуры и не аппаратный на инструкции. Сохранять данные не аппаратного постоянно, как только сработает аппаратный посмотреть последний данные не аппаратного и с ними работать.

     

    В общем буду думать как это все упростить и чтобы стабильно работало.

     

    Еще есть такая штука  jumps и calls на адрес инструкции, там тоже может быть ситуация...

    • Плюс 1
  12. Да, действительно делалось только для 6.7. Будет исправлено описание файла.

     

    Баг, результат которого можно видеть на скриншоте ниже. Два одинаковых опкода и неверный оффсет +131, а нужно +130 .

    Об этом баге я знаю. Скоро будет исправлено

    Screenshot_1.png

    • Плюс 2
×
×
  • Создать...

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

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