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

Pitronic

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

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

  • Посещение

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

    20

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

  1. Нужен такой скрипт между значениями 25 и 100, на инструкциях mov, если меньше 25 то чтоб не чего не менялось, если больше то выполнить mov [наш адрес],#100 и чтоб не в коем случае больше ста. Можно пример на tutorial ce.

  2. Делаю таблицу на крутой Сэм 2 и сейчас проблема со скриптом на включение кодов разработчиков. Чтоб было понятно, объясню сначала значения адресов, Sam2Game.dll+3B994C этот адрес включает коды разработчиков, он статистический а ещё палевый для игры, при значении 2 коды включены, а при значении 0 отключены, Engine.dll+2E3E30, этот адрес в нужен будет для само отключении проверки в момент перехода в следующий уровень, в этом адресе в игре значения меняются со скоростью света, но в момент кат сцены вплоть до выхода в уровень значение 10, он тоже статистический, третий адрес динамический я его назвал шпион, если в нем значение 2 игра видит что коды включены а если 0 не видит но и коды отключает, в общем вот скрипт и под спойлером со скриптом опишу что мне нужно

    Спойлер
    
    [ENABLE]
    aobscanmodule(Proverka,Sam2Game.dll,8B 8E 94 00 00 00 83)
    alloc(newmem,$1000)
    label(code)
    label(return)
    newmem:
    code:
      mov ecx,[esi+00000094]
      jmp return
    Proverka:
      jmp newmem
      nop
    return:
    registersymbol(Proverka)
    [DISABLE]
    Proverka:
      db 8B 8E 94 00 00 00
    unregistersymbol(Proverka)
    dealloc(newmem)
    //_______________________________________________________________________
    EAX=00000000 //из буфера обмена
    EBX=00000018
    ECX=00000000
    EDX=02229CE0
    ESI=7E96E9A0
    EDI=000000C0
    EBP=0012FD5C
    ESP=0012FD48
    EIP=02092882
    Вероятный базовый указатель =7E96E9A0
    02092871 - je 02092950
    02092877 - mov eax,[0237994C]
    0209287C - mov ecx,[esi+00000094]
    02092882 - and eax,03
    02092885 - or ecx,eax
    //_________________________________________________________________________
    //Sam2Game.dll+3B994C адрес для включения
    //Engine.dll+2E3E30 нужен для сравнения

     

    чтоб не было слишком длинно вопрос тоже убираю под спойлер

    Спойлер

    в общем надо когда включаешь скрипт значения были одинаковы

    mov [esi+00000094],0

    mov [Sam2Game.dll+3B994C],0

    это отключены проверка и режим кодов, но скрипт уже включен. Дальше нужны будут флаги и проверка с адресом Engine.dll+2E3E30

    флаг включения, плюс если  [Engine.dll+2E3E30]  равен #10 то mov [esi+00000094],2 и mov [Sam2Game.dll+3B994C],2  прыжок в оригинальный код, а если [Engine.dll+2E3E30] не равен #10 то mov [esi+00000094],0  и  mov [Sam2Game.dll+3B994C],0  прыжок в оригинальный код ну и конечно флаг отключения а в нём mov [esi+00000094],0 и  mov [Sam2Game.dll+3B994C],0

    а когда сам скрипт отключаешь то сначала mov [esi+00000094],0 и  mov [Sam2Game.dll+3B994C],0 а уже потом db 8B 8E 94 00 00 00 иначе если забыть отключить коды в игре они останутся включенными.

    Заранее благодарю всех, кто чем подскажет.

     

     

  3. В 12.09.2016 в 18:05, 530439 сказал:

    очень сложно

    Не чего сложного.  Смотри под спойлером.

    Спойлер

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

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

     

  4. Только что, LIRW сказал:

    В общем там сам смотри как лучше

    Лучше как у тебя придумать не возможно, идеальный вариант, идеально работает, идеально подходит! Я этот чит назвал perfect statistics, что в переводе будет идеальная статистика! Что бы я без папки делал?

  5. 12 минут назад, LIRW сказал:

    А место то найдет, но толков то от него будет

    байты одни и те же, а смещения разные, вот скрипт секретов

    Спойлер
    
    [ENABLE]
    aobscanmodule(SecHack,Sam2Game.dll,85 * * * 8B * * C3 83 C0 68 8B * * C3)
    alloc(newmem,$1000)
    label(return)
    newmem:
    add eax,68
    mov ecx,[eax+0C]  // ?
    mov [eax+08],ecx // ?
    mov esp,ebp
    jmp return
    SecHack+08:  // ?
    jmp newmem
    return:
    registersymbol(SecHack)
    [DISABLE]
    SecHack+08:
    db 83 C0 68 8B E5
    unregistersymbol(SecHack)
    dealloc(newmem)

     

    а вот статистика убитых противников

    Спойлер
    
    { Game   : Sam2.exe
      Version: 
      Date   : 2019-04-25
      Author : Pitronic
    
      This script does blah blah blah
    }
    [ENABLE]
    aobscanmodule(__AddrHook__,Sam2Game.dll,8B * * FF * * * * * 83 * * 85 * 75 * 8B * * * 83 * * 8B)
      alloc(newmem,$1000)
      label(return)
    newmem:
      add eax,68
      mov esp,[eax+14] //
      mov [eax+10],esp //
      mov esp,ebp
      jmp return
    __AddrHook__+14: //
      jmp newmem
      return:
    registersymbol(__AddrHook__)
    [DISABLE]
    __AddrHook__+14:
      db 83 C0 68 8B E5
    unregistersymbol(__AddrHook__)
      dealloc(newmem)

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

    вот из за этого, они и не могут 2 одновременно работать

  6. Только что, LIRW сказал:

    Пропуск байт в паттерне тут на вряд ли поможет

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

  7. Только что, LIRW сказал:

    Значит у тебя версия игры допотопная

    Может быть, только репак на версию стим 2.0.70 от механиков, но я не спорю может они чем то отличаться, потому что это второй случай, и ещё , все твои читы кроме 2 о которых ты знаешь работают. А этот скрипт работает! Что бы я без папки то делал?!☺️

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

    покажи на которой делал анализ структур

    вот из буфера:

    Спойлер
    
    EAX=7E8E42F8
    EBX=7E9BEB08
    ECX=00000004
    EDX=00000000
    ESI=1000B2B0
    EDI=7E9BECFC
    EBP=0012F914
    ESP=0012F8D0
    EIP=020487CD
    
    Вероятный базовый указатель =7E8E42F8
    
    020487C3 - jne 020487CD
    020487C5 - call 021A9120
    020487CA - inc [eax+10]
    020487CD - lea eax,[ebp-14]
    020487D0 - push 023B143C

     

    а из этого писал скрипт инструкцяя всего одна вылезает

    Спойлер
    
    { Game   : Sam2.exe
      Version: 
      Date   : 2019-05-03
      Author : Pitronic
    
      This script does blah blah blah
    }
    
    [ENABLE]
    
    aobscanmodule(INJECT,Sam2Game.dll,FF 40 10 8D 45 EC) // should be unique
    alloc(newmem,$1000)
    
    label(code)
    label(return)
    
    newmem:
    
    code:
      inc [eax+10]
      lea eax,[ebp-14]
      jmp return
    
    INJECT:
      jmp newmem
      nop
    return:
    registersymbol(INJECT)
    
    [DISABLE]
    
    INJECT:
      db FF 40 10 8D 45 EC
    
    unregistersymbol(INJECT)
    dealloc(newmem)
    
    {
    // ORIGINAL CODE - INJECTION POINT: "Sam2Game.dll"+887CA
    
    "Sam2Game.dll"+887AB: 51                             -  push ecx
    "Sam2Game.dll"+887AC: FF D6                          -  call esi
    "Sam2Game.dll"+887AE: 8B 10                          -  mov edx,[eax]
    "Sam2Game.dll"+887B0: 83 C4 04                       -  add esp,04
    "Sam2Game.dll"+887B3: 53                             -  push ebx
    "Sam2Game.dll"+887B4: 8B C8                          -  mov ecx,eax
    "Sam2Game.dll"+887B6: FF 92 D0 01 00 00              -  call dword ptr [edx+000001D0]
    "Sam2Game.dll"+887BC: 83 BB 84 04 00 00 01           -  cmp dword ptr [ebx+00000484],01
    "Sam2Game.dll"+887C3: 75 08                          -  jne Sam2Game.dll+887CD
    "Sam2Game.dll"+887C5: E8 56 09 16 00                 -  call Sam2Game.dll+1E9120
    // ---------- INJECTING HERE ----------
    "Sam2Game.dll"+887CA: FF 40 10                       -  inc [eax+10]
    "Sam2Game.dll"+887CD: 8D 45 EC                       -  lea eax,[ebp-14]
    // ---------- DONE INJECTING  ----------
    "Sam2Game.dll"+887D0: 68 3C 14 3B 02                 -  push Sam2Game.dll+3F143C
    "Sam2Game.dll"+887D5: 50                             -  push eax
    "Sam2Game.dll"+887D6: FF 15 30 20 22 02              -  call dword ptr [Sam2Game.dll+262030]
    "Sam2Game.dll"+887DC: 8B 0D A0 22 22 02              -  mov ecx,[Sam2Game.dll+2622A0]
    "Sam2Game.dll"+887E2: 8B 11                          -  mov edx,[ecx]
    "Sam2Game.dll"+887E4: 8B 38                          -  mov edi,[eax]
    "Sam2Game.dll"+887E6: 8B 03                          -  mov eax,[ebx]
    "Sam2Game.dll"+887E8: 83 C4 08                       -  add esp,08
    "Sam2Game.dll"+887EB: 52                             -  push edx
    "Sam2Game.dll"+887EC: 8B CB                          -  mov ecx,ebx
    }

     

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

  9. Только что, LIRW сказал:

    +14 крен

    +14 по этомусмещению лежит значение если убить всех на уровне

    в статистике отображается так, допустим я убил не всех парчку не нашёл, убито противников 10 /12

    то есть значение 10 лежить в  [eax+10] а значение 12 лежит в [eax+14] это из анализа данных структур,

    вот скрин:

    Спойлер

    STUKTURA.png

    тут видно 12 я убил, а 39 надо для полного счастья, если не все противников убью.

  10. 4 часа назад, LIRW сказал:

    Это кодовая функция

    Дело в том что я то же самое хотел сделать по статистике убитых, 

    но у меня вылет на моём скрипте скрипте,

    Спойлер
    
    { Game   : Sam2.exe
      Version: 
      Date   : 2019-05-03
      Author : Pitronic
    
      This script does blah blah blah
    }
    
    [ENABLE]
    
    aobscanmodule(killStatictic,Sam2Game.dll,FF 40 10 8D 45 EC) // should be unique
    alloc(newmem,$1000)
    
    label(code)
    label(return)
    
    newmem:
      inc [eax+10]
      push [eax+14]
      pop [eax+10]
    
    code:
      lea eax,[ebp-14]
      jmp return
    
    killStatictic:
      jmp newmem
      nop
    return:
    registersymbol(killStatictic)
    
    [DISABLE]
    
    killStanbctic:
      db FF 40 10 8D 45 EC
    
    unregistersymbol(killStatictic)
    dealloc(newmem)

     

    а твой вариант не догнал, как это сделать в моём случае?

  11. 22 часа назад, LIRW сказал:

    в чите активировать трейнер

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

    Сам посмтри

    Спойлер

    { Game   : Sam2.exe
      Version:
      Date   : 2015-12-27
      Author : LIRW2015
    }
    [ENABLE]
    aobscanmodule(Health,Sam2Game.dll,8B 90 88 04 00 00 83 * * 89 55)
    aobscanmodule(Ammo,Sam2Game.dll,8B 44 86 14 5E)
    aobscanmodule(Granades,Sam2Game.dll,8B 44 81 14 5D)
    aobscanmodule(Life,Sam2Game.dll,8B 90 * * * * 8B 46 * 50)
    aobscanmodule(Score,Sam2Game.dll,89 B7 80 00 00 00 8B)
    registersymbol(Health)
    registersymbol(Health_)
    registersymbol(Armor_)
    registersymbol(Ammo)
    registersymbol(Ammo_)
    registersymbol(Granades)
    registersymbol(Granades_)
    registersymbol(Life)
    registersymbol(Life_)
    registersymbol(Score)
    registersymbol(Score_)
    alloc(newmem1,$1000)
    alloc(newmem2,$1000)
    alloc(newmem3,$1000)
    alloc(newmem4,$1000)
    alloc(newmem5,$1000)
    label(code1)
    label(code2)
    label(code3)
    label(code4)
    label(code5)
    label(return1)
    label(return2)
    label(return3)
    label(return4)
    label(return5)
    label(Health_)
    label(Armor_)
    label(Ammo_)
    label(Granades_)
    label(Life_)
    label(Score_)

    newmem1:
    cmp [Health_],0
    je code1
    fild [eax+000000C4]
    fistp [eax+00000488]
    cmp [Armor_],0
    je code1
    fild [eax+000000C8]
    fistp [eax+0000048C]
    code1:
    mov edx,[eax+00000488]
    jmp return1
    Health_:
    db 0
    Armor_:
    db 0
    Health:
    jmp newmem1
    nop
    return1:

    newmem2:
    cmp [Ammo_],0
    je code2
    mov [esi+eax*4+14],#999
    code2:
    mov eax,[esi+eax*4+14]
    pop esi
    jmp return2
    Ammo_:
    db 0
    Ammo:
    jmp newmem2
    return2:

    newmem3:
    cmp [Granades_],0
    je code3
    mov [ecx+eax*4+14],#99
    code3:
    mov eax,[ecx+eax*4+14]
    pop ebp
    jmp return3
    Granades_:
    db 0
    Granades:
    jmp newmem3
    return3:

    newmem4:
    cmp [Life_],0
    je code4
    mov [eax+000008D0],#100
    code4:
    mov edx,[eax+000008D0]
    jmp return4
    Life_:
    db 0
    Life:
    jmp newmem4
    nop
    return4:

    newmem5:
    cmp [Score_],0
    je code5
    add esi,#100000
    code5:
    mov [edi+00000080],esi
    jmp return5
    Score_:
    db 0
    Score:
    jmp newmem5
    nop
    return5:

    [DISABLE]
    Health:
    db 8B 90 88 04 00 00
    unregistersymbol(Health)
    unregistersymbol(Health_)
    unregistersymbol(Armor_)
    dealloc(newmem1)
    Ammo:
    db 8B 44 86 14 5E
    unregistersymbol(Ammo)
    unregistersymbol(Ammo_)
    dealloc(newmem2)
    Granades:
    db 8B 44 81 14 5D
    unregistersymbol(Granades)
    unregistersymbol(Granades_)
    dealloc(newmem3)
    Life:
    db 8B 90 D0 08 00 00
    unregistersymbol(Life)
    unregistersymbol(Life_)
    dealloc(newmem4)
    Score:
    db 89 B7 80 00 00 00
    unregistersymbol(Score)
    unregistersymbol(Score_)
    dealloc(newmem5)

    вот и ответ на мой вопрос,  как  объеденить несколько читов в один,

  12. 23 часа назад, LIRW сказал:

    Мне тоже интересно

    Спойлер

    Разве ты не помнишь как в личке ты давал примеры, как несколько адресов в один сложить? Вот я тебе и ответил ответ в твоей таблице, а конкретно, в чите активировать трейнер, разве это не то о чём я написал? Так что  не доказывает то  о чём ты думаешь. Но справедливости ради случайно, ты попал. Я действительно Stigmaer, но брат не твин, он реальный, а твин у меня действительно был GansterGames. Я даже не стал отпираться пользователю Hipho на его канале что это я и что у меня были твины, когда просил чтоб меня разблокировали, и честно во всём признался. Он мне дал последний и единственный шанс начать с начала и разблокировал. Только забудь стигмаера мне за него стыдно, я его похоронил, стигмаер истерик? а я Pitronic и не хочу иметь с ним не чего общего. Надеюсь на понимание.

     

    В 24.04.2019 в 19:28, LIRW сказал:

     Ещё с таким то приказным тоном

    Где ты увидел приказной тон?

  13. В 24.04.2019 в 17:56, Xipho сказал:

    Это ты к кому обратился?

    Спойлер

    К атору трейнера, в личку писал на счёт вопроса объединение несколько скриптов в один, а ответ вместе с трейнером в таблице

     

  14. В 23.04.2019 в 23:42, Garik66 сказал:

    не за что вроде извиняться

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

     

  15. 22 часа назад, Garik66 сказал:

    Я минуса тебе не ставил.

    Тогда извени я подумал на тебя потомучто под моим вопросом было а ниже твой ответ

    расшифруй команду, пожалуйста.

    Спойлер

     В 22.04.2019 в 19:13, Garik66 сказал:ъ

    2019-04-24_214658.png

     

    22 часа назад, Garik66 сказал:

    Я советов не давал

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

  16. В 23.04.2019 в 12:49, LIRW сказал:

    Игорь... Что то не вижу вылета

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

     

    • Плюс 1
  17. Гарик прочти потом удали. И знай что бы ты не подумал обидеть не хотел.

    Спойлер

    Гарик я понял за что ты мне дал минус, тот вопрос который я задал, ты бы простил нубу, но не тем кто более менее продвинут в асм, но скажу тебе одно даже продвинутые могут чего то не знает а иногда даже тупить, а я не являюсь высшим продвинутым, я на среднем этапе знаний асм. Потому признайся сам себе всё на свете известно? И не было ли у тебя глупости на среднем этапе знаний асм, а не на том уровне что сейчас. И если человек не знает, что он делает? Правильно! Спрашивает. А потом получает минус. Тебе на канале на верняка ставили дизлайки,  чаще всего не заслужено, через это, все ютуберы проходят, какие твои ощущение были? Не думаю что радужные. Всякий дизлайк или минус портит так называемый рейтинг, а это оставляет осадок.

     

     

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

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

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