Jump to content

gg.pthreadCreate


Ferib
 Share

Recommended Posts

Hello, would it be possible to have a Lua wrapper for `pthread_create` so we can create threads on the fly using the GG Lua API?

I think more advanced people would greatly appreciate this as this would make GG more competitive against Frida, thanks.

Link to comment
Share on other sites

`pthread_create` is only on C++ / C Language , Lua has `coroutines` it does the same thing as threads , but Enyby has removed them for no reason maybe because they're useless in Game Guardian.

Link to comment
Share on other sites

On 5/30/2022 at 1:02 AM, MrKendom said:

`pthread_create` is only on C++ / C Language , Lua has `coroutines` it does the same thing as threads , but Enyby has removed them for no reason maybe because they're useless in Game Guardian.

the pthread_create is indeed a native thing, what I meant is that I would like a Lua wrapper API to invoke the pthread_create so that I can spawn a thread on my injected assembly instructions. Lua coroutines are overrated btw

Link to comment
Share on other sites

  • 1 month later...
On 5/29/2022 at 4:02 PM, MrKendom said:

`pthread_create` is only on C++ / C Language , Lua has `coroutines` it does the same thing as threads , but Enyby has removed them for no reason maybe because they're useless in Game Guardian.

GG supports web requests via makeRequest, multi threading would help a lot when making multiple requests.

Link to comment
Share on other sites

22 minutes ago, darklinux said:

GG supports web requests via makeRequest, multi threading would help a lot when making multiple requests.

Again I am not talking about multi-threading in the Lua side, just want to create a new thread on a asm function. Currently got around it by hooking a function and writing a small code cave to invoke thread creation.

Link to comment
Share on other sites

1 hour ago, Ferib said:

Again I am not talking about multi-threading in the Lua side, just want to create a new thread on a asm function. Currently got around it by hooking a function and writing a small code cave to invoke thread creation.

Ah, in that case I have a feeling GG will not support native threads. I do want to release a small shellcode lib for native functions. I have "LoadLibrary" working, next is CreateThread, VirtualProtect and so on. Should be easy to do with little asm.

Edited by darklinux
Link to comment
Share on other sites

  • 3 months later...
On 6/6/2022 at 7:27 AM, Ferib said:

the pthread_create is indeed a native thing, what I meant is that I would like a Lua wrapper API to invoke the pthread_create so that I can spawn a thread on my injected assembly instructions. Lua coroutines are overrated btw

This would be useful, but I believe gameguardian specifically does not want us to run our own code because of security. That's why lua scripts are sandboxed and have certain functionality, eg: file access, limited / entirely removed.

Adding an option to inject assembly code would be begging for someone to come along and make a malicious script. Personally, I am in support of this. But AFAIK the gameguardian admins aren't.

Link to comment
Share on other sites

On 11/18/2022 at 3:54 AM, HorridModz said:

Adding an option to inject assembly code would be begging for someone to come along and make a malicious script. Personally, I am in support of this. But AFAIK the gameguardian admins aren't.

You are such a joke, we can just write bytes into memory and have them executed by hooking a hot code path. Might as well hook the GG daemon and executed arbitrary code.

Link to comment
Share on other sites

On 11/20/2022 at 9:38 AM, Ferib said:

You are such a joke, we can just write bytes into memory and have them executed by hooking a hot code path. Might as well hook the GG daemon and executed arbitrary code.

Yes, I know this is possible and I've done it myself. But my theory for why this functionality is not included is that Enyby does not want it to be easy. It's impossible to prevent this from happening because you can use hooking, but it's more difficult when it's not baked into gameguardian.

 

Also, please be respectful. The moderators on this site are very sensitive, and this post could easily get you a warning (which would give you a warning point that showed on your profile forever and reminded people you weren't a very nice guy).

Link to comment
Share on other sites

On 11/20/2022 at 4:38 PM, Ferib said:

Might as well hook the GG daemon and executed arbitrary code.

How to "hook the GG daemon" from script for GG? Or what is this supposed to mean? Where in a process that is selected in GG would there be anything related to GG daemon?

As for executing arbitrary code, the approach from your previous sentence already allows that, but of course code can only be executed in context of the process that is selected in GG. So what does GG daemon have to do with this?

Link to comment
Share on other sites

On 11/26/2022 at 2:16 AM, CmP said:

How to "hook the GG daemon" from script for GG? Or what is this supposed to mean? Where in a process that is selected in GG would there be anything related to GG daemon?

As for executing arbitrary code, the approach from your previous sentence already allows that, but of course code can only be executed in context of the process that is selected in GG. So what does GG daemon have to do with this?

the GG daemon process is just an example, can be any process

 

On 11/25/2022 at 5:00 PM, HorridModz said:

Yes, I know this is possible and I've done it myself. But my theory for why this functionality is not included is that Enyby does not want it to be easy. It's impossible to prevent this from happening because you can use hooking, but it's more difficult when it's not baked into gameguardian.

Your theory doesn't make much sense to me. All I requested was the use of `pthread_create` which you argue would allow code execution which can be achieved in different ways, no matter how dIfFiCuLt that is.

But that is okay man, the reason we don't have it has to do with the fundamentals of Android.

Link to comment
Share on other sites

3 hours ago, Ferib said:

the GG daemon process is just an example, can be any process

This example doesn't make sense. Only memory of selected process can be modified. Scripts have no control over which process is selected. So the question remains, what does GG daemon have to do with this?

Link to comment
Share on other sites

10 hours ago, Ferib said:

the GG daemon process is just an example, can be any process

 

Your theory doesn't make much sense to me. All I requested was the use of `pthread_create` which you argue would allow code execution which can be achieved in different ways, no matter how dIfFiCuLt that is.

But that is okay man, the reason we don't have it has to do with the fundamentals of Android.

pthread_create is a feature of c++. Gameguardian does not encourage the use of running arbitrary c++. Why would they add to a feature when the feature is unwanted in the first place?

6 hours ago, CmP said:

This example doesn't make sense. Only memory of selected process can be modified. Scripts have no control over which process is selected. So the question remains, what does GG daemon have to do with this?

I think @Feribjust doesn't want to admit he made a bad example. He's doesn't want to admit he made a mistake, so there's no point arguing about it.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.