Меню

Ошибка при сканировании массива байт cheat engine

13 часов назад, JackNewMan сказал:

Как-то неудобно немного. Возможно я чего-то не знаю или что-то делаю неправильно.

Дело в том, что у компьютерного процессора всего несколько регистров. RAX, RBX, RCX, и еше некоторые.

Для сравнения, — у человека есть всего две руки. Человек может одновременно держать в руках всего две вещи. Чтобы взять третью, необходимо положить первую или вторую. И так по очереди. Чтобы узнать, что держит человек сейчас, в данную миллисекунду, нужно подойти к нему именно в данную миллисекунду, и посмотреть.  В следующую миллисекунду, человек уже возможно будет держать что-то другое, и мы уже не увидим и не узнаем, что было до этого.

Так и процессор, постоянно меняет содержимое своих регистров. А дело дебаггера, подойти к процессору, и как-бы поставить его на паузу, не давая ему взять что-то другое.

Человек может вести запись того, что он держал в своих руках последние 5, 10, 20, минут. Но специально человек этого не делает.

9 часов назад, Garik66 сказал:

для этих целей проще ИМХО воспользоваться опцией СЕ трассировка

Трассировка, это и есть запись процессором того, что он держал в своих регистрах в последние, указанные нами, секунды. Или не секунды, — я забыл, что-там указывается.

@Karlos007

Unless I specify the region…
aob
Maybe the process (yuzu) is to big in memory?
Also lua / asm aobscans don’t find either.

Cheat Engine 7.1 (Also tried 7.0 and different settings / debuggers)
Windows 10 pro v2004 64 bits
32gb ram / i7-6700 cpu

@mgrinzPlayer

Is it related with this commit? c0534e3
Did you try to compile CE from source and above issue still exists?

@Karlos007

I’m trying to compile the 64 bit but only the 32 app compiles :/ and that doesn’t scan at all.

lazarus-2.0.10-fpc-3.2.0-win64
lazarus-2.0.10-fpc-3.2.0-win32

lazarus-2.0.10-fpc-3.2.0-cross-x86_64-win64-win32
lazarus-2.0.10-fpc-3.2.0-cross-i386-win32-win64

What files should I install?

@Karlos007

aob1

@mgrinzPlayer

@Karlos007

@mgrinzPlayer

Does it find when you tick MEM_MAPPED option in «CE Settings->Scan settings»?

If not, you can try modify memscan.pas file, something like changing the lines with «size: dword» or «size: integer» to «size: qword»…

@Karlos007

  • yeah MEM_MAPPED is ticked
  • Still the same changing line 5232: size: dword -> size: qword
  • It’s weird because other scans work if they are early in memory (this one is 212629A0A50)
    Start 0000000000000000 Stop 7fffffffffffffff doesn’t find
    Start 21262900000 Stop 7fffffffffffffff does find…

@mgrinzPlayer

I wrote «something like …».

You can try other places too. Maybe:

  • «addressSize: dword» => «addressSize: qword»
  • «memorySize: dword» => «memorySize: qword»
  • «maxregionsize: dword» => «maxregionsize: qword»

If it still doesn’t work, then, I think there’s no an easy fix like this one c0534e3

Edit:
typo

@Karlos007

I don’t know why but that worked, seems to be related to that 2GB, even if it’s not unknown initial value.
Also makes the lua scripts work.
Thank you so much for your help, I’m gonna keep making my cheat table 🙂

@mgrinzPlayer

You can help and find the smallest possible change which fixes your issue.

Extract source files again. Then:

  • do one change, build/compile
  • check
  • if problem exists, do next change, build/compile
  • check

Note: while doing this, you should use Lazarus «Run=>Clean up and build project» (all options selected except «package output directories»).

@Karlos007

Seems that
456: maxregionsize: qword; does the job
Normal Cheat Engine 7 doesn’t find anything, but extracting source files and changing that line finds the address.

@mgrinzPlayer

OK. Thank you. This information should be useful. I’m adding permalink to this line:

maxregionsize: dword; //max size of buffer to be allocated when not unknown scan

@cheat-engine

what is your buffersize in scansettings?

@Karlos007

1024 KB Currently working fine with my compiled CE.
I was changing between 512 and 1024 and more settings but always failed to scan the one that I not compiled.

@cheat-engine

i can’t see why maxregionsize would cause a difference as it’s size is limited by buffersize.
but i’ll check (tomorrow)

(did you do a full build or a compile after getting the latest source?)

@mgrinzPlayer

@Karlos007

I also have to sleep 🙂
aob2
I deleted the entire folder cheat-engine-master and unziped again before editing that one line.
I used «Run=>Clean up and build project»; now has 1130 files but when I tried before it was 0 since I deleted all.

@cheat-engine

How many bytes is the AOB you’re scanning for ? more than 2000?

If you compile in debug-nomt 64-bit. Does it still fail ?

@Karlos007

The array is around 50.
I have others with 500 that work fine.
Complied in debug-nomt 64-bit with the original master folder? Without touching line 456?

@mgrinzPlayer

Without touching line 456?

Do both, the more information the better.

@Karlos007

Both find the address, but takes much more time scanning. Around 3 minutes instead of 15 sec.
I see that master memscan.pas 456 it’s now maxregionsize: qword; instead of maxregionsize: dword;

@mgrinzPlayer

To be perfectly sure. You extracted source files from that zip file you downloaded earlier, right?

To summarize it. This?

line 456 has dword line 456 has qword
build mode is release 64bit doesn’t find finds
build mode is debug-nomt 64-bit finds/slow finds/slow

or this?

