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

Alexandro

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

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

  • Посещение

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

    1

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

  1. можно ли объеденить 3 инструкции в одну если относятся к разным адресам exe?

    эту (ножи бомбы) :

    [ENABLE]

    //code from here to '[DISABLE]' will be used to enable the cheat
    alloc(newmem,2048,"metro.exe"+1EA318)
    label(returnhere)
    label(originalcode)
    label(exit)

    newmem: //this is allocated memory, you have read,write,execute access
    mov [rcx+000006EC],00000005

    originalcode:
    mov eax,[rcx+000006EC]

    exit:
    jmp returnhere

    "metro.exe"+1EA318:
    jmp newmem
    nop
    returnhere:




    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    dealloc(newmem)
    "metro.exe"+1EA318:
    mov eax,[rcx+000006EC]
    //Alt: db 8B 81 EC 06 00 00

    и эту (мины):

    [ENABLE]

    //code from here to '[DISABLE]' will be used to enable the cheat
    alloc(newmem,2048,"metro.exe"+1EA308)
    label(returnhere)
    label(originalcode)
    label(exit)

    newmem: //this is allocated memory, you have read,write,execute access
    mov [rcx+0000031C],#5

    originalcode:
    mov eax,[rcx+0000031C]

    exit:
    jmp returnhere

    "metro.exe"+1EA308:
    jmp newmem
    nop
    returnhere:




    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    dealloc(newmem)
    "metro.exe"+1EA308:
    mov eax,[rcx+0000031C]
    //Alt: db 8B 81 1C 03 00 00

    и вот эту :)  (аптечки):

    [ENABLE]

    //code from here to '[DISABLE]' will be used to enable the cheat
    alloc(newmem,2048,"metro.exe"+346C60)
    label(returnhere)
    label(originalcode)
    label(exit)

    newmem: //this is allocated memory, you have read,write,execute access
    mov [rcx+00000478],0000001F

    originalcode:
    mov edx,[rcx+00000478]

    exit:
    jmp returnhere

    "metro.exe"+346C60:
    jmp newmem
    nop
    returnhere:




    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    dealloc(newmem)
    "metro.exe"+346C60:
    mov edx,[rcx+00000478]
    //Alt: db 8B 91 78 04 00 00

  2.  

    По поиску общего - в игре есть возможность не выстреливать, а выбрасывать патроны - по одному, по несколько? 

     

     

    или выпил или еще чего , не понимаю вопроса, есть возможность подбирать, есть возможность выстреливать, и обмениваться на станциях патронами

    все, устал!

    пара свежих кодов, саму таблицу пока не обновляю ввиду ее не готовности.

    мины

    [ENABLE]

    //code from here to '[DISABLE]' will be used to enable the cheat

    alloc(newmem,2048,"metro.exe"+1EA308)

    label(returnhere)

    label(originalcode)

    label(exit)

    newmem: //this is allocated memory, you have read,write,execute access

    mov [rcx+0000031C],#5

    originalcode:

    mov eax,[rcx+0000031C]

    exit:

    jmp returnhere

    "metro.exe"+1EA308:

    jmp newmem

    nop

    returnhere:

    [DISABLE]

    //code from here till the end of the code will be used to disable the cheat

    dealloc(newmem)

    "metro.exe"+1EA308:

    mov eax,[rcx+0000031C]

    //Alt: db 8B 81 1C 03 00 00

     

    аптечки

    [ENABLE]

    //code from here to '[DISABLE]' will be used to enable the cheat

    alloc(newmem,2048,"metro.exe"+346C60)

    label(returnhere)

    label(originalcode)

    label(exit)

    newmem: //this is allocated memory, you have read,write,execute access

    mov [rcx+00000478],0000001F

    originalcode:

    mov edx,[rcx+00000478]

    exit:

    jmp returnhere

    "metro.exe"+346C60:

    jmp newmem

    nop

    returnhere:

    [DISABLE]

    //code from here till the end of the code will be used to disable the cheat

    dealloc(newmem)

    "metro.exe"+346C60:

    mov edx,[rcx+00000478]

    //Alt: db 8B 91 78 04 00 00

     
    и второй вариант но_релоад (на револьвере игра вылетает!)

    aobscanmodule(noreload_aob,metro.exe,B2 48 8B 06 48 8B CE) // should be unique

    alloc(newmem,$1000,"metro.exe"+2C0E4E)

    label(returnhere)

    label(no_reload)

    registersymbol(no_reload)

    newmem:

    push [rsi+450]

    pop [rsi+448]

    mov rax,[rsi]

    mov rcx,rsi

    jmp returnhere

    noreload_aob+01:

    no_reload:

    jmp newmem

    nop

    returnhere:

    registersymbol(noreload_aob)

    [DISABLE]

    no_reload://"metro.exe"+2C0E4E

    mov rax,[rsi]

    mov rcx,rsi

    unregistersymbol(noreload_aob)

    dealloc(newmem)

    [ENABLE]
     
    пока забросил это дело нужен моральный отдых ))
    • Плюс 1
  3.  но теперь однозарядный обрез подвисает после 2ух ( !) выстрелов - вариант тогда либо как я и говорил работать с обоими частями (патроны в обойме + патроны общие), либо делай плюс 1 патрон приблизительно так

    до слез  :lol:  теперь обрез работает а хельсингом вылетает это если c add, а если без как ты указал ранее то работает хельсинг и все остальное оружие кроме обреза

  4. Alexandro мне кажется, что основная проблема в том, что ты пытаешься работать только с одной частью. А нужно с обоими: и с количеством патронов в обойме и с общим количеством патронов.

    упростить:

    выбора инструкции - ошибки не вижу

    да извини по этому моменту не отписал, кучу способов перепробовал что бы найти общее кол-во патронов обоимы и запаса, и с учетом+1 и без него и либо мне опыта и знания ассемблера не хватает или такой параметр не задействован :)

    за подсказку и поправку спс +

     

     

    з.ы. уже 14 запоротый сейв ушел :)))

    newmem:push [rsi+450]pop [rsi+448]mov rax,[rsi]mov rcx,rsijmp returnhere 
  5. Посмотри первое видео из этого сообщения внимательно (если понадобится несколько раз).

    А то переспрашивать тебя:

    а правильно ли ты нашёл инструкцию?

    правильно ли нашёл фильтр?

    отвечает ли твоя инструкция за все виды оружия?

    и т.д., как я понял - это запутывать тебя ещё больше.

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

    не просто просмотрел а скачал обе части на hdd и просмотрел раз ё10 каждый. Но суть уловил посмотрю еще раз, может  действительно не туда повернул.

    не ... так золотуха, вот такой адрес накопал в истоках процесса:

    [ENABLE]

    aobscanmodule(noreload_aob,metro.exe,B2 48 8B 06 48 8B CE) // should be unique

    alloc(newmem,$1000,"metro.exe"+2C0E4E)

    label(returnhere)

    label(no_reload)

    registersymbol(no_reload)

    newmem:

    push rdi

    mov rdi,[rsi+450]

    mov [rsi+448],rdi

    mov rax,[rsi]

    mov rcx,rsi

    pop rdi

    jmp returnhere

    noreload_aob+01:

    no_reload:

    jmp newmem

    nop

    returnhere:

    registersymbol(noreload_aob)

    [DISABLE]

    no_reload://"metro.exe"+2C0E4E

    mov rax,[rsi]

    mov rcx,rsi

    unregistersymbol(noreload_aob)

    dealloc(newmem)

    с ним работает no_reload но теперь однозарядный обрез подвисает после 2ух ( !) выстрелов, зато и с хельсингом работает и не вылетает, порекомендуйте упростить скрипт. спасибо.

     

    вышел на него так, на хельсинг на  запись идет 2 адреса:

    1) 13FC10008 - 48 89 BE 48040000  - mov [rsi+00000448],rdi взял за основу его вероятное место значения 1FD50BA0 *

     

    2) 13FEE0B2F - 44 89 B6 48040000  - mov [rsi+00000448],r14d

     
    * в нем нашел все 3 оружия и больше никаких инструкций, пробил его по "найти какие адреса..."
    в нем взял за основу mov rax,[rsi] (вот с этим сижу и думаю а ту ли я инструкцию взял ?)
     
    есть какие мысли по поводу выбора инструкции и грамотности написания скрипта, принимается любая критика... :)
    e51633b04bcd51a37f536858df7ca654.jpeg
     
  6. помогите осознать мы имеем инструкцию mov eax,[rbx+00000448], есть 3 оружия, автомат, хельсинг и револьвер, у них есть обоима, если их через поиск выцеплять и морозить отдельно то все как бы нормально, если делать скрипт на mov eax,[rbx+00000448] которая за них отвечает то происходит вылет, а если отдельно морозить через поиск с отсеиванием то нет, делать фильтр именно на этой инструкции или на инструкции выше? мне эта перезарядка всю плешь проела...

  7. Не правильно. Сек

    Вот так.

    У тебя в структуре по смещению 498h значение было 4 байта или байт?

    если 4 байта, то cmp dword ptr [rbx+498],#1

     если байт, то cmp byte ptr [rbx+498],1

    спасибо, попробую. там 4 байта... :)

    [ENABLE]alloc(newmem,256,"metro.exe"+2C0A1A) label(returnhere)label(Originalcod)newmem: cmp byte ptr [rbx+498],1                                             jne Originalcod                                                  push [rbx+00000450]                                       pop [rbx+00000448] Originalcod:                                   mov eax,[rbx+00000448]jmp returnhere "metro.exe"+2C0A1A:jmp newmemnopreturnhere: [DISABLE]"metro.exe"+2C0A1A:mov eax,[rbx+00000448]dealloc(newmem)  
  8. ВСЕ! по этому вопросу отбой фильтр в принципе верный, на револьвере хтябы не вылетает , но теперь он и не заряжается, все время перезаряжается, а при выборе хельсинга вылетает. будем искать другой путь, спасибо.

    Вариант 3 самый правильный из 3, если фильтр нашёл верно, он по идее должен работать для всего вида оружия.

    Код чуть-чуть подправь:лучше полностью код покажу:

    Перепиши как в последнем моём варианте.

    правильно я понял ?

    [ENABLE]

    //code from here to '[DISABLE]' will be used to enable the cheat
    alloc(newmem,2048,"metro.exe"+2C0A1A)
    label(returnhere)

     

    newmem: //this is allocated memory, you have read,write,execute access

     

     

    cmp dword ptr [rbx+498],1
    jne returnhere // здесь должен быть прыжок на оригинальные инструкции с последующим выходом
    push [rbx+00000450]
    pop [rbx+00000448]


    "metro.exe"+2C0A1A:
    jmp newmem
    nop
    returnhere:

    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    "metro.exe"+2C0A1A:
    mov eax,[rbx+00000448]
    //Alt: db 8B 83 48 04 00 00
    dealloc(newmem)

    [ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048,"metro.exe"+2C0A1A) label(returnhere)label(exit) // не удалить, а изменить название, если изменишь не забудь изменить везде,             // где я проставил exitnewmem: //this is allocated memory, you have read,write,execute accesscmp byte ptr [rbx+498],1                                             jne exit            // здесь должен быть прыжок на оригинальные инструкции с последующим выходом                                        push [rbx+00000450]                                       pop [rbx+00000448] exit:               // метка оригинальных инструкций                         mov eax,[rbx+00000448]jmp returnhere  //exit:            // удалить обе//jmp returnhere   // строчки "metro.exe"+2C0A1A:jmp newmemnopreturnhere: [DISABLE]//code from here till the end of the code will be used to disable the cheat"metro.exe"+2C0A1A:mov eax,[rbx+00000448]//Alt: db 8B 83 48 04 00 00dealloc(newmem) 
  9. спасибо за плюсы  :-D  смог сам переделать надеюсь правильно  ...


    Но убедительно прошу избегать "взаимных" плюсов. 

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


    очередной глупый :-D  вопрос: 

     

    где тут ошибка ? 

    вариант 1

    [ENABLE]


    //code from here to '[DISABLE]' will be used to enable the cheat
    alloc(newmem,2048,"metro.exe"+2C0A1A)
    label(returnhere)
    label(exit)

    newmem: //this is allocated memory, you have read,write,execute access
    cmp [rbx+498],#1                               // фильтр на оружие
    jnb returnhere                                    // уходим если false
    push rcx                                             // резервим rcx
    mov rcx,[rbx+00000450]                    // записываем максимальное кол-во патронов
    mov [rbx+448],rcx                              // заносим получившееся значение в обоиму
    pop rcx                                               // удаляем rcx
    mov eax,[rbx+00000448]
    jmp returnhere


    exit:
    jmp returnhere

    "metro.exe"+2C0A1A:
    jmp newmem
    nop
    returnhere:




    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    "metro.exe"+2C0A1A:
    mov eax,[rbx+00000448]
    //Alt: db 8B 83 48 04 00 00
    dealloc(newmem)

     

    вариант 2


    //code from here to '[DISABLE]' will be used to enable the cheat
    alloc(newmem,2048,"metro.exe"+2C0A1A)
    label(returnhere)
    label(exit)

    newmem: //this is allocated memory, you have read,write,execute access
    cmp [rbx+498],1                               // фильтр на оружие
    jnb returnhere                                  // уходим если false
    push rcxx                                         // резервим rcx
    mov rcx,[rbx+00000450]                  // записываем максимальное кол-во патронов
    mov [rbx+448],rcx                            // заносим получившееся значение в обоиму
    pop rcx                                             // удаляем rcx
    mov eax,[rbx+00000448]
    jmp returnhere


    exit:
    jmp returnhere

    "metro.exe"+2C0A1A:
    jmp newmem
    nop
    returnhere:




    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    "metro.exe"+2C0A1A:
    mov eax,[rbx+00000448]
    //Alt: db 8B 83 48 04 00 00
    dealloc(newmem)

    [ENABLE]

     

    вариант 3

    [ENABLE]

    //code from here to '[DISABLE]' will be used to enable the cheat
    alloc(newmem,2048,"metro.exe"+2C0A1A) 
    label(returnhere)
    label(exit)
     
    newmem: //this is allocated memory, you have read,write,execute access
    cmp [rbx+498],#1                                             // фильтр на оружие
    jnb returnhere                                                  // уходим если false
    push [rbx+00000450]                                       // берем значение из 450
    pop [rbx+00000448]                                         // и заносим в 448
    mov eax,[rbx+00000448]
    jmp returnhere
     
     
    exit:
    jmp returnhere
     
    "metro.exe"+2C0A1A:
    jmp newmem
    nop
    returnhere:
     
     
     
     
    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    "metro.exe"+2C0A1A:
    mov eax,[rbx+00000448]
    //Alt: db 8B 83 48 04 00 00

    dealloc(newmem)

     

    при анализе структур стало понятно что револьвер и дробовик  единственный кто не обладает значением 1 в смещении 498

     

    спрашиваю потому что при выше сделанном фильтре игра УРА не вылетает и О БЕДА максимальное значение патронов записанный в строке 450 не учитывается,  у калаша например в обоиме всегда "1" патрон, у обреза однозарядного "0", а у револьвера 6 как и положено . При чем  без перезарядки у всех кроме дробовика работает как положено(в смысле процесса а не того что мелькает на экране). что это? смещение кода целиком?

  10. взято по принципу свой\чужой 

    ce98c0af072c99f39956c4472878e395.jpeg

    все! Позаимствовал построение кода у Alexander D , внес построение фильтра по принципу свой чужой. Пока 3 уровня прошел без глюков, обновил таблицу изменен код фонарика и но_релоад, но-релоад чуть позже доработаю. 

    Бессмертие (health) рабочий наконец то  :-D 

    [ENABLE]



    aobscanmodule(Health_aob,metro.exe,F3 0F 10 81 08 03 00 00 F3) // should be unique
    alloc(newmem,$1000,"metro.exe"+820D69)
    label(returnhere)
    label(Health)
    registersymbol(Health)

    newmem:
    cmp [rcx+2ec],#1                           // проверяем наш ли это персонаж
    jnb returnhere                                // перепрыгиваем если неверно

    push [rcx+310]                               // копируем базовое значение жизни
    pop [rcx+308]                                 // вытаскиваем уже готовое значение жизни
    movss xmm0,[rcx+00000308]        // записываем
    jmp returnhere

    Health_aob:
    Health:
    jmp newmem
    db 90 90 90
    returnhere:

    [DISABLE]

    Health:
    movss xmm0,[rcx+00000308]

    unregistersymbol(Health)
    dealloc(newmem)

     
     
    просьба залить на форум сюда по возможности. спасибо!
    • Плюс 2
  11. Я думаю, судя по описанному, проблема похожа на ту, которая была у меня при написании скриптов "Бесконечные патроны и стрельба без перезарядки". я её решил.  

    Посмотрите здесь, здесь, здесь, здесь и окончательный вариант скрипта, при котором уже вылетов не было ТУТА.

     

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

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

     

    да я читал данные статьи, просто меня не тк понимают, я не так поясняю. проблема во мне.

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

     тема такая почти все оружие стандартно кроме 3

    1) револьвер после заморозки или нуп адреса +448 при переключении на револьвер игра вылетает

    2) хельсинг, типа пневматики которая стреляет металлическими стрелами, при переключении на него все норм, но как только с него делается выстрел игра вылетает

    3) обрез, нее важно 2 или 4 там ствола, при но_релоаде после 2/4 выстрелов игра продолжается но вот само оружие не перезаряжается и на другое оружие не переключается, спасает только ручное изменение кол-ва патронов через се. 

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

     

    по поводу не стим, а репака... не мне рассказывать что  код может фатально отличаться :)

  12. В каком смысле? Игра падает? Или имеется в виду отдельные глюки с оружием, как например - "зависание" (невозможность перезарядки) дробовика?

    вылетает.

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

  13. Скрипт перекопируй, я его исправил (см. UPD в этом посте)

    работает, но все также крашится. как меня злит моих знаний, умений и понимания не хватает  :sleep:

    это анализ:

    b1164208bc276536bfa2e24a55423b25.jpeg

    имеем:

    1)дробовик базовое значение патронов 2, в примере модифицированный 4 ствольный дробовик (все тот же дробовик но с доп значением которое никак не могу найти)

    2/3) подонок, базовое значение обоимы 8, в примере модифицированный 20 патронов суть та же

     

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

     

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

    d5873061dd35f72a84bb3a7b0dd01a9b.jpeg73f09eb180e80bbb902e326bcabb4b7a.jpeg

  14. А это можно сделать с помощью дополнительного регистра:

    круто :) больше нечего сказать :)

    я кстати нашел того ктт писал трейнер, это участник данного форума, трейнер мейкер, Alexander D

  15. [ENABLE]alloc(newmem,2048,"metro.exe"+2C0A1A)label(returnhere)label(originalcode)newmem:cmp [rbx+448],#400 // сравниваем значение по смещению 448, с 400jnb originalcode // если значение по смещению 448 не ниже (больше, или равно) 400, то выполняем оригинальную инструкциюadd [rbx+448],#1 // если предыдущее условие не сработало, то добавляем один патронoriginalcode: // оригинальная инструкция, в такой конструкции - будет выполняться всегда, так что ошибок быть не должноmov eax,[rbx+00000448]jmp returnhere"metro.exe"+2C0A1A:jmp newmemnopreturnhere:[DISABLE]"metro.exe"+2C0A1A:mov eax,[rbx+00000448]//Alt: db 8B 83 48 04 00 00dealloc(newmem)
    да именно это имелось в виду спасибо! но проблема в другом, тут пример с 400 это фиксированное число, но у каждого оружия оно отлично 6-8-30-45 и т.д. и если будет допустим 8 то он будет пытаться пропихнуть #1 что скорее всего приведет к крашу.

     

    Возможно я не там ищу ответ, просто суть в том что допустим в 450 записано максимальное значение для каждого типа оружия, я меняю с оружия АК (30 патронов) на хельсинг (8 патронов), в памяти (+448) прописывается именно 8 в игре отображается тоже 8 (т.е. вроде все правильно), но как только я произвожу выстрел с хельсинга, то игра слетает. я прикинул что может это именно из-за этого, а может и нет и меня это вопрос мучает :(

     

    второй интересный момент что в игре если подобрать оружие вместимостью 30 патронов то оно дает(показывает) оружие с 30 патронами  (но по поиску через СЕ бьется как 29),  как только я жму reload то на экране отображается 31 патрон в обоиме, при этом по поиску он так же пробивается как 30, защита? может в этом дело?

  16. Залил под твоим авторством. В теме напиши информацию по игре (если репак - то какая таблетка, если лицензия - то укажи, что это лицензия, и список опций составь), я обновлю в посте.

     

     

    надеюсь правильно вписал :)

    mov eax,[rbx+450]mov [rbx+448],eax

    учту спасибо :),

    в целом суть в том что бы если обоима не полная то плюсовалось по патрону (т.е. типа

    cmp [rbx+448],[rbx+450]

    add [rbx+448],#1

    jme returnhere

    не знаю как правильно :-[  

    до полного достижения максимального значения и при достижении такогого останавливалось.

  17.  

    ну долго пояснять в общем и целом, суть в том что не могу отыскать корневой процесс отвечающий за свой чужой в силу неопытности.
    В общем и целом кидаю скрипт там все достаточное для прохождения игры "с кайфом"
    1. противогаз(фильтр)
    2. фонарик (если холдить возможен вылет лучше забиндить на клаву)
    3. no reload (100% вылет при смене на хельсинг или револьвер)
    4. гранаты и ножи х5
    5. все патроны включая револьверные "убойные"
    6. давление для хельсинга
    7. заряд для рельсы
    8. давление для тихарь и огнемет
     
    даже файл залить не могу нормально  :-D
     
    Пы.Сы. в любом случае спасибо за ответы и ссылки много нового и действительно полезного узнал после годов использования артаМ. Удачи в новом году )

     

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

    функции:

    1) фильтр

    2) фонарик (torch) (по прежнему может вылететь если переходить от сцены к сцене)

    3) без перезарядки (no_reload) не включать с хельсингом или револьвером

    4) снаряжение (ammunition(kniwes, granade x5))

    5) все патроны (all 30000(включая револьверные убойные и пульки))

    6) давление хельсинга (metro 2033) (helsing)

    7) заряд рельсы (relsa)

    8) давление пневматики (pnevma)

    дальше не мои:

    Infinite Mask Filter

    NoClip ( toggle with ~ hotkey ) (работает)

    hideCrosshair (работает)

    hideHands And hideWeapon (работает)

    GodMode (работает но только на арене местами крашит где есть демоны или пауки, самому отфильтровать не удалось и не мне одному видимо...)

    GasmaskOverride (работает)

    readme описание скриптов указанных выше

     

    Новые адреса:

     

    на майл облаке

    на яндексе (если кому не сложно перезалейте на форум у меня пока нет такой опции)

     

    пы.сы. все же был бы рад в принятии помощи по удаленке типа скайпа или ТмВ в отсеивании свою чужой, фонарика и перезарядки для исключения краша :)

  18. такой вопрос:

    есть инструкция 

    [ENABLE]

    //code from here to '[DISABLE]' will be used to enable the cheat
    alloc(newmem,2048,"metro.exe"+2C0A1A)
    label(returnhere)
    label(originalcode)
    label(exit)

    newmem: //this is allocated memory, you have read,write,execute access

    originalcode:
    push ecx
    mov ecx,[rbx+00000450]
    mov dword ptr [rbx+00000448],ecx
    pop ecx
    mov eax,[rbx+00000448]

    exit:
    jmp returnhere

    "metro.exe"+2C0A1A:
    jmp newmem
    nop
    returnhere:




    [DISABLE]
    //code from here till the end of the code will be used to disable the cheat
    "metro.exe"+2C0A1A:
    mov eax,[rbx+00000448]
    //Alt: db 8B 83 48 04 00 00
    dealloc(newmem)

    интересует этот фрагмент : 

    originalcode:

    push ecx
    mov ecx,[rbx+00000450]
    mov dword ptr [rbx+00000448],ecx
    pop ecx
    mov eax,[rbx+00000448]

     

    как правильно написать фильтр если смещение -450 это базовое значение, а смещение -448 это текущее значение в игре (обоима)? 

    например с функцией ADD к примеру #1

     

    вся проблема в том что при переключение на хельсинг или револьвер изначально выставляется значение верно, при перезарядке та же цифра которая записана в -450 (то есть условие выполняется), а при выстреле из оружии происходит краш :(

  19. Честно говоря, я мало что понял из поста

    ну долго пояснять в общем и целом, суть в том что не могу отыскать корневой процесс отвечающий за свой чужой в силу неопытности.
    В общем и целом кидаю скрипт там все достаточное для прохождения игры "с кайфом"
    1. противогаз(фильтр)
    2. фонарик (если холдить возможен вылет лучше забиндить на клаву)
    3. no reload (100% вылет при смене на хельсинг или револьвер)
    4. гранаты и ножи х5
    5. все патроны включая револьверные "убойные"
    6. давление для хельсинга
    7. заряд для рельсы
    8. давление для тихарь и огнемет
     
    даже файл залить не могу нормально  :-D
     
    Пы.Сы. в любом случае спасибо за ответы и ссылки много нового и действительно полезного узнал после годов использования артаМ. Удачи в новом году )
  20. Спасибо) С наступающим :)

    все, мозга нет! по инструкции со ссылки выше в поиске бряка на адрес по записи, и чтения доступа с отладчика выпадает миллион адресов а не конкретно игрок\враг. если делать как в видео "часть 2" то по доступу выпадает конечно только 1 адрес, и бряк (данные-прерваться на записи (стек)) адекватно с адреса  берет, но вот значения которые там есть ни одно не подходит , даже пробовал значения ниже уровнем 

    2D177EC8(float) здоровье

    значения из стека:

    2D177EC0-сам себя

    2D177bc0-сам себя

    2D176c20-в найденых адресах нет искомого с8

    2D16ecf0-сам себя

    2D16a1d8-нет с8, не подходят потому что они показывают на бряке только самих себя :( готов поделиться TeamW или sky для решения вопроса, или можно закрывать тему ) видимо я чего то недогнал реально по теме :)

     

    поиск через доступ:

    metro.exe+1DDDFD - 0F2F 81 08030000 - comiss xmm0,[rcx+00000308]

    поиск через запись:

    13F56388C - F3 0F11 49 08 - movss [rcx+08],xmm1

    13F56394D - F3 41 0F11 10 - movss [r8],xmm2

    поиски проводил по обоим.

  21. В главном окне СЕ нажать на кнопку "Опции" (под логотипом СЕ, справа, сверху), далее, в открывшемся окне перейти в "Параметры отладчика" (слева), и выбрать нужный отладчик. Лучше - "VEH отладчик")

     

    Варианты всегда есть. На каждый хитрый болт - найдется гайка похитрее ;)

    помогло, тема актуальна, ушел курить на новогоднии праздники. админов, модеров и персонал с наступающим :)

  22. ""Тут" - это вам не здесь" (с) :D

    На нашем форуме множество статей и видео-уроков

     

    сделал по видео "вслом булитшторм" срипт норелоад

    , работает  :-D

    [ENABLE]

    //code from here to '[DISABLE]' will be used to enable the cheat

    alloc(newmem,2048,"metro.exe"+2C0A1A)

    label(returnhere)

    label(originalcode)

    label(exit)

    newmem: //this is allocated memory, you have read,write,execute access

    originalcode:

    push ecx

    mov ecx,[rbx+00000450]

    mov dword ptr [rbx+00000448],ecx

    pop ecx

    mov eax,[rbx+00000448]

    exit:

    jmp returnhere

    "metro.exe"+2C0A1A:

    jmp newmem

    nop

    returnhere:

    [DISABLE]

    //code from here till the end of the code will be used to disable the cheat

    "metro.exe"+2C0A1A:

    mov eax,[rbx+00000448]

    //Alt: db 8B 83 48 04 00 00

    dealloc(newmem)

     

    относительно здоровья все сложнее, не могу воспользоваться ни анализатором ни проверку ни "кто еще может использовать этот процесс" причем ни с metro redux ни с last ligth (екзешник у стима видимо один и тот же)

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

     

    что делать ума не приложу, но ведь тренер есть, значит есть варианты?  :unsure:  вторая 1.5 хмеля пошла   :-D

  23. По поводу бессмертия: тебе нужно написать фильтр "Свой-Чужой", чтобы бессмертие действовало только на тебя. Для этого можешь почитать эту тему, а также видео-уроки по данному вопросу в соответствующем разделе форума.

     

     

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

     

     

    По поводу бессмертия: тебе нужно написать фильтр "Свой-Чужой", чтобы бессмертие действовало только на тебя. Для этого можешь почитать эту тему, а также видео-уроки по данному вопросу в соответствующем разделе форума.По поводу остальных скриптов сказать не могу, т.к. игры под рукой нет, и точно не знаю, какие там значения максимальные, и какие типы имеют. Так что нужно ждать людей, у кого эта игра есть, либо какую-то дополнительную информацию привести, которая бы пролила свет на возможные ошибки в скриптах.

     

     

    дополнительную информацию какого рода? логи с отладчика? игра есть... руки тоже, с мозгами сложнее  :-D​ 

  24. Доброго времени суток! Прошу помощи в редактировании таблицы, конкретно есть 3 меню из-за которых происходит вылет игры на перезарядку (при смене оружия с меньшим кол-вом патронов) и при включении фонарика когда поставлено максимальное значение зарядки. 

    Бессмертие действует но при это и на меня и на противников :)

     

    работает как на метро редукс так и на metro last light redux 1.0.0.3

     

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

     

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

    пы.сы. 2 да статьи в туторах читал про  esi eax, но чесnно говоря ничего не получилось видать мозгов не хватило. 

     

    Заранее спасибо!

     

    [ENABLE]

    //это энергия

    alloc(newmem,2048,"metro.exe"+3485C8)

    label(returnhere)

    label(originalcode)

    label(exit)

    newmem: //this is allocated memory, you have read,write,execute access

    mov [rbx+00000480],(float)1

    originalcode:

    mov eax,[rbx+00000480]

    exit:

    jmp returnhere

    "metro.exe"+3485C8:

    jmp newmem

    nop

    returnhere:

    [DISABLE]

    dealloc(newmem)

    "metro.exe"+3485C8:

    mov eax,[rbx+00000448]

    //Alt: db 8B 83 48 04 00 00

     

    [ENABLE]

    //это no reload

    alloc(newmem,2048,"metro.exe"+2C0A1A)

    label(returnhere)

    label(originalcode)

    label(exit)

    newmem: //this is allocated memory, you have read,write,execute access

    mov [rbx+00000448],00000006

    originalcode:

    mov eax,[rbx+00000448]

    exit:

    jmp returnhere

    "metro.exe"+2C0A1A:

    jmp newmem

    nop

    returnhere:

    [DISABLE]

    //code from here till the end of the code will be used to disable the cheat

    dealloc(newmem)

    "metro.exe"+2C0A1A:

    mov eax,[rbx+00000448]

    //Alt: db 8B 83 48 04 00 00

     

    [ENABLE]

    //здесь бессмертие (но что странно оно действует и на меня и на противников :))) )

    alloc(newmem,2048,"metro.exe"+1DDDFD)

    label(returnhere)

    label(originalcode)

    label(exit)

    newmem: //this is allocated memory, you have read,write,execute access

    mov [rcx+00000308],(float)1

    originalcode:

    comiss xmm0,[rcx+00000308]

    exit:

    jmp returnhere

    "metro.exe"+1DDDFD:

    jmp newmem

    nop

    nop

    returnhere:

    [DISABLE]

    //code from here till the end of the code will be used to disable the cheat

    dealloc(newmem)

    "metro.exe"+1DDDFD:

    comiss xmm0,[rcx+00000308]

    //Alt: db 0F 2F 81 08 03 00 00

    //NullAlex: дубликат темы удалил, который был создан спустя пять минут. Саму тему переместил в подходящий раздел. На будущее: темы и сообщения от членов группы "Гостей" должны пройти модерацию перед тем, как попасть на форум. Как только пользователь перестает быть членом группы "Гостей" - его темы и сообщения проходят на форум без премодерации.

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

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

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