Designing a Singly Linked List in C-Sharp

Recently I have started my journey of solving interview problems on Leetcode. To help me further build my knowledge on these practice problems I will be writing blog posts to explain my solution. This post describes what a Singly Linked List is and how I designed one in C#. I choose C# for this interview because Microsoft Visual Studio’s debugger is easy to use and makes visualizing the data as I modify it easier....

March 18, 2022 · 11 min · Catgirl

How to get Audio working in a Virtual Machine with libvirtd/qemu when pulseaudio won't work

By default virt-manager with libvirtd+qemu will give you the option to pass your Virtual Machine’s audio to the host’s pulseaudio daemon. This causes some problems as you have limited options to change the value/device while inside the Virtual Machine and it can be buggy or not work at all as was my case in Ubuntu 21.04. Use PCI Passthrough to take over your system’s sound card and usb controller To solve this problem I use VFIO’s PCI Passthrough to take the system’s sound card and usb controller away from the host operating system and give it to the Virtual Machine....

September 24, 2021 · 1 min · Catgirl

Tips for evading Virtual Machine detection with libvirtd/qemu

Many applications and games will refuse to boot if they detect a Virtual Machine. I’ve found there are quite a few things you can do to make it much harder for them to do this. Depending on your system load and other factors this may have a performance impact. This will not work for every anti-cheat and anti-vm software. Some kernel-level anti-cheats like Valorant’s Vanguard use various timing tricks and even hypervisor bugs to determine if you are running inside of a Virtual Machine....

September 24, 2021 · 2 min · Catgirl

How to use the Elgato 4K60 PRO in Linux (with PCI Passthrough and a Windows Virtual Machine and a Single GPU)

Recently I made the decision to make Ubuntu 21.04 Linux my primary desktop operating system. One of the only things holding me back is a lack of support for my capture card. I decided to figure out how to use PCI Passthrough to run it inside a Windows Virtual Machine. While there are a few drawbacks explained at the end of this post you only need one monitor and one graphics card....

September 24, 2021 · 13 min · Catgirl

C++ Anti-Patterns: A discussion on ostreams, new lines, and output buffer flushing

Recently I started a class at my university which teaches the C++ programming language. It is a fun language I have a bit of experience with already and I’ve been going through the textbook’s various exercises and have picked up on a few anti-patterns the textbook is encouraging. In the practice problems you build an std::ostream (https://en.cppreference.com/w/cpp/header/ostream) with the data you want to show the user and then output it to the screen with std::cout (https://en....

September 1, 2021 · 8 min · Catgirl

Configuring manual band selection for the Netgear M1 Nighthawk MR1100 for AT&T

Recently I wanted more control on which bands my LTE Router connects to to improve stability and speeds. This blog post documents my experience fine tuning things on the AT&T Wireless Network. Prerequisites This blog post assumes you have a working and fully setup Netgear M1 Nighthawk MR1100 Mobile Router, that it is already configured to work on AT&T, and has a data plan with enough data for your use case....

July 4, 2021 · 3 min · Catgirl

Super Simple RSA in Python for fun and saving time in my Discrete Mathematics Class

Recently in my discrete mathematics class we had the assignment to leave a message to the class and decrypt and respond in RSA to our peers as well. As you may be aware this type of work would be tedious to do by hand. While learning RSA is important this seemed like busywork and I didn’t want to do it. I also caught up on other coursework and took my final exam so I was pretty tired already....

June 21, 2021 · 9 min · Catgirl

Exfiltrating MyBB Attachments

Recently I accidentally deleted an important SSH key and lost access to a server running MyBB that I manage for a friend. As a result I could not make new backups to download attachments, avatars, and other files I needed from the server. Unfortunately the automated backups to Wasabi Cloud stopped after an API key was deleted from the account, additionally due to bucket lifecycle rules (enforced retention + autodelete), old backups were gone....

December 18, 2020 · 9 min · Catgirl

No Google isn't banning adblockers in Google Chrome

Over the past year there has been panic that Google plans on banning the use of ad blockers in Google Chrome. This is largely caused by misleading blog posts indicating that Google Chrome’s manifest v3 limits the deprecates the webRequest API to enterprise applications which require it. Adblockers today use this API to detect every incoming response body and remove the parts that contain the advertisement’s HTML code so Google Chrome does not load or render the advertisement....

November 19, 2020 · 3 min · Catgirl

How to persist Redux State after closing and reopening a React application

The default behavior after closing a React behavior or any website for that matter is for the page’s local state to be lost. In a Single Page Application framework such as React this could mean you are logged out or certain setting changes are lost. This blog post explains how to persist state using the npm package redux-persist, it assumes that you have a React application which manages it’s state with Redux....

November 10, 2020 · 3 min · Catgirl