This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
CCGrimHaxor's profile picture

[WARNING] Computercraft Destroyer Bug All Versions

Started by CCGrimHaxor, 12 February 2015 - 04:41 PM
CCGrimHaxor #1
Posted 12 February 2015 - 05:41 PM
No idea how this happend but it is with my new root app.
All versions

Upon further inspection I have found this out:
When the computer is booting up it can cause other computer to clog up upon this error.
The rate of the computer fully bricking is: 25%(about not a math ginious)
You have a 89% chance upon first reboot to error out any other turned on PCs

How to recreate:
  1. Download: pastebin get Dy9mM4Us Fire-Root
  2. Run Fire-Root
  3. Go down to options and press enter(use up and down keys)
  4. It will error
  5. Launch it back up(Fire-Root)
  6. Go down to options again and press enter
  7. This time it will bug out and lag at downloading
  8. Hold ctrl + t until the program stops or the pc restarts
  9. If the program stops terminate the shell
  10. Keep trying to turn on the pc until this error accurs
  11. Congrats you just broke every computer on the server including all the events and the bios.lua
WARNING: After you do this no pc can be booted back up and this pc will remain like this until server reset and the startup is deleted
DO NOT DO THIS ON A SERVER WITHOUT PERMISSION!!!
Image MC:

Image:
Edited on 12 February 2015 - 05:08 PM
Cranium #2
Posted 12 February 2015 - 05:43 PM
Until you can reproduce this in Vanilla ComputerCraft - NOT an emulator - we won't be able to count this as a bug.
Edited on 12 February 2015 - 04:43 PM
CCGrimHaxor #3
Posted 12 February 2015 - 05:43 PM
Until you can reproduce this in Vanilla ComputerCraft - NOT an emulator - we won't be able to count this as a bug.

Let me get the image k?
CCGrimHaxor #4
Posted 12 February 2015 - 05:55 PM
Until you can reproduce this in Vanilla ComputerCraft - NOT an emulator - we won't be able to count this as a bug.

The image in MC has been added
Cranium #5
Posted 12 February 2015 - 05:56 PM
Have you tried adding a disk drive with a blank startup file on it?
CCGrimHaxor #6
Posted 12 February 2015 - 05:59 PM
Have you tried adding a disk drive with a blank startup file on it?

I tried it isn't even booting up it is because of the top level corroutine infecting the bios i think
Lignum #7
Posted 12 February 2015 - 06:03 PM
Can confirm. It only happens on advanced computers, though. I suppose that the TLC override doesn't quite work with multishell? Considering that it was written in late 2012, which was way before advanced computers even existed that's probably what's happening.
CCGrimHaxor #8
Posted 12 February 2015 - 06:04 PM
Can confirm. It only happens on advanced computers, though. I suppose that the TLC override doesn't quite work with multishell? Considering that it was written in late 2012, which was way before advanced computers even existed that's probably what's happening.

Interesting is there any way of recovery or is the damage perminate?
Lignum #9
Posted 12 February 2015 - 06:07 PM
Interesting is there any way of recovery or is the damage perminate?

Well, as you said restarting the emulator/MC and deleting startup manually fixes it. At least for me.
CCGrimHaxor #10
Posted 12 February 2015 - 06:08 PM
Interesting is there any way of recovery or is the damage perminate?

Well, as you said restarting the emulator/MC and deleting startup manually fixes it. At least for me.

I actually said it might have perminate damage I have compleatly wiped the session but the error keeps accuring
Lignum #11
Posted 12 February 2015 - 06:12 PM
I actually said it might have perminate damage I have compleatly wiped the session but the error keeps accuring

I'm not sure what you could do about that. Without knowing what the actual problem is, I have no idea how to fix it. But your best bet right now would be to just reinstall the emulator completely.
Bomb Bloke #12
Posted 12 February 2015 - 11:30 PM
I feel like you're having two different conversations.
Lyqyd #13
Posted 13 February 2015 - 06:41 AM
There's no permanent damage, of course. Don't be silly. A properly employed disk drive with blank startup file puts everything right again.

It appears that the TLCO code is having trouble finding the parent shell. You might try simplifying down and working on finding a fix for that before trying to pile all of the other code you've mangled together on top of it. Throwing a sleep(0) at the beginning does seem to at least mitigate the effects on other computers, though the fact that you can tie up the event queue that effectively at all is a bit concerning.

There does appear to be an actual bug here, but a much simpler reproduction case would be useful, if anyone wants to take a whack at it. It shouldn't be too hard, a pared-down version of the TLCO code should do.
CCGrimHaxor #14
Posted 13 February 2015 - 09:12 AM
There's no permanent damage, of course. Don't be silly. A properly employed disk drive with blank startup file puts everything right again.

It appears that the TLCO code is having trouble finding the parent shell. You might try simplifying down and working on finding a fix for that before trying to pile all of the other code you've mangled together on top of it. Throwing a sleep(0) at the beginning does seem to at least mitigate the effects on other computers, though the fact that you can tie up the event queue that effectively at all is a bit concerning.

There does appear to be an actual bug here, but a much simpler reproduction case would be useful, if anyone wants to take a whack at it. It shouldn't be too hard, a pared-down version of the TLCO code should do.

