MasterGH Опубликовано 12 февраля, 2011 Поделиться Опубликовано 12 февраля, 2011 Вы даже не представляете как далеко пошёл Дарк Байт. Он "прикручивает" настоящую IDE к Cheat Egine по существующим компонентам. А это предвестник того, что трейнеры начнут штамповать LUA скриптами. Которые будут сверхмалых размеров по сравнению с автономными трейнерами написанными даже на ассемблере.Но радоваться ещё рано, т.к. это дело на 100% не работает пока. Например, Control_SetCaption и Control_GetCaption пока не работают. Но обработчики события работают в связке с IDE, но не генерируются автоматически в LUA-консоле. Так же можно было видеть что добавлена подсветка. Как бы там не было, грядут большие перемены в создании трейнеров - сверх малых размеров. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 1 марта, 2011 Автор Поделиться Опубликовано 1 марта, 2011 Новости из закрытого раздела форума тестирования сырых верий CE. Для третьей альфа версии обновлены функции для LUA-поддержки. Одна из них касается сканирования сигнатур.--aobScan("aobstring", protectionflags OPTIONAL, alignmenttype OPTIONAL, alignmentparam HALFOPTIONAL): --protectionflags is a string. -- X=Executable W=Writable memory C=Copy On Write. Add a + to indicate that flag MUST be set and a - to indicate that that flag MUST NOT be set. (* sets it to don't care) -- Examples: -- +W-C = Writable memory exluding copy on write and doesn't care about the Executable flag -- +X-C-W = Find readonly executable memory -- +W = Finds all writable memory and don't care about copy on write or execute -- "" = Find everything (is the same as "*X*C*W" ) -- -- --alignmenttype is an integer: -- 0=No alignment check -- 1=Address must be dividable by alignmentparam -- 2=Address must end with alignmentparam --alignmentparam is a string which either holds the value the addresses must be dividable by or what the last digits of the address must beИнформация по другим функциямКто умеет компилировать исходники из SVN, тот может протестировать.По поводу времени выхода CE 6.1 ещё неизвестно. Хотя по логам и исходниками видно, что было проделано не мало работы с момента выхода CE6.0. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 2 марта, 2011 Автор Поделиться Опубликовано 2 марта, 2011 Обновления до Cheat Engine 6.1 Alpha 4 с историями версий:Поехали:1) Cheat Engine 6.1 Alpha 1 (Thu Feb 10, 2011 10:16 pm)Fixed several bugs (the first item in the addresslist should update a bit better now and errormessages should contain the error now as well) memscanner now makes the temp folder writable for the current user Selecting 4 bytes and pressing space in the hexview jumps to the specified address. Backspace returns (8 bytes if the target is 64-bit) Added sorting by clicking on the columns in the addresslist Made a start with the essentials of the trainer maker. It's still all done manually but just read the main.lua file on some updates Changed the title to ce 6.1 Alpha The mainmenu processlist is now invisible by default (you can still make it visible if you have to) Compiled using the Lazarus/Freepascal build of today Started with language support You can now pick if it disassembles to 32 or 64 bit Saved scan compares no longer take up totalgamememory * number of cpu's but only a few KB's now (might be slightly slower) Seperate lua window. With support for lua syntax highlighting (doesn't get saved yet and doesn't yet replace the old one)2) Cheat Engine 6.1 Alpha 2 (Thu Feb 24, 2011 6:38 pm)several assembler/disassembler fixes pressing delete in an empty cheat table list won't raise an AV anymore implemented a load of new OO commands to lua implemented the automated trainer maker implemented the standalone trainer maker (still needs several bugfixes, e.g: parameter override, the window doesn't show up in the taskbar, closing doesn't work well,etc...) full translation support now (check the languages folder) Added an xm player Memory scan options changed lua aobscan now has several extra parameters memory scan engine is fully accessible from lua3) Cheat Engine 6.1 Alpha 3 (Thu Feb 24, 2011 11:40 pm)Fixed some really annoying bugsТестирование aubscan1Here are the results of the testing of AOBScan (LUA): For testing, the application was Tutorial-i386.exe. aobstring = "8b 55 f8 89 10 31 c0". It is at offset 00410319 In Memory Regions, the area is defined as (Execute+Write Copy/Commit/Execute+Read/Image) - AOBScan(aobstring) => FAILED "Access violation" - AOBScan(aobstring,"") => FAILED "Access violation" - AOBScan(aobstring,"*X*W*C") => PASSED (address is found) - AOBScan(aobstring,"-X") => FAILED (address is found) - AOBScan(aobstring,"-W") => PASSED (address is not found) - AOBScan(aobstring,"-C") => PASSED (address is not found) - AOBScan(aobstring,"+W") => PASSED (address is found) - AOBScan(aobstring,"+C") => PASSED (address is found) - AOBScan(aobstring,"-W-C") => PASSED (address is not found) - AOBScan(aobstring,"-W+C") => PASSED (address is not found) - AOBScan(aobstring,"+W-C") => PASSED (address is not found) - AOBScan(aobstring,"+W+C") => PASSED (address is found) - AOBScan(aobstring,"*X*W*C",0) => PASSED (address is found) - AOBScan(aobstring,"*X*W*C",1) => ????? (address is found) (Is this the expected behavior?) - AOBScan(aobstring,"*X*W*C",2) => ????? (address is not found) (Is this the expected behavior?) If the parameter is omitted it gives as value "1" - AOBScan(aobstring,"*X*W*C",0,"") => PASSED An Error occurs '"{:content:}quot; is an invalid integer' - AOBScan(aobstring,"*X*W*C",0,"4") => PASSED (address is found) - AOBScan(aobstring,"*X*W*C",0,"h") => PASSED (An Error occurs '"{:content:}quot; is an invalid integer') - AOBScan(aobstring,"*X*W*C",0,"A") => PASSED (address is found) - AOBScan(aobstring,"*X*W*C",1,"") => PASSED (An Error occurs '"{:content:}quot; is an invalid integer') - AOBScan(aobstring,"*X*W*C",1,"4") => FAILED (address is found) - AOBScan(aobstring,"*X*W*C",2,"") => PASSED (An Error occurs '"{:content:}quot; is an invalid integer') - AOBScan(aobstring,"*X*W*C",2,"4") => PASSED (address is not found) - AOBScan(aobstring,"*X*W*C",2,"9") => FAILED (address is not found) - AOBScan(aobstring,"*X*W*C",2,"19")=> FAILED (address is not found)Тестирование 2- - - NOT Found - - * NOT Found - - + Scan Error: No Readable Memory Found - * - NOT Found - + - NOT Found * * - Found + * - Found * + - NOT Found * - - Found * * * Found Fast Scan + Aligment = the result for any value is the same as for 4; Fast Scan + Last Digits = the result for any one digit value is the same as for 4;X W C 4) Cheat Engine 6.1 Alpha 4 (Wed Mar 02, 2011 12:01 am)Fixed the scanning errors Redesigned the trainer maker to be more idiot proof functions are now auto generated when using the form designer added dbk functions to lua updated the lua dll's so they now support 64-bit integer values (updated the change register method as well) almost all strings in ce are now resources so ce should now be fully translatable fixed auto assembler problem with dealing with strings (caused the veh debug error) And some other fixes to several lua routines Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 6 марта, 2011 Автор Поделиться Опубликовано 6 марта, 2011 В 4-ой версии альфа появилась одна особенность. Переменные в LUA скрипте можно использовать в скриптах автоассемблера используя префикс $.Цитата Dark Byte:oh yes, forgot to mention one more feature in this alpha: the auto assembler can now use lua symbols (global symbols) Just add a $ in front of the name and that lua symbol will get replaced internally by the string representation of that value e.g in the lua script you have "bla=123" you can then do "mov [eax],$bla" same for addresses, but remember that ce uses hexadecimal strings so: lua: address="00400500" aa: mov eax,[$address] also, because lua is case sensitive, the variable name must match case (so not $AdDrEsS ) and for floating point values you will still need to add (float) or (double) in front e.g (float)$blaКогда выйдет реализ 6.1 я опишу эту особенность в справке по LUA Engine.Также новые тесты aobscan:Цитата Recifense:Hi DB, I restarted my PC and I could not reproduce the issue anymore. So here is the result:For testing, the application was Tutorial-i386.exe. aobstring = "8b 55 f8 89 10 31 c0 66".It is at offset 00410319In Memory Regions, the area is defined as (Execute+Write Copy/Commit/Execute+Read/Image)- AOBScan(aobstring) => PASSED (address is found)- AOBScan(aobstring,"") => PASSED (address is found)- AOBScan(aobstring,"-X") => PASSED (address is not found)- AOBScan(aobstring,"+X") => PASSED (address is found)- AOBScan(aobstring,"-W") => PASSED (address is found)- AOBScan(aobstring,"+W") => PASSED (address is not found)- AOBScan(aobstring,"-C") => PASSED (address is found)- AOBScan(aobstring,"+C") => PASSED (address is not found)- AOBScan(aobstring,"*X*W*C") => PASSED (address is found)- AOBScan(aobstring,"-X*W*C") => PASSED (address is not found)- AOBScan(aobstring,"+X*W*C") => PASSED (address is found)- AOBScan(aobstring,"*X-W*C") => PASSED (address is found)- AOBScan(aobstring,"*X+W*C") => PASSED (address is not found)- AOBScan(aobstring,"*X*W-C") => PASSED (address is found)- AOBScan(aobstring,"*X*W+C") => PASSED (address is not found)- AOBScan(aobstring,"*X-W-C") => PASSED (address is found)- AOBScan(aobstring,"*X-W+C") => PASSED (address is not found)- AOBScan(aobstring,"*X+W-C") => PASSED (address is not found)- AOBScan(aobstring,"*X*W*C",0) => PASSED (address is found)- AOBScan(aobstring,"*X*W*C",1) => PASSED (address is found)- AOBScan(aobstring,"*X*W*C",2) => PASSED (address is not found)- AOBScan(aobstring,"*X*W*C",0,"") => PASSED An Error occurs '"{:content:}quot; is an invalid integer'- AOBScan(aobstring,"*X*W*C",0,"4") => PASSED (address is found)- AOBScan(aobstring,"*X*W*C",0,"h") => PASSED (An Error occurs '"{:content:}quot; is an invalid integer')- AOBScan(aobstring,"*X*W*C",0,"A") => PASSED (address is found)- AOBScan(aobstring,"*X*W*C",1,"4") => PASSED (address is not found)- AOBScan(aobstring,"*X*W*C",1,"1") => PASSED (address is found)- AOBScan(aobstring,"*X*W*C",2,"4") => PASSED (address is not found)- AOBScan(aobstring,"*X*W*C",2,"9") => PASSED (address is found)- AOBScan(aobstring,"*X*W*C",2,"19")=> PASSED (address is found)X W C- - - NOT Found- - * NOT Found- - + Scan Error: No Readable Memory Found- * - NOT Found- + - NOT Found* * - Found+ * - Found* + - NOT Found* - - Found* * * FoundFast Scan + Aligment = PASSEDFast Scan + Last Digits = PASSEDI liked the change on the "The following opcodes accessed xxxxx". The double-click on a register on the REGISTER of "Changed Addresses" is working pretty fine. Could it be implemented for the registers of "More Information"?Is there a way to save information via AA so if the process closes by any error you can still be able to see it (debugging info generated by the script)? Maybe some memory could be allocated and attached to CE instead of the app process.Cheers and Congrats! Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 19 марта, 2011 Автор Поделиться Опубликовано 19 марта, 2011 18 марта вышла 6 Альфа версия CE 6.1 (скачать)(5 Альфа вышла 8-го марта, в ней в основном фиксы с дизассемблером, не очень интересно)Dark Byte:Several assembler/disassembler fixes added a structure spider (dissect structure and pointerscan combined) added a stringmap, to be used with the structure spider fixed a bunch of lua functions , typos, and added some that where missing fixed saving/loading TCheat objects and fixed a bunch of other minor bugs known bugs: Disassembler still seems to have a few bugsstructure spider is useful in cases where you have a piece of code that is used to access multiple addresses. You can then use the spider to easily find differences, including differences in the pointers is points to Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 20 марта, 2011 Поделиться Опубликовано 20 марта, 2011 Генератор тренеров не доделан? Просит standalonephase2.dat при сборке тренера, а такого файла нет...Upd: разобрался. Тренеры получаются от 3 МБ (максимальное сжатие) до 8 МБ (без сжатия) но по крайней мере работают. При запуске в процессах появляются целых 3 копии тренера - сам тренер, невидимое окно CE и ещё одна копия, возможно лаунчер. Редактировать ранее сделанные exe-тренеры похоже нельзя( Зато можно сделать CE-тренер (xml-тренер), для открытия которого нужен CE. CE при открытии такого тренера будет не виден и тренер можно будет редактировать впоследствии или поставить защиту от редактирования. Такой тренер весит несколько кб в зависимости от количества и размера скриптов, которые в нём хранятся.И ещё одна приятная особенность генератора тренеров - в нём стало можно включать спидхак, VEHDebugger (для игр, вылетающих при включении скриптов, изменении кода), XMPlayer и какие-то утилиты ядра (отладчик уровня ядра?). Все эти опции я пока не тестировал.. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 20 марта, 2011 Автор Поделиться Опубликовано 20 марта, 2011 Спасибо за комментарии (+1, у меня всё руки не дотягиваются на различные обзоры новых фишек). Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 29 марта, 2011 Автор Поделиться Опубликовано 29 марта, 2011 28 марта вышла 7 Альфа версия CE 6.1 (скачать)Dark Byte:fixed some disassembler bugs exe trainer can now add extra files to the package (e.g when using extra lua libraries. Also, main.lua is not part of the default package, so if you make changes there and your trainer makes use of it, add it manually) structure spider gui/speed improvements Implemented shared memory (useful for debugging) Added the disassembler to lua Disassembler can now contain userdefined comments and they get saved in the cheat table Fixed some lua functions build with lazarus r29986 (64-bit) and r30042 (32-bit) (the ghosting in treeviews should be gone) Please reports bugs you find, even if you did report them before (perhaps I fixed them but got broken again) Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 29 марта, 2011 Поделиться Опубликовано 29 марта, 2011 А косяк один имеется. Если открыть IDE генератора тренеров, то форму создаваемого тренера становится невозможно закрыть. Если же IDE не открывать и собирать тренер без этой панельки элементов, то форма закрывается нормально. Ну и обидно, что списки ListBox в тренер не вставляются Новые баги:1) Сохранённые в таблице комментарии в отладчике часто приводят к невозможности подключить отладчик, CE виснет Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 4 апреля, 2011 Автор Поделиться Опубликовано 4 апреля, 2011 Сегодня обновилось SVN база для альфа 7, но установщик не обновлён до версии альфа 8. Исправлены ошибки в LUA скриптах следующие:Теперь работает такой скрипт ("memoryrecord_setScript" требовалась позарез):te_script1 = getTableEntry("script1") te_script2 = getTableEntry("script2") script2 = memoryrecord_getScript(te_script2) memoryrecord_setScript(te_script1, script2) // была бага2) Пользователь писал ошибку (в цитате ниже). Теперь она исправлена.I'm having a bit of trouble with defining variables in the lua part of the cheat table and using it in the auto-assembler.LUA-- Addressesaddress_one = "00400000"-- Pointerspointer_one = "00500000"address_one works when used independently, like in the following script:[enable]$address_one:db 74[disable]$address_onedb 75but the instruction can't be compiled when used in a call, jump, or even in place of a pointer like mov edx, [$var_name_here][enable]$address_one:call $address_two //random variable name[disable]$address_one:db e8 00 00 00 00Ждём следующую альфу с установщиком или сами компилируем по сорцам SVN. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 6 апреля, 2011 Автор Поделиться Опубликовано 6 апреля, 2011 5 апреля вышла 8 Альфа версия CE 6.1 (скачать)В неё включены исправления выше. А также следующие:Added Canvas and Menu classed to luaPointerscanner rescan can now filter based on the base address, start offsets and end offsetsStructure spider can now do a rescan on a file loaded manuallyImplemented the ablity to change the default auto define on pointers in the dissect data windowFixed locking memory bugsImplemented and fixed memoryrecord_setScriptImproved recognition of Lua variables in auto assemblerFixed memory scanning causing a crash when the scanner is destroyedFixed allocating negative memory when the disassembler window is minimizedFixed adding unicode strings from a scanSome typo fixesHopefully the last alpha unless I come up with a really useful feature I like to add, otherwise see this as the first betaExample of using a menu:function mi2click(sender) showMessage('WEEEE');endf=createForm()m=createMainMenu(f)mItems=menu_getItems(m)mi=createMenuItem(m)menuItem_setCaption(mi,'Menu X')menuItem_add(mItems, mi)mi2=createMenuItem(m)menuItem_setCaption(mi2,'Click me!');menuItem_onClick(mi2,miclick)menuItem_setShortcut(mi2,"CTRL+X");menuItem_add(mi, mi2);form_setMenu(f,m)pnl=createPanel(f)pm=createPopupMenu(f)pItems=menu_getItems(pm)mi3=createMenuItem(pm)menuItem_setCaption(mi3,"Rightclick menu");menuItem_add(pItems, mi3)control_setPopupMenu(pnl, pm) Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 29 апреля, 2011 Автор Поделиться Опубликовано 29 апреля, 2011 28 апреля вышла 2 Бета версия CE 6.1 (ссылка) Русский плагин от SER[G]ANT (ссылка) Немного обидно, что Дарк Байт запихнул файл перевода в какую-то клоаку "temp". Просто это, скорее всего, временно. Fixed a bunch of minor bugs changed the stackview to a listview instead of raw list Lua: Added easier access to the disassembler and hexview objects Changes to the form designer get syncronized with lua now automatically The value scan can now take calculations (when ce can't do a simple strtoint on it it passed it to lua, so I guess you could even call functions) Remember: Report bugs you find, even if you think everyone already knows about them. Also, for the people from Russia: here is a translation file provided by SER[G]ANT If there are errors in here, bug SER[G]ANT as I don't speak one word RussianЕсли какие-то ошибки в русском переводе, то SER[G]ANT-а можно найти на нашем форуме. Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 29 апреля, 2011 Поделиться Опубликовано 29 апреля, 2011 ...Дарк Байт запихнул файл перевода в какую-то клоаку "temp". Просто это, скорее всего, временно.DB просто еще сам не решил где будут "распространяться" другие файлы перевода. Либо с самой программой, либо отдельно на сайте. Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 12 мая, 2011 Поделиться Опубликовано 12 мая, 2011 CE 6.1 Beta3http://cheatengine.org/temp/CheatEngine61Beta3.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 20 мая, 2011 Автор Поделиться Опубликовано 20 мая, 2011 20 мая. Версия RC1 (Release Candidate 1)http://cheatengine.o...Engine61RC1.rarinstallerhttp://cheatengine.o...Engine61RC1.exe (registers the .cetrainer extension so you can doubleclick them)The changed addresses window has been changed to show the changes immediately when they happen, but only if they are visible (when you scroll you may see some outdated information, but will get updated within 500 ms)Fixed the windows debugger from not closing properlyFixed comparing to a saved scanFixed structure spider Added some new lua stuff (e.g: ability to override autoguess)Добавлены некоторые функции в LUA поддержку. Вот некоторые из них которые я пока не понял.registerCustomTypeAutoAssembler(typename, bytecount, script) Registers a custom type based on an auto assembler script. The script must allocate an "ConvertRoutine" and "ConvertBackRoutine"onAutoGuess(function) : Registers an function to be called whenever autoguess is used to predict a variable type function override (address, ceguess): Return the variable type you want it to be. If no change, just return ceguessВыход CE 6.1 уже близок (я надеюсь). Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 27 мая, 2011 Автор Поделиться Опубликовано 27 мая, 2011 27 мая(сегодня) Cheat Engine 6.1 Release Candidate 2http://cheatengine.o...Engine61RC2.rar installer http://cheatengine.o...Engine61RC2.exe New version of dbvm (v6) Compiled in support for dbvm Added a bunch of new lua instructions (e.g getPreviousOpcode and some untested stuff that may not even work right now) Fixed saving/restoring the lua window Fixed problem with reloading a table with assembler comments fixed saving/loading of forms. (This breaks your old tables with forms, check the previous post where mgr.inz.Player posted a convertor) Added some extra defines Remember to report bugs even if you have reported them before. I'll probably won't fix them if you don't tell me just to piss you off Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 1 августа, 2011 Поделиться Опубликовано 1 августа, 2011 Имеется такой баг. Оригинальный код:51 - push ecx52 - push edxE8 0D5FFFFF - call EFLC.exe+809B2083 C4 08 - add esp,08C3 - ret CC - int 3 После вставки:E9 EFC3F613 - jmp 1504000090 - nop FF 83 C408C3CC - inc [ebx-333CF73C] : [00000000]т.е. последний байт call переносится на новую строку и add превращается в inc с двумя лишними байтами Фиксится ручным добавлением одного nop Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 1 августа, 2011 Автор Поделиться Опубликовано 1 августа, 2011 aliast, можно тоже самое только с адресами. А также по какому адресу ты изменял инструкцию и каким образом изменял. В окне дизассемблера или через скрипы? Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 2 августа, 2011 Поделиться Опубликовано 2 августа, 2011 Хех, ложная тревога. Понял свою ошибку. Как оказалось первый раз я делал инъекцию на строку push edx, но потом изменил адрес инъекции на 1 байт вверх, на push ecx, а заново скрипт сгенерировать (с нопами) забыл Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения