TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Compromising a Linux desktop using 6502 opcodes on the NES

355 pointsby scarybeastover 8 years ago

18 comments

pdkl95over 8 years ago
If you are interested in this kind of multi-level attack, I recommend watching this[1] really fun talk by dwangoAC, which he originally gave at DEFCON 24. He is the owner of &quot;TASBot&quot;, a custom controller interface for sending high-speed (and occasionally reliable) controller input into a SNES.<p>In this talk, he uses the controller interface on the SNES to send commands to a Super GameBoy, which is running a real Pokemon Red cartridge. Commands are sent to Pokemon Red to activate an arbitrary code execution bug to write a bootloader that receives the rest of the attack program at high speed. Then - form inside the GameBoy environment - he takes over the Super GameBoy and gains arbitrary code execution on the SNES proper.<p>(for a finish, a Twitch chat client is written into RAM on the SNES that uses a custom network protocol to send requests over the controller port, so the livestream audience can ask questions live through the SNES).<p>[1] <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=s-bKWT9fj8Y" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=s-bKWT9fj8Y</a>
评论 #12953652 未加载
vilhelm_sover 8 years ago
Which brings to mind this blogpost by Ted Unangst [<a href="http:&#x2F;&#x2F;www.tedunangst.com&#x2F;flak&#x2F;post&#x2F;features-are-faults" rel="nofollow">http:&#x2F;&#x2F;www.tedunangst.com&#x2F;flak&#x2F;post&#x2F;features-are-faults</a>], in particular this quote:<p>&gt; Right now there is what I can only describe as a conspiracy to connect something called <i>gstreamer-plugins-bad</i> to the internet. I do not want something called <i>gstreamer-plugins-bad</i> to be connected to the internet because that doesn’t sound like a good idea, but apparently somebody decided to call it a feature, and just like that it had to happen. It’s as if somebody looked at the UML diagram for my browser and realized that the boxes labeled <i>malicious input</i> and <i>gstreamer-plugins-bad</i> weren’t yet connected, and in their utopian vision of the internet, all of the boxes must be connected.
评论 #12954321 未加载
makomkover 8 years ago
&quot;The attack surface of the Linux desktop does not appear to be under control, or adequately monitored for regression.&quot; No kidding. I ran into an interesting example for this a year or so back - the library used by KDE&#x27;s search indexer for reading image metadata added support for video files with a bunch of classic buffer overflows in the new code, and even though it wasn&#x27;t used to index video files a similar filename trick could be used to get the indexer to call it. Not sure how easy it would be to get code execution, but it wouldn&#x27;t require any user interaction thanks to Google Chrome.
评论 #12952927 未加载
评论 #12954357 未加载
amyjessover 8 years ago
On a similar note, last year three huge security holes were discovered in ZSNES that allow an attacker to execute arbitrary x86 code using a malformed ROM. [0] [1]<p>After seeing that and seeing this article, I&#x27;m thinking this might be the start of a whole new era of finding security holes in emulators that allow PCs to be compromised by running something shady in an emulator.<p>[0] <a href="https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;emulation&#x2F;comments&#x2F;3aq0t3&#x2F;psa_zsnes_v151_native_code_execution_vulnerability&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;emulation&#x2F;comments&#x2F;3aq0t3&#x2F;psa_zsnes...</a><p>[1] Seriously, if you&#x27;re still using ZSNES to emulate SNES games, don&#x27;t. That&#x27;s a really scary vulnerability, it still hasn&#x27;t been patched, and ZSNES has been horrendously inaccurate and buggy since even before that. Do yourself a favor and use Snes9X (or if you can, try something based on a bsnes core, like Higan, bsnes-classic, or RetroArch configured with a bsnes core; they&#x27;re the most accurate, but the system requirements are high, and Higan&#x27;s UI isn&#x27;t user-friendly).
评论 #12952349 未加载
评论 #12952641 未加载
评论 #12952372 未加载
gene-hover 8 years ago
This reminds me of an old joke that the best way to make software that will run 50 years from now is to write it as a NES cart.
评论 #12952342 未加载
boxfireover 8 years ago
And hence the coding quality separation of gstreamer plugins. There is a reason the plugin ended up in gstreamer-plugins-bad, and most of them it is due to code quality or lack of maintainers or both.
评论 #12952358 未加载
itsnotlupusover 8 years ago
How would people pronounce &quot;0day&quot; in a way where the expression &quot;an 0day&quot; would flow naturally?<p>I read it as &quot;an zero day&quot;, and that feels wrong.
评论 #12952301 未加载
评论 #12952412 未加载
评论 #12952653 未加载
评论 #12953216 未加载
评论 #12952344 未加载
评论 #12954488 未加载
评论 #12952569 未加载
paulrpottsover 8 years ago
As an old-school geek who still enjoys 6502 assembly, I find this fascinating and disturbing. Nice work explaining the find!
评论 #12955266 未加载
lifthrasiirover 8 years ago
Classic: <a href="http:&#x2F;&#x2F;beza1e1.tuxen.de&#x2F;articles&#x2F;accidentally_turing_complete.html" rel="nofollow">http:&#x2F;&#x2F;beza1e1.tuxen.de&#x2F;articles&#x2F;accidentally_turing_complet...</a> and <a href="https:&#x2F;&#x2F;www.gwern.net&#x2F;Turing-complete" rel="nofollow">https:&#x2F;&#x2F;www.gwern.net&#x2F;Turing-complete</a><p>(Not to say that TC itself is bad, but unexpected&#x2F;accidental TC is normally a sign of bad omen)
评论 #12952242 未加载
qwertyuiop924over 8 years ago
I should probably learn 6502 asm at some point. But I think I&#x27;ll start with ARM and Z80 first, because I have a physical ARM&#x2F;Z80 machine (read: Gameboy Advance).
评论 #12955258 未加载
评论 #12957458 未加载
chinathrowover 8 years ago
Fixed in Ubuntu as of today.<p><a href="http:&#x2F;&#x2F;changelogs.ubuntu.com&#x2F;changelogs&#x2F;pool&#x2F;universe&#x2F;g&#x2F;gst-plugins-bad0.10&#x2F;gst-plugins-bad0.10_0.10.23-7.2ubuntu1.2&#x2F;changelog" rel="nofollow">http:&#x2F;&#x2F;changelogs.ubuntu.com&#x2F;changelogs&#x2F;pool&#x2F;universe&#x2F;g&#x2F;gst-...</a>
gpvosover 8 years ago
The title alone is already worth my upvote.
stefsover 8 years ago
if i understood this right: code execution - yes, but no privilege escalation?
评论 #12953527 未加载
评论 #12952665 未加载
评论 #12952385 未加载
评论 #12952631 未加载
评论 #12953519 未加载
stefsover 8 years ago
my system (linux mint, based on ubuntu 14.04.1) might be affected. the versions match, the files are there.<p>i&#x27;m loath to download and execute the test file though.<p>while i&#x27;m almost completely sure this post is legit, i also don&#x27;t want to delete the gstreamer-0.1 in case it trashes something important. think of trolls recommending the deletion of system32 to speed up the system and free disk space.<p>can i remove this safely? is there more information from another credible source?
评论 #12952179 未加载
评论 #12952158 未加载
评论 #12954761 未加载
评论 #12952221 未加载
评论 #12953356 未加载
bouvinover 8 years ago
So, chiptunes are bad for you?
cjbprimeover 8 years ago
<i>stares at the screen with mouth open</i>
评论 #12952271 未加载
IshKebabover 8 years ago
Vulnerability in gstreamer! News at 11!<p>Next you&#x27;ll be telling me mplayer is riddled with vulnerabilities too...
partycoderover 8 years ago
The UX should say: &quot;This file is a NSF file, do you want to open it?&quot;
评论 #12953381 未加载
评论 #12953213 未加载