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

Tiger

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

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

  • Посещение

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

    10

Tiger стал победителем дня 18 декабря 2014

Tiger имел наиболее популярный контент!

Репутация

23 Novice

4 Подписчика

Информация о Tiger

  • День рождения 24 августа

Информация

  • Пол
    Мужчина
  • Город
    Брянск

Посетители профиля

4 225 просмотров профиля
  1. Именно, требуется lua script, сводящий к минимуму дейстия пользователя как таблицы так и трейнера. ОТ скрипта требуется создать в нужном месте программный брейкпоинт и занести в поле EIP значение для каждого конкретного адреса.
  2. [ENABLE]alloc(newmem,2048)aobscan(ammo_aob, D9 46 10 D8 1D 50 C8 93 00)// добавь еще пару байт следующей инструкцииregistersymbol(ammo_aob)label(returnhere)label(originalcode)newmem:mov [[[[["BF2.exe"+00623DC0]+DC]+4]+3C]+10],(float)1000000originalcode:fld dword ptr [esi+10]fcomp dword ptr [BF2.exe+53C850]jmp returnhereammo_aob:jmp newmemnopnopnopnopreturnhere:[DISABLE]ammo_aob:fld dword ptr [esi+10]fcomp dword ptr [BF2.exe+53C850]dealloc(newmem)unregistersymbol(ammo_aob)//Alt: db D9 46 10 D8 1D 50 C8 93 00
  3. смещение в подобном случае понимается как +38 в ниже представленном примере add eax,[rbx+38] Но я кажется понял о чем ты спросил. Хотя, как правило, в структуре обязательно будет и ID и само название предмета просто нужно раскрывать и читать указатели выше-ниже по структуре... 1.Попробуй отсортировать адрес предмета через сравнение регистров, по содержимому стека и т.д. 2.Попробуй использовать анализ кода/структур, найди выше 2,3 и выше указатель затем инструкцию которая с ним работает,запиши на бумажку смещение от найденого указателя до требуемого адреса,затем делай инжект на инструкцию обновления указателя, сортируй там по регистру и читай/пиши по смещению. 3. Сравнением значения "экранного" и обаратываемого адреса. 4. Попробуй найти инструкцию чтения указателей инвентаря... 5. то как я еще не догадался Способов тысячи, подобное часто встречается в "затаблеченных" играх. Всетаки укажи на название твоей мишени. Будет время поможем.
  4. Собственно вопрос перефразирую как сокрытый инжект кода. (с или лучше без регсимвола) К примеру на выделенной странице записал необходимый код получил через аобскан адреса места инжекта, нехитрым ****newmem:injektplase:****получил значение eip на которое нужно подменить значение регистра по адресу места необходимого инжекта. Ниже пример скрипта. Как мне по адресу address1 изменить значение eip на injektplase [ENABLE]alloc(newMem1, 2048)aobscan(address1, 03 43 38 3B F8)registersymbol(address1)aobscan(address1a, 48 8D 0D 44 BA 17 04)registersymbol(address1a)label(injectplase1)registersymbol(injectplase1)newMem1:injectplase1:mov [rbx+38],#99999add eax,[rbx+38]cmp edi,eaxcmova edi,eaxmov [rbx+28],edimov [rbx+28],#99999mov rbx,[rsp+30]add rsp,20pop rdijmp address1a[DISABLE]dealloc(newMem1)unregistersymbol(address1)unregistersymbol(address1a)unregistersymbol(injectplase1)
  5. Как правило CE используют для поиска места инжекта и собственно кода на выделенной странице. Практически все, кроме побайтной записи без кодкавера, ловится легко... Никто не будет ломать сам трейнер! Замечено правильно и неоднократно защита/взлом это спорт умнейших) и нет ничего невозможного; вопроса только два, да и то взаимозависимых - интеллект и время, справедлив как для защиты так и для взлома Воспользуйся поиском активных(скрытых) окон по имени через диспетчер...помогут в этом сами программы хайды, можешь попробовать шерстить Temp на создаваемый CE файл при сканировании памяти. Могу предложить три варианта: 1. Инжектить в само тело модуля ломаемой игры дедовским методом - без выделения постраничной памяти, разными путями найти место куда всунуть конкретные байты кода хака путем переписывания исходного внести сам код и\или джампы на него, туда и обратно. 2. Группировать множественные инжекты разбавив их левыми пустышками в один скрипт и инжектить одновременно, флаги активаций функций привязать к меткам пустой памяти приложения и уже на эти метки наделать активирующих скриптов.... 3. Найти свои, по сути никому не нужные методы и реализовать их, или, аналогично, попросту не парится. PS
  6. [ENABLE] alloc(cheatByteCodeZ,2048) label(returnhereZ) aobscan(aob_scanZ,DD 40 18 DD 5F 18 8B) label(aob_scanZ) registersymbol(aob_scanZ) label(QWordValueZ) registersymbol(QWordValueZ) label(QWordValue) registersymbol(QWordValue) //######################################## cheatByteCodeZ: fld qword ptr [eax+18] fstp qword ptr [edi+18] push eax fld [QWordValueZ] // подгрузил, возможно вытолкнул что нужное стека... fcomp qword ptr [edi+08] fnstsw ax test ah,0x41 jne returnhereZ // fld [QWordValueZ] // уже загружал fcomp qword ptr [edi+10] fnstsw ax test ah,0x41 jne returnhereZ fld qword ptr [QWordValue] fstp qword ptr [edi+08] fld qword ptr [QWordValue] fstp qword ptr [edi+10] returnhereZ: fstp [QWordValueZ] // подгрузил, но оставил невыгруженным. pop eax ret //*****************возврат к месту вызова //****************объявить переменные можно в конце страницы cheatByteCodeZ QWordValueZ: dq (double)10000 QWordValue: dq (double)10 //######################################## //*****************инжект вызова процедуры cheatByteCodeZ aob_scanZ: call cheatByteCodeZ nop //######################################## [DISABLE] //****************возвращаем как было aob_scanZ: fld qword ptr [eax+18] fstp qword ptr [edi+18] //****************стираем все что создавали unregistersymbol(aob_scanZ) unregistersymbol(QWordValueZ) unregistersymbol(QWordValue) dealloc(cheatByteCodeZ) FPREM... посмотри, или переделай без стека fpu, он тут не принципиален....
  7. Выложите пример скрипта с готовыми инжектами... и состояние стека fpu после загрузки каждого из значений. Может быть загрузить последовательно все значения, и сортировать FCOMIP ST,ST(i) FCOMI ST,ST(i).... в зависимости от количества и расположения инжектов по коду... Хотя можно до fld [] поработать с eax+08/10
  8. А как по твоему скрипт должет отличить, что он пишет именно в адрес кристалов, а не армии? В каждом сегменте, после проверки активации определенной опции, должен быть фильтр на конкретный адрес. К примеру ниже выкладываю cкрипт для Assassin's Creed 3.Там фильтр общий (cmp esi,edi) и по индивидуальному значению esi/edi (cmp esi,XX)
  9. Это одно и тоже. Если вдруг решишь искать здоровье юнитов... то пожалею твой разум и подскажу, что это значение (float)1,00 когда юнит полностью здоров.к примеру. Здоровье юнита 2500 - 100% - 1.00 Здоровье юнита 2420 ≈ 97% - 0.9679253101 Думаю дальше разберешься. Кстати по поводу фильтра, ID игрока как раз тут и можно отыскать в сравнении с адресами противника.
  10. add [eax+04],ecx замени на mov [eax+04],00 или просто удали - тоже вариант Можешь попробовать найти инструкцию, которая не пишет, а читает и почаще. Тогда возможно значение сразу будет обнулятся, и кстати фильтр, фильтра нет. Все твои бонусы получает и враг) как мне кажется.. а может и нет) Бесконечные юниты
  11. Перезалей файл, удален за сроком давности.
  12. Добавь фильтр!!! он там нужен, Когда выделишь функцию fstp dword ptr [eax] ПКМ и найти адреса с которыми работает инструкция, Чуть побегаешь, кстати тут удобно жмакать кнопку паузы на клавиатуре. Посмтори к каким адресам обращается (справа внизу выстави float) Обрати внимание на регистры ebp и ebx (проверка на ноль это test ebx,ebx потом делашь условный прижок на выход) и тут удобнее делать инжект на строку ret 0004 увидишь ниже fstp dword ptr [eax+08], просто пишешь в адреса mov [eax],(float)50000.00 mov [eax+4],(float)50000.00 до ret 0004 Пробуй сам. Если совсем никак, смотри тут:
  13. В смысле полный? Попробуй так: 1) выдели нужную инструкцию в меморивью, нажми Ctrl+A 2) вставляем секции [ENABLE] [DISABLE], нажми Ctrl+A+T 3) производим инекцию по выделенному адресу, жмем Ctrl+I и ОК или Enter вуаля рабочий инжект готов можно шаманить... Для упрощения процедуры качаем aamaker_2.3 http://forum.gamehac...dpost__p__15069 и кладем файлик .lua в папку ..\Cheat Engine 6.3\autorun\aamaker.luaТеперь смотри в меморивью очень удобный плагин на менюшку
×
×
  • Создать...

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

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