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

Dejavu

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

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

  • Посещение

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

  1. Скрытый текст
    
    { Game   : saintsrowthethird_dx11.exe
      Version: 
      Date   : 2017-08-12
    
      This script does blah blah blah
    }
    
    [ENABLE]
    
    aobscanmodule(money,saintsrowthethird_dx11.exe,8B 0F 8B 44 24 24 89) // should be unique
    alloc(newmem,$1000)
    
    label(code)
    label(return)
    
    newmem:
    
    code:
      mov ecx,[edi]
      mov eax,[esp+24]
      jmp return
    
    money:
      jmp newmem
      nop
    return:
    registersymbol(money)
    
    [DISABLE]
    
    money:
      db 8B 0F 8B 44 24 24
    
    unregistersymbol(money)
    dealloc(newmem)
    
    {
    // ORIGINAL CODE - INJECTION POINT: "saintsrowthethird_dx11.exe"+A06C2C
    
    "saintsrowthethird_dx11.exe"+A06C11: 8B 4B 10                 -  mov ecx,[ebx+10]
    "saintsrowthethird_dx11.exe"+A06C14: 8B 91 BC 00 00 00        -  mov edx,[ecx+000000BC]
    "saintsrowthethird_dx11.exe"+A06C1A: 52                       -  push edx
    "saintsrowthethird_dx11.exe"+A06C1B: 6A 00                    -  push 00
    "saintsrowthethird_dx11.exe"+A06C1D: 56                       -  push esi
    "saintsrowthethird_dx11.exe"+A06C1E: E8 5D FC FF FF           -  call saintsrowthethird_dx11.exe+A06880
    "saintsrowthethird_dx11.exe"+A06C23: 8B F0                    -  mov esi,eax
    "saintsrowthethird_dx11.exe"+A06C25: 83 C4 0C                 -  add esp,0C
    "saintsrowthethird_dx11.exe"+A06C28: 85 F6                    -  test esi,esi
    "saintsrowthethird_dx11.exe"+A06C2A: 75 3D                    -  jne saintsrowthethird_dx11.exe+A06C69
    // ---------- INJECTING HERE ----------
    "saintsrowthethird_dx11.exe"+A06C2C: 8B 0F                    -  mov ecx,[edi]
    "saintsrowthethird_dx11.exe"+A06C2E: 8B 44 24 24              -  mov eax,[esp+24]
    // ---------- DONE INJECTING  ----------
    "saintsrowthethird_dx11.exe"+A06C32: 89 08                    -  mov [eax],ecx
    "saintsrowthethird_dx11.exe"+A06C34: 8B 57 04                 -  mov edx,[edi+04]
    "saintsrowthethird_dx11.exe"+A06C37: 89 50 04                 -  mov [eax+04],edx
    "saintsrowthethird_dx11.exe"+A06C3A: 8B 4F 08                 -  mov ecx,[edi+08]
    "saintsrowthethird_dx11.exe"+A06C3D: 5F                       -  pop edi
    "saintsrowthethird_dx11.exe"+A06C3E: 5E                       -  pop esi
    "saintsrowthethird_dx11.exe"+A06C3F: 5D                       -  pop ebp
    "saintsrowthethird_dx11.exe"+A06C40: 89 48 08                 -  mov [eax+08],ecx
    "saintsrowthethird_dx11.exe"+A06C43: 5B                       -  pop ebx
    "saintsrowthethird_dx11.exe"+A06C44: 59                       -  pop ecx
    }

     

    @Garik66

     

    // При большом коде нужны теги и кода и спойлера Garik66

  2. Доброго времени суток, форумчане.

    Решил поиграть в Saints Row: The Third да и поломать по ходу игры.
    Начинаю со взлома кол-ва денег.

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

    abb3eda863e2809678b3a12d356f6dd2-full.pn

    e4a0a68fbca5b004525cb721f0c0a6db-full.pn

    f39da642f725b531e4bdf381fa3c029e-full.pn

  3. Доброго времени суток, форумчане!


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

  4. 5 часов назад, Trix сказал:

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

    Читай информацию из адреса Base + 0x0024EC1C

    Прибавляй к значению по этому адресу +0x36c

    и так до конца указателей

    Я уже разобрался

  5. 5 часов назад, Trix сказал:

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

    Посмотри все модули и сопоставь со своим ;)

    Нет, здесь я использую все правильно, мне и нужен базовый

  6. В 23.10.2016в09:44, partoftheworlD сказал:

    Обновил, под себя переделаешь.

    Я пример смотрю из код своего трейнера, который прекрасно работает.

    Есть функция readP, но, видимо, я неправильно ей пользуюсь

    Скрытый текст
    
    #include "Includes.h"
    
    ProcMem Mem("collapse.exe");
    DWORD Base = Mem.dwBase;
    
    char Pointers[] = {0x36c, 0x308,0x508 };
    
    
    float Status;
    
    
    using namespace std;
    
    int main()
    {
    	float BaseAdress = Mem.readP<float>((DWORD)Base + 0x0024EC1C,Pointers,true);
    		cout  << BaseAdress << endl;
    
    	system("pause");
    	return 0;
    }

     

     

  7. @partoftheworlD Получилось, но только таким образом :D:D
     

    Скрытый текст
    
    int main()
    {
    	DWORD BaseAdress = Mem.read<DWORD>(Base + 0x0024EC1C);
    	DWORD BaseAdress1 = Mem.read<DWORD>(BaseAdress + 0x36c);
    	DWORD BaseAdress2 = Mem.read<DWORD>(BaseAdress1 + 0x308);
    	float Status = Mem.read<float>(BaseAdress2 + 0x508);
    		cout  << Status << endl;
    
    	system("pause");
    	return 0;
    }

     

     

  8. Скрытый текст
    
    #include "Includes.h"
    
    ProcMem Mem("collapse.exe");
    DWORD Base = Mem.dwBase;
    DWORD BaseAdress;
    
    
    float Status;
    
    
    using namespace std;
    
    int main()
    {
    	DWORD BaseAdress = Base + 0x0024EC1C;
    	float Status = Mem.read<float>(((BaseAdress + 0x36c) + 0x308) + 0x508);
    		cout  << Status << endl;
    
    	system("pause");
    	return 0;
    }

     

     

    Все равно не то

  9. Вопрос 1:

     

    Использую ProcMem(Source: ProcMem.h,UPD).
    Пытаюсь получить Base адрес процесса игры:

    ProcMem Mem("collapse.exe");
    DWORD Base = Mem.dwBase;

    Для того, что бы потом с указателя типа "collapse.exe" + 0x123 прочитать значение, но проблема в том, что в CE показывает один адрес процесса(Например, 00905A4D), а в C++  совсем другой(4194304). Не могу разобраться, в чем же проблема?

    Вопрос 2

     

    Как правильно использовать указатель с несколькими смещениями?
    ed734264cab4.png

    Я использую так:

    float Status = Mem.read<float>((((Base + 0x0024EC1C) + 0x36c) + 0x308) + 0x508);

    Или можно 

    float Status = Mem.read<float>(Base + 0x0024EC1C + 0x36c + 0x308 + 0x508);

    Как правильно? 

  10. 4 минуты назад, krocki сказал:

    Dejavu Интересно у тебя так же была упакована игра, блин переупакавали её кокретно, аш ПК начал виснуть.

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

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

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

    Я смотрю все видеоуроки, как же без них. 

     

    Просто куча вопросов, ответы на все вопросы не могут быть в видеоуроках

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

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

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

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

    Попробуйте перезагрузите игру и СЕ тоже. Вполне возможно, так у Вас были вылеты и Вы что там нопили, есть какие-то изменения.

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

    
    89 0E 8B 50 04 89 56 04 83 78 // эти байты

    Если не совпадают, ещё раз выложите СЕ-ный скрипт.

    Попробовал в CS:S сделать через AOB — тоже не хочет включаться
    В той игре миссия не позволяет проверить, но не думаю, что будет работать.

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

    Дерзайте, только откуда вы возьмёте адрес патронов для сравнения? Или адреса в игре статические?

    Да, я это понимаю. Но одноразовый рабочий скрипт, написанный мной — уже радость. Сейчас же мне известен адрес моих патронов, после перезапуска уже неизвестен будет. 

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

    И Совет - игрушка, которую Вы выбрали, судя по коду,  для теперешнего Вашего уровня тяжеловата - сомневаюсь, что Вы сумеете подобрать фильтры

    Я предполагаю, что нужно положить в стек значение esi, если он будет совпадать с адресом моих патрон, то не буду убавлять их

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

    И Совет - игрушка, которую Вы выбрали, судя по коду,  для теперешнего Вашего уровня тяжеловата - сомневаюсь, что Вы сумеете подобрать фильтры.

    Лучше возьмите для взлома более простые игры.

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

    Все нормально, попытка — не пытка :)

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

    а пишете в адрес:

    26 минуты назад, Dejavu сказал:

    mov [esi],#42340000

    В стеке значение находится в 4 байтах, поэтому я и писал так. Разве разница есть между  

    mov [esi],(float)45

    и 

    mov [esi],#42340000

    этим?

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

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

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