MasterGH Опубликовано 17 февраля, 2019 Поделиться Опубликовано 17 февраля, 2019 Релиз Cheat Engine 6.8.3 февраля 7-го 2019 Fixes: debugging/stepping with hotkeys several high DPI visual glitches VEH debugger reattach works again Pointerscan resume works again Stackview can now show by reference , previously it did nothing disassembling imul speedhack while key down option assembling values with x*2/4/8 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 getNameFromAddress will not show userdefined symbols when symbols are disabled Additions and Changes: Waiting till all symbols have been loaded has been removed Launching structure compare from dissect data now only needs 1 address, though it's recommended to have at least 2 each Code completion in lua engine is now more smoother You can now compare traces generated by the tracer Threadlist window now has a copy to clipboard Structure compare now digs deeper into pointers Pointerscan import/export now works with newer types as well Better Lua comment support Added rudimentary sort to the structure compare window (based on levelwidth only) Referenced strings now also shows if it's unicode Formdesigner now has a context menu to add undocumented controls Lua: added enumMemoryRegions added getWriteLog (Let's you get the writelog and activate it) 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... Короче ладно, может потом решится 1 3 Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 18 февраля, 2019 Автор Поделиться Опубликовано 18 февраля, 2019 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 Спойлер Далее сравнение stacktrace 1. Делаем один stacktrace и сохраняем в файл 1 2. Делаем второй stacktrace и сохраняем в файл 2 3. Выбираем опцию сравнения в меню "open trace for comparision" Спойлер 4. Выбираем опцию Realign compare из контекстного меню и выбирая адрес слева или справа сравниваем трейс Спойлер Трейслог можно снимать как с hex view байтов из окна памяти, так и с кода в дизассемблере. Например, одна ветвь кода будет связана с главным игроком на чтение или запись значения, а другая ветвь будет не с игроком... Можно попробовать сравнить и выйти вверх на начало функции где будут попадать одинаковые или разные аргументы перед call и исследовать их связь с изменением значения или его чтением. 1 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 18 февраля, 2019 Поделиться Опубликовано 18 февраля, 2019 2 минуты назад, MasterGH сказал: Можно попробовать сравнить А вот это уже вооще супер - короче убедили - на выходных обновляю СЕ, а то у меня до сих пор СЕ 6.5. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения