In this article, I will briefly go over how I integrated pwntools with radare2. The means by which I have accomplished this are generic and can be extended to integrate pwntools with your debugger of choice (for instance: IDA Pro, pwndbg, Binary Ninja, etc).

 

Like most techies, I have a constant struggle to get my setup working "just the way i like it". I have been a fan of pwntools for quite a while as it provides nice abstractions for things such as interacting with programs, utilizing memory leaks, and more. When it comes to interacting with programs, the abstraction layer allows you uniformly interact with a program, and not worry whether your program is being run locally, over a network, via ssh, and more. For reversing and writing exploits, it's often times helpful to run the program under a debugger. Pwntools provides an abstraction for that, in the form of the GDB module.

In this tutorial, I will go over an easy way to learn how assembly and binaries work on your own. I will show you a technique you can use to teach yourself on a practical level how assembly and binaries work. This is meant as an introduction, and will not go into detail on assembly itself (perhaps another tutorial!). However, by the end of this tutorial you will be able to create and answer some of your own questions regarding binary analysis and programming.

As a side interest, I've become curious about video and audio encoding. I've been looking into the many different flavors of encoding there are, and attempting to determine the best way forward. This is purely selfish as I have a collection of videos that are taking up too much space and I want to make them smaller, but also keep as much detail as possible.

 

Getting more to the point, my primary system is a Windows desktop with NVidia graphics card. While I was able to encode videos using Linux, the machine running Linux was either a Virtual Machine or a laptop. Either way, performance for encoding was not great. I wanted to not only get my much stronger desktop involved, but also utilize the graphics card. I was previously using HandBrake, which is a neat application. However, I wanted more control over what was happening, and also just get a bad vibe from that tool (and don't want it running on my primary system). One of the most well known and respected tools in this area is ffmpeg. If you haven't looked at it, I'd highly recommend reading their docs. Really cool stuff.

I recently had the need to build a Python 2.7 debugging environment for my porting work of the angr platform to Windows. The problem I have run into is that there is not terribly good documentation on this subject. Not only was some of the official documentation from python misleading, but the links to the tools required were not easy to find. Here's how I built my debugging environment.

The other day I was looking into creating transparent tunneling using my router (with dd-wrt version 24 sp 2) and ProXPN. This would be handy in any number of situations to include the ability to proxy those devices which don't naturally have that ability (i.e.: the internet of things). Sadly, there seems to be a dearth of information regarding how to set this up, so after some research and floundering on my own, here's how I've gotten it to work.