Medal Decompiler Crasher

Sup! Here’s a funny method of crash or attempting to prevent the Medal compiler from returning the string “--Decompiled by Medal” and nothing else, literally.

Making the register cry is so cool, considering that at 256 it will be: Out of registers when trying to allocate 256 registers: exceeded limit 255

Don’t forget that this also works for the local registry, where the limit is only 200.

Tested on Seliware and Volcano, ROBLOX will immediately close on Seliware LOL

getfenv().script:Destroy() -- Without this, Medal will be able to decompile it, with great difficulty, but it will be able to. For Seliware, it will still crash without this, as they have a difference in the register pool.

local function outer()
	local function inner()
		return 1,2,3,4,5,6,7,8,9,10,
		11,12,13,14,15,16,17,18,19,20,
		21,22,23,24,25,26,27,28,29,30,
		31,32,33,34,35,36,37,38,39,40,
		41,42,43,44,45,46,47,48,49,50,
		51,52,53,54,55,56,57,58,59,60,
		61,62,63,64,65,66,67,68,69,70,
		71,72,73,74,75,76,77,78,79,80,
		81,82,83,84,85,86,87,88,89,90,
		91,92,93,94,95,96,97,98,99,100,
		101,102,103,104,105,106,107,108,109,110,
		111,112,113,114,115,116,117,118,119,120,
		121,122,123,124,125,126,127,128,129,130,
		131,132,133,134,135,136,137,138,139,140,
		141,142,143,144,145,146,147,148,149,150,
		151,152,153,154,155,156,157,158,159,160,
		161,162,163,164,165,166,167,168,169,170,
		171,172,173,174,175,176,177,178,179,180,
		181,182,183,184,185,186,187,188,189,190,
		191,192,193,194,195,196,197,198,199,200,
		201,202,203,204,205,206,207,208,209,210,
		211,212,213,214,215,216,217,218,219,220,
		221,222,223,224,225,226,227,228,229,230,
		231,232,233,234,235,236,237,238,239,240,
		241,242,243,244,245,246,247,248,249,250,
		251,252,253,254,255
	
	end
	return inner
end

local ok, err = pcall(function()
	local f = outer()
	return f()
end)
while task.wait(1) do -- Instead, you can continue working exactly as you need to.
	print("hello")
end
14 Likes

Lovely resource, I’m not sure how they will fix this one tho

1 Like

what exactly does this do?

characterlimit

1 Like

This buffer overflow thing is a really funny way to stop people from stealing your games by decompiling it lol

4 Likes

I can’t wait for this to be patched in 3 seconds from now

1 Like

Roblox gonna patch ts too now bro

2 Likes

Simply put, Medal, like Oracle, works synchronously at runtime. When decompiling, as the person in the post above said, a buffer overflow occurs, and Medal simply cannot handle it.

Also, Medal cannot correctly interpret the “RETURN” bytecode instruction with 255 registers, and it also gets confused when returning the ENTIRE list of return values.

1 Like

Where can one learn of this niche info? I’m assuming there are other communities out there that talk about this more..?

This security niche is cool, and I want to learn more.. pls guide orz

1 Like

In general, I am self-taught, either people correct me when I am wrong, and I don’t make the same mistake again, or I just study everything thoroughly first to give the correct answer.

The main thing is that in order to understand all this, you need to be interested in it, to be drawn to this subject, I believe and think so, but in fact there are sources where you can learn this, it all depends on the quality of the sources and their relevance today.

1 Like

thanks i spent 5 minutes patching it on my fork

ill be sure to release a public repo with a patch for this soon

1 Like

medal as in the recording software? or is it one of those game stealing exploits

Medal is an exploit utility, a script decompiler, similar to the popular free Konstant V2.1, but superior.

2 Likes

sad this won’t work on oracle :victory_hand::victory_hand::victory_hand:
hope this helps :rofl::rofl::rofl:

@packpngtexture fix it thx and reply my dm?

you have sent me a total of 0 dms in the past month