 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
imposible Newbie cheater
Reputation: 0
Joined: 12 Jan 2015 Posts: 22
|
Posted: Thu Jan 15, 2015 5:01 pm Post subject: [Debuggger][Assembler] What I'm doing wrong? |
|
|
I have a boolean [byte] variable stored at 0E99C4B4
I used "Find out what accesses this address", and found that on some event ( the player gets near a door) it is accessed by this instruction:
01494D63 - 80 7E 0C 01 - cmp byte ptr [esi+0C],01
which the disassembler shows as:
AI.exe+1B4D23 - 80 7E 0C 00 - cmp byte ptr [esi+0C],00
I interpret that
- The address of AI.exe+1B4D23=01494D63
- 80 7E 0C 01 is the binary code there
That code disassembled is cmp byte ptr [esi+0C],00
-That instruction compares zero with the value of a byte, located at the address ESI+0x0C
First problem: In the window before the disassembler the comparison was not with zero, but with one
Second problem: I need to breakpoint here, when it accesses my variable (located at 0E99C4B4)
So, I changed the breakpoint condition to ESI==0xE99C4A8=0E99C4B4-0xC
but, after I make that breakpoint, it never breaks. The window which detects who accesses 0E99C4B4 stop detecting accesses, but the variable value changes.
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25820 Location: The netherlands
|
Posted: Thu Jan 15, 2015 5:10 pm Post subject: |
|
|
you're mixing things up, or are looking at the wrong instruction (AI.exe has to end with 0000 , so the ai.exe notation should have ended with a +xxx4d63)
most likely, AI.exe+1B4D63
i think you are looking at the last entry in the list, which is d23
As for the breakpoint condition, did you place a space between e99 and c4a8 ? If so, that will cause the check to always fail. (do not separate addresses with spaces, segments do not exist anymore)
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
| Back to top |
|
 |
imposible Newbie cheater
Reputation: 0
Joined: 12 Jan 2015 Posts: 22
|
Posted: Thu Jan 15, 2015 5:30 pm Post subject: |
|
|
| Dark Byte wrote: | you're mixing things up, or are looking at the wrong instruction (AI.exe has to end with 0000 , so the ai.exe notation should have ended with a +xxx4d63)
most likely, AI.exe+1B4D63
i think you are looking at the last entry in the list, which is d23
As for the breakpoint condition, did you place a space between e99 and c4a8 ? If so, that will cause the check to always fail. (do not separate addresses with spaces, segments do not exist anymore) |
I cannot verify that, because I closed the debugger and opcodes windows, and tried to repeat the procedure, but you are most probably right.
Still the opcodes window does not detects any access when the variable switches. It is also me doing something wrong, or may be a bug in CE?
I recorded a small video (it is unlisted on youtube)
The variable starts as 1, switches to zero, but is not detected
www,youtube,com/watch?v=ExO_Yan-6Mc
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25820 Location: The netherlands
|
Posted: Thu Jan 15, 2015 5:43 pm Post subject: |
|
|
it might be a bug, or all debug registers where used up in the thread that matters
Try handling it as a 4 byte while debugging (perhaps 1 byte might have an issue). As the video shows only that one byte changed, so a bigger net might get it.
Alternatively, you found a shared memory page, and the actual change was made in a different location (same physical address, different virtual address)
One thing to help with ce bugs is open the memoryview->debug->debug events and check that (it will show breakpoints hit, including those CE might have discarded)
oh yes, one feature that can be of use to you:
Go to AI.exe+1B4D63 in the code (what will always be the same) and then use the "find addresses this code accesses"
it may make finding the door position easier
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
| Back to top |
|
 |
imposible Newbie cheater
Reputation: 0
Joined: 12 Jan 2015 Posts: 22
|
Posted: Thu Jan 15, 2015 6:00 pm Post subject: |
|
|
| Dark Byte wrote: | | Alternatively, you found a shared memory page, and the actual change was made in a different location (same physical address, different virtual address) |
May be a problem with multithread?
| Dark Byte wrote: | | One thing to help with ce bugs is open the memoryview->debug->debug events and check that (it will show breakpoints hit, including those CE might have discarded) |
It shows this kind of messages:
| Dark Byte wrote: | oh yes, one feature that can be of use to you:
Go to AI.exe+1B4D63 in the code (what will always be the same) and then use the "find addresses this code accesses"
it may make finding the door position easier |
That's amazing!
One of the things I was trying to do is to find what other addresses this code access.
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25820 Location: The netherlands
|
Posted: Thu Jan 15, 2015 6:10 pm Post subject: |
|
|
| Quote: |
It shows this kind of messages:
|
yup, the breakpoints are hit. Does the list stay empty? If so, that's a bug
Just check the EIP addresses and decrease them with the size of the previous instruction (debug breakpoints report their state after they got executed)
It matches your previous screenshot
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
| Back to top |
|
 |
