Жажда Знаний
-
Постов
99 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные Жажда Знаний
-
-
Так тоже не выходит ничего
-
Происходить вылет игры(
push ecx
mov ecx, dword ptr [edx+40]
cmp dword ptr [ecx+b4+30],1
cmp ecx,edx
pop ecxЕсли Попробовать так ?
-
Скрытый текст
aobscan(Test,8B 42 28 83 F8 00) // should be unique
alloc(newmem,$1000)label(code)
label(return)newmem:
code:
push ecx
mov ecx, dword ptr [edx+40]
mov ecx, dword ptr [edx+b4]
cmp dword ptr [ecx+30],1
pop ecx
jne @f
mov [edx+28],#20
@@:
mov eax,[edx+28]
cmp eax,00
jmp returnTest:
jmp newmem
nop
return:
registersymbol(Test)[DISABLE]
Test:
db 8B 42 28 83 F8 00unregistersymbol(Test)
dealloc(newmem){
// ORIGINAL CODE - INJECTION POINT: 0A582204""+A5821E1: 83 C4 10 - add esp,10
""+A5821E4: 8B 4D E4 - mov ecx,[ebp-1C]
""+A5821E7: 85 C0 - test eax,eax
""+A5821E9: 75 2F - jne 0A58221A
""+A5821EB: 8B 4D E0 - mov ecx,[ebp-20]
""+A5821EE: 8D 89 A0 00 00 00 - lea ecx,[ecx+000000A0]
""+A5821F4: 8D 55 F0 - lea edx,[ebp-10]
""+A5821F7: E8 03 FF E0 4E - call "Adobe AIR.dll"+4E20FF
""+A5821FC: 8B 55 E4 - mov edx,[ebp-1C]
""+A5821FF: B9 00 00 00 00 - mov ecx,00000000
// ---------- INJECTING HERE ----------
""+A582204: 8B 42 28 - mov eax,[edx+28]
""+A582207: 83 F8 00 - cmp eax,00
// ---------- DONE INJECTING ----------
""+A58220A: 0F 4E C1 - cmovle eax,ecx
""+A58220D: 8B 4D F0 - mov ecx,[ebp-10]
""+A582210: 89 0D 54 B0 32 03 - mov [0332B054],ecx
""+A582216: 8B E5 - mov esp,ebp
""+A582218: 5D - pop ebp
""+A582219: C3 - ret
""+A58221A: 8B 41 28 - mov eax,[ecx+28]
""+A58221D: 8B 4D F0 - mov ecx,[ebp-10]
""+A582220: 89 0D 54 B0 32 03 - mov [0332B054],ecx
""+A582226: 8B E5 - mov esp,ebp
} -
-
Подскажи, как Спойлером пользоваться? Скрывать
-
Нет, уже пробовал, не выходит. С Lea ничего не выйдет?
-
Скрипт для сравнения пытаюсь написать. Единицу пытаюсь вывести для сравнения, не для записи
-
-
15 минуту назад, partoftheworlD сказал:
Если такой указатель [[[edx+40] + b4] + 30] , то :
push ecx mov ecx, dword ptr [edx+40] mov ecx, dword ptr [ecx+b4] cmp [ecx+30],1 pop ecx
Хотя лучше выложи полный АА листинг
Если записать его так то он РАБОТАЕТ ПРАВИЛЬНО
push ecx
mov ecx,dword ptr [edx+40] - указатель
cmp byte ptr [ecx+b4] ,0
pop ecxНо как записать скрипт далее если сделать развертывание "b4", то есть продолжить скрипт. Как указать правильное смещение От [ecx+b4] на [ecx +30] ?
-
Всем Привет. Такая Проблема, никак не получается создать скрипт с идентификатором игрока при открытии нескольких указателей в структуре игрока. Вот скрипт:
push ecx
mov ecx,dword ptr [edx+40] - указатель
mov ecx, dword ptr [edx+b4] - указатель
cmp dword ptr [ecx+30],1 // Как правильно записать число 1 что бы скрипт работал Правильно ? Ecx+30 Находится в подструктуре указателя Edx+b4
pop ecx -
Спасибо, очень полезная информация
NullAlex: Цитировать все сообщение необязательно. Неужели так до сих пор и не дошло?
-
lamalamaz, этот скрипт тоже не срабатывает, проверял оба скрипта, Значения устанавливал до 100 000
-
Lamalamaz, хорошо, проверю отпишу. Суть в том, что сами игры мне не так интересны как менять самому игровой код под свой лад, этот процесс куда более интересней и увлекательней. Хотелось бы разобрать игру более детально. Возможно что шанс на крит.урон находится под числом 4000, как множитель, которое находится в стеке по смещению урона. Esp+4.региона памяти. Так как через стек вышел на инструкцию отвечающую за % (fmul) отношение успешного выполнения любого заклинания а также на магические возможности оружия(заморозить, окаменить,т.д) и на время продолжительности заклинаний и их параметров. Если интересно потестить могу скинуть.
-
"lamalamaz", пробовал варианты от 1 до 100, урон от изменений не менялся. Но попробую от 1000 и более. А если в общем как можно выйти на инструкцию урона ? Если по трассировке стека или доступа ? Может с помощью каких еще инструментов отладчиков ?
-
NullAlex, извеняюсь, не специально, просто еще не разобрался как правильно заливать, путаюсь.
Lamalamaz, увы, скрипт включается но не работает. Что если сделать так, использовать фильтр на инструкцию записи жизней, на игрока стандартно, а на инструкцию врагов приписать деление (div). Как правильно написать что бы деление проводилось на 2 ? . Урон всегда проходит по инструкциям работающими с жизнями ?
-
NullAlex: Зачем одни и те же ссылки дублировать по нескольку раз? Да еще и обрамлять в тег цитаты, которой не существует? И повторяю: тег спойлера не зря придуман.
-
http://i004.radikal.ru/1509/f6/42fe977c99ec.png
Инструкция обращаемая общая, Работает со всеми
NullAlex: Тег спойлера не зря придумали.
-
Сегодня Вечером скину.
-
Попробовал твой Пример со стеком, у меня не вышло Видимо что то сделал не так. Вот Скрин стека на урон по Врагу.
Esp+4 Это уронEsp+8 Это Жизни врагаEsp+14 Может быть это множитель уронаEsp+20 урон cmp dword ptr [edi+0000011C],00 Это инструкция разветвления свой - чужой. 0 враг, 1 игрок,
Как правильно записать стек в скрипт ?
fild dword ptr [esp+4]fild dword ptr [esp+20]sal [esp+4],2sal [esp+20],2fistp dword ptr [esp+4]fistp dword ptr [esp+20] fild dword ptr [esi]mov [esp+08],eax jmp return
Такой вариант не работает,С таймером Разобрался немного Проанализировав инструкции Получилось так
code:cmp [esi+00],017B2148 //Invisiblcmp [esi+00],017B2068 //обзорjne @fmov [esi+14],(float)-1fld dword ptr [esi+14]jmp return@@: //fld dword ptr [esi+14] fstp dword ptr [esi+18] jmp return
NullAlex: Тег кода не зря придумали.
-
NullAlex
Структуру игрока я исследовал и нашел там массу интересного но не то что искал, подструктурные указатели фиксировал на изменения но не смог в них разобратся. Попробую тогда метод на уменьшение, аналогом примера это снятие одевание предмета который меняет значение крит.удара. Что касается таймера, то через команду 'моv' значение становится постоянным и не уменьшается. Иследовав стек нашел что таймер работает под смещением [esp+18], а в [esp+24] вычитается на (float)-0.02. Можно конешно б было прописать так 'mov [esp+24],(float)0.01, но это не то. Хотелось бы прописать всем способностям (float)30. В [edi+14]находится начальный таймер отчета, но скрипт с ним не работает,
Garik66
Ок, попробую так. Почему то смещения со стартовым значения отсчета не работают, то ли они подгружаются еще какой инструкцией. С очками способностей пробовал, не вышло. Скорее всего получается либо деление либо умножение. Но суть в том что в стеке это можно найти, только как это из стека перетащить в скрипт что он работал ?
NullAlex: Не нужно цитировать все сообщения полностью и делать гигантский пост. Это трудночитаемо, и отталкивает пользователей.
-
Использовать поиск неизвестное значение, далее увеличелось, уменьшелось или изменилось, не изменилось...
Я так именно и делал, ничего с этого не вышло. Оставшиеся адреса просто перестают менятся.
-
Всем привет. Помогите пожалуйста. Вот в чем проблема. В игре пытаюсь найти 'шанс критического удара'. При добавлении 1 бала способностей 'шанс крит.удара увеличивается на 2, это в % соотношении. Что я делал: иследовал инстукции которые работают с атрибутами и навыками, умениями,далее ставил бряки на значения и инструкции,(на запись и доступ), затем исследовал все регисты при бряке на расструктаризацию и фиксирование на изменения, в итоге так и не нашел нужного. Единственное что мало исследовал стек, так как в нем плохо разбираюсь, а в нем большой потенциал получение нужного. Получается что при начислении очков способностей срабатывает умножение либо деление. Поиск и отсев тоже не помог. Какие еще варианты поиска могут быть ? Еще как можно увелить значение таймера инструкцией 'fld [edi+18] ',а не делая его постоянным через ' mov ' ?
-
Спасибо. Но это мне все знакомо. Тут немного сложнее. Поиск неизвестого значения не помогает. Вот как раз исходно начальный адрес таймера у меня есть, он статический, сам цикл отчета не получается найти. Возможно что цикл отчета постоянен и не имеет остановки, но вариант со спидхаком тоже не помог. Бряки и брейкпонты тоже. Если освоить такой алгоритм поиска то его можно практиковать на всех играх.
-
Помогите пожайлуста, очень нужна помощь, у меня ни как не получается найти то что интересует. Подскажите какими способами можно найти скрытый таймер, путем 'поиск-отсев' не выходит, находит более тысячи адресов, затем адрес обновляется и меняется, если фризить игра вылетает. Можно ли при нахождении одного таймера выйти на другой если работать с регистрами одной структуры? Фиксирование структуры в этом случае не помогает.
Как записать скрипт с развернутыми указателями структур
in Вопросы по созданию читов в одиночных играх
Опубликовано
да проверил, твой и свой , не получается