line 456 has dword line 456 has qword
build mode is release 64bit doesn’t find finds
build mode is debug-nomt 64-bit doesn’t find finds/slow

@Karlos007

Yep the first one, debug-nomt 64-bit slowly finds with dword and qword
release finds with qword only
(7.1 / 7.0 / 6.8.3 .exe from the github page don’t find either)

Гоша386


  • #1

gskgyqfjnrazmpjz0x.png

В этом гайде мы научимся заменять байты через прогу Cheat Engine. Тут всё понятно расписано как и что делать.

c7haftyyjsuwrrshwretfhgn.jpg

1. Запускаем обход. После запуска обхода открываем CheatEngine.

abrmyegksg4cbnjy.png

2.Находим процесс: crossfire.exe

jcuvjkrb6vzcprfvuyc.png

3.После того как мы нашли процесс.Выбираем вкладку (Тип) и ищем (Array of Bytes)

cscpcmfkeyex9wesxnwbng.png

4.В строке (Hex) прописывае начальные байты. Вот мы ввели начальный байты ножа (выделено красным)

xhkqtnjy2xaezcnsskkrtbs.png

5.Жмём на поиск. И слева вылазиют байты (они выделины красным) нам нужен первый (подчёркнут зелёным).

sxxffuybqq9wxfswetsdpck.png

6.Теперь правой кнопкой мыши щелкаем по первому байту и нажимаем (Перейти в память по этому адресу).

qarmwubtarhjcdhu1gk.png

7.Вылезет вот такое окно.

fcpjj9rkarhgrduc.jpg

8.Ищем строку начинающиюся на 4D 6F 64. Теперь нам нужен полный байт оружия, на которое хотим поменять. Полностью выделяем свой (полный) байт. И возращаемся к Cheat Engine.

rfqgpfvzy7fcawtqmahx.jpg

9.Жмем на 4D, ,и кликаем правой кнопкой мыши по этому значению.У вас откроется меню ,выбираем (Вставить из буфера обмена)

qx3kbfapruqmupuzvyvkqv.jpg

10. Вот что у нас получилось:

btbzsztr9srrjbtax.jpg

11.Внимание на символы в синем квадрате,слова knife заменились на слова вашего байта.
Результат:

zfc6huekhhwststeeben.jpg

Скачать эту программу сможете перейдя по сылке

jwxxwxvgfubdvl8xhxpvdev.gif

Последнее редактирование модератором: 6 Ноя 2012

  • #1

Здравствуйте Уважаемые!
при потытке сканирования паняти процесса l2.exe выдает 0 результатов, даже когда сканирую «неизвестное значение»
Игра на русском официальном сервере защищена программной frost, последний раз, примерно 2 года назад все хорошо сканировалось, сейчас, похоже, какую то защиту поставили

  • #2

Так ищи обход фроста, сейчас во многих играх нельзя сканировать память

  • #3

хе хе, а тут кто-то не так давно объяснял мне какой я дурак, и что память читать нет проблем. Если защита не дает смотреть память, то это скорее всего означает, что обойти ее можно только на уровне 0 кольца. А на уровне нулевого кольца работают только драйверы, ну из легальных инструментов. Так что если вы не системный программист, устанете обходить )

  • #4

bugaj [?]

А на уровне нулевого кольца работают только драйверы, ну из легальных инструментов. Так что если вы не системный программист, устанете обходить )

Не пугайте людей, там не от чего уставать. Немного желания и времени — все что потребуется.

  • #5

bugaj [?]

обойти ее можно только на уровне 0 кольца. А на уровне нулевого кольца работают только драйверы

Написать драйвер не сложно. Правда для работы в x64 системе у него должна быть цифровая подпись, или хотя бы тестовая.

  • #6

ну я наверное драйвер то писал, если судить по моей подписи и знаю о чем говорю. По моим ощущениям у меня создание первого в жизни драйвера заняло больше месяца(нужного мне драйвера, а не того что есть в инетах в больших количествах), просто потому что инфа по этому делу трудно доступна ибо фрагментирована и разбросана по инету. А гуру драйверописания будут пичкать вас букварями, а не ответами, и если вы решите их все прочитать от корки до корки то это займет гораздо больше месяца. Т.е. как бы драйвер не сложно написать(если вы уже знаете как), но в условиях очень скудного доступа к информации весьма проблематично, хотя если вы в английском гуру, то в иностранных тырнетах с этим проще.

Кстати, где то тут есть тема про GameGuard и в ней ссылка на WinIO и в этом самом WinIO есть функции прямого доступа в память, т.е. теоретически они могут позволить писать и читать в память и есть вероятность, что защита это не будет это пресекать. Проблема только в том, как исследовать программу, это нужно свой cheat engine писать на этих функциях) если они конечно будут работать. И кстати WinIO вместе с исходниками распостраняется.

во я даже нашел топик http://autoit-script.ru/index.php/topic,14307.msg91374.html

  • #7

bugaj Никто и не спорит, что вы знаете. Но простите меня, irp-хуки на kb девайсы с управлением через i/o — явно не стоят месяца изучения. На счет работы с памятью приложений ring3 в ring0 — KeStackAttachProcess.

Вся эта теория — максимум сутки.

P.S. Даже если GameGuard будет сканировать указатели на обработчики IRP нужных девайсов, то обходится это так же просто. Все методы поиска подобных хуков заключаются на определении принадлежности указателя к адресному пространству драйвера конкретного девайса.

  • #8

ок. чего спорить, засекаем — за сколько автор топика обойдет фрост :whistle:

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка при сканировании документа
  • Ошибка при скачивании дискорда dll kernel32