Posted: Fri Feb 14, 2025 12:07 pm Post subject: strsrt in x64 mode
Hi all,
I used strstr before in AA scripts successfully with x86 mode games.
I am working on an x64 title and when I call strstr from my AA script, CE will assemble there a far call to ntoskrnl.strsrt - except the memory execution is supposed to be passed to is uninitialized; it's full of ?? marks.
Is this a bug because the assembled call points to the wrong address?
If not a bug, should CE drop an error in this case? (why does it put there something that's invalid?)
Any ideas how to do a case (in)sensitive substring search in x64 mode in an AA script (without LUA)?
When CE encounters a symbol in an AA script, it uses the first occurrence of that symbol it happens to find. If you want a specific one, define it in your script manually. (labels local to the script seem to be preferred during symbol lookup)
Code:
[ENABLE]
globalalloc(foo,4096)
// without this, CE would've automatically used ntdll.strstr on my setup
label(strstr)
Joined: 09 May 2003 Posts: 25700 Location: The netherlands
Posted: Sat Feb 15, 2025 2:22 am Post subject:
I replied in the other thread, just make sure you declare the function else there will be issues
as for it prefering ntoskrnl.strsrt is because you may have ticked kernelmode symbols in memview->view , and most usermode apps have no access to that memory. Do as ParkourPenguin mentions, and define it using a local symbol first
Code:
label(strstr)
msvcrt.strstr:
//or ntdll.strstr:
strstr:
_________________
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
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