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

Cheat Engine 6.8.3


MasterGH

Рекомендуемые сообщения

Релиз Cheat Engine 6.8.3 февраля 7-го 2019

 

Fixes:

  1. debugging/stepping with hotkeys
  2. several high DPI visual glitches
  3. VEH debugger reattach works again
  4. Pointerscan resume works again
  5. Stackview can now show by reference , previously it did nothing
  6. disassembling imul
  7. speedhack while key down option
  8. assembling values with x*2/4/8
  9. the "resume thread" in the threadlist now resumes threads instead of freezing them fixed an error popping up when editing registers with no debugger attached
  10. getNameFromAddress will not show userdefined symbols when symbols are disabled

 

Additions and Changes:

  1. Waiting till all symbols have been loaded has been removed
  2. Launching structure compare from dissect data now only needs 1 address, though it's recommended to have at least 2 each
  3. Code completion in lua engine is now more smoother
  4. You can now compare traces generated by the tracer
  5. Threadlist window now has a copy to clipboard
  6. Structure compare now digs deeper into pointers
  7. Pointerscan import/export now works with newer types as well
  8. Better Lua comment support
  9. Added rudimentary sort to the structure compare window (based on levelwidth only)
  10. Referenced strings now also shows if it's unicode
  11. Formdesigner now has a context menu to add undocumented controls

 

Lua:

  1. added enumMemoryRegions
  2. added getWriteLog (Let's you get the writelog and activate it)
  3. HexadecimalView: added the OnCharacterRender and OnValueRender events


Post release patches:
02/11/2019: Don't search addresslist entries in PDB when still loading and give an option to quit slow load
02/17/2019: Fixed speedhack giving an error first time activating and removed a message when using ctrl and scanning

 

Изменения в Lua файле документации

Добавились поля

Спойлер
Цитата

Hexadecimal class: (Inheritance: Panel->CustomControl->WinControl->Control->Component->Object)
  The visual hexadecimal object used on the memory view window
properties
  Address: integer - The top address
  HasSelection: boolean - True if something is selected
  SelectionStart: integer
  SelectionStop: integer
  DisplayType: displaytype - The type being shown: dtByte, dtByteDec, dtWord, dtWordDec, dtDword, dtDwordDec, dtQword, dtQwordDec, dtSingle, dtDouble

  OnAddressChange(hexadecimalview, function): function(hexadecimalview, address)
  OnByteSelect(hexadecimalview, function): function(hexadecimalview, address, address2)
  OnCharacterRender: function(sender, address, text) return text end - Called when a character is being rendered. Use this to change it or change the canvas fonts (Warning: slow)
  OnValueRender: function(sender, address, text) return text end - Called when a value (depending on the displaytype) is being rendered. Use this to change it or change the canvas fonts (Warning: slow)

methods
  -

 

WriteLog(Inheritence: -)
properties
  status: boolean
  logsize: integer 

methods
  getLog(): table - Returns an indexed table with the write logs. each entry has a table with the fields: address, original and new

 

 

Комментарии

 

С CE Lua появилась возможность работать с HexView: выбор значений адресов, изменение типов, перехват рендерера для изменения шрифта или текста. Как я понял, если что-то поменялось в памяти, т.е. в окне HexView и стало красным, то это можно перехватить.

 

Возможность работы с WriteLog записи в памяти. Т.е. этот же окно WriteLog ниже только есть доступ к нему через Lua. Хотя, как я не пытался вызывать getLog() метод не понятно из объекта какого-класса - CE не видит класс WriteLog... Короче ладно, может потом решится

image.png

  • Понравилось 1
  • Плюс 3
Ссылка на комментарий
Поделиться на другие сайты

WriteLog работает так

1. Находим адрес

2. Запускаем скрипт логирования

writeLog = getWriteLog
writeLog.status = true

3. Пишем в адрес пару раз

4. Снимаем логи

Спойлер

function TableToString(argtable)
  local s = ''
  for i=1, #argtable do
      s = s..' '..string.format("0x%02X",(argtable[i]))
  end
  return s
end

writeLog = getWriteLog()
writeLog.status = true -- уже это сделали, можно не делать
local tableLog = writeLog.getLog()
for i = 0, 1 do
  print(string.format("0x%X",tableLog[i].address))
  print(TableToString(tableLog[i].original))
  print(TableToString(tableLog[i].new))
end

 

Спойлер

image.png

 

Далее сравнение stacktrace

1. Делаем один stacktrace и сохраняем в файл 1

2. Делаем второй stacktrace и сохраняем в файл 2

3. Выбираем опцию сравнения в меню "open trace for comparision"

Спойлер

image.png

4. Выбираем опцию Realign compare из контекстного меню и выбирая адрес слева или справа сравниваем трейс

Спойлер

image.png

 

Трейслог можно снимать как с hex view байтов из окна памяти, так и с кода в дизассемблере. Например, одна ветвь кода будет связана с главным игроком на чтение или запись значения, а другая ветвь будет не с игроком... Можно попробовать сравнить и выйти вверх на начало функции где будут попадать одинаковые или разные аргументы перед call и исследовать их связь с изменением значения или его чтением.

  • Понравилось 1
  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, MasterGH сказал:

Можно попробовать сравнить

А вот это уже вооще супер - короче убедили - на выходных обновляю СЕ, а то у меня до сих пор СЕ 6.5.:D

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

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

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