SER[G]ANT Опубликовано 9 августа, 2010 Поделиться Опубликовано 9 августа, 2010 Собрал из доступных исходников (rev447), может быть кому будет интересно посмотреть.Еще не все доступно, это только альфаhttp://www.multiupload.com/2X0DEZRXF3 Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 10 августа, 2010 Поделиться Опубликовано 10 августа, 2010 Жаль мне не до исходников в данный момент.Кстати я вижу следующую ситуацию после "двух руссификаций и модернизаций" CE - это излишняя повторяемость переноса модифицированного кода в каждую новую появляющуюся версию CE из прошлых модернизированных руссифицированных версий. Так что надо с этим что-то делать на подобии удобного контролируемого объединения исходных кодов и различных описаний: свойств форм и т.д.Если есть фаны ДаркБайта, то не при них будет сказано. У него плохой стиль программирования, точнее "грязный", допуск варнингов, хинтов, названия переменных, куча потоков, сбор сообщений, лишнее потоки... А самый "ужасный грех" в том, что программа CE плохо и коряво спроектирована на всём этапе разработки и этим автор показывает что не знаком с ООД. Чем дальше он будет писать обновления, тем сложнее будет что-то менять, переставлять, удалять и т.п. - сделано наспех и сделано и делается как "постоянный черновик". Каждая вышедшая версия, должна быть лишена этих недостатков. Тем не менее спасибо ему за программу, т.к. лучше так чем ни чего - ни исходников и не обновлений CE. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 26 декабря, 2010 Поделиться Опубликовано 26 декабря, 2010 Напоминаю, что реализ CE 6.0 на официальном сайте подразумевается 31 декабря или позже (январе или даже в феврале). Так что ждём Те кто ждать не хотят могут сами скомпилировать проект из исходников SVN.Так же хочется упомянуть, что основная проблема русификации и тем более модернизации CE состоит в ручном изменении исходников CE. Т.е. довольно нудно и трудоёмко вручную переносить старые модернизации в новые версии CE. Если бы это дело как-то автоматизировать (например Макросами IDE Delphi), то было гораздо проще. Другая проблема лично моя - пока модернизацией CE я заниматься не хочу, т.к. полно своих дел. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 10 января, 2011 Поделиться Опубликовано 10 января, 2011 Вышла CE 6.0.Описание:January 10 2011:Cheat Engine 6.0 Released:It has taken a while but the wait has been worth it: Cheat engine 6.0 has been releasedIt's not only a new version with some new features, but a complete port from Delphi to Freepascal/Lazarus with support for 64-bitOf course, some features could not get implemented in this new version just yet, like the directx mess and trainer creator, but they are planned to come back in the next versions. If you need to use them, just use Cheat Engine 5.6.1 instead(Check the download page if you need it). And other features have just been stripped because they where useless (hyperscan)Of course, new stuff has been added like the VEHDebugger, improved pointerscan speed, ability to compare to the values of a saved scan, advanced scripting, etc...etc...etc...If you encounter bugs or have suggestions, please do not hesitate to report them. If you don't I can't fix/improve Cheat EngineCheat Engine 6.0Fixes:several disassembler fixeschange by offset supports negative hexadecimal offsetsseveral fixes to the data dissectorFixed simple pasteHextype won't change posChanges:Added a 64-bit versionDifferent compiler (uses fpc/lazarus now instead of delphi)Addresslist has been reimplemented from scratchDebugger has been reimplemented from scratchHexview has been redesignedAdded a new debuggerinterface : VEHDebuggerreplaced underc with luaAdded several lua routinespointerscanner speed increasedcustom types changes from scantype to valuetypes that can be used in multiple locationsdisassembler shows colors and can be configuredimprovements to the stackviewadded tabbed scansstandalone Trainermaker is currently not implementedadded the option to save scanresultsYou can now compare the current addresslist to the values of a saved scan (first scan included)The above also makes the percentage scans more useful, so a between % scan has been added as wellTables can now contain lua scripts that can get executedTable entries can execute lua scripts when enabled/disabled (see it as an extension to auto assembler)Added conditional breakpointadded break on data breakpointautomated "find what accesses address" now shows a trigger countHotkeys on cheat entries have been improvedTemp files don't get saved in the ce folder anymoreCheat Tables don't get saved in the ce folder anymoreAdded a suggestion where you can save your tables nowCheat table entries can now be dragged and dropped, including on top of eachotherHexview can now show seperators any way you likeYou can compare two hexviews with eachother to show the differencesAdded the 7 byte hexadecimal display typeAdded some extra plugin apisImproved the change register on breakpoint guiAnd lots of other stuff...Обсуждаем новые возможности в этой теме. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 10 января, 2011 Поделиться Опубликовано 10 января, 2011 1) DEALLOC - удаление выделенной памяти2)GlobalAlloc (уже такая директива была).Нужна для разового выделения памяти. Пример[ENABLE]GlobalAlloc(mem1,500)mem1:// будет выделена память[DISABLE]// описания изменениеВ этом примере при включении/выключении чита, mem1 выделиться только первый раз. Если кто-то общается с Дарк Байтом, то можете предложить ему аналогичную директиву для CreateThread которая аналогично бы работала один раз. А также ввести аналогичную директиву распрастраняющуюся на группы читов. Например, это было бы полезно если нужно выполнить какой-то поток при первой активации любого чита из группы читов.Про активирующие скрипты - http://forum.gamehac...db0490fa02491113) У CE обновлён Script engine на движке LUAС этими функциями понятно:readBytes(address,bytecount) : Reads the bytes at the given address and returns itwriteBytes(address, x,x,x,x) : Write the given bytes to the given addressreadBytesLocal(address,bytecount) : See readBytes but then it's for Cheat engine's memorywriteBytesLocal(address, x,x,x,x) : See writeBytes but then it's for Cheat Engine's memoryreadInteger(address) : Reads a integer from the specified addressreadFloat(address) : Reads a single precision floating point value from the specified addressreadDouble(address) : Reads a double precision floating point value from the specified addressreadString(address, maxlength) : maxlength is just so you won't freeze for too long, set to 6000 if you don't care too muchwriteInteger(address,value) : Writes an integer to the specified address. Returns true on successwriteFloat(address,value) : Writes a single precision floating point to the specified address. Returns true on successwriteDouble(address,value) : Writes a double precision floating point to the specified address. Returns true on successwriteString(address,string) : Write a string to the specified address. Returns true on successshowMessage(text) : shows a messagebox with the given textmessageDialog(text, type, buttons...) : pops up a message with a specific icon/sound with the specified buttons (mbok, mbyes, ....)sleep(milliseconds): pauses for the number of specified milliseconds (1000= 1 sec...)А вот с этими уже по интереснее (по определенным условиям: работа с хуками, процессами, выполнения автоассемблерных скриптов, подгрузка dll-ок, ввод/вывод пользователя от мышки и клавиатуры, спидхак и паузы процесса позволят останавливать процесс и запускать его медленно для считывания каких-то параметров, их обработки и т.п. ):generateAPIHookScript(address, addresstojumpto, addresstogetnewcalladdress OPT) : Generates an auto assembler script which will hook the given address when executedautoAssemble(text) : runs the auto assembler with the given text. Returns true on successgetProcessIDFromProcessName(name) : returns a processidopenProcess(processid) : causes cheat engine to open the given processidopenProcess(processname): causes cheat engine to find and open the given processpause : pauses the current opened processunpause: resumes the current opened processgetPixel(x,y) : returns the rgb value of the pixel at the specific screen coordinategetMousePos: returns the x,y coordinates of the mousesetMousePos(x,y): sets the mouse positionisKeyPressed(key) : returns true if the specified key is currently pressedkeyDown(key) : causes the key to go into down statekeyUp(key) :causes the key to go updoKeyPress(key) : simmulates a key pressspeedhack_setSpeed(speed)injectDll(filename): Injects a dll, and returns true on successС этими тоже интересно - создании записей в таблице читов программным путём. Учитывая предыдущие функции по работе с процессом такие как спидхак, пауза процесса и запуск процесса, автоассемблирование, запуск потоков и т.п. можно по каким-то условиям автоматизировать добавления нужных адресов в таблицу читов для каких-то целей: готовые читы, читы для наблюдения и т.п. Поголовной замозки или заморозки по условиям для некоторых записей.Cheat table functions:createTableEntry: creates an generic cheat table entry and add it to the list. Returns a tableentry pointer you can use with memrec routinesgetTableEntry(descriptionname): returns a tableEntry pointer for use with memrec functionsmemrec_setDescription(te, description): sets the specified description for this entrymemrec_getDescription(te): gets the current description of this entrymemrec_getAddress(te): returns the address and optional offsets for a pointer (note that in 64-bit kernelmode addresses will be rounded down...)memrec_setAddress(te,address,offsets OPTIONAL) : Sets the address of a entry. You can give as many offsets as you needmemrec_getType(te) : returns the Variable type. (vtByte to vtCustom)memrec_setType(te, vartype) : sets the type of the entrymemrec_getValue(te): returns the current value of the cheat table entry as a stringmemrec_setValue(te, value): sets the value of a cheat table entrymemrec_getScript(te) : If the entry is of type vtAutoAssembler then you can get the script with this routinememrec_setScript(te, script)memrec_isFrozen(te)memrec_freeze(te, updownfreeze OPTIONAL): sets the entry to frozen state. updownfreeze is optional. 0=freeze, 1=allow increase, 2=allow decreasememrec_unfreeze(te) :unfreezes an entrymemrec_setColor(te, colorrgb): Sets the color of the entrymemrec_appendToEntry(te,te) : Adds the entry to another entrymemrec_delete(te) : It's unknown what this function does, all that is known is that after using this command other memrec routines with this table entry value don't work anymore...Функции по отладчику:Работа с регистрами:EAX, EBX, ECX, EDX, EDI, ESP, EBP, ESP, EIPRAX, EBX, RBX, RDX, RDI, RSP, RBP, RSP, RIP, R8, R9, R10, R11, R12, R13, R14, R15 : The value of the registerОбработчик бряков:debugger_onBreakpoint() createProcess(path, parameters OPTIONAL, debug OPTIONAL, breakonentrypoint OPTIONAL) : Creates a process. If debug is true it will be created using the windows debugger and if breakonentry is true it will cause a breakpoint to occur on entrypointdebugProcess(interface OPT): starts the debugger for the currently opened process (won't ask the user) Optional interface: 0=default, 1=windows debug, 2=VEHDebug, 3=Kerneldebugdebug_setBreakpoint(address, size OPTIONAL, trigger OPTIONAL) : sets a breakpoint of a specific size at the given address. if trigger is bptExecute then size is ignored. If trigger is ignored then it will be of type bptExecute, which obviously also ignores the size then as welldebug_removeBreakpoint(address) : if the given address is a part of a breakpoint it will be removeddebug_continueFromBreakpoint(continueMethod) : if the debugger is currently waiting to continue you can continue with this. Valid parameters are :co_run (just continue), co_stepinto(when on top of a call, follow it), c_stepover (when on top of a call run till after the call)hasChangedARegister : Set this to true before continuing and the changedREG variables will be checked to see if the new value should be set (just an optimization so not every variable has to be checked each time even if you didn't change a thing)changedEAX, changedRAX, changedEBX, changedRBX, changed.....gui для CE для вывода интересной информации из процесса игрыcloseCE() : just closes cehideAllCEWindows() : makes all normal ce windows invisible (e.g trainer table)unhideMainCEwindow() : shows the main cheat engine window--class-objects-The following objects are descendent from the object named "control", therefore the returned pointer when they are created can also be used for functions that start with control_createForm(visible OPT): creates a form (window) and returns the pointer for it. Visible is default true but can be changedform_centerScreen(form);form_onClose(form, function)form_hide(form)form_show(form)The following create routines take an owner as parameter. Owner can be a Form, Panel or GroupboxThe x,y position will be based on the client array of the ownercreatePanel(owner)createGroupBox(owner)createButton(owner)createImage(owner)image_loadImageFromFile(filename)image_stretch(boolean)image_transparent(boolean)createLabel(owner)createEdit(owner)createMemo(owner)control_setCaption(control, caption) : sets the text on a control. All the gui objects fall in this categorycontrol_getCaption(control)control_setPosition(control, x,y): sets the x and y position of the object base don the top left position (relative to the client array of the owner object)control_getPosition(contron): returns the x and y position of the object (relative to the client array of the owner object)control_setSize(control, width,height) :control_getSize(control)control_align(control, alignmentoption): control_onclick(control, function) : createTimer(owner)timer_setInterval(timer, interval)timer_onInterval(timer, function)getAutoAttachList(): returns the AutoAttach StringList object. It can be controlled with the stringlist_ routines (it's not recommended to destroy this list object)stringlist_add(list, string);stringlist_remove(list, string);object_destroy(object) : Destroys the object (basically everything inherits from thisЭту информацию я вам привел пробежавшись по файлу справки. Каждую строчку я её не читал, так что можете найти там ещё что-то новое.Пока могу сделать такой вывод. До версии и во время 5,6 был упор на автоассемблер и автопоиск цепочек указателей. В новой версии 6.0 был сделан упор на скриптовом управлении (многие функции я описал выше) процессов, а также поддержку отладки 64 разрядных приложений. Написание скриптов на LUA к сожалению не для всех пользователей, а скорее для тех кто знает С/С++/LUA... Так что те кто знают те обрадуются, а те кто не знают наверно расстроятся, т.к. почти ничего не понимают. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 10 января, 2011 Поделиться Опубликовано 10 января, 2011 Да и кстати забыл обратить внимание. Теперь CE не поддерживает создания трейнеров как самостоятельных программ как это было ранее. Но это дело двух сторон. С одной стороны - не имеет поддрежки трейнеров, с другой стороны на LUA скриптах вы можете создать "форму трейнера" и необходимые контролы Т.е. теперь вы скриптами пишите и форму трейнера и сами читы. Затем эти скрипты аккуратно сохраняете по папкам и запускаете когда надо. Вообще хорошая идея. Однако было бы лучше если бы в CE была база данных как локальная (хотябы локальная) так и удалённая. Чтобы к этой БД можно было делать запросы и получить необходимые скрипты и описания к ним. Ссылка на комментарий Поделиться на другие сайты Поделиться
Akama Опубликовано 10 января, 2011 Поделиться Опубликовано 10 января, 2011 Я так понял с помощью LUA скриптов можно будет добавить читы ассемблера из списка? Если да, то это здорово...Можно будет что-то типа своего движка для трейнеров сделать... Ссылка на комментарий Поделиться на другие сайты Поделиться
live_4_ever Опубликовано 10 января, 2011 Поделиться Опубликовано 10 января, 2011 Программа создает папку "My Cheat Tables" в Моих документах.ЗЫ Новая версия по лучше чем прошлае. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 10 января, 2011 Поделиться Опубликовано 10 января, 2011 Я так понял с помощью LUA скриптов можно будет добавить читы ассемблера из списка? Если да, то это здорово...Можно будет что-то типа своего движка для трейнеров сделать...Ага, я не подумал об этом . С помощью LUA можно дизассемблировать инструкции, анализировать их и составлять автоассемблерные скрипты. Их потом можно сразу использовать как чит или перед этим добавить его в таблицу читов, а после закрытия CE удалять, т.к. они создаются динамически. Также можно автоматизировать отладку по LUA если это требуется... а от пользователя потребуется только ввести начальный адрес некоторого параметра.Программа создает папку "My Cheat Tables" в Моих документах.ЗЫ Новая версия по лучше чем прошлае.+1 Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 10 января, 2011 Поделиться Опубликовано 10 января, 2011 Для тех кто не знает о возможностях CE 6.0 можно прочитать на форуме CE здесь и здесь. Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 10 января, 2011 Поделиться Опубликовано 10 января, 2011 Немного попользовал. Заломал 64-битного Сапёра)) (пока только таймер и количество бомб на поле), протестировал новый режим дебаггера в игре Дальнобойщики 3 - в новом режиме игра не вылетает при бряках! Потом ещё надо будет потестить на каком-нибудь LIVE. Из приятных мелочей - хоткеи стали в таблице сохраняться)) Ну и lua давно руки чесались изучить, теперь есть повод Ссылка на комментарий Поделиться на другие сайты Поделиться
Akama Опубликовано 10 января, 2011 Поделиться Опубликовано 10 января, 2011 Я терь жду когда они интерфейс красивый сделают. В таких программах как бы оно не главное, но что-то приятное глазу хочется... Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 12 января, 2011 Поделиться Опубликовано 12 января, 2011 Информация.1) CE периодически фиксится без уведомления в новостях на главном сайте, так что имейте ввиду. Возможно ваш баг уже исправлен.2) В этом обзоре (наверно уже вы его видели, привожу ещё раз на всякий случай) показаны основные фишки CE 6.0 (я например узнал как пользоваться сканированием по процентам). Также вы увидите описание трейсера, установки условных бряков и увидите что-то ещё.3) Кое-кто (mgr.inz.Player) уже успел сделать таблицу на CE 6.0 для Сталкера. Там же есть LUA + помните что в Сталкере объектные патроны, кому интересно могут посмотреть как были сделаны бесконечные патроны. Хотя я думаю, там просто автоматизирована перезарядка, с каждой перезарядкой можно создавать новые патроны. Т.е. без перезарядки беск. патроны не сделаешь простым способом. А там именно этот простой способ. Я же делал без перезарядки (только скрипт остался на харде в Москве, а сейчас не в Москве, так что посмотреть не могу)Скрины и скрипт xrEngine.rar: Ссылка на комментарий Поделиться на другие сайты Поделиться
live_4_ever Опубликовано 2 февраля, 2011 Поделиться Опубликовано 2 февраля, 2011 Кто не замутил, уже есть исходни Cheat Engine 6.0:http://www.heijnen1.demon.nl/CheatEngine60src.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 6 февраля, 2011 Автор Поделиться Опубликовано 6 февраля, 2011 live_4_everлучше обновлять через svn, там всегда самые последние исходникиhttp://ce.colddot.nl/svn/ Ссылка на комментарий Поделиться на другие сайты Поделиться
live_4_ever Опубликовано 6 февраля, 2011 Поделиться Опубликовано 6 февраля, 2011 Я даже не обратил внимания, не знал <*<...Спасиб SERGANT Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 9 февраля, 2011 Поделиться Опубликовано 9 февраля, 2011 (изменено) Народ, для того чтобы написать статью о компиляции CE6.0 нужна инфа по компиляции Lazarus после получения его исходников из SVN. Кто знает напишите )А всё сам сделаю как будет время. Я уже нашёл информацию как компилировать Лезаруса. Изменено 9 февраля, 2011 пользователем MasterGH ... Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 11 февраля, 2011 Поделиться Опубликовано 11 февраля, 2011 У меня идеи по структуризации тем и разделов по Cheat Engine модернизациям. Но сначала необходимо разобраться с тем как компилить Cheat Engine. Пока мне не удалось в этом разобраться если кто сможет, то пишите.Для начала следующая информация.Для компиляции текущего CE требуется Lazarus IDE версии не ниже v0.9.29, рекомендуется v0.9.31. Также требуется последний компилятор Free Pascal. Я предполагаю, что Dark Byte (DB) постоянно следит за последними обновлениями исходники этих инструментов. Компилирует их и затем компилирует ими Cheat Engine. Если он это делает не часто, то по крайне мере может сделать в любой момент и тогда новые исходники CE 6.xx мы уже не скомпилим и будем искать решение вместо того чтобы найти его сейчас. Это означает, что нам.1. Этап1) Скачиваем и пользуемся TortoiseSVN создав папку SVN в ней будет другие SVN-папки:2) Закачиваем с помощью TortoiseSVN SVN-cheatEngine по ссылке http://ce.colddot.nl/svn3) Закачиваем SVN-freePascalCompiler по ссылке http://svn.freepascal.org/svn/fpc/4) Закачиваем SVN-IDELazarus по ссылке http://svn.freepascal.org/svn/lazarusТаким образом всегда можно получать новые исходники. Я не знаю, возможно вы не захотите скачивать некоторые папки, но это уже Ваше решение.2. Этап.Потребуется компилировать все инструменты.Пока у меня получилось скомпилировать freepascal. Позже я напишу как это сделал. Но у меня не получилось собрать Lazarus. После его компиляции, настроек необходимых путей можно будет компилировать Cheat Engine 6.0... Также есть здесь обсуждение. А вообще мне не очень нравится этот гемморой на самом деле, но что делать - придётся. Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 11 февраля, 2011 Автор Поделиться Опубликовано 11 февраля, 2011 http://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2032%20bits/ Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 12 февраля, 2011 Поделиться Опубликовано 12 февраля, 2011 Эта ссылка ничем не поможет.Это инсталлятор на lazarus-0.9.28.2-fpc-2.2.4-win32.exe. Старая версия IDE, старый компилятор. Cheat Engine не скомпилируешь. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 12 февраля, 2011 Поделиться Опубликовано 12 февраля, 2011 Вопрос снят. Подробности позже.Удалось собрать проект CE Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения