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

Garik66

Помогаторы
  • Постов

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

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

    292

Весь контент Garik66

  1. Dison, если ты про фильтр Vlad2, то Baracuda написал: или ты использовал другой фильтр, если да - то выложи для всех. Baracuda, обрати внимание, что сигнатура отличается также всего на один байт (Для "Update3" 7С, Для "Update2" E2, а для для лицензии 1.0.335.2 (Update 3) 8C .
  2. Baracuda, ок! Тогда конечно нужно подбирать универсальный фильтр и смотреть сигнатуры на разных версиях, чтобы попробовать сделать скрипт для всех версий. Но я пока в неё не играю, подожду, когда патчи повыпускают и репакеры доразберутся. А пока смотрю видеопрохождение. (В подобные игры раньше не играл - впечатляет, в хорошем смысле!)
  3. Baracuda, тогда уж лучше использовать фильтр Vlad2 из этого скрипта. Он точно рабочий и эксклюзивный.
  4. Вот здесь есть немного об этом, а также скрипт и видео.
  5. Тогда вот это: нужно поподробней изложить. Какую инструкцию nopиш? И на какой переход меняешь?
  6. Самый точный (но очень долгий) поиск: "неизвестное значение", тип "все", метод - изменилось/не изменилось. Смотри уроки Xipho. Тип "4 байта" (самый универсальный из всех типов), включает в себя при это методе - значения 4 байта, закодированное значение и float. В нашем случае (Fallout3 поиск нанесённого урона): "неизвестное значение", тип "float", метод - уменьшилось (при лечении)/увеличилось (при нанесении урона)/не изменилось (если ничего не поменялось).
  7. Не можешь найти потому что в fallout3 текущее здоровье это "здоровье - нанесённый урон". Вот тебе нужно и обнулять нанесённый урон. Если что по fallout3 смотри мою тему здесь.
  8. Во-первых не понятно - на что ты ставил бряк (на дамаг?) // Бряк на запись сработал здесь. PS: И ещё jg - это оригинальный прыжок или уже изменённый тобой? Во-вторых предположу, что раз ты игрался с переходом jg zbotcz.weapon_usp+602., то видимо игра не получает значение дамага и тебе его нужно занести в адрес, наверное нужно сделать так, перед прыжком jg zbotcz.weapon_usp+602 записать в адрес [zbotcz.worldspawn+E750], какое-нибудь значение, типа: mov dword ptr [zbotcz.worldspawn+E750],(float)1000 а после пусть инструкция fld dword ptr [zbotcz.worldspawn+E750] // (float)1000ret выталкивает это значение в стек. Попробуй, может получиться.
  9. Проверил смещение, только на Франклине (играть в игру буду попозже, поэтому только в доме Франклина в самом начале) - у меня работает: [ENABLE]aobscanmodule(InfiniteCash,GTA5.exe,E2 48 83 C1 10 48 89 4C 24 10 8B 01 33 C9 89 44 24 08) alloc(newmem,$1000,"GTA5.exe"+C31565) // Для "Update3" E2 в сигнатуре замените на 7Сlabel(return)label(Odin)registersymbol(Odin)registersymbol(InfiniteCash)newmem:cmp byte ptr[Odin],1 // Чтобы один раз.jne @f // Защита от переполнения, т.к. думаю, что инструкцияmov byte ptr[Odin],0 // очень часто обращается к адресу.cmp [rcx+fc4],00005345// Фильтр Baracudajne @fxor [rcx],rcx // Раскодируем значение денюжков прямо в адресе.add [rcx],#100000 // Добавим в кошелёк обещанные 100000 $.(Если нужно больше, // исправьте цифру (100000 на нужную) прямо в скрипте.xor [rcx],rcx // И снова закодируем денюжкки.@@:mov eax,[rcx] // Оригинальные инструкции игры.xor ecx,ecxmov [rsp+08],eaxjmp returnOdin: // Добавим в таблицу адрес с адресом "Odin" и названиемdb 1 // "1 - добавим 100000$ нашему чуваку :)"InfiniteCash+0A:jmp newmemnopnopnopreturn:[DISABLE]InfiniteCash+0A: // GTA5.exe+C31565db 8B 01 33 C9 89 44 24 08unregistersymbol(Odin)unregistersymbol(InfiniteCash)dealloc(newmem)
  10. На деньги - уже не проблема. Здесь выложен скрипт на добавление денег: Vlad2 - фильтр, Garik66 - логика дешифрования и Dison - сигнатуры для двух версий игры.
  11. Отлично теперь есть уже для двух версий. Хотя, если бы использовался изначально Plugin AA (для сигнатуры), то уверен, что подошёл бы для всех версий.
  12. PS: Еле еле доехал до дома по-моему первый парень Франклин. Вошёл в телефон. Да скрипт работает. Так что Dison, логика шифрования такая же как и везде - главное понять, где шифрованное значение, а где константа. Комментарии внутри скрипта.
  13. По этим байтам (F3 0F 11 40 20 - байты) находятся две инструкции. Так что скорее всего может случиться глюк, при включении скрипта. Вот допустим как Plugin AA делает: [ENABLE]aobscan(Timer, f3xxxxxxxx00xx00xx01xx00xx00xxxx0d)alloc(newMem, 64)label(returnHere)registersymbol(Timer)newMem:mov [rax+20],1jmp returnHereTimer:jmp newMemreturnHere:[DISABLE]Timer:movss [rax+20],xmm0unregistersymbol(Timer)dealloc(newMem) minesweeper.exe+2B75B - F3 0F11 40 20 - movss [rax+20],xmm0minesweeper.exe+2B760 - 00 00 - add [rax],alminesweeper.exe+2B762 - 00 CD - add ch,clminesweeper.exe+2B764 - 01 00 - add [rax],eaxminesweeper.exe+2B766 - 00 00 - add [rax],alminesweeper.exe+2B768 - 00 48 8B - add [rax-75],clminesweeper.exe+2B76B - 0D F0F40700 - or eax,7F4F0
  14. нет это из другой игры, а ссылку на код Vlad2 дал для примера. Спасибо. Только теперь придётся читать про новые для меня опкоды: shr, and, rep.
  15. Если пойдёт тот же "разовый" скрипт, то также как делали недавно: [ENABLE]alloc(newmem,2048)label(returnhere)label(odin)newmem:cmp byte ptr [odin],1jne @fmov byte ptr [odin],0mov [ecx+24],(float)210@@:fstp dword ptr [ecx+24]pop ebpret 0004jmp returnhereodin:db 1"CLOS2.exe"+A881D:jmp newmemnopnopreturnhere:[DISABLE]"CLOS2.exe"+A881D:fstp dword ptr [ecx+24]pop ebpret 0004dealloc(newmem)
  16. Dison, пока ещё не играл (чёй-то я начитался сообщений на форуме где качал репак, решил попозже). Но проанализировав код игры, делаю вывод, что Vlad2 не много нас запутал своим кодом. Думаю там всё по стандартной схеме: т.е. в [rcx] - лежит закодированное значение. а rcx - одновременно и адрес закодированного значение и константа через которую кодируется значение. Тогда скрипт можно переписать попроще (взял за основу твой скрипт): [ENABLE]aobscanmodule(InfiniteCash,GTA5.exe,E2 48 83 C1 10 48 89 4C 24 10 8B 01 33 C9 89 44 24 08) alloc(newmem,$1000,"GTA5.exe"+C31565) // Для "Update3" E2 в сигнатуре замените на 7Сlabel(code)label(return)label(go)label(michael)label(franklin)label(trevor) label(Odin) registersymbol(Odin)registersymbol(InfiniteCash)newmem:cmp [rcx+d4],'MONE'//Y_SPENT_IN_CLOTHESje franklincmp [rcx+134],'MONE'//Y_SPENT_IN_CLOTHESje michaelcmp [rcx+94],'MONE'//Y_SPENT_IN_CLOTHESje trevormichael:cmp [rcx+144],'LOTH'je gojmp codefranklin:cmp [rcx+e4],'LOTH'je gojmp codetrevor:cmp [rcx+a4],'LOTH' // Надеюсь фильтры правильные.je gojmp codego:cmp byte ptr[Odin],1 // Чтобы один раз.jne code // Защита от переполнения, т.к. думаю, что инструкцияmov byte ptr[Odin],0 // очень часто обращается к адресу. xor [rcx],rcx // Раскодируем значение денюжков прямо в адресе.add [rcx],#100000 // Добавим в кошелёк обещанные 100000 $.(Если нужно больше, // исправьте цифру (100000 на нужную) прямо в скрипте. xor [rcx],rcx // И снова закодируем денюжкки. code:mov eax,[rcx]xor ecx,ecxmov [rsp+08],eaxjmp returnOdin: // Добавим в таблицу адрес с адресом "Odin" и названием db 1 // "1 - добавим 100000$ нашему чуваку :)"InfiniteCash+0A:jmp newmemnopnopnopreturn:[DISABLE]InfiniteCash+0A:db 8B 01 33 C9 89 44 24 08unregistersymbol(Odin) unregistersymbol(InfiniteCash)dealloc(newmem)
  17. Теперь всё работает и у заказчика. Окончательный скрипт, таблицу, инструкции и видео выложил здесь.
  18. 15 раз скачали

    Опции: 1. GodMod ((InfiniteHealth и InfiniteStamina) 2. InfiniteItems 3. OneHitKill Подробнее - видео, инструкции и скрипт - смотрите в теме поддержки файла.
  19. Посмотрел твой скрипт, да они у нас одинаковые: я не заметил, что ты поменял jne на je originalcode. У меня флаг по умолчанию равен 1.
  20. NullAlex, Я одноразовых скриптов уже переделал КУЧУ. В твоём случае флаг всегда будет равен 1. Поэтому смысла в твоём скрипте во флаге - 0. ЗЫ: Я ошибся у NullAlex правильный скрипт, просто не посмотрел значение флага и прыжок (je), а так у нас одинаковые скрипты.
  21. NullAlex, в этой строчке mov byte ptr [_money],#1 // Если не равно "1" - скрипт не активировался, значит выставляем единицу, и продолжаем выполнениеты не прав, т.к. скрипт будет выполняться постоянно, а соответственно будет переполнение денюжков. (и скорее всего вылет, если Dison, использует инструкцию, которая часто обращается к адресу. ЗЫ: Я ошибся у NullAlex правильный скрипт, просто не посмотрел значение флага и прыжок (je), а так у нас одинаковые скрипты. Dison, попробуй мой вариант: [ENABLE]alloc(newmem,128)label(_money)label(_money2)label(originalcode)label(returnhere)registersymbol(_money2)aobscan(aob_money2,8B 88 E8 00 00 00 8B 46 58 3B C8 76 2B 2B C8 89 4E 5C)newmem:cmp byte ptr [_money],1 jne originalcodemov byte ptr [_money],0 cmp dword ptr [eax+00000128],1 jne originalcode // так как я не знаю для чего 1 (для наших/или нет -ты об этом не написал), // то поставил jne (но может нужно наоборот je). add [eax+000000E8],#10000originalcode:mov ecx,[eax+000000E8]jmp returnhere_money: db 1 // для метки достаточно byteaob_money2:_money2:jmp newmemnopreturnhere:[DISABLE]_money2:mov ecx,[eax+000000E8]unregistersymbol(_money2)dealloc(newmem)
  22. MasterGH и Xipho, спасибо. В скрипте решил не париться, а проверять первые четыре байта текста в Hex и фильтр сработал как надо. Но Ваша информация тоже пригодиться.
  23. Нашёл решение. Вылеты происходили из-за того, что не у всех адресов, работающих с инструкцией по смещению [eax+20] есть поинтеры и соответственно, при выполнении cmp dword ptr [ecx+10],5F766E69, происходил вылет из игры. Так что поставил заслон из фильтров и скрипт заработал, кстати заработал и у Manchkin. [ENABLE]alloc(newMem, 64)label(returnHere)label(OK)newMem:cmp [eax],3jne OKcmp [eax+18],4jne OKcmp [eax+28],4jne OKmov ecx,[eax+20]cmp [ecx+10],5F766E69 //'inv_'jne OKmov [eax+08],00000000mov [eax+0C],40240000OK:mov ecx,[eax+08]mov [edx+08],ecxjmp returnHereGame.exe+113B69:jmp newMemnopreturnHere:[DISABLE]Game.exe+113B69:mov ecx,[eax+08]mov [edx+08],ecxdealloc(newMem)
  24. Обид ни каких. Просто интересно, как шифруется. Игру пока не установил, не могу разобраться с инсталлятором. Вроде разобрался - нужно было удалить/переименовать один файл из скачанной раздачи.
×
×
  • Создать...

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

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