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

partoftheworlD

Пользователи+
  • Постов

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

  • Посещение

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

    172

Сообщения, опубликованные partoftheworlD

  1. 15 минут назад, Stigmaer сказал:

    вот держите как  обещал  https://yadi.sk/d/VNYBBc2f-FfK_w

     

    Ссылка на плагин?

    11 минут назад, Krinkels сказал:

    Видео - Это мое. Тоже на ЯД

    Скачал.

     

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

    • Плюс 1
  2. Значит, надо ломать игры с открытым исходным кодом. Потому что в большинстве игр сейчас, даже если ты её купил, в лицензионном соглашении написано, что-то типа "игра сдается в аренду,лицензия может быть приостановлена  в любое время, а ещё нельзя проводить никакие исследования(включая статический анализ, подключение отладчика/дизассемблера)". Сейчас пока не прочитаешь лицензию вообще лучше никуда не лезть, это хорошо у нас в стране за этим особо не следят.

    • Плюс 1
  3. На самом деле, как оказалось ютуб начал "охоту на ведьм", множество крупных каналов по взлому игр/программ заблокировали, реддит в панике. И видимо кто-то серьезный приложил к этому руку.

     

    image.thumb.png.e0285920c509889fd297d5a7cdfaab7c.png

     

    Пойду скачивать свои видео на всякий случай? Время уходить в подполье.

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

     

    • Плюс 1
  4. Только что, MEDBEDb сказал:

    Так вопрос то был в другом, там реально были видео, отдаленно напоминающие обход средств защиты?

    Нет, но ты думаешь в гугле в тех.поддержке сидят эксперты по обходу средств защиты??

    • Плюс 1
  5. Обычно блокируют канал/пользователя после нескольких предупреждений, которые приходят на почту. Видимо пришло время, закрывать окна игр пиксельной цензурой, либо создавать локальное хранилище видео, только для форума и его пользователей. Зная гугл, будет огромной удачей, если они восстановят аккаунт.

     

    • Плюс 1
  6. Исходники движка Xray 1.6, кажется на нем и была написана Clear Sky

    https://github.com/OpenXRay

     

    11 минут назад, Goblin сказал:

    Нужно сделать так, что бы когда мы убираем бинокль, рамка оставалась. Как осуществить?

    1.Искать 1 и 0 для одного и того же нпц во время обводки и без нее.

    2.восстанавливать смещения структуры игрока в котором находится значение отвечающее за подсветку.

    3.В цикле перебирать всех нпц и устанавливать по восстановленному смещению 1

     

     

    Более сложный вариант, найти в исходниках что-то типа GlowManager, который отвечает за рендер прослойки, восстановить код и поняв как он работает, сделать так же у себя.

    Если есть функция с названием, типа set active или подобными, лучше начать реверс с неё.

     

    Осталась информация от старого проекта, возможно поможет, получение адреса структуры ГГ

     

    Спойлер
    
    g_pGameLevel = \xE8\x00\x00\x00\x00\x8B\x77\x74\xE8\x00\x00\x00\x00, x????xxxx????
    
    mov eax, g_pGameLevel
    mov ecx, [eax]
    mov ecx, [ecx+20h]  ; l_pLocalPlayer
    
    ===================================================================================

     

     

    • Понравилось 1
  7. 1 час назад, dstafeev сказал:

    А не палевно будет если часто придёться менять значение?

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

     

    Как уже писали выше, проще зациклить бонусы за показ рекламы или, например, изменить получаемое количество бонусов после просмотра — это рабочий вариант, но без отладчика/дизассемблера не обойтись, а удаленная отладка на андройде это то ещё приключение. Ещё можно модифицировать сохранения игры,  возможно сработает.

  8. 1. Находишь CEngineClient::ExecuteClientCmd функцию в engine.dll(108 индекс по таблице CEngineClient для CSGO)

    2. Создаешь сигнатуру на эту функцию, чтобы получить её адрес

    3. Описываешь прототип функции (берешь в Source SDK на гитхабе)

    4. Присваиваешь адрес функции её прототипу

    5. Вызываешь с помощью удаленного потока функцию, передавая адрес в который ты записал команду необходимую для выполнения. (в твоем случае "disconnect")

     

    p.s на форуме рассматривалась подобная тема, советую воспользоваться поиском по форуму.

  9. Почти 2 месяца прошло и до сих пор какая-то "угадайка" происходит, почему бы не взять отладчик и не посмотреть, что происходит с dll  во время инжекта, чтобы дать какую-нибудь полезную информацию по возникшему вопросу?

  10. 50 минут назад, SerVick сказал:

    и что мне с этим делать?


    Добавить в отдельный скрипт как проверку, если значение равно 0, то сохранить состояние скриптов в CE(какие включены), если значение равно 1, то записать состояние скриптов из памяти. И добавить таймер на этот скрипт, чтобы он проверял состояние каждые 100 мс.

     

    51 минуту назад, SerVick сказал:

    что такое -тригер и с чем его "едят"? 

    триггер это флаг указывающий, что произошло то или иное действие в игре

  11. Во время решения keygenme пришлось писать ужасный код из-за того, что python работает со знаковыми целочисленным значениями и возник вопрос, как его можно оптимизировать для работы с без знаковыми значениями без включения сторонних модулей.

     

    Сам код:

    tmp = [96, -129, 20, -58, 60, 4, -234, 178, 180, 3, 66, -184, -73, 33, 8, 28]
    
    for i in tmp:
        print(hex((i & ((1 << 64)) - 1) & 0xFF)[2:], end='')

     

  12. 2 минуты назад, Garik66 сказал:

    Ну тогда - искать тригер, думаю тебе будет сложновато это.

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

     

     

    Как вариант, пойти на форум спидранеров и найти авто-сплитер, они как раз таки основываются на состоянии игры, если повезет, то в авто-сплитере будет прописана сигнатура с этим адресом.

  13. 6 минут назад, Garik66 сказал:

    Т.е. только через костыль?

    Ну не сказал бы что это костыль, все делается автоматически и пользователь этого не замечает.

     

    7 минут назад, Garik66 сказал:

    Тыды проще повесить все на одну ГК и в инструкции пользователям написать выкл/вкл

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

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

  15. Если в вкратце, то эти селекторы отличаются внутренним устройством, т.е при использовании селектора .(точка),  программа работает используя переменную, но используя селектор -> программа работает с адресом, т.е обращается через указатель и в зависимости от кривизны рук программиста это может привести к появлении уязвимости UAF(Use After Free)

     

    Подробней про указатели и ссылки под спойлером.

    Спойлер

    Указатели и ссылки
    Попытки связать указатели с динамическими объектами часто приводят к недоразумениям. В сущности, они не имеют друг с другом ничего общего. Вы можете получить адрес стекового объекта и
    выполнить обратное преобразование, то есть разыменование (dereferencing) адреса динамического объекта. И на то, и на другое можно создать ссылку.

     

    
    {
      foo f;
      foo* p = &f;
      f.MemberFn();  // Использует сам объект
      p->MemberFn(); // Использует его адрес
      p = new foo;
      foo& r = *p;  // Ссылка на объект
      r.MemberFn(); // То же, что и p->MemberFn()
    }


    Как видите, выбор оператора . или -> зависит от типа переменной и не имеет отношения к атрибутам самого объекта. Раз уж мы заговорили об этом, правильные названия этих операторов (. и ->) — селекторы членов класса (member selectors). Если вы назовете их «точкой» или «стрелкой» на семинаре с коктейлями, наступит гробовая тишина, все повернутся и презрительно посмотрят на вас, а в дальнем углу кто-нибудь выронит свой бокал. Недостатки стековых объектов Если использовать оператор delete для стекового объекта, то при большом везении ваша программа просто грохнется. А если вам (как и большинству из нас) не повезет, то программа начнет вести себя, как ревнивая любовница она будет вытворять, всякие гадости в разных местах памяти, но не скажет, на что же она разозлилась. Дело в том, что в большинстве реализаций C++ оператор new записывает пару скрытых байтов перед возвращаемым адресом. В этих байтах указывается размер выделенного блока. По ним оператор delete определяет, сколько памяти за указанным адресом следует освободить. При выделении памяти под стековые объекты оператор new не вызывается, поэтому эти дополнительные данные отсутствуют. Если вызвать оператор delete для стекового объекта, он возьмет содержимое стека над вашей переменной и интерпретирует его как размер освобождаемого блока. Итак, мы знаем по крайней мере две причины, по которым следует избегать стековых объектов если у вас нет действительно веских доводов в их пользу: 1. Адрес стекового объекта может быть сохранен и использован после выхода за границы области действия объекта. 2. Адрес стекового объекта может быть передан оператору delete. Следовательно, для стековых объектов действует хорошее правило: Никогда не получайте их адреса или адреса их членов. Достоинства стековых объектов С другой стороны, память в стеке выделяется с головокружительной быстротой так же быстро, как компилятор выделяет память под другие автоматические переменные (скажем, целые). Оператор new (по крайней мере, его стандартная версия) тратит несколько тактов на то, чтобы решить, откуда взять блок памяти и где оставить данные для его последующего освобождения. Быстродействие одна из веских причин в пользу выделения памяти из стека.

    Джефф Элджер БИБЛИОТЕКА ПРОГРАММИСТА C++

     

    • Понравилось 2
  16. 2 минуты назад, ЛАГАРИУМ сказал:

    Я все зделал как ти  сказал но маса неменяется только числа .А ти менял масу утебя реально она работает ?

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

  17.  

    4 часа назад, ЛАГАРИУМ сказал:

    чтото неменяется масса увеличил на 9999 визуально изменилась а реально 1850 почему ?

     

    если надо изменить массу авто, то придется добавить значение из ячейки "Адрес массы" и добавить как новый адрес тип float

  18. 42 минуты назад, ЛАГАРИУМ сказал:

    вроде есть етот базовий адрес

    Что значит вроде? Он либо есть, либо его нет. И если ты нашел верный адрес, то получишь с правой стороны название этого класса.

     

    42 минуты назад, ЛАГАРИУМ сказал:

    WorldPTR ->0EDA3EC0

    Адрес не правильный для 1.44(Social Club) версии он 240EDC8

  19. 6 часов назад, ЛАГАРИУМ сказал:

    нужни характеристики  handling 

    Так и ищи их в характеристиках класса CHandlingData, есть такая крутая штука, как групповое сканирование, садишься в нужную машину, ищешь её характеристики в файле и вводишь их в CE

     

    image.thumb.png.1d8f1a6430085861d7aa4b485eea08d2.png

     

    Спойлер

     

     

  20. 17 минут назад, ЛАГАРИУМ сказал:

    Акак найти адрес что отвечает за Mass машины ?

    Найди скорость, в той же структуре будут остальные статы машины.

    Массы вроде бы нет, но есть гравитация машины значение между 9.78 - 9.80

    Смещение от адреса скорости +0x43F

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

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

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