Hi, I’m Peck.
I help people make the world's best systems.

Scripting APKs With Ruby

While many of my colleagues were away at Blackhat, Defcon, and Bsides Las Vegas I decided to spend a day exploring through an Android app. I became interested in this particular app due to it being the “official” app of a popular web service that included some functionality not exposed to end users through the API that they’ve provided and this annoyed me, as I was reasonably sure that some spammers on this web service were using this functionality and I was interested to see just how difficult it was to do. Fun began.

Twitter, OAuth, and Client Restrictions

Over the last 24 or so hours theres been a lot of commentary on Twitter reitterating their policy that developers should not implement full twitter clients. This should have come as a suprise to no one, but seems to have kicked off a lot of ire in the dev community, nearly all of it misplaced, Yes, Twitter gained a lot in its early days from having a warm relationship with developers, and yes its a shame that they’re moving away from that stance, but at the same time they’ve made some very nice contributions back to the OSS community, Bootstrap is a godsend for people like me who haven’t invested the time to design things well.

String::hash Inconsistencies in Matz Ruby

Last night ruby stole back a few of those hours that it has saved me over the years, and made me feel like I was going just a little crazy in the process of doing it. So in the interest of documenting my failures and maybe saving you a few moments here’s a braindump of the events.

I’ve been working on an implementation of a countsketch data structure for a stream consumption project I’ve been working on. The data structure itself is very cool and deserves a post of its own soon, but think of it as a next-gen Bloom filter with some cool additive properties. As with Bloom filters I need to do quite a bit of hashing, independent universal hash functions would have been best, but its the real world so I set to use the hash function build into String (and later I found out Object and its descendents) which is an implementation of murmur hash. It’s one of the faster hashing functions, and while not a cryptographic hash its still somewhat resistant to collisions.

Gossip Columnist Malware

That old quote from Twain about the lie getting halfway around the world before the truth puts its pants on. Turns out the same thing happens even if the truth has a couple years head start.

This week yours truly was mentioned in not only a foxnews.com entertainment article, but also perezhilton. Truly odd times.

Anyways, just to clarify, I said as much as 20-25% of searches on google/twitter/bing/yahoo for trending topics/popular terms will have malicious links somewhere in their results. And likely to be significantly less for searches about this particular starlet as she’s been popular for a while and all the gossip sites have quite a high search ranking for her already, the more out of the ordinary/uncommon something is the easier it is to game the search engines. Not that I expect the clarification to make any difference, but there it is.

DoSing the Security Community With a ToS

The security community echo chamber was rocking hard over the weekend with news of an online backup/sharing service, Dropbox, changing its Terms of Service to grant them “worldwide, non-exclusive, royalty-free, sublicenseable rights to…” do basically anything they want with your content. From Dropbox’s point of view, this is the sort of thing that they claim they need to have in order to provide you the service. That may or may not be true, but it was probably something their legal counsel told them that it would be in their best interest to include.