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

A1t0r

Ветераны
  • Постов

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

  • Посещение

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

    39

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

  1. Бесконечные вещи (использовать на свой страх!!!):
  2. Вот что получилось Risen 3 - Titan Lords CharModer by A1t0r (CT and EXE).rar
  3. Ну чтоб уж так всё серьёзно было, чтобы совсем не за что зацепиться, бывает чертовски редко. Можно цепляться не за конкретное число, а, например, у игрока отлично от 0 у врага 0. Или в структуре игрока указатель ведёт не в пустоту P->00000000. Что-нибудь да можно придумать.
  4. Так вот в 8 посте пример О_о Risen докачался, ща ломанём) Указатель на героя [[[Risen3.exe+DD6CC0]+1C]+1С]+X X: +14 - ближний бой +18 - дальний бой +1C - проворность +20 - влияние +24 - выносливость +28 - Ловкость +2C - магия +30 - дух +34 - число+20 = макс. здоровье +38 - здоровье +3C - слава +40 - репутация Скрипт на бессмертие(вариант с записью 100 здоровья):
  5. В этом случае всегда пишешь по адресам близким к нулю ebp в данном случае не больше размера структуры. И надо всё-таки фильтровать что есть что.
  6. Так как mov [esi+ebp*4+10],edi занимает 4 байта, то захватится ещё одна инструкция. Также предполагается, что инструкция работает только со структурой игрока(что маловероятно) Примерно так: [ENABLE] alloc(newmem,2048) label(returnhere) label(life) label(points) newmem: cmp ebp,0 //например ebp = 0 - жизни, 1 - очки je life cmp ebp,1 je points mov [esi+ebp*4+10],edi ещё_одна_инструкция jmp returnhere life: //что-то делаем с жизнями //mov [esi+10],#100 jmp returnhere points: //что-то делаем с очками //mov [esi+14],#10 jmp returnhere адрес_инъекции: jmp newmem нопы_будут returnhere: [DISABLE] dealloc(newmem) адрес_инъекции: mov [esi+ebp*4+10],edi ещё_одна_инструкция Кривовато, но смысл правильный)
  7. Скрипт будь он на луа или автоассемблере тоже можно подсадить в то же место.
  8. Абсолютно без разницы, ведь скрипт никакой не присоединяется. Я ставил Toggle Freeze. Мы пишем его в тело сами. Если совсем плохо, кинь в личку я посмотрю.
  9. В окошке на скрине написано 11111111111, убери одну 1111111111 тогда попробуй так writeInteger(0x047415D0, tonumber(CETrainer_CHEAT2.EditValue)) Если не поможет, то первые два хоткея работают? У меня lua распознавал и переводил текст из окна в число
  10. Это слишком большое число. Integer это 4 байта. Убери одну единичку
  11. Да. И исправь номер writeInteger(0x047415D0, CETrainer_CHEAT2.EditValue) это у тебя №2 чит
  12. Как таковых обработчиков для этого элемента написать нельзя, так написано в справке. Но можно дополнять то что создал CE автоматически. С самого начала. Открываем CE и присоединяемся к процессу. Добавляем пустой адрес в таблицу: Add address manually, OK. File->Generate generic... Add Hotkey. Предложит нам единственный пустой адрес. Забиваем комбинацию клавиш, эффект и описание. Добавили, теперь перейдём к визуальному редактору и добавим для нашего чит-элемента editbox. Теперь обязательно надо сохранить всё это дело в виде CT. В окошке Trainer generator выбираем тип CT и генерить трейнер. После этого активируем главное окно CE и жмём Ctrl+Alt+L. Появится скрипт формы с настройками чит-элемента на lua. Нас интересует строка cheatcomponent_setActive(CETrainer_CHEAT0, isActive) CETrainer_CHEAT0 - это имя элемента. Чтобы получить доступ к его эдитбоксу лезем в справку и видим свойство Editvalue:string - The string of the optional edit field Тогда пишем на следующей строке например так writeInteger(0x037CF898, CETrainer_CHEAT0.EditValue) Я писал введённое значение из эдитбокса по адресу 0x037CF898(в качестве подопытного был калькулятор)))) Хоть и собрано "на коленке", зато работает)
  13. Процесс вписал, там где название процесса? например openProcess("calc.exe")
  14. Хотя бы так var dummy = new IntPtr(); или var dummy = new UIntPtr(); С# - регистрозависимый, intpTR и IntPtr - разные вещи
  15. А можно поконкретнее: что в esi(скорее всего указатель на игрока), в ebp(номер 4-байтовой ячейки? с жизнями и очками?), и 2F4 - это ebp*4? В идеале - что за игра?)
  16. В главном окне CE: меню Table->Show cheat Table lua script(или Ctrl+Alt+L) туда скопируй скрипт, заполни что я сказал и выполни. Появится формочка с полем, кнопкой и событием привязанным к ней.
  17. Переписал проще. Заполни в 3 местах: название процесса и адрес с патронами 2 раза и будет тебе счастье) Form = createForm(true) Btn1 = createButton(Form) Edit1 = createEdit(Form) control_setCaption(Form, 'trainer') control_setCaption(Edit1, '') control_setCaption(Btn1, 'Write') control_setPosition(Btn1, 50, 40) control_setPosition(Edit1, 50, 5) control_setSize(Form, 180, 80) openProcess(--[["название процесса"]]--) form_centerScreen(Form) function Save() ammo = control_getCaption(Edit1) check = readInteger(--здесь пишем адрес в виде'[[006313a0]+4b8]+4' ) if (check ~= nil) then writeFloat(--здесь пишем адрес в виде'[[006313a0]+4b8]+4' , ammo) else messageDialog('Не найден процесс или неверная цепочка указателей!', 1, 2) end end function CloseTrainer() --closeCE() return caFree end form_onClose(Form, CloseTrainer) control_onClick(Btn1, Save) form_show(Form) На визуальный редактор забил сразу же, как выучил функции из main.lua)
  18. Что-то похожее написал Vlad2 здесь. Допилишь под свои цели чуток)
  19. Решил сделать для себя заготовку под трейнеры для CE. Для не особо привередливых подойдёт. Весь скрипт состоит из условных двух частей: таблицы с параметрами и функциями контролов(пока только форма и чекбокс) и циклы, которые по заданным параметрам создают объекты и устанавливают соответствие между событием и их обработчиками. Для примера на форме расположены 2 чекбокса. По умолчанию трейнер присоединятся к калькулятору ("calc.exe"), что попалось))) Если запущен калькулятор, то при установке и снятии галочек выскакивают сообщения. При завершении процесса калькулятора манипуляции с чекбоксами не будут иметь эффектами. Если открыть calc снова, то перезапуск трейнера не потребуется. Версия 0.1. Нужно будет допиливать, а возможно и перепиливать) Trainer template v0.1.CT
  20. A1t0r

    Deadhunt

    Хотелось бы дополнить. Версия та же. Разброс пуль(прицел не увеличивается)
  21. Если под смещением понимается вся конструкция [ecx+esi*4], то просто в отладчике посмотри значения регистров и вычисли это значение и всё.
  22. Тебе нужно искать ecx. В esi должен находиться номер ячейки(0, 1, 2 и т.д.). Такая адресация используется для доступа к адресу или количеству по номеру персонажа, существа в армии, ресурса и др. Например ecx = 01234500 начало стека армии персонажа, тогда при esi = 0, [01234500] - первый монстр, esi = 1, [01234504] - 2-ой и т.д. Также может использоваться такой приём для перезаписи большого массива данных: ... mov ecx,4 mov esi,XXXXXXXX mov edi,YYYYYYYY repe movsb ... В ecx заносится кол-во перезаписываемых байт. esi - адрес откуда пишем(считывание)(s - source, источник), edi - адрес куда пишем(запись)(d - destination, назначение), repe movsb - повторить перезапись ecx байта с адреса esi в edi. Можно также перемещать 2 байта(word, слово) - movsw, и 4 байта(double word, двойное слово).
×
×
  • Создать...

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

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