Zhenyi Tan And a Dinosaur

Someone Stole Vinegar’s Code

I don’t know how to say this nicely, so 🤬.

Someone stole Vinegar’s code and resubmitted it to the App Store. They obfuscated the JavaScript code with an obfuscator. Their CSS rules and naming conventions are the same as mine. And they didn’t even bother to change the app’s description. Their 1.0 was released on December 3rd, so it’s been three weeks now.

Some Background

Safari extensions’ code are not compiled (it’s just JS/CSS/HTML). So it’s trivial to get the IPA file, crack it open, and see the extension code inside. It doesn’t mean the code is open-source, though. There’s no license, so copying the code is illegal.

Now let’s crack open their IPA and compare their code to mine.

The JavaScript

Their background.js is obfuscated with the javascript-obfuscator tool. (The \x20\x20\x20 strings are a dead giveaway.) But that’s okay because we can use something like JS Nice to de-obfuscate it:

And this is the de-obfuscated code. Note the points of interest because they’re identical to mine:


Their video.css code is also nearly identical to mine, down to the weird 43px and 31px I use for the toolbar.

The Description

They even copied their app’s description from my announcement post:

Grammar mistakes and all.

What Now

All these are pretty conclusive evidence that the developer has stolen Vinegar’s code. I have filed a complaint to the App Store about them. Although the complaint can only “put you in direct contact with the provider of the disputed app.” I’m not sure what to do next. (I suspect the developer will just ignore me. Their “support page” is a Facebook page with no content.)

Update: Apple has contacted the developer. The developer has removed the app.

Vinegar is not the only Safari extension that got its code stolen. A few months ago, the same thing happened to Amplosion. And I think Noir is affected, too.