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

Garik66

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

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

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

    292

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

  1. Dison, значение по-моему не шифрованное (я уже выше здесь писал), а проверяется (дублируется в int в нескольких местах), поэтому и не можем повлиять (заморозить, изменить) на значения патронов.
  2. Ищется спокойно - значение во Float, у Host7070 на скрине инструкции теже, что и у тебя (Game.exe+2AF08C - D9 1D 74C68500 - fstp dword ptr [Game.exe+45C674]), но видимо это видимое значение . Немного посмотрел код, на первый взгляд значение не шифрованное, а дублируется в несколько адресов и потом проверяется. Скорее всего нужно найти прыжок на проверку и отключить его - тогда и к-во патронов можно будет контролировать.
  3. Dison, если не разберёшься, то кинь мне ссылку на игру в личку, разберусь, потом попробую объяснить в теме.
  4. Xipho - http://forum.gamehacklab.ru/tutorials/article/15-vzlom-igr-ot-a-do-ia-11-vzlom-shifrovannykh-znachen/ Garik66 - здесь и здесь
  5. Столкнулся с проблемой. В скрипте очень большое количество фильтров. И мне кажется некоторые из фильтров уже не срабатывают. Покопался в интернете и нашёл: "Условные переходы могут делать только ближний прыжок, а команда jmp может делать и короткий и дальний прыжки. " А скрипт давно уже превысил размер в 127 байт. (короткий прыжок). Получается, что условный переход в скрипте уже не работает. Чем можно заменить в скрипте условный переход, но при этом, чтобы условие "равно/не равно" проверялось? Помогите, а то подзавис со скриптом. Заранее Большое СПАСИБО!!! Вроде разобрался. У меня было так: cmp 1je ...cmp 2je ...cmp 3je ...cmp 4je ...cmp 5je ...// и т.д. Заменил на связку: cmp 1jne @fjmp .....@@:cmp 2jne @fjmp ....@@:cmp 3jne @fjmp .....@@:cmp 4jne @fjmp .....@@:cmp 5jne @fjmp .....@@:Правда удлинился код скрипта, но за то теперь можно быть уверенным, что условный переход делает короткий прыжок.
  6. NullAlex, ещё просьба сделай пжлста логотип побольше в формате (.png) для записи видео. А то вчера снял видео, предварительно перевёл ico в png, а значёк малюсенький получился. (я в этом не очень разбираюсь). А (.png) - это для Бандикама - чем пишу. Заранее болшой СПАСЫБ.
  7. Сейчас связка - "70" пролетела - 15 самолётов (7 и 8). КРАСОТА!!!
  8. Самолёты (летят на парад) над домом - КРАСИВО, но гул жуткий.
  9. ZOCKIR, секретов и пасхалок в игре много:
  10. Garik66

    С Днём победы!

    Поздравляю всех!!!!!
  11. Мысль классная, спасибо MasterGH, сейчас буду пробовать. Но вот в конце отсева, вопрос всё-таки остаётся: допустим останется 200 не меняющихся адресов - как отделить нужный адрес? Только заморозкой? Если заморозкой, то по какому критерию определить, что заморожен нужный адрес?
  12. Что проверять? Именно этого я и не понимаю. Уже несколько раз задавал вопрос, но ответа так и не получил. Давайте ещё попробую задать вопрос: Ищем адрес денег допустим: при заморозке правильного адреса - деньги не тратятся. Ищем адрес здоровья: при заморозке правильного адреса - здоровье не тратится. Ищем координаты ГГ: при заморозке правильного адреса - ГГ не может двигаться. А что в этом случае будет при заморозке? Не будет двигаться прицел?- вроде нет, по-идее он не зависит от этих координат. Будут пули лететь в одну сторону не зависимо от поворота пистолета? Вот этого я и не понимаю. Как проверить, что адрес правильный? И ещё правильно ли я понимаю: Допустим встану вплотную к любой стене, направлю прицел на стену (нужная мне координата будет совпадать с координатой ГГ ну +/- немножко). Начинаю пятиться ГГ, а прицел также направлен в ту же точку, нужная мне координата не меняется? Правильно или нет? Вот это я никак догнать не могу.
  13. Открыл. Я раньше не играл в эту серию и не знал, что они есть.
  14. Оказывается есть читы встроенные:
  15. Всё-таки я не понял как искать координаты "прицела" (а точнее не прицела, а "туда, куда должна полететь пуля") для Blink-телепорта. Объясните как правильно это сделать. Снова возникла необходимость найти эти координаты. Но не получается. Объясните всю методику поиска. С самого начала и в конце, когда останется пару сотен не меняющихся адресов, что делать в этом случае? С координатами героя понятно - заморозил и, если герой не может двигаться, то это координаты героя. А что будет если заморозить координаты "прицела"? Чёй-то до меня это не доходит, ни как не могу понять.
  16. Я думал, что ты следил за своей темой - и соответственно успел скопировать скрипты, которые выкладывал aliast. MasterGH почистил тему, т.к. скрипты взяты из трейнера без согласия автора (с PG.ru). Суть метода, что мы как бы не меняем кода игры своими скриптами, точнее смотри это сообщение MasterGH и это сообщение aliast. Скрипты, которые у меня есть: скрипт InfHealth и сопутствующий ему скрипт LUA. Могу кинуть тебе в личку, если нужны.
  17. Проверил (подправил Lua-скрипт, который ты выкладывал - удалил лишние адреса, оставил только healthbase) и в скрипте InfHealth добавил ту строчку, которую СЕ не хочет компилировать {LuaCall(RemoveBreakPointNow("healthbase"))}, не обращая внимание на СЕ, сохранил скрипты и активировал. Обход защиты работает (насколько тормозит игра из-за этого метода сказать не могу, так как у меня и так всё тормозит), игра не вылетает. Убил там несколько челов, но проверить работает ли сам скрипт не могу - не знаю где посмотреть жизни. Но метод рабочий. Так что Dison, можешь пользовать этот метод, нужно только научиться, как изменить стандартный вид скрипта, чтобы использовать в этом методе. А в Lua-скрипт, просто добавлять новые адреса.
  18. Понято, тогда остаётся наверное только та длинная запись с push/pop из 2-го поста. Вот кое-что нашёл по 64-битным числам, может это подойдёт: [spoiler=Взято отсюда: http://www.cyberforum.ru/post5356780.html]Команда CMPXCHG8B (Сравнение и обмен 8 байтов = ”COMPARE and EXCHANGE 8 Bytes”) Синтаксис команды: CMPXCHG8B m8byte Семантика команды: выполнение в одной операции сравнения и обмен 8-байтовых операндов. Команда требует один операнд m8byte и неявным образом использует еще два операнда – пары регистров EDX:EAX и ECX:EBX. В качестве явного операнда команды m8byte может выступать только 64-битная (8-байтовая) ячейка памяти. Команда выполняет сравнение операнда m8byte в памяти с содержимым EDX:EAX. Если сравниваемые значения совпадают, то операнд DEST в памяти замещается 64-битным значением ECX:EBX. Если сравниваемые значения не совпадают, содержимое памяти поступает в пару регистров EDX:EAX, замещая сравниваемый операнд DEST. Пример 1 Код ASM 1 mem dq 1122334455667788h 2 mov ECX, 9 3 mov EBX, 5 4 mov EDX, 11223344h 5 mov EAX, 55667788h 6 cmpxchg8b mem ;[mem]=EDX:EAX ECX:EBX->[mem] 7 ;mem=0000000900000005h Пример 2 Код ASM 1 mem dq 1122334455667788h 2 mov EAX, 9 3 mov EDX, 5 4 cmpxchg8b mem ;[mem]<>EDX:EAX [mem]->EDX:EAX 5 ;mem=1122334455667788h 6 ;EDX=11223344h EAX=55667788h При работе с многобайтовыми данными не следует забывать о том, что в памяти байты всегда выстраиваются в порядке их номеров, то есть от младших к старшим, в то время как при изображении чисел применяется обратный порядок. В то же время символьные строки изображаются так же, как они располагаются в памяти. Пример 3 Код ASM 1 mem1 db ‘12345678’;строка операнд 2 mem2 db ‘12345678’;сравниваемая строка 3 mov ECX, 68676665h ;’efgh’ 4 mov EBX, 64636261h ;’abcd’ 5 mov EDX,dword ptr mem2+4;забираем старшую часть строки 6 mov EAX,dword ptr mem2;забираем младшую часть строки 7 cmpxchg8b qword ptr mem1;операнды совпадают 8 ;mem1=’abcdefgh’ ZF=1 ECX:EBX и EDX:EAX без изменений Пример 4 Код ASM 1 mem1 db ‘12345678’;строка операнд 2 mem2 db ‘abcdefgh’;сравниваемая строка 3 mov ecx, 68676665h ;’efgh’ 4 mov ebx, 64636261h ;’abcd’ 5 mov edx,dword ptr mem2+4;забираем старшую часть строки 6 mov eax, dword ptr mem2;забираем младшую часть строки 7 cmpxchg8b qword ptr mem1 ;операнды не совпадают 8 ;ZF=0 edx=38373635=’5678’eax=34333231=’1234’ 9 ;mem1 без изменений, при неравенстве 10 ; ecx:ebx не принимают участие в операции
  19. Спасибо MasterGH. Но разве такой метод не повлияет на игру, я имею ввиду она же по-идее будет тормозить. aliast, на PG.ru трейнеры для этой игры от двух авторов, интересно у второго автора тоже используется метод отладки при обходе защиты?
  20. Ещё до выкладывания скриптов aliast, была идея прописывать все повторяющиеся при перезагрузки игры регистры, но идея не сработала, т.к. основной (как я понял регистр RIP) СЕ не компилирует. Пытался доработать этот скрипт: aliast, я не понимаю, как это должно работать. Может более подробно изложишь идею, как для лузера. [ENABLE]alloc(newMem1, 64)alloc(newMem2, 64)alloc(newMem3, 64)label(returnHere1)label(returnHere2)label(returnHere3)newMem1:mov RAX,000000007F4E35E1mov RDX,000000014771634A//push rcx // СЕ не компилирует не в таком варианте//mov rcx,ACU.exe//add rcx,55D7421//mov RIP,rcx//pop rcx//mov RIP,00000001455D7421 // не в такомmov R12,00000001455D54A0mov R15,0000000000000000xor al,[rdx]stc jmp ACU.exe+55D7AC3jmp returnHere1newMem2:mov RAX,0000000000000066mov RDX,00000001455CFAA4//mov RIP,00000001455D6591 // СЕ не компилируетmov R12,00000001455F0605mov R15,00000000000000B0xor al,[rdx]test bl,-65jmp returnHere2newMem3:mov RAX,0000000010278000mov RDX,00000001455D5599//mov RIP,0000000140007F4A // СЕ не компилируетmov R12,00000001455CE8B0mov R15,00000000000000B0xor al,[rdx]cmctest al,3Fjmp returnHere3ACU.exe+55D741F:jmp newMem1db 90 90 90returnHere1:ACU.exe+55D658F:jmp newMem2returnHere2:ACU.WriteData+22C8:jmp newMem3returnHere3:[DISABLE]ACU.exe+55D741F:xor al,[rdx]stc jmp ACU.exe+55D7AC3ACU.exe+55D658F:xor al,[rdx]test bl,-65ACU.WriteData+22C8:xor al,[rdx]cmctest al,3Fdealloc(newMem1)dealloc(newMem2)dealloc(newMem3)
×
×
  • Создать...

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

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