-
Постов
618 -
Зарегистрирован
-
Посещение
-
Победитель дней
42
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные SER[G]ANT
-
-
rev2284
forgot to commit the modified pointerscannerfrm.pas
Implement the group menuitem checkbox update for Manual Expand Collapse
fix the rescan window resizing
Fix GetFileSizeEx not being properly declared.
And add some extra checks for 0 byte .ptr files (skip them)
fix rescan not overwriting the results
Add custom headers for assembler instructions like comments
And commit the method lookup code for the mono data collector
Implement method name lookup
fix something stupid
implement findClass
deal with pipereads of 0 bytes better, and implement code to get the namespace from a class
change the pointerscan result reader to make use of file mapping instead of manually reading
Add a searchpath for 32-bit or 64-bit lua extension dll's
forgot the then
undo a certain change
Adding an extra brace to make sure the other states are not checked if level+3<maxlevel
Add some more prioritizing of the queue. (More if statements)
fix the stop button and add some code to prioritize top level queue entries
Add a method to register new auto assembler commands
Make the mono plugin add a menu item
Commit some documentation (And yes, I know I still need to replace an I with an O)
And change enumModules so it loads a modulelist as well (useful in onOpenProcess)
Add some extra mono functions
Don't queue the crappy paths either
Don't queue the crappiest paths
Improve speed some more by not caring too much if a lock is obtainable or not
add a calculation to lower collisions
improve pointerscan performance by moving the counter to seperate storage locations for each thread and pick which cpu cores get what thread
Also, changed the queuesize to a const and LOWERED the quesize for an even greater speed increase
fix speed calculation when starting a new scan
fix compilation for 32-bit (treenode)
add a couple of extra methods to the treeview and pipe. And add the mono dissector code/form (lua) to the cheat engine autorun folder.
Add Level property to the treenode class
Add an 8 byte storage to treenodes on lua's side
Add events for OnExpanding and OnCollapsing for the treeview
Add enumModules to lua so you can get a list of all modules. Even if you don't know the name of the module
forgot to undo a small test
Add the ability to add custom data to class object
change the way treenodes are added slightly
And make the method names a bit more forgiving
Add code for controlling the TreeView and TreeNode's with lua
Added the popup/context menu, and added options to change the order of menu items (object inspector rightclick in the treeview)
Also made rightclicking in the object inspector treeview more userfriendly
cleanup CEForms on exit
Add mainmenu to the designed forms. (still slightly buggy when closing)
Add a tabbed control (no lua specific code yet though)
Add an item editor to the listview and added the treeview components (still needs an editor itself, and a treenode lua class wrapper)
-
сохраняешь текущее значение
ставишь таймер
сравниваешь текущее значение с сохранённым
если изменилось, то выводишь значение в консоли/если нет - опять таймер
сохраняешь новое текущее значение
и т.д.
-
http://cheat-engine.googlecode.com/svn/trunk/
-
rev2245
minor change to errorOnLookupFailure
fix compile error
add field and method enum
Commit the mono data collector. Still WIP (similar to the DotNetDataCollector, but this one will be controlled from the lua engine)
fix compilation for 32-bit
change the behavior of the pipe function and add a destructor
add pipe communication ability to lua. (useful for talking to injected dll's / helper processes )
Optimized the cuda scan a bit more. Speed for a level 5 tutorial scan is still equal to a single threaded non-optimized scan. This project can most likely be abandoned for now
fix the addresslist documentation
fix a bug. It's now only slightly slower to a single threaded pointerscan on a normal cpu
committing some cuda pointerscan stuff
Committing some code i've been experimenting with
bug the user only when he uses a different structname than the default no structname
fix a small bug that caused some bugreports
give it a break
compile fix for 32-bit
Make the disassembler show some more data in the comment field
Adding some extra safety checks to the structure dissect
Fix the structure settings from closing after giving invalid input
(last commit meant physical of course)
Add an option to make virtual memory scanning safer. (on by default)
add code to do big endian file access (not used, but it's there)
fix a bug in the symbol handler where it filtered out certain symbols
Add a driver function to get the physical memory layout and make stopping ultimap a bit more stable
update the documentation and make two functions more forgiving
add a safety check to the pe-info dissector
fix GetThreadList
fix ultimap hotkeys
fix non defined symbols from getting function parameters
Change the way exceptions that reach the gui are handled
Fix the 64-bit registers not aligning properly
make the code injection template make use of the caller memory view window
Fix find, and implement entry highlighting based on the address
add a find to the stackview
Apply only the changed fields when changing multiple records
fix the deselection when rightclicking an multiselected entry
fix problem where deleting an non-visible component wouldn't work
make setAddress call ReinterpretAddress
Added the much requested "Pointer must start with" feature. (it will not speed up the scan one bit, probably makes it slower, but it may help with diskspace)
change the way the dotnetpipe is being used so it's more thread safe and export a lua function to specifically reload a module's symbols
export fillFromDotNetAddress to lua
assembler: fix the extra data
structure dissect: Make the autogenerated child structures use .net lookup info as well when possible
make structure dissector get the layout from .net
fix the .net modulename/base setup and make the dll and symbol window show the .net symbols
-
Не знаю как на C, а на асме я делал так
...
invoke GetAsyncKeyState,VK_1
.if eax!=0
.if key1==FALSE
invoke KeySound,offset mPS
invoke mPatch,mOffset1_2,addr mValue1_2,mSize1_2
invoke mPatch,mOffset1_3,addr mValue1_3,mSize1_3
invoke mPatch,mOffset1,addr mValue1,mSize1
mov key1,TRUE
.elseif key1==TRUE
invoke KeySound,offset UmPS
invoke UmPatch,mUOffset1,addr mUValue1,mUSize1
mov key1,FALSE
.endif
.endif
..... -
-
Ну так у вас 2 прыжка в одно и тоже место
"ShippingPC-AFEARGame.exe"+AD4A14:
jmp newmem jmp grenades2
nop
returnhere_grenades2:
-
А в чём разница? То, что в статье совсем другие картинки? В различных играх уровень здоровья отображается по разному, разве от этого что-то кардинально меняется?
Статья даёт лишь базовые знания и не может ответить на все ваши вопросы и ситуации, которые вы встретите. Вы рассматриваете её как 100% шаблон, и если что-то отличается - всё, безвыходная ситуация! Но, судя по вашему последнему ответу, вы даже и не пытались попробовать.
Если не учитывать, что на скриншотте сетевая игра (это же просто, как пример), то я не вижу ничего сложного в создании телепорта для человека, умеющего просто посидеть и подумать. (в игре, где это вообще возможно реализовать)
Задайте себе вопросы:
Координаты на глобальной карте и в игровом мире отличаются, если да, то как?
Как или чем можно узнать координаты нужного вам места для телепорта?
Если это не открытый мир, то как в игре происходит смена игровых уровней?
Ваш эльф (или кто это там) управляет курсором на глобальной карте или наоборот?
И т.д. и т.п.
- 1
-
rev2203
fix releaseObjectHandle and also enumerate all other .net modules
implement code to add the first .net module to the symbol lookup and implement it's usage
implement the ReleaseObject method command to the dotnetpipe client class
And adding the DotNetDataCollector binaries for those without visual studio
also report if .net 4.5 is supported for structure layout lookup and add a simple hack that tells windows the app didn't crash
start merging the .net data collector with the symbol handler and make some adjustments
Commit the DotNetDataCollector
fix nextscan
fix next scan having the possibility of causing a buffer overflow in some situations
Add an option to make the addresslist display values using the dropdown list format
commit changes in mainunit.frm
fix bug caused by lazarus autorename feature
better detection if a module is 64-bit or not
fix compiling for 32-bit users
fix stupid bug
add a donottrace.txt to the tracer
don't edit when rightclick
fix maxpd, maxss and maxps
fix assembling fmul in 64-bit (it has no rex_w )
make "show previous value column" persistent
add data size recognition to the disassembler and make the tracer use those sizes when guessing the type
adding some extra dll's
Add a group option that shows a +/- sign in front of entries
Save useless data to the cheat table that people are interested in for some unknown reason
Implement dropdown list capability to memory records
Make some components resize if they can't contain the text
some beautifications
fix script editing
implement inputQuery for lua
Add the ability to change values without using an inputquery
only affect the base types
fix changing the hex display while frozen
fix merge (link)
gui fixes and kick rescan workers if their results have already been merged
make "resyncModulelist" also resync stacks
fix getting the wrong filepath
error out when the user gives an invalid multiplication value
continue with implementing merge and distributed rescan (still untested)
-
Отвечу, только если вы предоставите свои наработки.
Приворотом и наведением порчи по фотографии я не занимаюсь.
-
Ну, сам прицел вообще может ни на что не влиять, а быть лишь элементом HUD, игры сейчас всё сложнее и сложнее.
- 1
-
Данная статья расскажет вам о создании чит-опции под названием «„Blink“ Teleport», которая позволяет телепортировать игрока в указанную точку, используя для её выбора какой-то объект (прицел, курсор, или что-то иное, что может указать место для телепортации). Этот чит является разновидностью всеми известной опции «Teleport» и его создание практически ничем от него не отличается, за исключением нескольких моментов.
Примеры скриптов телепорта на форуме есть, а вот статьи на русском языке нету. Поэтому, сначала нужно рассказать о нём.
Часть 1: «Teleport»
Данный чит предназначен для быстрого перемещения игрового объекта (игрока) по заранее сохранённым или известным координатам. К примеру, вы взяли у НПС квест, который выполняется в другой части карты. Долго-долго шли, выполнили его и теперь нужно снова долго-долго возвращаться обратно для его сдачи. Чтобы сократить время бесполезного перемещения, умными геймхакерами была придумана опция «Teleport». Мы сохраняем координаты нахождения игрока около НПС и когда нужно, мы изменяем текущие координаты игрока на сохранённые, тем самым мгновенно перемещается к НПС.
Стоит заметить, что данная опция предназначена для перемещения персонажа в игровом пространстве в играх с открытым миром или в пределах одного игрового уровня.
Я не стану описывать трехмерную систему координат или строение игровых уровней. Для создания этих опций, как ни странно, знать это совершенно не обязательно (Но не ленитесь, поищите в гугле, там много информации на эту тему и это знание будет полезным). Нужно просто уметь находить хотя бы одну из координат. Все дальнейшие действия (в 99% случаев) сводятся к тому, что вы будете просто изменять инструкцию, её адрес, смещения и регистры в готовом шаблоне скрипта.
Первой игрой для примера будет Tomb Rider 2013.
Для начала нам нужно найти одну из координат игрока. Какую именно искать – решать вам. Лично я советую искать координату по оси Z (т.е. высоту), т.к. в большинстве игр, если мы спускаемся вниз, то значение координаты по оси Z уменьшается, если поднимаемся, то увеличивается. В случае же с X и Y, мы первоначально не знаем расположение игрока, относительно направления этих осей, поэтому мы можем идти вперёд и искать увеличивающееся значение, а на самом деле мы идём назад и значение координаты уменьшается.
Итак, мы запустили игру и нашли подходящее место, где мы можем спускаться и подниматься.
Ищем «Неизвестное значение» (Float), спускаемся и отсеиваем «Уменьшилось», поднимаемся и отсеиваем «Увеличилось» и так до тех пор, пока не найдем нужный нам адрес.
Часто бывает так, что у нас остаётся много адресов, которые уменьшаются и увеличиваются вместе с нужным нам адресом или вообще имеют такое же значение. Что и произошло в данной игре.
Добавляем их всех в таблицу, какую-то часть замораживаем и пытаемся прыгнуть в игре, если нам удалось это сделать, то это не те адреса. Размораживаем и удаляем их. И так, пока не найдем нужный адрес.
Мы нашли адрес со значением координаты по оси Z. «02С7С7D8» (у вас он будет другим).
Теперь ставим на него «Брейкпоинт на Доступ», всплывает много инструкций.
Нам нужно выбрать подходящую инструкцию и убедиться, что она работает только с координатами игрока.
Я выбрал «011E5D24 – 8B 50 08 – mov edx,[eax+08]». Нажимаем на неё правой кнопкой мыши и во всплывшем меню выбираем «Проверить адресам, к которым получают доступ выбранные инструкции (макс. 8)»
Появляется окно.
В нём отображается только 1 адрес, наш адрес. Отлично! (Желательно делать подобную проверку рядом с другими динамическими объектами – противниками, автомобилями и т.д. просто я первоначально знал, что данная инструкция верна)
Теперь можно выделить этот адрес и нажать комбинацию клавиш «Ctrl+R» и там скопировать адрес напротив нужного регистра или вернуться в предыдущее окно, выделить нашу инструкцию и нажать на кнопку «Доп. Информация»
Копируем адрес после «Предполагаемое значение указателя:». У меня это 02C7C7D0, и он является началом структуры, в которой расположены координаты игрока.
Переходим в «Анализ данных/структур» и исследуем найденную структуру, содержащую координаты игрока
Практически всегда все 3 координаты по осям X,Y,Z находятся рядом друг с другом.
Отыскиваем уже найденную Z
Добавляем в таблицу адреса находящиеся рядом с Z, замораживаем их по очереди и смотрим, можем ли мы перемещаться в какую-либо сторону, если нет, значит мы нашли ещё какую-то из координат.
Отлично, адреса по смещению 0, 4, 8 и есть адреса с нашими координатами.
Переходим к написанию скрипта.
Скрытый текст[ENABLE] aobscanmodule(_loadAOB,TombRaider.exe,8b50088b400ce9xxxxxxxx8bxx8bxxxx8bxxxxxxxxb9xxxxxxxxe8xxxxxxxx85) alloc(MyCheat,2048) label(_loadRet) label(_loadOrg) label(coordX) label(coordY) label(coordZ) label(_save) label(_load) label(_saveCoords) label(_loadCoords) registersymbol(_saveCoords) registersymbol(_loadCoords) registersymbol(_loadAOB) MyCheat: _save: cmp [_saveCoords],1 //Если _saveCoords = 1, то будет выполняться код сохранения координат jne short _load //Если _saveCoords не равно 1, то будет выполнен переход на _load, где находится код загрузки координат push ecx //помещаем ecx в стек mov ecx,[eax] //помещаем в ecx значение регистра eax (т.е. текущее значение адреса с координатой X. Записываем его как [eax], т.к. //в структуре, которую мы исследовали, смещение этого адреса равнялась 0, т.е. [eax+0], что тоже самое). mov [coordX],ecx //помещаем значение регистра ecx, в coordX (Тут и будет сохраняться значение координаты X) //Далее всё тоже самое, только для Y и Z. mov ecx,[eax+4] mov [coordY],ecx mov ecx,[eax+8] mov [coordZ],ecx pop ecx //убираем ecx из стека. mov [_saveCoords],0 //изменяем значение флага на 0, чтобы сохранение координат больше не происходило. jmp _loadOrg //Переход на выполнение оригинального кода _load: //данный код будет выполняться, только если значение флага _saveCoords не равно 1 //Т.е. будет выполняться // cmp [_saveCoords],1 // jne short _load //а затем код ниже cmp [coordX],0 //защита от дурака. Делаем её по любой из координат. Т.к. адреса coordX, coordY и coordZ первоначально имеют значение 0. //Без этой проверки, если кто-то вначале не сохранит координаты, но произведет их загрузку, то он телепортнётся по координатам x=0, y=0,z=0 je short _loadOrg //если coordX=0, то выполняем оригинальный код cmp [_loadCoords],1 //Если _loadCoords = 1, то будет выполняться код сохранения координат jne short _loadOrg //Если _loadCoords не равно 1, то будет выполнен переход на оригинальный код push ecx //снова помещаем ecx в стек mov ecx,[coordX] //Помещаем сохранённое в coordX значение координаты по оси X в регистр ecx mov [eax],ecx //и уже из регистра ecx помещаем значение в eax, т.е. заменяем текущие координаты игрока на сохраненные //далее всё тоже самое mov ecx,[coordY] mov [eax+4],ecx mov ecx,[coordZ] mov [eax+8],ecx pop ecx mov [_loadCoords],0 //изменяем значение флага на 0, чтобы загрузка координат больше не происходила. _loadOrg: //оригинальный код mov edx,[eax+08] mov eax,[eax+0C] jmp _loadRet //Тут будут располагаться наши метки и флаги coordX: dd 0 coordY: dd 0 coordZ: dd 0 _saveCoords: dd 0 _loadCoords: dd 0 _loadAOB: //"TombRaider.exe"+2E5D24: jmp _save db 90 _loadRet: [DISABLE] _loadAOB: mov edx,[eax+08] mov eax,[eax+0C] unregistersymbol(_saveCoords) unregistersymbol(_loadCoords) unregistersymbol(_loadAOB) dealloc(MyCheat)
Мы написали скрипт, добавили его в таблицу. Теперь туда же нужно добавить флаги «_saveCoords» и «_loadCoords»
И когда нам нужно сохранить или загрузить координаты, мы просто меняем значение одного из этих адресов на 1 (можно вручную, а можно установить Хоткей).
Вот, в принципе, и всё. Это самый простой скрипт телепорта, его можно сделать и более навороченным, но наша главная цель – «„Blink“ Teleport», для которого этого будет достаточно.
Часть 2: «„Blink“ Teleport»
А что, если нам нужно переместиться в место, где мы ещё не были?
В опции «Teleport» мы сначала сохраняли координаты нашего объекта, а уже потом заменяли его текущие координаты на сохранённые. А вот в «„Blink“ Teleport» всё тоже самое, только мы заменяем текущие координаты нашего объекта на текущие координаты другого объекта.
А какой объект, помимо игрока, мы ещё можем перемещать? Прицелом!
Во многих играх (не во всех, а значит и эту опцию реализовать именно так не всегда получится) прицел задаёт траекторию движения пуль. Грубо говоря, прицел показывает вон туда, после выстрела там должна быть дырка.
Координаты этого «вон туда» мы и должны попытаться найти.
Опять вам нужно начать поиск «Неизвестного значения», изменять расположение прицела и отсеивать «Увеличилось»/«Уменьшилось». Можно встать у ровной стены и, перемещая прицел вверх/вниз, искать координату по оси Z, как в случае с игроком, но я стал искать координату по оси Y, т.к. можно поставить прицел как можно ближе к ногам игрока, текущие координаты которого нам известны, и начать с поиска «Диапазона», что значительно уменьшит число ложных адресов. Далее можно продолжать отсеивать «Увеличилось»/«Уменьшилось». В общем, любым удобным методом находим одну из координат прицела.
Далее, повторяя те же действия, что мы делали в первой части статьи, мы находим инструкцию, начало структуры и смещение адресов с координатами в ней.
И изменяем наш скрипт телепорта
Скрытый текст[ENABLE] aobscanmodule(_loadAOB,TombRaider.exe,8b50088b400ce9xxxxxxxx8bxx8bxxxx8bxxxxxxxxb9xxxxxxxxe8xxxxxxxx85) aobscanmodule(_saveAOB,TombRaider.exe,8983f40a000089xxxxxxxxxx89xxxxxxxxxx8bxxxxxxxxxxxxxxxxxx33xxe8) alloc(MyCheat,2048) label(_loadRet) label(_loadOrg) label(coordX) label(coordY) label(coordZ) label(_save) label(_load) label(_loadCoords) registersymbol(_loadCoords) registersymbol(_loadAOB) label(_saveRet) registersymbol(_saveAOB) MyCheat: _save: //сохранение координат прицела push ecx mov ecx,[ebx+AF0] mov [coordX],ecx mov ecx,[ebx+AF4] mov [coordY],ecx mov ecx,[ebx+AF8] mov [coordZ],ecx pop ecx mov [ebx+00000AF4],eax jmp _saveRet _load: //загрузка координат прицела cmp [_loadCoords],1 jne short _loadOrg cmp [coordX],0 je short _loadOrg push ecx mov ecx,[coordX] mov [eax],ecx mov ecx,[coordY] mov [eax+4],ecx mov ecx,[coordZ] mov [eax+8],ecx pop ecx mov [_loadCoords],0 _loadOrg: mov edx,[eax+08] mov eax,[eax+0C] jmp _loadRet coordX: dd 0 coordY: dd 0 coordZ: dd 0 _saveCoords: dd 0 _loadCoords: dd 0 _loadAOB: //"TombRaider.exe"+2E5D24: //координаты игрока jmp _load db 90 _loadRet: _saveAOB: //"TombRaider.exe"+5225E3: //координаты прицела jmp _save db 90 _saveRet: [DISABLE] _loadAOB: mov edx,[eax+08] mov eax,[eax+0C] _saveAOB: mov [ebx+00000AF4],eax unregistersymbol(_loadAOB) unregistersymbol(_loadCoords) unregistersymbol(_saveAOB) dealloc(MyCheat)
В нём всё тоже самое, только скрипт уже работает с двумя разными инструкциями.
В «_save:» теперь происходит сохранение не координат игрока, а прицела. Флаг «_saveCoords» уже нам не нужен (Но его можно поставить, если вы хотите данный телепорт не сразу). В «_load:» всё осталось без изменений.
Активируем скрипт, прицеливаемся в выбранную точку, меняем значение флага «_loadCoords» на 1 и вуаля.
Но не всегда бывает всё так гладко с нахождением координат.
К примеру возьмём игру «Санитары Подземелий» (1 и 2 части).
Получать координаты для телепортации мы будем из курсора, точнее из зелёного кружочка, который указывает конечную точку перемещения Хартмана.
Если мы расположим его в том же месте, где стоит Хартман, то увидим, что координаты по оси X и Y равны, а вот по Z отличаются
(координаты курсора)
(координаты игрока)
Высота расположения курсора ниже на 3, чем у Хартмана.
Если в первой части игры это никак не отображалось на телепортации, то во второй Хартман проваливался под землю.
Следовательно в скрипте пришлось делать небольшую поправку, а именно уменьшать значение координаты курсора по оси Z на 3
Скрытый текст…. _save: //сохранение координат курсора push ecx mov ecx,[ebx+94] mov [coordX],ecx mov ecx,[ebx+98] mov [coordY],ecx mov ecx,[ebx+a9] mov [coordZ],ecx pop ecx mov eax,[ebx+94] jmp _saveRet _load: //загрузка координат курсора cmp [_loadCoords],1 jne short _loadOrg push ecx mov ecx,[coordX] mov [esi+254],ecx mov ecx,[coordY] mov [esi+258],ecx mov ecx,[coordZ] //Помещаем координат курсора по оси Z в регистр ecx sub ecx,(float)3 //Вычитаем из него 3 (float) mov [esi+260],ecx //Остаток помещаем в адрес с текущими координатами игрока по оси Z pop ecx mov [_loadCoords],0 _loadOrg: movss xmm1,[esi+254] jmp _loadRet …
Это лишний раз говорит о том, что не всегда может быть точно так же, как и в статье.
Стоит так же отметить, что сейчас существует много игр с якобы открытым миром, где при обычном прохождении ничего не замечаешь, а на самом деле там всё строго заскриптовано. И, если перепрыгнуть заскриптованную сцену при помощи данного чита, то могут появиться различные глюки, вплоть до невозможности пройти дальше.
Удачи!
© SER[G]ANT 2013
- 9
-
[[[["Game.exe"+123]+45]+678]+9]
- 1
-
Я же говорил, что скоро напишу статью (или нет) на эту тему. Уже готово вступление и начало первой части статьи. (Там же и про простой телепорт рассказывать нужно).
Потерпи или поковыряйся в моих таблицах для санитаров подземелий
-
Была небольшая запарка в игре, решил скачать ваш трейнер. Оказалось, что хоть и заявлено, что работает на "All Version's", но со Steam версией не пашет.
Благо, что позже прошёл затруднительное место самостоятельно.
-
One Hit Kill у вас немного не верный.
Если значение "[rbx+14]" = "1", то сразу идёт идёт прыжок на "returnhere" без выполнения инструкции "movss [rbx+08],xmm2". Получается, что враги мрут с 1 тычка, но и вы бессмертный.
Поэтому скрипт должен выглядеть так:
[ENABLE]
alloc(newmem,2048,"Tutorial-x86_64.exe"+314ED)
label(returnhere)
label(originalcode)
newmem:
cmp [rbx+14],1
je originalcode //Если значение [rbx+14] = "1", т.е. это игрок,
//то выполняем оригинальный код.
//Если же [rbx+14] ≠ "1", то это враги,
mov [rbx+08],0 //значит мы меняем значение их здоровья на 0 и тут не нужно
//писать ещё раз "movss [rbx+08],xmm2".
jmp returnhere //после этого прыгаем в returnhere и всё.
originalcode: //Оригинальный код
movss [rbx+08],xmm2
jmp returnhere
"Tutorial-x86_64.exe"+314ED:
jmp newmem
returnhere:
[DISABLE]
"Tutorial-x86_64.exe"+314ED:
movss [rbx+08],xmm2
dealloc(newmem) -
Ну так сделай чекбоксы =)
-
rev2167
clean up the scandata uploader when the scan finishes
add extra safeguard
disable the timer and clean up the list when new is clicked
you can just clear this var
small fixes
cleanup handles
fix listener
fix error
commit something that might cause a weird compile error
fix the character range to accept
start with implementation of scan operation broadcasts
map the apic instead of blindly guessing
fix inserting return each time ctrl+f is used
implement out of diskspace checking and handling that status
some more fixes. Distributed rescan works now
some bugfixes and implement client->server status updates
implement downloadpage and add some missing files to the svn
first implementation for rescan (untested, 100% bugged out)
replace map with pagemap as it's a lot more efficient than the normal Map object (greatly increases the rescan speed)
add a pagemap class (just for testing purposes)
implement the server side for rescans and a few bugfixes
improve pointer rescan speed a bit, and combine all rpm calls into one location
some fixes, adding more data to be visible to the user, started with designing the rescan
forgot the structsize
add some extra data to the disassembler
fix hostname lookups
implement scandata uploader/downloader
fix compile for release
implement client part of the protocol (rescan still needs to be added)
implement the server part of the protocol
Start implementing support for distributed pointerscanning
Add option to export the pointermap and made it possible to do a pointerscan without attaching to a process
improve pointerscan speed
commit some last fixes before royally screwing up my own copy
somewhere along the line I (or fpc) might have fixed the threading bug that blocked rescan from being multithreaded
-
-
rev2129
best keep a record of methods that aren't implemented in 6.3
add makeVisible and commuit some stuff I might have forgotten to commit
deal with math errors
fix some bugs with queued events and the difference between the official debug state shown to the user and the internal state
some debug fixes
some fixes for arm
forgot to save
fix B producing a 12 byte branch instead of an 8 byte (uninitialized var)
add support for rewriting conditional branches
some arm and auto assembler stuff. (I should really do something about that nopping between variable size instructions )
add missing file
fix some bugs and add an alternative to B(L)
start with adding support for arm instructions that break when relocated
some arm assembler and disassembler fixes
fix r32,mm,imm and r32,xmm,imm (PEXTRW)
implement psubsb and psubsw
might as well disassemble it
add pmulld just because I can
fix PMULHUW
implement RCPSS and RCPPS
implement RSQRTPS and RSQRTSS
fix fyl2xp1
fix crash when breaking in a 32-bit app (not arm)
fix the index lookup not handling non alphabetical characters in the index (f2xm1)
fix fnclex
fix lpd/lps parameter order
fix movhps<>movlhps
optimize
fix movlps<>movhlps
fix rsqrtss
fix shld
fix fsubr, fdiv and fdivr
fix faddp st(0), st(0)
fix disassembling fldl2e and improve the description of some instructions
fix dsr disassembly
forgot to put some code back
Implement clock_gettime
implement CMD_SPEEDHACK_SETSPEED
add isNetwork to the processhandler
Fix injectdll for network
Implement the speedhack for network
start implementing the liux speedhack
fix FindFreeBlockForRegion when in network mode
implement network version of injectdll
Implement CMD_LOADMODULE
Implement EXTCMD_LOADMODULE
implement a network version of CreateRemoteThread
implement CMD_CREATETHREAD and fix possible error with module injection (readlink doesn't return a 0-terminated string)
implement EXTCMD_CREATETHREAD
Implement network variants of VirtualAllocEx and VirtualFreeEx
Pass CMD_ALLOC and CMD_FREE through to EXTCMD_ALLOC and EXTCMD_FREE
implement EXTCMD_ALLOC and EXTCMD_FREE
implement the command to load the extension and start with alloc
redefined the ext_ command defines
and some cleanup
improve the flow
implement enabling the extension and calling alloc
Add detection if the extension module has been loaded
Implement communication between ceserver and ceserver_extension
constructor test
start with the extension module
Share project "ceserver-extension" into "https://cheat-engine.googlecode.com/svn"
filter by typing directly into the processlist
implement moduleinject for arm as well
switch from pread to an lseek64/read combination as I couldn't get pread to read addresses that could be interpreted as negative (e.g: b0000000)
merge the experimental code with the svn just to make sure it's safe since it's working on 64-bit (need to add setting the proper parameters for arm)
Found a faster injection method without the need to wait for the thread to wake
documentation and experiment results
Strip version numbers from linux modulenames
start with research and design on making alloc/createthread and other useful options available
deal with new isExe flag
fix symbols on program files
implement reactivating a breakpoint in arm after it got disabled for next step
fix arm compilation
fix the thread specific check
set and remove breakpoint now deal with multiple/user specified breakpoint registers. (untested)
Some arm disassembler fixes and adding code to deal with the debugger capabilities of the server
Transfer hardware breakpoint capabilities to ce client
Add support for x86 breakpoint address results
some fixes and start with support for multiple bp's
add armdisassembly to the foundcode dialog
some debug and symbol fixes
implement arm disassembling
implement breakpoint handling for x86 network (tested)
fix breakpoint removal and return values
-
Ищи через массив байт "8D85BCFDFFFF894508"
В Steam версии этот код находится по адресу
SaintsRowTheThird_DX11.exe:
SaintsRowTheThird_DX11.AK::Monitor::GetTimeStamp+419DB3
SaintsRowTheThird.exe:
SaintsRowTheThird.AK::MemoryMgr::GetPoolName+68ED83
- 1
-
Всегда было интересно, что означает поле "Просмотров" в статистике профиля?
-
rev2047
fix Description property
implement network getThreadContext (untested)
small change in the way the context is sent back
fix entry selection when switching tabs right after a scan
fix CheckForAndDispatchCommand
implement dealing with compressed results of rpm
implement compression of readprocessmemory
implement network symbols in the client
fix and change the header generation
implement CMD_GETSYMBOLLISTFROMFILE
start with symbol stuff
I don't know why, buit I keep on making this same mistake
implement client side of module32first/module32next, and fix closehandle to be not so slow...
improve speed dramatically (stupid naggle)
fix realloc bug
check for module list instead
it's 35C
really stupid bug
implement module32first/module32next
and there's SWI
fix multi and implement SWPParser
implement LDM/STM
implement SingleDataParser and fix post/pre indexed disassembling for the same instruction class
implement mul parser
implement MSR and MRS
implement branch parser
and a compiling fix
fix record properties
fix getpropertylist
also commit the changes to the disassemblerarm.pas which the assembler relies on
start with arm assembler
fix setting unsupported method to nil
fix the legacy opendialog_execute
implement an ARM disassembler
implement more network debug options. (trap works properly now)
some more fixes here and there
fix calculation with multiple negatives
fix dline.GetHexBytes
some fixes here and there
update about form and some network bugfixes and decrease network usage
add reference count to the handle and some bugfixes
implement the basic stuff for the network debugger interface (not tested)
add some initial debug events for thread creation
add undocumented shl/shr reg
close the thread handle when creating a remote thread. (Some people never close ce and constantly create threads)
some syntax check fixes
add message in case of wrong parameter
implment "reassemble" aa command
forgot a space
-
какой направления ? де я не вижу, де что бы кто то бы сделал такой пример я не вижу, все говорят "а я думаю" мне надо точно знать где это может быть а не так на угад ковырять не зная чего
Т.е. вы хотите примерно вот это:
- Чтобы "плавать везде", нужно занопить инструкцию ххх по адресу ххх
- Ура, теперь я умею делать опцию "плавать везде"!!1
ZOCKIR дал вам ссылку, которая облегчает это дело раз в 500.
Билды CE из репозитария
in Cheat Engine
Опубликовано
rev2314