ArrayIndexOutOfBoundsException in MiniDNS Version 0.3.3

I was working on a project that uses MiniDNS, a DNS services library for Java.  I noticed I was getting a strange error message when loading certain requests, with no noticeable correlation between them:

java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 32
	at minidns.core@0.3.3/org.minidns.record.NSEC.createTypeBitMap(NSEC.java:104)
	at minidns.core@0.3.3/org.minidns.record.NSEC3.<init>(NSEC3.java:132)
	at minidns.core@0.3.3/org.minidns.record.NSEC3.<init>(NSEC3.java:136)
	at minidns.core@0.3.3/org.minidns.record.NSEC3.parse(NSEC3.java:119)
	at minidns.core@0.3.3/org.minidns.record.Record.parse(Record.java:387)
	at minidns.core@0.3.3/org.minidns.dnsmessage.DnsMessage.<init>(DnsMessage.java:413)
	<snip>

This is an edge case where an unknown DNS response type being returned for an NSEC3 answer gets “un-resolved” down the road and crashes the parser.  It has been fixed in 0.4.0-alpha.

Fix Twitch’s Proprietary Links with Camomile

Twitch has been giving away free games with Twitch Prime for a while now.  But being a streaming service, they didn’t really have a distribution platform in place, at least anything in the same league as Steam or EA Origin, to distribute their games to the eligible masses.  Enter Twitch Desktop, a clunky app that tries to be everything Twitch is along with everything Discord and Steam are, and failing at most of what it tries to do.

When a Twitch Prime member downloads their games through Twitch Desktop, they are written to a special Twitch Games folder and links are added to the desktop and Start menu (on Windows at least) that launch the games.  Unfortunately, they aren’t just ordinary links: these are Twitch Fuel links that open Twitch Desktop, hunt for the game after it loads (which can be hit-or-miss), and THEN tries to load the game.  Fortunately, with a little deobfuscation, guesswork, and magic, we can unmask these links and get things slightly back to normal.

Continue reading “Fix Twitch’s Proprietary Links with Camomile”

View Piped Data and Arguments with Argsposer

I occasionally run into the issue of wanting to inspect a link despite not having a protocol handler for it that lets me inspect it.  For instance, VMWare has a specialty link that lets a user open a remote virtual machine in a local instance of VMWare Workstation.  There are several other application-specific link handlers out there, and a majority of them will suppress the actual link in favor of just doing what you ask it to do – open the thing!

Continue reading “View Piped Data and Arguments with Argsposer”