naim94a / lumen

A private Lumina server for IDA Pro
https://lumen.abda.nl/
MIT License
900 stars 102 forks source link

EXEs with too much data in the Lumen server causes Pull to timeout. #137

Closed gir489returns closed 3 weeks ago

gir489returns commented 6 months ago

Describe the bug Using the latest GTA V 3095 dump, a lot of people like to take the source code that was leaked and match it up to functions and push all that data into the Lumen server. On top of the guy who seems to love pushing all the decompiled natives into it (which is another 10,000 functions) there can be as many as 100,000 functions that it needs to pull. All of this data causes the following error:

`lumina: lumen: query took too long to execute.

Command "LuminaPullAllMds" failed`

To Reproduce Dump GTA V's latest EXE from memory during the legal screen when the natives are decrypted. Load it into IDA. Try to do a Lumina -> Pull All.

Expected behavior Should pull all the data, so long as nothing was stuck or faulted.

Server (please complete the following information):

Client (please complete the following information):

Additional context Maybe @tomrus88 can replace the timeout variable with his plugin?

naim94a commented 6 months ago

This has nothing to do with the plugin, it's a setting of the server - all queries are time limited.

At some point in time the higher limits were reverted, and I have just restored them. Old Limit: 4 minutes. New Limit: 15 minutes.

gir489returns commented 6 months ago

This has nothing to do with the plugin, it's a setting of the server - all queries are time limited.

I know, but considering the readme directly says that that you operate the server, I figured this was the best way to get your attention about the issue.

At some point in time the higher limits were reverted, and I have just restored them. Old Limit: 4 minutes. New Limit: 15 minutes.

Are you/were you being attacked? Without something like Cloudflare on the front of this, I'd imagine his leaves you open to DDoS attacks, with someone abusing something like this, just taking something like this, where it has so many functions marked and just constantly pulling it? I know the IDA team does not care about piracy. They have several times gone on record saying they don't give a shit or a fuck, that's not their customer base, they only care about large corporations pirating software. They even offer a free version now, however, it obviously doesn't work with Lumin and every time you decompile you have to hit their servers (basically phoning home) and whatever you're reversing they could potentially take a copy of.

That being said, if you are/were being attacked, I don't think it would be the IDA team or anyone adjacent to the IDA team, that doesn't sound like that, that just leaves skids and it should be pretty easy to IP rangeban them.

gir489returns commented 6 months ago

lumina: applied metadata to 13476 functions.

eugenekolo commented 6 months ago

@naim94a Still looks like a 4 minute timeout to me based on Socat logs.

2024/02/28 10:06:21 socat[15950] N trusting certificate, commonName matches
2024/02/28 10:06:21 socat[15950] N SSL proto version used: TLSv1.2
2024/02/28 10:06:21 socat[15950] N SSL connection using ECDHE-RSA-CHACHA20-POLY1305
2024/02/28 10:06:21 socat[15950] N SSL connection compression "none"
2024/02/28 10:06:21 socat[15950] N SSL connection expansion "none"
2024/02/28 10:06:21 socat[15950] N starting data transfer loop with FDs [6,6] and [8,8]

2024/02/28 10:10:32 socat[15950] N socket 2 (fd 8) is at EOF
2024/02/28 10:10:32 socat[15950] N exiting with status 0
2024/02/28 10:10:32 socat[15861] N childdied(): handling signal 20
gir489returns commented 1 month ago

This is happening again on GTA build 3274.

lumina: lumen: query took too long to execute.

paidtoomuch commented 4 weeks ago

Having this same error on Windows 11 IDA 7.7.

I have been able to load the metadata for some of the larger functions by going into my IDA.cfg and changing this parameter LUMINA_MIN_FUNC_SIZE from 5 to 200. This allowed the functions that were larger than 200 size to load quicker and pass over the smaller ones.

This obviously isn't a good fix, any size below 200 and it will take so long to load metadata that the server will time me out.

Please try and push the timeout to at least 20 minutes.

naim94a commented 4 weeks ago

pull timeout extended to 30 minutes

gir489returns commented 4 weeks ago

pull timeout extended to 30 minutes

I just tried it on GTA V 3295, and I still get the same error.

lumina: connection closed (recv: Connection closed by peer). Trying to reconnect...
lumina: lumen: query took too long to execute.

Command "LuminaPullAllMds" failed

I clocked it with my phone, and it was exactly 4 minutes.