-
Постов
2 999 -
Зарегистрирован
-
Победитель дней
129
Тип контента
Профили
Форумы
Загрузки
Блоги
Комментарии блога, опубликованные MasterGH
-
-
Актуально, если под code будет всегда оригинальный код в 10 байт и 10 байт будут другими на другой инструкции.
Я думаю, шаблонный генератор все сделает за нас. Помогает такие штуки не забывать и просто о них даже не думать.
- 1
-
6 часов назад, ReWanet сказал:
Я и не говорю что стоит отказываться от LUA в CE Он достаточно полезный.
Я тоже не говорю, что стоит отказываться от Lua в CE. Тоже могу сказать, что достаточно полезный. Хотя ничего не писал месяца 4.
2 часа назад, kiwipapayamongoose сказал:А разве нельзя написать сборщик мусора, который бы следил за памятью и высвобождал, то что уже никто не использует? Хотя, странно писать сборщик для какого-то таймера и загоняться об утечке с <4 гб.Просто, я не понимаю как из-за таймера может быть утечка,
Размер свободной ОЗУ уменьшался в плагинах на событии движения мышки по окну Lua-шного дизассемблера. Больше гигабайта за минут 30 и дальше - больше. Вариант выше эту проблему исправил. Потом вышел fix и это дело поправили.
-
Скрытый текст
-- Добавление контекстной функции устаноки брейкпоинтов на меню local menuItems = _frmTracelog.findComponentByName('pmTracer').Items local menuItemSetBreakPoint = createMenuItem(menuItems) menuItemSetBreakPoint.Caption = 'Set breakpoints on calls' menuItemSetBreakPoint.OnClick = function () local resultString = inputQuery('Set name tracelog', 'Name:', 'Change ammo, health... etc') if(resultString ~= nil) then obj.frmTracelog.Caption = resultString end local tableAddresses = obj:GetTableExitLocalBranches(obj.frmTracelog.lvTracer) local tableBreakPoints = debug_getBreakpointList() for i=1, #tableAddresses do local previousAddress = getPreviousOpcode(tableAddresses[i]) if(not obj:TableContaints(tableBreakPoints, previousAddress)) then setComment(previousAddress, string.format('RET -->> %s (%s)', i, resultString)) debug_setBreakpoint(previousAddress, vtByte, bptExecute) end end end
-
Прикольно!
-
Только что, Xipho сказал:
Например, у меня жена играет в Gardenscapes.
Кстати меня просили помочь со взломом этой игры. Сам я не взломал считай, меня ломало. Поискал в Интенете мод. Там 99 сердец уже было в готовом моде апк, лаки патчером подмена иннап, а вот в минииграх взлом кол-ва ходов с помощью Cheat Engine (скаченного с форума CE для Андроида), хотя потом CE не стали пользоваться, т.к. голды полно.
Еще поиск предметов Hiddent City. Лаки патчер + програ типа AutoIt. Зациклил покупку рубинов через фейковый иннап.
Таким образом взлом андроид игр очень популярен. Какая-то игра была про выживание. Там за меньше чем неделю, более 60 тыс скачивайний модов с апк.
-
Могут быть любые баги в больших трейслогах, критических секциях, со множеством потоков. Тут нужно смотреть и отдавать в багрепорт Дарк Байту. Пока остается пользоваться тем что есть.
-
В 28.07.2017 в 01:39, X86Jumps сказал:
откуда 3й пунк в контекстном меню в trace?
установка breakpoint on calls?
Этот пункт сделан Lua скриптом. Думаю, он есть в репозитории у меня и его можно поставить. Без него тоже можно вручную на call-ы поставить брейкпоинты из трейслога. Потом идем в игру, в оконном режиме и нажимаем F5 и снимаем брейкпоинт по F2 пока не перестанут срабатывать эти call-ы. Затем делаем нужное действие в игре и срабатывает первый call. С этого место можно снять трейслог в глубину до адреса параметра. Потом посмотреть этот трейслог.
-
Я посмотрел документацию, теоретически можно попробовать. Отмечаем галками модули в некотором нашем новом GUI списка модулей. Дальше до начала поиска скрипт ищет все не отмеченные модули и добавляет их в игнор поиска по модулям (список берем из getCommonModuleList). Стартовый и конечный адреса не трогаем. Список игнорируемых модулей запоминаем и восстанавливаем. В какой момент восстанавливать список модулей, надо подумать.
-
В Открытых технологиях могут быть подходящие видеокарты, там большой выбор. В Техносити и Днс насколько я помню дороже и выбор точно меньше.
-
1 минуту назад, Garik66 сказал:
Может можно в LUA скрипте прописать класс TFontDialog и уже обращаться к нему?
Нет. Класс TFontDialog не описан в mainLua.
Есть еще два варианта через создание потока. С его помощью вызывать уже готовую функцию создания диалога (еще найти её придется в Lazarus-е в пошаговой отладке), либо на WinAPI через ассемблерный код. С этими двумя вариантами я не могу помочь.
-
-
TFormDesigner
Его нет и у меня Я просто Дизайнер открыл, когда исполнил скрипт. Вот он и залетел в список, т.к. проинициализировался.
Теперь я его закрыл. Выполнил скрипт. Теперь его не видно
-
Мда, на 6.5 TFontDialog класса нет
-
Вывести список уникальных классов и версию Cheat Engine
Скрытый текстfunction MainLuaProgramm() print ('Vesrion: ' .. getCEVersion()..'\r\n') tableComponents = {} local formCount = getFormCount() for i=0, formCount-1 do local form = getForm(i) local componentCount = form.getComponentCount() for j=0, componentCount-1 do local component = form.getComponent(j) local containts = false for f=1, #tableComponents do if(tableComponents[f] == component.ClassName) then containts = true break end end if(not containts) then table.insert(tableComponents, component.ClassName) end end end table.sort(tableComponents) print (table.concat(tableComponents,'\r\n')) print ('\r\nCount: ' .. #tableComponents..'\r\nEnd') end MainLuaProgramm()
Скрытый текстVesrion: 6.6 TAction TActionList TAddresslist TButton TCheckBox TCheckGroup TCheckListBox TColorDialog TComboBox TDisassemblerview TEdit TFindDialog TFontDialog TGroupBox THexView TIdleTimer TImage TImageList TLabel TListBox TListView TMainMenu TMemo TMenuItem TOpenDialog TPageControl TPanel TPopupMenu TProgressBar TRadioButton TRadioGroup TReplaceDialog TSaveDialog TScrollBox TSelectDirectoryDialog TShape TSpeedButton TSplitter TSynAASyn TSynCppSyn TSynEdit TSynLuaSyn TTabSheet TTablist TTimer TToolBar TToolButton TTrackBar TTreeView TframeHotkeyConfig TfrmAutoInject TfrmLuaEngine Count: 52 End
-
11 минуту назад, Garik66 сказал:
Интересно это у меня (локальная) ошибка или у всех у кого СЕ6.5.
Скорее всего, так у всех Такого компонента нет
-
-
Еще вариант поиска по названию класса.
Ищет по всем доступным окнам CE. Не нужно знать имя компонента. Ну и не нужно теперь лазить в Lazarus-е
Скрытый текстfunction FindComponentByClassName(stringClassName) local formCount = getFormCount() for i=0, formCount-1 do local form = getForm(i) local componentCount = form.getComponentCount() for j=0, componentCount-1 do local component = form.getComponent(j) if(component.ClassName == stringClassName) then --print(component.ClassName ..'__'.. component.Name) return component end end end end function MainLuaProgramm() local fontDialog = FindComponentByClassName('TFontDialog') if(fontDialog == nil) then showMessage("fontDialog is nil") return end local visibleState = true mainForm = createForm(visibleState) local testButton = createButton(mainForm) testButton.Caption = 'Set Font' testButton.onClick = function (sender) if getSettingsForm().FontDialog1.Execute() then testButton.Font.assign(getSettingsForm().FontDialog1.Font) end end end MainLuaProgramm()
-
Значит нет диалога шрифтов, или у него имя другое, или обращение к нему по имени невозможно.
Пока не знаю как решить эту задачу
-
Вызывать
print('Start') print(getSettingsForm()) print('1') print(getSettingsForm().FontDialog1) print('2') print(getSettingsForm().FontDialog1.Font) print('3')
Без ошибок будет так (адреса будут отличаться)
Start 0989C7F0 1 00324690 2 0B946F40 3
Там где ошибка будет, там проблема и текст дальше выводиться не будет.
-
Только что, Garik66 сказал:
Может из-за того что у меня до сих пор СЕ 6.5?
Скорее всего, да. Возможно не работает функция
getSettingsForm()
Она могла появиться позже
-
Тут для кнопки, а для Label примерно также
Скрытый текстfunction MainLuaProgramm() local visibleState = true mainForm = createForm(visibleState) local testButton = createButton(mainForm) testButton.Caption = 'Set Font' testButton.onClick = function (sender) if getSettingsForm().FontDialog1.Execute() then testButton.Font.assign(getSettingsForm().FontDialog1.Font) end end end MainLuaProgramm()
-
На главной форме нет диалога шрифтов. Если посмотреть через Lazarus, то можно найти диалог шрифтов на панели настроек
... getSettingsForm().FontDialog1.Execute() ...
-
Спасибо. Я код неправильный оставил. Очень спешил
Изменил свой пример в первом посте Сделал через вызов функции
MainLuaProgramm()
Забыл сделать. Если отмену нажали, то надо конечно это условие ставить
if(colorDialog.Execute()) then
-
Несколько интересных ресурсов по Lua
1. tutorialspoint (хорошие примеры по ООП)
2. cheatengine forum примеры кода от пользователя TheyCallMeTim13. Отличый code style.
3. gammon Примеры.
5. "Изучите X за Y минут Где X=Lua" (очень быстро и кратко о синтаксисе, метатаблицах, ООП)
Исходник пункта 5: learnlua-ru.lua
Новости по будущему плагину
in Блог MasterGH
Блог MasterGH в General
Опубликовано
Не хватало файла GHL_ClassSettings.lua. Перезалил