imposible Newbie cheater
Reputation: 0
Joined: 12 Jan 2015 Posts: 22
|
Posted: Thu Jan 15, 2015 6:28 pm Post subject: |
|
|
| Dark Byte wrote: | yup, the breakpoints are hit. Does the list stay empty? If so, that's a bug
Just check the EIP addresses and decrease them with the size of the previous instruction (debug breakpoints report their state after they got executed)
It matches your previous screenshot |
If it is useful to you, I started having trouble after enabling DVBM. It crashed the PC, I rebooted, and didn't enabled it again.
At one point CE freezed, Then I rebooted again, and found that CE filled my partition with temp files on the OS temp folder (like 80 GB of temp files. I ran full scans, for unknown values, lots of times, to figure how it works)
I manually deleted those temp files. żMay that have messed with CE?
Maybe it would help to add a little code to check if the temp folder is full, and offer to delete older CE files, since Windows is not smart enough to do it.
EDIT: I had just found that my temp folder is full again (98 Gb of CE files). Maybe that was messing with the debugger.
EDIT 2: Just doing the first scan for all types, unknown values found 1,800,000,000 values. Doing the first unchanged values over it filled the disk with 98 Gb of data. Is that normal?
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25820 Location: The netherlands
|
Posted: Thu Jan 15, 2015 7:10 pm Post subject: |
|
|
ok, when you say you use dbvm I assume you use debugger interface dbvm
as far as I know, dbvm shouldn't be needed for alien, veh should suffice.
dbvm is only useful if you wish to use ultimap(or play with hardware level things), but it's not recommended as debugger interface if there are other debuggers that can be used.
and yeah, there's a bug in the dbvm interface where it won't handle breakpoints if they are not the very first breakpoint set since reboot
| Quote: |
EDIT 2: Just doing the first scan for all types, unknown values found 1,800,000,000 values. Doing the first unchanged values over it filled the disk with 98 Gb of data. Is that normal?
|
Yes, doing an unchanged value after unknown initial value using the "All" type is a really bad thing to do
in "all" mode each entry after unknown initial value takes 24 bytes for each single address found, and then there's the initial scan results that get saved, and the undo scan results are saved as well (43GB*2+full game copy of alien )
always start with changed
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping
Last edited by Dark Byte on Thu Jan 15, 2015 7:19 pm; edited 1 time in total |
|
| Back to top |
|
 |
imposible Newbie cheater
Reputation: 0
Joined: 12 Jan 2015 Posts: 22
|
Posted: Thu Jan 15, 2015 7:13 pm Post subject: |
|
|
| Dark Byte wrote: | ok, when you say you use dbvm I assume you use debugger interface dbvm
as far as I know, dbvm shouldn't be needed for alien, veh should suffice.
dbvm is only useful if you wish to use ultimap(or play with hardware level things), but it's not recommended as debugger interface if there are other debuggers that can be used.
and yeah, there's a bug in the dbvm interface where it won't handle breakpoints if they are not the very first breakpoint set since reboot |
By dbvm I mean enabling DBVM on CE "about" form.
May it still be running? I see no option to disable it.
EDIT: oh, I found it ^^^I was running Windows debugger. I switched to VEH.
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25820 Location: The netherlands
|
Posted: Thu Jan 15, 2015 7:21 pm Post subject: |
|
|
if you open the about form it'll tell you if it's running. (it'll tell you the version)
One easy way to disable it is to put your computer into stand by and then wake it up. It'll be gone (make sure you close ce before doing that)
the main thing though is to make sure the debugger interface is set correctly (veh debug, dbvm can be glitchy at times and is a last resort)
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
| 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
|
|