 |
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
cooleko Grandmaster Cheater
Reputation: 11
Joined: 04 May 2016 Posts: 717
|
Posted: Wed Jun 29, 2016 7:17 pm Post subject: How to recover scripts from CE before closing after a crash |
|
|
CE crashes every now and then, sometimes after you have created a few scripts but before saving.
If you are lucky, simply closing the game will give CE the kick back to life it needs to save the scripts. Other times, not so much.
So I opened the crashed CE in a fresh CE and scanned memory for things such as:
Code: | <?xml version="1.0" encoding="utf-8"?>
<CheatEntry>
<AssemblerScript> |
but was only able to find the original scripts that were loaded into cheatengine.
So I searched for the script names of the crashed table and found names, but nothing I could parse into the script.
So I searched for the last viewable Address of my Pointers and found one unique address for each. Since CE was frozen, I couldnt trace anything to figure out how the address was being populated.
I tried searching for unique lines of code such as:
Code: | mov eax, [edi+4a4]
mov [edx+E0], (float)1 |
and found many instances of the line of code existing, but nothing that would show the other lines.
At this point, I gave up and decided to ask for help.
However, I'll see how CE populates them while running, and see if i can use that to reconstruct after it crashes.
Does anyone have any method of recovering unsaved scripts from a crash but before closing CE?
EDIT***
Tried again, but with a cheatengine that hadnt crashed.
Searching "[ENABLE]" (without unicode selected) gave me all of my recently edited scripts (even outdated versions)
Searching "[ENABLE]" (with unicode selected) gave me all of the original scripts
Hope this helps anyone who also has a cheat engine crash and doesnt want to redo their unsaved scripts
|
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Wed Jun 29, 2016 9:03 pm Post subject: |
|
|
I know this isn't what you're asking about, but here is an auto-save script.
As far as CE freezing up and becoming non-responsive, I have found that the best remedy is to just wait and do nothing.
|
|
Back to top |
|
 |
panraven Grandmaster Cheater
Reputation: 61
Joined: 01 Oct 2008 Posts: 958
|
Posted: Wed Jun 29, 2016 9:49 pm Post subject: |
|
|
Here are some observation and speculation:
1. the real source is in acsii/utf8, not html escaped (as saved file content) ;
2. source begin at address alignment of 4 (source head);
3. somewhere before the source head, at address alignment of 4, there is a source length (backOffset) ; (tested backOffset can be as large as 56, max is set as 128)
So, if we know the exact text of the source head of a certain length, we can AOBScan for possible candidates and test with each backOffset.
Source head should be found by another instance of ce.
ie. found some unique source text, then scroll up.
The attached lua is trying to do this task.
Try made a Lua directory at ce dir, and put this lua there.
usage:
Code: |
--To list possible candidates:
local findSrc = require 'findSrc'
-- one line
findSrc("--text of source head--")
--or if multiple crlf, note: the 1st crlf following long quite [[ is not count,
-- but last crlf just before closing ]] is count.
findSrc([[
--text of source head--]])
-- then it should list some candidates as:
Check aob: 0D 0A 0D 0A 2D 2D 31 32 33 35 35 37 37
Found possible, len= 1974, @ ( 0x03FB1540, 16 )
Found possible, len= 1, @ ( 0x03FB1540, 56 )
Found possible, len= 1974, @ ( 0x097C5CC8, 8 )
Found possible, len= 1152, @ ( 0x097C5CC8, 48 )
-- to see which candidate is the real source, run findSrc with the respective parameter,eg ( 0x03FB1540, 16 )
print(findSrc( 0x03FB1540, 16 ) )
|
It may not always work, as the backOffset is not fixed and too large, or the above speculation are wrong.
bye~
ADDED:
ah... I realized it only 'find' the lua source at main Lua Script Window, not the AA script for example. Sorry if I'm misunderstood~_~
ADDED:
work for AA script! but has to recover 1 by 1.
ADDED:
ui version, same move the *.lua to lud directory of ce, then
Code: | local ui = require'findSrcUI'
ui.show()--to show
ui.hide()--to hide
ui.Destroy()--to destroy the form |
Description: |
ui version, scan and Double Click candidates list. |
|
 Download |
Filename: |
findSrcUI.lua |
Filesize: |
3.85 KB |
Downloaded: |
312 Time(s) |
Description: |
|
 Download |
Filename: |
findSrc.lua |
Filesize: |
1.36 KB |
Downloaded: |
303 Time(s) |
_________________
- Retarded. |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|