-
Постов
5 750 -
Зарегистрирован
-
Победитель дней
292
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент Garik66
-
Я и без голосования с тобой согласен. Тема, когда разрослась, стала действительно не читабельной.
-
Ты имеешь ввиду - собрать всю инфу в первый пост темы? Хорошо, на днях сделаю и постараюсь почитабельней оформить
-
Не mov dword ptr [eax+6C],#100, а mov dword ptr [eax+6C],(float)100.
-
Chuckyя же говорил MasterGH быстро объяснит, Короче мой второй вариант в "Иcправлении 4" должен работать, т.е. поставить mov dword ptr [eax+6C],#1120403456 ниже fst dword ptr [esp+08]. MasterGHСпасибо большое.
-
Не за что. Удачи во взломе!!!
-
Но занопить будет более правильно. PS: а 98 патронов, потому что потом идёт отнимание 1 патрона.
-
Тогда проще занопить инструкцию, которая отнимает патроны, вот эту и не париться: ZAT.exe+4DA0BD - 2B C1 - sub eax,ecx, т.е. в eax - лежат расшифрованные патроны. Занопить сумеешь?
-
Короче, есть подозрение, что в eax лежит уже расшифрованное текущее значение патронов, но оно будет скорее всего только видимым, а в edi - константа. А в [edi+04] - зашифрованное значение. Давай попробуем этот скрипт: [ENABLE]alloc(newmem,64)label(returnhere)newmem:push ebxmov ebx,[edi+04]xor ebx,edimov ebx,#99xor ebx,edimov [edi+04],ebxpop ebxmov eax,[edi+04]xor eax,edijmp returnhere"ZAT.exe"+4DA0B8:jmp newmemreturnhere:[DISABLE]"ZAT.exe"+4DA0B8:mov eax,[edi+04]xor eax,edidealloc(newmem)
-
Поэтому и уточняю. Ответь на вопрос из предыдущего поста. Мне нужно понять где константа, а где зашифрованное значение.
-
Так значит значение зашифрованное. Второй вопрос инструкция, которая в скрипте, когда срабатывает? PS: уточню - после выстрела?
-
Тогда ещё один вариант попробуй: [ENABLE]alloc(newmem,64) label(exit)newmem:fsubr dword ptr [eax+6C]mov dword ptr [eax+6C],#1120403456 // ещё можно попробовать опустить эту инструкцию ещё ниже - перед ret fst dword ptr [esp+08] // поставить.ret"Amnesia.exe"+D9FC1:call newmemnopnopexit:[DISABLE]"Amnesia.exe"+D9FC1:fsubr dword ptr [eax+6C]fst dword ptr [esp+08]dealloc(newmem)
-
Первым делом мне нужно было спросить, когда адрес нашёл вручную значения менял - менялись потом в игре?
-
Давай тогда посмотрим: fld dword ptr [eax+6C] - аналог push, т.е. выталкивает в стек значение из адреса eax+6C. а fsubr dword ptr [eax+6C] - отнимает из верха стека значение по адресу eax+6c. Не понятно почему Call/ret так по разному влияют. Твой первый скрипт (без call/ret) точно работает? Тогда вопрос чему равно во float число - #1120403456?
-
Действительно странно, а попробуй тогда скрипт от первой инструкции в таком виде: [ENABLE]alloc(newmem,64) newmem:mov dword ptr [eax+6C],#1120403456fsubr dword ptr [eax+6C]fst dword ptr [esp+08]ret"Amnesia.exe"+D9FC1:call newmemnopnop[DISABLE]"Amnesia.exe"+D9FC1:fsubr dword ptr [eax+6C]fst dword ptr [esp+08]dealloc(newmem)
-
Говоришь видио моё посмотрел. Пересмотри ещё раз. В [edi+04] лежит константа через которую Xorят значение в [edi] лежит само зашифрованное значение , поэтому ты и получаешь не пойми чего. Нужно так: newmem:push eaxmov eax,[edi+04]xor eax,edimov [edi],#99xor eax,edipop eaxoriginalcode:mov eax,[edi+04]xor eax,ediПопробуй. PS: Здесь ошибка, поторопился. Дальше всё правильно.
-
Странно, по-идеи, если твой первый скрипт работает должен работать и мой скрипт, только смущают два nop после call, попробуй ещё такой вариант: [ENABLE]alloc(newmem,64) label(exit)newmem:mov dword ptr [eax+6C],#1120403456fsubr dword ptr [eax+6C]fst dword ptr [esp+08]ret"Amnesia.exe"+D9FC1:nopnopcall newmemexit:[DISABLE]"Amnesia.exe"+D9FC1:fsubr dword ptr [eax+6C]fst dword ptr [esp+08]dealloc(newmem)
-
У тебя неправильно. я же тебе написал: у тебя нету выхода из инъекции И ещё одно: я сейчас не могу посмотреть, сколько занимает байт call newmem, если 5 (как и jmp newmem), то проверь мой скрипт на работу. Если call newmem больше, нужно убрать соответствующее количество NOP. PS: Посмотрел: call newmem - 5 байт. Так что проверь скрипт - должен работать. Если не понятно как работает связка call/ret, пиши - постараюсь объяснить.
-
Как только решил снять сегодняшнее видео - оба радио замолчали и твоё и drs36. Так что пришлось снова музыку игры слушать.
-
У тебя нет выхода из твоей инъекции, попробуй так: [ENABLE]alloc(newmem,64) label(exit)newmem:mov dword ptr [eax+6C],#1120403456fsubr dword ptr [eax+6C]fst dword ptr [esp+08]ret"Amnesia.exe"+D9FC1:call newmemnopnopexit:[DISABLE]"Amnesia.exe"+D9FC1:fsubr dword ptr [eax+6C]fst dword ptr [esp+08]dealloc(newmem)
-
Для новичков: как добавить инфу или звуки в скрипт используя практически только ассемблер СЕ - смотреть здесь.
-
Для новичков снял видео - как резюме этой теме.
-
Спасибо и за уроки тоже спасибо заранее.
-
MasterGHбольшое спасибо, всё работает даже снял видео.
-
ОК Тогда на днях наверное установлю СЕ6,4, либо посмотрю как под 6,3 можно сделать.
-
Сомневаюсь что кто-нибудь поможет, думаю никто такое не делал, наврядли кто-нибудь добавлял звук в скрипт в таблицу (без трейнера).