2018 August 31 · 1 min read DLNA/UPNP casting support in VLC - Part 1 The latest project that I have been working on lately is adding support for casting to DLNA/UPNP renderers in VLC. DLNA renderers, mainly TV’s are DLNA certified devices that are able to play any media from the local network and is built upon the UPnP A/V Architecture technology. This allows you to cast any video or audio from any other device to your connected TV. August 19 · 1 min read Protecting Your Privacy in a Post-Aadhar India With more and more online and offline services demanding Indian citizens to provide their Aadhar number for availing their services without any legal basis and necessity under the pretense of proving your identity, it does raise more than a few privacy concerns. July 08 · 1 min read Continuous Marketing - Exploiting Insecure REST API's After I finished refactoring my android app to use a 3rd-party public API for the user data, I needed a way to quickly promote my application to users. The API I used is inherently insecure with virtually no standard REST API security in place and designed with a top-down approach to suit their own mobile app. Their whole premise being to secure the mobile app with 2FA and having an API that’s quite literally a bunch of wrapper functions around database queries exposed as endpoints. June 03 · 8 min read My First Mechanical Keyboard - A Review of TADA68 TADA68 with the aluminium case Why TADA68? After first coming across the Keywalker IFD68 on Massdrop for just $99 I almost bought it. But after trying to find some reviews online I also found the TADA68/SABER68 designed by originatives, which is a very similar keyboard with the exact same 68 key layout and even the type and color of keycaps. But the few differences that tipped the favor towards me buying the TADA68 were; first the Keywalker being a Bluetooth keyboard with an included battery the shipping increased to be just too expensive, second the Keywalker uses a proprietary firmware with a flashing tool to program the keyboard only available for windows platform. May 27 · 1 min read My Vim and Tmux Setup For the past couple of weeks I have been slowly setting up my Vim and tmux config files to just the way I prefer, creating the perfect workflow for working on C/C++ and Rust projects that increases my productivity by not only not having to constantly switch between the keyboard and the mouse/touchpad for every little task/navigation but also to just touch type my way to glory :). Especially since with C and Rust not having a single canonical IDE and inherently requiring to interact with the terminal for compiling and debugging, Vim coupled with a language server (I’m using cquery for C/C++, RLS for Rust) is the perfect IDE for these languages. May 16 · 1 min read Mobile and Desktop Wallets with gRPC Does anyone else also feel that we need lightning [network] desktop and mobile app wallets that can connect to your remote lnd server with gRPC (using rpc username and password) instead of every app loading and syncing their own chain on device? Leading to multiple wallets and coin fragmentation among those wallets. January 08 · 2 min read Prefetching Data with Next.js and Apollo Update: My pull requests implementing the techniques discussed here were merged into the zeit/next.js with-data-prefetch and with-apollo examples. You can easily combine the various examples (including the above two) to achieve your desired functionality. For most modern web apps, network speed and latency is still the biggest constraint for high performance and great UX. Universally rendered Isomorphic applications do a great job to solve that to some extent without sacrificing interactivity by processing the complete DOM of the first request on the server and subsequent requests on the client. But there is a lot more we can do.2017 August 28 · 3 min read Fuzzing libVLC - Final Report Update: My fuzz targets have been merged into the VLC mainline tree by commits 74e7bd2, b83e9f2. Introduction to my GSoC project here Majority of the parsing code of VLC has been successfully setup to be fuzzed by: The demux fuzz target which creates an input stream from the fuzzed input provided by libfuzzer, probes and loads an appropriate demux module and demultiplexes the input into the various output elementary streams, minimally handling all the ES callbacks and calling various demux_Control’s to increase code coverage. July 08 · 1 min read Fuzzing libVLC - Improvements I have been making some few specific improvement to demux fuzz target and also working on the decoder target side by side which isn’t done yet. Some general improvements that I have made for all fuzz targets is abstracting away and initializing the parent libvlc_instance_t object in LLVMFuzzerInitialize which obviously has some performance improvements as it isn’t created and destroyed on every run of the LLVMFuzzerTestOneInput. June 24 · 1 min read Fuzzing libVLC - De-multiplexer So, I have been working on writing a fuzz target for the demux API for the past two weeks and I have reached a point where it has a good code coverage and has already found some few shallow bugs. Here are some of the stacktraces libfuzzer spit out and all of them were fixed rather promptly.‹ PreviousNext ›