Thanks but the most concerning is the fact that users can actually modify other computets events( only advanced though) so that is a huge security hole. I figured out it does find and execute TLCO correctly but the problem is in my code as it isn't complete. Another problem I also found is that if the functions are never restored it CAN cause permenate damage to all the computers but from what I know it can only be done with a currupted TLCO or changed code for hackers that is the golden door to hacking all computers on a server. This has to get patched asap.
Edited on 13 February 2015 - 08:13 AM
CCGrimHaxor #15
Posted 13 February 2015 - 10:38 AM
There's no permanent damage, of course. Don't be silly. A properly employed disk drive with blank startup file puts everything right again.

It appears that the TLCO code is having trouble finding the parent shell. You might try simplifying down and working on finding a fix for that before trying to pile all of the other code you've mangled together on top of it. Throwing a sleep(0) at the beginning does seem to at least mitigate the effects on other computers, though the fact that you can tie up the event queue that effectively at all is a bit concerning.

There does appear to be an actual bug here, but a much simpler reproduction case would be useful, if anyone wants to take a whack at it. It shouldn't be too hard, a pared-down version of the TLCO code should do.

I have 1 quastion if I make an exploit for this bug am I allowed to post the exploit in the bugs section?
Anavrins #16
Posted 13 February 2015 - 03:16 PM
No, it would be better to PM the staff or even Dan about it so it doesn't go public.
CCGrimHaxor #17
Posted 13 February 2015 - 03:24 PM
No, it would be better to PM the staff or even Dan about it so it doesn't go public.
Ok I will do that. Thanks for the tip
Lyqyd #18
Posted 13 February 2015 - 03:56 PM
Thanks but the most concerning is the fact that users can actually modify other computets events( only advanced though) so that is a huge security hole. I figured out it does find and execute TLCO correctly but the problem is in my code as it isn't complete. Another problem I also found is that if the functions are never restored it CAN cause permenate damage to all the computers but from what I know it can only be done with a currupted TLCO or changed code for hackers that is the golden door to hacking all computers on a server. This has to get patched asap.

Again, let me be perfectly clear: No permanent damage is done because of this bug. Breaking the affected computer stops the event system hanging, and placing it next to a disk drive with a blank startup allows you to use it normally again to remove the software.

I'm also going to re-iterate that the TLCO code is failing. If you run just it, you can see that it attempts to index a nil value on line 166, due to the getParentShell function returning nil, since it cannot find the parent shell. Failing to reset values changed by the TLCO code affects only one computer, and only until it reboots. I'm not sure what's difficult to understand, since this is all clearly observable in Minecraft. Yes, there is a bug being showcased here, but you are blowing it way, way out of proportion.

If you write a simpler reproduction case (which again, all you should need is the TLCO code), that would be fine to post, but an exploit would be best not to.

And again, this bug is not capable of doing any permanent damage, only temporary damage.
CCGrimHaxor #19
Posted 13 February 2015 - 04:34 PM
Thanks but the most concerning is the fact that users can actually modify other computets events( only advanced though) so that is a huge security hole. I figured out it does find and execute TLCO correctly but the problem is in my code as it isn't complete. Another problem I also found is that if the functions are never restored it CAN cause permenate damage to all the computers but from what I know it can only be done with a currupted TLCO or changed code for hackers that is the golden door to hacking all computers on a server. This has to get patched asap.

Again, let me be perfectly clear: No permanent damage is done because of this bug. Breaking the affected computer stops the event system hanging, and placing it next to a disk drive with a blank startup allows you to use it normally again to remove the software.

I'm also going to re-iterate that the TLCO code is failing. If you run just it, you can see that it attempts to index a nil value on line 166, due to the getParentShell function returning nil, since it cannot find the parent shell. Failing to reset values changed by the TLCO code affects only one computer, and only until it reboots. I'm not sure what's difficult to understand, since this is all clearly observable in Minecraft. Yes, there is a bug being showcased here, but you are blowing it way, way out of proportion.

If you write a simpler reproduction case (which again, all you should need is the TLCO code), that would be fine to post, but an exploit would be best not to.

And again, this bug is not capable of doing any permanent damage, only temporary damage.

Ok so no permanent damage but even after I deleted the startup file I was unable to startup the 1 PC. But about the exploit I will send it to the mods and dan with a pm just as Anavrins recommended. But the thing I can't get my mind around is if TLCO is not even executing how is it effecting other computers? And is there any way to even patch this? And I was on a server with a friend with CC we attempted this and while the code was erroring he broke the computer and the server crashed? Any clue why it happend? And do we have to take in the fact that he did modify bios.lua and some functions on startup
dan200 #20
Posted 12 March 2015 - 10:04 AM
TLCO?
Bomb Bloke #21
Posted 12 March 2015 - 10:19 AM
http://www.computercraft.info/forums2/index.php?/topic/14785-a-smaller-top-level-coroutine-override/

Basically it cases the parallel function call managing shell and rednet.run to bomb out, allowing the coder to run something else in their place.
apemanzilla #22
Posted 12 March 2015 - 04:36 PM
TLCO?

Top level coroutine override. Basically, getting code to run at the BIOS level, therefore above all other coroutines.

Edit: oops, didn't realize there was another page with bom bloke's post…
Edited on 12 March 2015 - 03:37 PM
CCGrimHaxor #23
Posted 12 March 2015 - 09:00 PM
TLCO?
It is top level coroutine override the old version. It braks all the computers