Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


AoB specify search location

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
gir489
Grandmaster Cheater
Reputation: 14

Joined: 03 Jan 2012
Posts: 841
Location: Maryland, United States

PostPosted: Sun Dec 02, 2012 4:47 pm    Post subject: AoB specify search location Reply with quote

Instead of having the AoB search the entire process, which fucking takes forever, it'd be nice to specify a section of memory for which to scan.

Basically, it would look like this.

AOBScan( foo, FF ?? FF ?? FF ??, game.dll, 0x46000)

Where game.dll is the place to start, and 46000 is the length to stop looking, IE game.dll+0x46000.

Just a suggestion.
Back to top
View user's profile Send private message
mgr.inz.Player
I post too much
Reputation: 222

Joined: 07 Nov 2008
Posts: 4438
Location: W kraju nad Wisla. UTC+01:00

PostPosted: Sun Dec 02, 2012 5:19 pm    Post subject: Reply with quote

Only with LUA for now:
http://forum.cheatengine.org/viewtopic.php?t=559987

I've used something similar for Borderlands2 - Rarity Chances Revealer and Borderlands2 - Blink:
createMemScan() + memscan_returnOnlyOneResult() + memscan_firstScan() + memscan_waitTillDone() + memscan_getOnlyResult().

For those variable types: "vtGrouped" and "vtByteArray"

I learned about this technique over a month ago.
Before, I somehow missed this returnOnlyOneResult option when I read the descriptions inside main.lua file.




Before, I used only:

createMemScan() + memscan_firstScan() + memscan_waitTillDone() + createFoundList() + foundlist_initialize() + foundlist_getAddress() or foundlist_getValue()

And:
- AOBScan(x,x,x,x) + strings_getCount() + strings_getString()
- AOBScan("aobstring", protectionflags OPTIONAL, alignmenttype OPTIONAL, alignmentparam HALFOPTIONAL) + strings_getCount() + strings_getString()

_________________
Back to top
View user's profile Send private message MSN Messenger
gir489
Grandmaster Cheater
Reputation: 14

Joined: 03 Jan 2012
Posts: 841
Location: Maryland, United States

PostPosted: Sun Dec 02, 2012 6:18 pm    Post subject: Reply with quote

mgr.inz.Player wrote:
Only with LUA for now:
http://forum.cheatengine.org/viewtopic.php?t=559987

I've used something similar for Borderlands2 - Rarity Chances Revealer and Borderlands2 - Blink:
createMemScan() + memscan_returnOnlyOneResult() + memscan_firstScan() + memscan_waitTillDone() + memscan_getOnlyResult().

For those variable types: "vtGrouped" and "vtByteArray"

I learned about this technique over a month ago.
Before, I somehow missed this returnOnlyOneResult option when I read the descriptions inside main.lua file.




Before, I used only:

createMemScan() + memscan_firstScan() + memscan_waitTillDone() + createFoundList() + foundlist_initialize() + foundlist_getAddress() or foundlist_getValue()

And:
- AOBScan(x,x,x,x) + strings_getCount() + strings_getString()
- AOBScan("aobstring", protectionflags OPTIONAL, alignmenttype OPTIONAL, alignmentparam HALFOPTIONAL) + strings_getCount() + strings_getString()

We've been using this "technique" in cheats since 2005. This is old news, actually.

Code:
bool CBaseAPI::bDataCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
   for( ; *szMask; ++szMask, ++pData, ++bMask )
         if( *szMask == 'x' && *pData != *bMask )
            return false;

   return ( *szMask ) == NULL;
}

DWORD CBaseAPI::dwFindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask)
{
   for( DWORD i = NULL; i < dwLen; i++ )
      if( bDataCompare( (BYTE*) ( dwAddress + i ), bMask, szMask ) )
         return (DWORD)( dwAddress + i );

   return 0;
}


It was originally conceived by wav, but P47TR!CK made the code.

This should be standard for any type of memory searching, to specify where to start.
Back to top
View user's profile Send private message
mgr.inz.Player
I post too much
Reputation: 222

Joined: 07 Nov 2008
Posts: 4438
Location: W kraju nad Wisla. UTC+01:00

PostPosted: Sun Dec 02, 2012 9:16 pm    Post subject: Reply with quote

One misunderstanding...


This "technique" is available in CheatEngine since "Jan 15, 2012", as a new LUA function.

http://code.google.com/p/cheat-engine/source/browse/trunk/Cheat%20Engine/LuaMemscan.pas ? r = 1 1 7 4

changelog:
"implement a bunch of new lua functions
Split memscan and foundlist from the main
luahandler.pas into separate units"

So, I should have written earlier:
"I learned about this technique we can use in CE6.2, over a month ago".

_________________
Back to top
View user's profile Send private message MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites