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

srg91

Администраторы
  • Постов

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

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

    22

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

  1. 1 minute ago, Garik66 said:

    Версия 60.0.3112.113 (Официальная сборка), (64 бит)

     

    Спасибо. Я попробую повторить вечером.

    Если вдруг будешь записывать видео, включи еще пожалуйста консоль - Ctrl+Shift+J, посмотрим, может что-то не выполняется.

  2. Всем привет.

     

    Мы возвренули догожданную кнопку "Offtop".

    Теперь она находится на панели, между знаком "Спойлер" и "Codesnippet":

    Spoiler

    2017-08-25 12-07-17.png

     

    Выглядит оно следующим образом (как и раньше может содержать другие контейнеры):

    Quote

    Тебе нужно сделать следующее:

     

    Ребята, вы крутые!!!!

     

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

    Конструктивная критика приветствуется.

  3. 7 minutes ago, keng said:

    Или кто-нибудь, у кого прав нет, попробует это сделать раньше меня.

     

     

    Мне не удалось (если я всё правильно сделал):

    Spoiler
    
    > git push origin develop
    repository access denied.
    fatal: Could not read from remote repository.
    
    Please make sure you have the correct access rights
    and the repository exists.repository access denied.
    fatal: Could not read from remote repository.
    
    Please make sure you have the correct access rights
    and the repository exists.
      
    > git st
    ## develop...origin/develop [ahead 1]
    
    > git remote show origin
    * remote origin
      Fetch URL: git@bitbucket.org:MasterGH/lua-plugin-ce-aa-maker.git
      Push  URL: git@bitbucket.org:MasterGH/lua-plugin-ce-aa-maker.git
      HEAD branch: master
      Remote branches:
        develop tracked
        master  tracked
      Local branches configured for 'git pull':
        develop merges with remote develop
        master  merges with remote master
      Local refs configured for 'git push':
        develop pushes to develop (fast-forwardable)
        master  pushes to master  (up to date)

     

  4. 49 minutes ago, MasterGH said:

    C# я учил для работы с базами данных.

     

    Спасибо большое за развернутый ответ, очень интересно.

     

    21 minutes ago, Razi said:

    То есть для Python

     

    Да, есть PyCharm Community Edition от JetBrains. Есть конечно еще и всякие PyScripter, но я отдаю предпочтение PyCharm )

    Ну а вообще "тру посоны" пишут на vim / emacs :D

     

  5. 13 minutes ago, MasterGH said:

    То-то я смотрю Lua скрипты пишешь

     

    ага, скриптовые языки, в чем-то схожи, удобно ) 

     

    к слову о регулярках, есть хорошая книжка - Джеффри Фридл - Регулярные выражения (Mastering Regular Expressions). 

    Она небольшая, в целом о теории регулярок, но не слишком углуб ляясь. После нее понимаешь как ими мыслить, становится попроще :)

     

    К слову, @MasterGH, если можно задать нескромный вопрос - а как ты изучал C#? Особенно в разрезе с Unity? :)

  6. 6 hours ago, what228 said:

    COBOL :ph34r:

     

    Spoiler

    O4qnTRLIxGE.jpg

     

    И чтобы не оффтопить - я пишу на Python, он действительно довольно прост (устроился на работу прочитав небольшой гайд по языку :D). Самостоятельно в детстве изучал Delphi, очень удобно рисовать формочки, возможно он тоже подойдет как некое начало. Хотя особой разницы в рисовании формочек между Borland C++ и Borland Delphi (тогда еще Borland) не заметил, без понимания "просто в коде точки сменились на ->" (только потом узнаешь про указатели, разименование и т.д.).  Сейчас понемного штрудирую C#.

     

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

     

    Just now, Razi said:

    НА языке Python можно писать приложения с GUI

     

    Можно, есть библиотеки, но мне кажется он под это всё таки не очень заточен, чаще вижу связку Web-морда + бекенд.

  7. Я только предположу, но в целом, если там вся игра на Lua, то скорее всего тебе нужен следующий урок Garik66: 

    Spoiler

     

     

    Еще я думаю есть вариант взять LuaState и дальше через lua красиво воздействовать на все объекты игры. 

     

    Ну и можно просто скомпилить добавив нужные себе функции :D

    • Плюс 1
  8. 1 hour ago, Trix said:

    ли это делается? 

     

    Мне кажется, что слегка не так. Возможно тут лучше подскажет @uhx.

     

    У тебя точно функция находится по адресу 0xff5de8e6?

     

    Я предполагаю, что тебе нужно через какой-нибудь EnumProcessModules (никогда не писал такого, поэтому просто предполагаю) найти адрес модуля gta-vc.exe, после к этому числу прибавить 0xAE8F0 и получившееся число записывать после call (0xFF XX XX XX XX).

     

    Либо найдя точно местоположение функции (только если ты делаешь для себя и тебе хочется удостовериться в результате) через CE найти правильный адрес (будет что-то типа 0x12345678 и записать его как ты и делаешь - 0xFF 0x78 0x56 0x34 0x12. 

    • Плюс 1
  9. 7 minutes ago, partoftheworlD said:

    Плюс в статье уже все есть

     

    спасибо, как раз об этом писал )

     

    42 minutes ago, Trix said:

    Найти функцию, как у вас

     

    Похоже и правда нет. Это не сравнение, а запись пробела вместо конечного символа. Похоже действительно недавно появилась. В целом да, по другому наверное только мотать до кода, в GTA3 я кажется только так и делал. 

    43 minutes ago, Trix said:

    В общем, а если есть сам адрес функции, могу ли я обратно узнать кто его вызывает? 

     

    Можешь, как написали выше. Но я так понимаю в твоем случае тебе это не нужно же? Я так понимаю ты хочешь просто вызвать эту функцию из своего проекта?

    Если так - в своем проекте ты можешь искать функцию через маску байтов по типу aobscan или, если сложно, то ты можешь просто взять смещение модуля 'gta-vc.exe', прибавить к нему смещение функции (те самые +AE7C0 в моем случае) и делать call по этому адресу. Но смещение не будет работать на других версиях игры.

    Поправьте, пожалуйста, если не прав.

  10. 1 hour ago, Trix said:

    Автор, почему именно такой адрес?


    Привет. Если внимать читательнее - мы выходим на адрес функции через ввод чит-кода.

    Как только введеный чит-код совпадает с одним из списка - в строку ввода чит-кода записывается завершающий символ и вызывается нужная нам функция (её можно определить по передаваемому параметру A2).

    Собственно тебе нужно выйти на следующие инструкции, там же ты и найдешь адрес функции:

    Spoiler

    P11.png

     

    Если тебе нужно найти саму функцию в игре, но ты не хочешь ориентироваться на адрес модуля - провались внутрь самой функции (ПКМ на call - далее Follow) и через aobscan найди её в игре, после так же вызывай через call.

     

    1 hour ago, Trix said:

    Почему номер машины кладется в стек

     

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

    По типу mov esi, [esp+4]

  11. On 4/30/2017 at 9:27 PM, Xipho said:

    ВАЖНО

     

    Из всех Activity пропали операции по типу "Подписался", "Лайкнул", и т.д.

    Это так и задумано и у всех ли так?

     

    зы: еще напомню про то, что у подписи "Город" не хватает пробела :)

  12. 6 hours ago, uhx said:

    Согласен

     

    А вот за этим это всё и пишется, чтобы продвигаться дальше. Понятно, что это всё известно, но это же еще нужно знать куда копать, тут ваши комментарии и помогают :) Заодно тоже могли бы топик с основными ссылками создать, их бы и закрепили )

     

    1 hour ago, MasterGH said:

    Пользователи

     

    Спасибо, но в целом критика то к месту, да и выхлоп есть - правильные слова звучат, теперь еще и знаем куда смотреть ) Осталось только еще где-то время на это взять :D Но никто и не обещал, что будет быстро ))

     

    1 hour ago, partoftheworlD said:

    Видимо

     

    Угум-с :)

  13. 1 minute ago, SergBrNord said:

    Данный конкретный случай - инструкция работает по 5 адресам.

     

    Довольно забавно, у меня только ГГ и изредко появляющийся адрес, который использовался 2 раза.

    В любом случае я не спорю, что нужны фильтры, я вообще начал описывать что за fstp, просто решил попробовать побегать с простой записью и отписал по результатам.

  14. Just now, Garik66 said:

    Так поплывут характеристики, они могут быть и в 4 байта, а ты везде пишешь 50 во float.

     

    Никто же не спорит.

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

  15. 58 minutes ago, SergBrNord said:

    Есть, там, где в теплицу чешешь, это сразу после Пивза

     

    Да, слушай, можешь без фильтров - гномы умирают, улитки засыпают, хп не уменьшается.

    Просто записывай в [eax] после fstp 50 во флоате и будет отлично:

    Да, через следующую запись хп не уменьшается, но нужно использовать фильтры, чтобы выйти на хп игрока, а не на иную характеристику:

    fstp dword ptr [eax]
    
    // записываем всегда 50, ничего не вычитаем
    push (float)50
    pop [eax]
    
  16. 4 minutes ago, SergBrNord said:

    При попытке запустить в окошке эта собака крашится.

     

    Норм, на всяких Пивзах и Волан-де-Мортах работает без фильтрации.

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

    Попробую поискать еще отдельных мобов, не боссов.

  17. Эти инструкции работают со стеком FPU, стеком хранящим и оперирующим значениями с плавающей точкой.

    В CE его можно увидеть во время дебаггинга - справа в окне регистров будет кнопка со стрелкой ">":

    Spoiler

    FPU.thumb.png.5addef1d89d167074d915a8458

     

    Собственно значения в этом окне и будут st(0), st(1) и т.д. Подебажив увидишь как они изменяются.

     

    Инструкция fstp dword ptr [eax] которую ты нашел - это запись здоровья из регистра st(0) в Health структуры игрока.

    Причем можно заметить, что попадает он в st(0) буквально на инструкцию выше - из fld dword ptr [esp+08] - эта инструкция берет значение из стека и пушит его в стек FPU.

     

    Из этого следует, что где-то раньше взяли твое текущее здоровье, отняли его и записали в [esp+08]

    Можно попытаться найти это место, а можно просто после fstp (в целом я думаю можно даже не делать fstp) сделать push [MAX_HEALTH] и pop [eax]. Увы mov [eax],[MAX_HEALTH] сделать нельзя, поэтому приходится через push. Но ты можешь сделать и fld [MAX_HEALTH] и fstp [eax].

     

    Возможно фильтры будут нужны, но у меня есть сохранение только уже на Волан де Морте, поэтому проверить быстро не могу :D

     

    Быстроскрипт без aobscan и фильтров:

    Spoiler
    
    [ENABLE]
    //code from here to '[DISABLE]' will be used to enable the cheat
    alloc(newmem,64)
    label(returnhere)
    label(originalcode)
    label(exit)
      
    label(max_health)
    
    newmem: //this is allocated memory, you have read,write,execute access
    //place your code here
    
    originalcode:
    fstp dword ptr [eax]
    
    // записываем всегда 50, ничего не вычитаем
    push [max_health]
    pop [eax]
    
    pop ecx
    ret 0008
    
    exit:
    jmp returnhere
    
    max_health:
    dd (float)50
      
      
    "Core.dll"+39709:
    jmp newmem
    nop
    returnhere:
    
    
     
     
    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    dealloc(newmem)
    "Core.dll"+39709:
    fstp dword ptr [eax]
    pop ecx
    ret 0008
    //Alt: db D9 18 59 C2 08 00

     

     

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

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

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