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

Alex2411

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

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

  • Посещение

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

    5

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

  1. еще раз проверял . не работает у меня. не включаеться этот скрипт может что бы работал нужне dvbm ? у меня ос старая не подерживает ((
  2. у меня 6.8.3. 6 . качал здесь https://github.com/cheat-engine/cheat-engine/releases там она уже наверное месяц не обновлялась. когда вписывыю в скрипт {$try} {$except} он вобще перестает активироаться по этому я не знаю работает проверка или неь . надписи эти выделяються оранжевым цветом как регистры и подчеркиваються. читал не помню где что если инструкции срабатывает очень часто то эта проверка может сильно тормозать и даже крашить игру если можно лучше бы какую то другую проверку сделать , а то скрипт удругих геймеров на других версиях чит енжин не будет работать. скрипт из игры я выладывал здесь https://gamehacklab.ru/topic/7243-как-исключить-не-действительные-адреса-из-фильтра/?do=findComment&comment=58547 я пробовал в него добавить проверку try except , но скрипт после этого не включаеться пысы . когда будет время посмотри пожалуйста тему про плагин aa maker
  3. похоже нашел баг скрпит AA Maker скрипт ч ит енжин плагин версия 242
  4. для туториала я добавлял метку для ebx что бы с начала записывать в ebx разные значения , а потом проверять на вылет. на реальных играх у меня вылетало на Omerta City of Gangsters Tales of Maj'Eyal Poker Night 2 Battle Brothers . еще вроде на играх RPG Maker .
  5. это появилось только в чит енжин 6.8 у меня с этой проверкой скрипт вообше не реаботает . даже не включаеться пробовал сравнивать трасеры как ты говорил . постоянно крашилось . оказываеться что нельзя сравнивать тарсеры когда сохранил стек , а не где про это не сказано . если записать трасер с стеком , а потом загрузить для сравнение то чит енжин сразу виснет и вылетает . баг наверно это не вылетает , но с приавильными адресми этот скрипт то же не работает . все уходит в фильтр
  6. почему ? туториал то же вылетает когда не правильные адреса . вот простой скрипт на шаг 4 туториала срабатывает на кнопку Hit Me . сразу вылетает .
  7. значит я не правильо понимаю как это работает . объясни пожалуйста где я не прав. ты копируеешь ecx в метку mov [TestP],ecx потом получаешь Value Value = readInteger('TestP') потом проверяешь число по адерсу Value Value1 = readInteger('Value') потом ставишь флаг в 1 когда по адресу не число if Value1 ~= nil then writeInteger('Flag',1) потом срвнивашь флаг cmp [Flag],0 je code получаеться что когда флаг 1 то прыжка нет . тогда скрипт после флага 1 переходит дальше к cmp [ecx+10],74726964 эта инструкция пытаеться сравнить полсе флага 1 не число плюс смещение . как это работает ? мне кажеться наоборот не число флаг 1 должно прыгать на code
  8. вылетает . на 00000010 и на больших значениях . слушай извини может я глупость спрошу , а флаг надо сравнивать cmp [Flag],0 je code или может быть cmp [Flag],0 jne code ?
  9. теперь снова вылеиает . как раньше на маленьких адресах 00000100 и каких то больших если отсеить маленькие адреса
  10. попробовал оба скрипта первый и после исправления. крашей нет , но дальше этого сравнения je code не проходит . бряк на cmp [ecx+10],74726964 не дает не одного адреса
  11. сразу краш . вылетает когда ecx 00000010 и другие маленькие значения . что бы их отсеять после записи метки _testP в есх я поставил фильтр cmp ecx,00100000 jb code и дальше поставил бряк на cmp [ecx+10],74726964 что бы посмотреть на какие еще адреса обрашаеться эта инструкция кроме маленьких когда вылетает . если поможет вот сделал скрин . последний адрес с ???
  12. спасибо , но пока плохо понимаю как это работает . буду разбмраться елси не трудно ты не мог бы показать как должен получиться скрипт ? как правильно добавить твою проверку ? вот пример скрипт из игры Omerta - City of Gangsters если его включить игра крашиться почти сразу . я пробовал отловить мометн вылета. вылетало когда в [ebx+08] значение 00000004 или FF5A72A4 или еще друие адреса по которым знаки ?????.
  13. с начала у меня так не работало и я забросил такой способ. сейчас снова стал пробовать м разобрался в чем дело . оказываеться не работает когда в опциях дебагера стоит int3 instructions , а если поставиь hardware breakpoints то все получилось . не знал этого . этим способом трасеры работают как надо . ура )))) спасибо за помощь
  14. там как я понял нет струткуры . инструкции которые работают с нужными адресами они все с маленькими смещениями . типа mov eax,[ebx] или mov ecx,[edx+04] или что то похоже . адреса нужных значений находяться не далеко друг от друга , но если скопировать в метку какой то один , а остальные взять как метка + смещение то после перезапуска игры все смещения таблице слетают . приходиться каждое значение сохранять в свою метку с трасером там получаеться такая проблема . посоветуй пожалуйста как решить. инструкция обращаеться с сотнями адресов и происходит много тысяч срабатываний ,а на нужном мне адресе срабатывает не часто . когда я запускаю трасер и ставлю срабатывать бряк трасера по условию на нужный мне адрес то чит енжин начинает проверять каждое срабатывание инструкции , а зеленая строка на инструкции все время мигает . игра сразу замирает и через сколько то секунд крашиться или на глухо виснет . трасеровка даже не успевает сработать. такое у меня случаеться только на играх где инсрукция срабатывает очень часто . посоветуй что сделать что бы так не было ? может в настройках чит енжин дебагер другой выбрать или чт то другое поменять ? у меня выбран veh дебагер спасибо за помощь
  15. проверка ноль не решит проблемы других не правильных значений . я думал если можно как то найти адреса памяти игры первый и последний записать их в метки и сравнивать потом регистры с этим меткми . если меньше первой и больше после последней то прыжок на выход . только яне знаю как это можно сделать что бы найти крайние адерса. еще хотел спросить . может так быть что в памяти игры в середине есть пустые места с знаками ?????? ? ну типа с 01000000 до 02000000 адреса рабочие с 03000000 до 04000000 адреса то же рабочие , а по середине с 02000000 до 03000000 там стоят ?????? ?
  16. как умею ))) на игры которые мне приходиться ломать вообще не где нет тренеров и таблиц . подсмотреть правильные способы не у кого и обучений как их ломать не где нет . по этому приходиться придумывать самомму , а опыта у меня мало ((
  17. да, но это долгий не надежный способ с кучей не приятных сюпрпизов . надо потом очень долго тестить фильтр. помню ломал игру на деньги вроде все отфильтровал , но через час игры когда пришел в первы магазин через фильтр денег пролезли куча адресов потому что в магазине оказываеться то же есть деньги ))))) фильтр денег был привязан к адресу героя типа когда мои деньги да , а чужие нет . а в магазине деньги не чьи поэтому на месте уазателя персонажа стоял игровой номер магазина . игра крашнулась .
  18. попробую , но мне такое пока сложно . я не знаю даже что такое fs:[0] ((( да . спасибо . пока для меня это самое понятное . я хоть предстсавляю куда искать ))
  19. воспринимает . чит енжин 6.8.3 . не воспринимает fist qword ее приходиться вводить потому что хитрый туториал оказываеться умеет стрелять половинками патрона )))))) 100 99,5 99 98,5 . поэтому когда переводиться в целое то 98,5 становиться 99 , а обратно пишеться 99 , а не 98,5 потом стреляет снова половинка патрона и патроны не кончаються . тогда конечно работаь не будет . можно мне кажеться для сравнения вобще не выталкивать из стека . ладно я понял ))
  20. зачем ? мне не понятно . ты забирашь из стека дабл fstp qword ptr [value] и сравниваешь с дабл 1 mov ecx,[Odin+4] cmp [value+4],ecx зачем ? можно забрать из стека как целое и сразу сравнить с целое 1 fistp qword ptr [value] cmp [value],1 так мне кажеться проще. разве нет ? в смысле скорость игры ? вот для gog версия 1.5.3 . если метку _time поставить 100 то за минуту проходит около 100 лет в игре ))
  21. мне кажеться тут проще исползовать команду fistp , а не fstp . тогда сравнеие с 1 будет обычное с целым числом. не ?
  22. это первое что я сделал ))) стало не много лучше , но все равно вылетает . еще проблема втом что не правильные адреса бывают на следущем уровне указателя . адрес в eax нормальный , а адрес после [eax+10] уже плохой . там другого места нет . одна инструкция постоянно обращаеться к сотни разных адресов , а нужно отсеять один. при чем в разные моменты и режимы игры иногда появляються еще новые адреса . их все мне ни как не отследить . игра Omerta - City of Gangsters . то же самое в игре Battle Brothers в играх Aldorlea Games и еще много других ладно попробую отсеивть кучей фильтров . я думал может есть простой способ проверки , а я его просто не знаю ))
  23. а возможно сравнение что бы чит енжин с начала проверял что значение указывает на память , а не на знаки ???? , а потом считал смещение ? типа такого mov eax,ebx cmp [eax], ... // проверка есть ли память по адресу jn .... // если памяти нет то уходим mov eax,[eax+10] cmp [eax], ... // проверка есть ли память по адресу jn .... // если памяти нет то уходим mov eax,[eax+20] можеть быть команда не cmp , а какая то другая есть в ассемлере для проверки ?
  24. делаю фильтр приерно такой push eax mov eax,ebx mov eax,[eax+10] mov eax,[eax+20] cmp eax, ... pop eax игра часто крашиться . долго не мог найти причину крашей потом нашел . оказываеться регистр ebx иногда принимат значения которые не могут быть адресами памяти . если это значение вставлять вместо адреса в хекс вювере то там только знаки ??????. когда чит енжин проверяет такое значение вместо адреса и считает смешение от крашит игру . это случаеться в разных играх . как сделать что бы чит енжин не проверял значения регистра если он не может быть адресом памяти ? я пробовал отсеять слишком малые и большие . крашит реже , но все равно плохо .
  25. во как . а если игру 32 бит запускать на 64 бит системе что тогда будет с такими адресами из байт в скрипте ? будут скрипт правильно работать на 64 если работает на 32 ?
×
×
  • Создать...

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

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