| View previous topic :: View next topic |
| Author |
Message |
LastExceed Expert Cheater
Reputation: 1
Joined: 05 Nov 2014 Posts: 130
|
Posted: Thu Feb 19, 2015 10:22 am Post subject: value sync |
|
|
| I know that you can synchronize the value of 2 addresses by using as value for address2, but is there any way to synchronize the values of 2 addresses from different processes?
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25840 Location: The netherlands
|
Posted: Thu Feb 19, 2015 11:00 am Post subject: |
|
|
Yes, use 2 ce's and make use of a named shared memory block. Use ce1 to sync a pointer to that block and ce2 to sync a pointer with the value of that block
I cant give better details right now as I'm on a phone, but just ask to remind me when I grt home
edit:
| Code: |
allocateSharedMemory(name, size):
Creates a shared memory object of the given size if it doesn't exist yet. If size is not given and there is no shared region with this name then the default size of 4096 is used
It then maps this shared memory block into the currently targeted process. It returns the address of mapped region in the target process
|
_________________
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 |
|
 |
LastExceed Expert Cheater
Reputation: 1
Joined: 05 Nov 2014 Posts: 130
|
Posted: Thu Feb 19, 2015 4:35 pm Post subject: |
|
|
| Dark Byte wrote: | Yes, use 2 ce's and make use of a named shared memory block. Use ce1 to sync a pointer to that block and ce2 to sync a pointer with the value of that block
I cant give better details right now as I'm on a phone, but just ask to remind me when I grt home
edit:
| Code: |
allocateSharedMemory(name, size):
Creates a shared memory object of the given size if it doesn't exist yet. If size is not given and there is no shared region with this name then the default size of 4096 is used
It then maps this shared memory block into the currently targeted process. It returns the address of mapped region in the target process
|
|
thanks
Last edited by LastExceed on Wed Mar 18, 2015 6:46 pm; edited 1 time in total |
|
| Back to top |
|
 |
mgr.inz.Player I post too much
Reputation: 222
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Thu Feb 19, 2015 5:20 pm Post subject: |
|
|
@DB, Is it possible with LuaPipe?
I tried it some time ago. Without success.
_________________
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25840 Location: The netherlands
|
Posted: Thu Feb 19, 2015 7:18 pm Post subject: |
|
|
it's possible with the LuaPipeClient and LuaPipeServer but setting it up is a bit more complex
server executes:
| Code: |
p=openLuaServer("somename")
|
client:
| Code: |
p=connectToPipe("somename")
s=[[
print("bla")
print("param="..parameter)
]]
p.writeByte(1) --execute lua function
p.writeDword(#s) --scriptsize
p.writeString(s) --script
p.writeDword(600) --'parameter' variable
|
and keep in mind that this code will run in a different thread, so 'synchronize' if you intend to use gui functions (like the addresslist)
But what I meant is open 2 CE's (call them CE1 and CE2)
CE1 connects to process1(the one you wish to set the value)
CE2 connects to process2(the one you wish to get the value from)
after connecting, in both CE's execute the lua command:
| Code: |
sharedaddress=allocateSharedMemory("mysharedblock", 4096)
registerSymbol("sharedaddress", sharedaddress)
|
now add the address "sharedaddress" to both CE's (it can be inside a table and CE will update it accordingly after that lua command)
in CE2 freeze sharedaddress and give it the value (entrywithoriginalvalue)
in CE1 freeze the address you wish to sync, and give it the value (entrywithsharedaddress)
_________________
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 |
|
 |
|